「jail」タグアーカイブ

FreeBSD bhyve + vm-bhyveでゲストにFreeBSD環境を入れてみる

FreeBSDでは長らくjailで仮想環境が使えてきた訳だけれども、仮想スイッチのVIMAGEが待てど暮らせど一向にプロダクションリリースにならないおかげでOSのセキュリティアップデートの度にkernel再構築が発生し結構大変。

コンテナ型仮想化環境であるjailにはリソース負荷が軽いメリットがあるが使っていると困った点も多い。

  • HOST環境とjail環境が同じkernelなのでバージョンを混在させられない。
  • jail環境も基本的にFreeBSD一択。
  • VIMAGEがなかなかプロダクションリリースになっていないのできちんと使おうとするとkernelからrebuildが必須。→OSアップデートの度にmake buildkernel。
  • jail環境の運用で楽をしようと共用化してると、ホストサーバを新しいH/Wの移行作業が割と大変。

そこでそろそろ使い物になっているかもとbhyveに手を出してみようとしたら、これがまた資料が少ない。本当に使えるのかと言うくらいない。探しても日本語の情報では手動操作でインスタンスを立ち上げるものしか出てこない。
普通bhyveでゲストをたちあげようとするなら

  1. ifconfig tapX createでtapデバイスを作り
  2. sysctl net.link.tap.up_on_open=1 で有効化し
  3. ifconfige bridgeX create でbridge I/Fを作り
  4. ifconfig bridgeX addm em0 addm tapX upでやっとネットワークの準備が完了し
  5. truncate -s XXg disk.imgでイメージ領域を確保し
  6. sh /usr/share/examples/bhyve/vmrun.sh -c 1 -m 256M -t tap0 -d disk.img -i -I FreeBSD-10.3-RELEASE-amd64-dvd1.iso <vmName> でインストール作業行って
  7. sh /usr/share/examples/bhyve/vmrun.sh -c 1 -m 256M -t tap0 -d disk.img <vmName>でインストール後のインスタンスが立ち上がる様に自動起動の仕組みを考え‥‥

そこそこ手間。テストで一つだけならまだしも、複数インスタンスの管理を行うとなると正直面倒。
これだからこそ使おうと思う人も増えないし、ますます情報が増えない悪循環。これではお試しにはいいけれども運用を考えたら使い難く過ぎる。
でも、もうちょっと簡単になって欲しいということでezjailみたいな管理ツールがないものか色々試してみた結果、vm-bhyveがそこそこ良さそうなので入れてみたら、想像以上に極楽だった。
実際にインスタンスの作成からFreeBSD 10.3をインストールしたところまでの操作がこちら。

結論を先に断言しますが、bhyveが動作できるH/W環境ならjailよりbhyveの方が簡単で使いやすい。仮にホストマシンを移行することになっても殆ど仮想イメージファイルのコピーだけで作業が終わるのであっという間。

続きを読む FreeBSD bhyve + vm-bhyveでゲストにFreeBSD環境を入れてみる

FreeBSD 10.0でVIMAGEなjail(手抜き編)

FreeBSDでjailと言えばezjailと言う位の定番ですが相変わらずVIMAGEとの相性が良くありません。
そうこうしている間に標準コマンドがかなり高機能 & 使いやすくなっていますので、この際こちらに切り替えて、しかしアップデートとか面倒くさいので手抜き出来るところは手抜きでというコンセプト。
Cheerfull daysサーバいじくり雑記あたりを参考にさせて頂きました。

なお、FreeBSD 10.2以降ではbhyveを使った仮想化がお手軽になっているので、リソースが厳しくてjailでないと困るという様な理由が無ければそちらがおすすめ。

(1) VIMAGE optionを生かしたカーネル再構築。
相変わらずVIMAGEが有効になっていない様です。
ということで、定番の書き換え。

再起動でカーネルが書き換わっていたらOK。

カーネル再構築などの詳しい話はFreeBSD ハンドブック 第18章 FreeBSD のアップデートとアップグレードを参照。

続きを読む FreeBSD 10.0でVIMAGEなjail(手抜き編)