BSD界隈四方山話

第68回OpenBSD 6.0-RELEASEをbhyveにインストール

OpenBSD 6.0-RELEASE

OpenBSDプロジェクトは2016年9月1日(カナダ時間⁠⁠、OpenBSDの最新版となる「OpenBSD 6.0」を公開しました。今回の見どころはマルチコア/プロセッサ対応の促進と、セキュリティ機能の強化といったところでしょう。バージョン番号は5.x系から6.x系に変わっていますが、順当に開発を進めたバージョンといったように見えます。

OpenBSDはほぼ半年おきにほぼ確実にリリースが実施されるため、そこに合わせてアップグレードなどの日程を立てればよく、仕組みがわかってくるとなかなかシンプルで扱いやすいディストリビューションです。今回はbhyveにOpenBSD 6.0-RELEASEをインストールする方法を紹介します。いろんなディストリビューションのいろんなバージョンを試せる環境を作っておくとなにかと参考になりますので、マルチプラットフォーム構築例として参考にしてもらえればと思います。

仮想環境のセットアップ

次の構成で仮想環境を用意することにします。インストールイメージファイルや設定ファイルなどを適宜用意しておきます。

 ホストとゲストの設定
項目内容
ホストOSFreeBSD 10.3-RELEASE/amd64
ゲストOSOpenBSD 6.0/amd64
ホストNICbge0
ゲストNICtap3 via bridge0
仮想CPU2個
仮想メモリ2GB
仮想ディスク(32BG)/dev/zvol/z/openbsd-6.0
インストーラ/d/bhyve/install60.iso
grub-bhyve設定ファイル/d/bhyve/openbsd-6.0-device.map
リスト /boot/loader.confに追加する設定
vmm_load="YES"
リスト /etc/sysctl.confに追加する設定
net.link.tap.up_on_open=1
リスト /etc/rc.confに追加する設定
cloned_interfaces="bridge0 tap0 tap1 tap2 tap3 tap4 tap5 tap6 tap7 tap8 tap9 tap10 tap11 tap12"
ifconfig_bridge0="addm bge0 addm tap0 addm tap1 addm tap2 addm tap3 addm tap4 addm tap5 addm tap6 addm tap7 addm tap8 addm tap9 addm tap10 addm tap11 addm tap12"
リスト /d/bhyve/openbsd-6.0-device.mapファイルの中身
(hd0) /dev/zvol/z/openbsd-6.0
(cd0) /d/bhyve/install60.iso

設定ファイルを用意したあとにシステムを再起動しないのであれば、次のようにコマンドを手動で実行します。

 ネットワーク環境をセットアップ
# kldload vmm
# ifconfig tap3 create
# sysctl net.link.tap.up_on_open=1
net.link.tap.up_on_open: 0 -> 1
# ifconfig bridge0 create
# ifconfig bridge0 addm bge0 addm tap3 up

仮想環境で利用する仮想ディスクを次のようにZFSで作成します。

 ゲストの仮想ディスクをセットアップ
# zfs create -V 32G -o volmode=dev z/openbsd-6.0

OpenBSDカーネルの読み込みにgrub2-bhyveが必要になるので、パッケージからインストールしておきます。

 OpenBSDカーネルの読み込みに使用するgrub2-bhyveをインストール
# pkg install grub2-bhyve

これで仮想環境のセットアップは完了です。

OpenBSD 6.0インストール

次のようにgrub2-bhyveを実行してOpenBSDカーネルを読み込みます。

 OpenBSDカーネルのローディング
# grub-bhyve -m openbsd-6.0-device.map -r cd0 -M 2G openbsd-6.0

                             GNU GRUB  version 2.00

   Minimal BASH-like line editing is supported. For the first word, TAB
   lists possible command completions. Anywhere else TAB lists possible
   device or file completions.


grub> ls (cd0)
Device cd0: Filesystem type iso9660 - Label `OpenBSD/amd64   6.0 Install CD' -
Last modification time 2016-07-24 03:38:08 Sunday, UUID 2016-07-26-13-38-08-00
- Total size 463804 sectors
grub> ls (cd0)/
6.0/ etc/ TRANS.TBL
grub> ls (cd0)/6.0
amd64/ TRANS.TBL
grub> ls (cd0)/6.0/amd64
base60.tgz boot.catalog bsd bsd.mp bsd.rd cdboot cdbr comp60.tgz game60.tgz INS
TALL.amd64 man60.tgz SHA256 TRANS.TBL xbase60.tgz xfont60.tgz xserv60.tgz xshar
e60.tgz
grub> kopenbsd -h com0 (cd0)/6.0/amd64/bsd.rd
grub> boot


#

次にOpenBSDインストーラを起動します。

 OpenBSDインストーラ起動
# bhyve \
    -H -P -A \
    -W -c 1 \
    -m 2G \
    -l com1,stdio \
    -s 0:0,hostbridge \
    -s 1:0,lpc \
    -s 2:0,virtio-net,tap3 \
    -s 3,ahci-cd,/d/bhyve/install60.iso \
    -s 4,virtio-blk,/dev/zvol/z/openbsd-6.0 \
    openbsd-6.0

インストールでとくに困ることはないでしょう。会話形式で必要な項目を入力していけばインストールが完了します。

 OpenBSDインストール例
図 OpenBSDインストール例
 OpenBSDインストール例
図 OpenBSDインストール例
 OpenBSDインストール例
図 OpenBSDインストール例
 OpenBSDインストール例
図 OpenBSDインストール例

インストールが完了したらrebootコマンドを実行して仮想環境を終了します。

OpenBSD on bhyveを利用

毎回grub-bhyveコマンドを実行したりbhyve(8)コマンドにたくさんオプションを指定するのは面倒なので、次のようなエイリアスを用意します。

 OpenBSD 6.0 on bhyveを起動するためのショートカット
alias bhyve_openbsd_6.0='sudo bhyvectl --destroy --vm=openbsd-6.0; printf "kopenbsd -h com0 -r sd0a (hd0,openbsd1)/bsd\nboot\n" | sudo grub-bhyve -m /d/bhyve/openbsd-6.0-device.map -M 2G openbsd-6.0; sudo bhyve -W -c 1 -m 2G -H -P -A -l com1,stdio -s 0:0,hostbridge -s 1:0,lpc -s 2:0,virtio-net,tap3 -s 3,virtio-blk,/dev/zvol/z/openbsd-6.0 openbsd-6.0; sudo bhyvectl --destroy --vm=openbsd-6.0'

これで次回からbhyve_openbsd_6.0でOpenBSD 6.0の仮想環境が起動してくるようになります。

 OpenBSD 6.0 on bhyve
図 OpenBSD 6.0 on bhyve

OpenBSDは常にシンプルで軽量であり続けているところがすごいところです。突き詰める部分はとことん突き詰め、いらないと判断したらバッサリ切る。世界中の開発者が参加するプロジェクトで、このように軽量でしかも全体を書き換えることも辞さないようなフットワークの軽さを維持しつつ、さらに開発コミュニティの結束も強いというのはすごいと思います。

さらに、必要であればユーザランドのソフトウェアもOpenNanigashiやLibreHogehogeといった形でプロジェクトにし、そしてほかのオペレーティングシステムにも影響を与える力強さはすごいといえます。日本にはOpenBSDを主要オペレーティングシステムとして扱っている方はそれほどいないようなのですが、おもしろいディストリビューションですし、当然ビジネスユースでも実力を発揮するソフトウェアですのでぜひ活用していただければと思います。

勉強会

第56回 9月27日(火)19:00~ ZFSとJailによるコンテナ技術活用、ユーザへのファイルシステム特権の委譲ほか

ZFSは管理者が担う作業の内容を大きく変えました。多くの便利な機能は管理者にもう戻ることのできない利便性を与えてくれました。しかし、より突っ込んでチューニングを行ったり、さらに深い機能を使いこなそうとしたとき、ほとんどの管理者はZFSの深遠へ引きずり込まれ、果たしてやっている設定が適切なのは不適切なのかの判断も難しい状況に陥っているのではないでしょうか。

第56回目からは、ZFSの活用に焦点を当てながらZFSの使い方やチューニングの方法を紹介します。今回はとくにJailにおけるコンテナ技術のひとつとしてZFSを活用する方法や、ユーザにファイルシステム特権を委譲する方法などを採り上げます。余裕があればマシン間における効率的なレプリケーションの方法なども紹介します。

参加申請はこちらから。

第57回 10月27日(水)19:00~ 検討中

検討中。さらにZFSの活用方法の解説をすることになる予定です。

会場は決まっています。今回は高円寺です! 参加申請はこちらから。

おすすめ記事

記事・ニュース一覧