FreeBSD on Windows Azure

この間のJAZ総会LTでやったネタです。

FreeBSD用のHyper-Vドライバが8月17日にリリースされていたので、それを使ってWindows Azure VMs上にFreeBSDを動かしちゃおうって話です。

image

 

 

まずはローカルのHyper-V上でFreeBSDを入れるところから。

image

LT用のネタ作ったときはFreeBSD 8.3 Releaseを使ったのですが、Hyper-V用のカーネル入れる際に8.2になったっぽい?というか今サポートされてるバージョンはFreeBSD 8.2なのでそちらをインストールするのがいいでしょう。たぶん。

注意点はWindows Azure VMsが今のところVHD形式の仮想ディスクのみサポートしてるので、VHDXじゃなくてVHDにすること、ネットワークアダプタはHyper-V用ドライバをインストールするまではレガシーネットワークアダプタを使用するところ、ぐらいです。

Hyper-V用ドライバをネットワーク無しで(ISOに焼くなどして)追加できるなら別に問題ないですが。

Hyper-V用ドライバは GitHub からダウンロードします。もしくは /usrに移動して

git clone https://github.com/FreeBSDonHyper-V/freebsd.git

します。あとは /usr/freebsd に移動して

make buildkernel KERNCONF=HYPERV_VM

make installkernel KERNCONF=HYPERV_VM

するだけ。buildkernelでエラーになるようだったら make buildworld しましょう。

簡単ですね。

問題なくインストールが終われば /etc/fstab をいじってブートパーティションを変更しておきましょう。

image

でないと↑みたいにブート時に手動で選ぶ羽目になります。

たぶん da0s1a とかのパーティションになってると思われますがそれぞれの環境で確認ください。

再起動後、dmesgでデバイス認識しているか確認。

image

問題ないですね。hyperv-utils とかvmbus0が認識されていればOkです。ネットワークアダプタはhn0として認識してるはず。

あとHyper-V用のネットワークアダプタはNICドライバがリンク変更イベントを通知しないっぽいので、DHCPを使ってIPアドレスを割り当てる場合は /etc/rc.conf とかで以下のように指定しましょう。

ifconfig_hn0=“SYNCDHCP”

基本はこれぐらい。あとは自由にサーバーを構築します。Apache立てるもよし、Node.jsいれるも良しです。

出来上がったらCSUploadコマンドのAdd-PersistentVMImageを使ってWindows Azure Storage上にVHDをアップロードします。

注意点はAdd-PersistentVMImageで指定するOSオプションは今のところWindowsかLinuxしか指定できないのでしょうがなくLinux指定するぐらいでしょうか。。。

image

無事にUploadが終わったら管理ポータルから仮想マシンを作成しましょう。ギャラリーのMyImagesでUploadしたVHDが指定できるはずなので、そちらを指定して作ります。

image

あと、Agentがないのでウィザードで指定した追加ユーザーとかは動作しません。仮想マシン名も変わらなかった予感。

image

まぁちゃんとすれば行けるかもしれませんが…どうでしょうね?

というわけで起動後はSSHで普通につながります。

image

image

問題なく動作してると思います。あ、IPアドレスは自動で降られるのでDHCP使っておきましょう。VPNと組み合わせて固定化もできると思いますが未検証です。

それと無理やり動かしているので、ポータル上で見るといつまでたってもProvisioningです。。。

image

※ただ2日ぐらい放置するとRunningになったんですよねー謎。

ま、そんな感じで無理やりですけどFreeBSDがWindows Azure上で動きましたよっと。

FreeBSD on Windows Azure」への1件のフィードバック

  1. ピンバック: FreeBSD on WindowsAzure(途中) | azure日記

コメントを残す