Software-Defined どさにっき 〜2015年4月上旬〜

by やまや
<< = >>

2015年4月10日(金)

BHyVe のあるくらし

_ うちの自宅サーバとして使っているマシン、いまだに FreeBSD8 でかなりヤバい。8 系の最新であればまだいちおうサポート期間内だけどもうすぐ切れる。うちはもっと古いので EoL はとっくに過ぎてる。いいかげんなんとかしないとなー、とはずっと思ってたんだけど、やっと重い腰を上げてリプレース作業に入ってみる。

_ これまで Celeron 900MHz、メモリ 1GB、ディスク 40GB という超貧弱な構成だったのが、新しいマシンでは Celeron 1.5GHz、メモリ 2GB、ディスク 300GB にパワーアップ。世間的にはこれでも貧弱だが。まあ、3万円で買ったノート PC だからね。とはいえ、ディスク容量が格段に増えたのがうれしい。ちうことで、あれだ、仮想マシンをいじれるようにしよう。Xen や KVM などではなく、FreeBSD10 で BHyVe な VM を動かしてみる。

_ VM の管理ツールとして /usr/share/examples/bhyve/vmrun.sh というスクリプトが最初から入ってはいるけど、試してみた感じではあまり使い勝手はよくない。libvirt が bhyve にも対応してるので、KVM をいじるのと同じような感覚で使えるんだろうけど、使いにくいながらもシンプルだった vmrun.sh を先に見てしまうと、無駄に大袈裟に見えてしまってちょっとイヤ。で、探してみたら vmrcというのがシンプルでわりと使い勝手よさげなのでこいつを採用。

_ とりあえず VM を作ったり壊したりしてみながら bhyve に慣れてみる。…が、中身の仕組みはともかく、VM の中に入ってしまえば VM であることをとくに意識する必要もなく、ごくごくふつーに使えちゃう。あーらくちんだ。

_ いくつかメモ。

_ VM の時計が、UTC より9時間進んだ JST の母艦より、さらに9時間進む。touch /etc/wall_cmos_clock して再起動すればよい。もしかしたら adjkerntz の再起動だけでいけるかもしれないけど、一気に9時間も戻されるとどこかで不具合が出そうなので VM ごと再起動した方がよさげ。

_ ディスクイメージを GPT で作っておけば後からディスクサイズを増やすのも簡単なので、容量小さめでイメージを作っておくといいかも(試してないけど、減らすのはたぶん無理)。まあ、母艦を ZFS で作ったおかげで圧縮が効くので、見かけのディスクイメージが大きくなっても実際に使わないのであれば母艦のディスク占有量は大差ないんだけど。具体的なディスク拡張手順は以下。まず、母艦でディスクイメージを無理矢理大きくする。

# truncate -s +10G freebsd0.img		# 10GB 追加
あとは、稼働中の VM の中から ハンドブックどおりにコマンドを叩くだけ。いちおう VM を停止させて VM の外から作業した方がいいのかもしれないけど、何度か試してみたかぎりでは稼働状態でも問題は起きてない。ちゃんと停止させて作業する場合は、たぶん以下のようになるはず。
# truncate -s +10G freebsd0.img
# mdconfig -a -t vnode freebsd0.img
<< /dev/mdX に対してハンドブックの手順で作業 >>
# mdconfig -d -u mdX

_ 最終的には、

こんな感じになるのを想定。まだぜんぜんできてない。つづく。


<< = >>
やまや