第11回 FreeBSD勉強会 FreeBSDハイパーバイザ「BHyVe」の仕組み・使い方紹介

http://atnd.org/events/30986 講師は浅田拓也さん
6
Yoshikazu GOTO @goto_ipv6

浅田さん: ・NetApp的には他にも色んなOSが動いていそう→ソースが全部出ていない感じ(RedHatが…という話が聞こえてきた時も) #FreeBSDStudy

2012-09-28 19:16:01
はやかわ ななせ @7seG

BHyVe編。amd64でしかゲスト、ホストサポートしていない。32bitはなんらかの手をいれないと使えない #FreeBSDStudy

2012-09-28 19:17:04
Yoshikazu GOTO @goto_ipv6

浅田さん:(続き): ・デバイス:最低限のものしかありません。コンソールも、ビデオではなくてテキストが出る程度。しかしPCIパススルーは対応。 →どれが動いてどこまで動くかは試してみないとわからない →実際のH/WをエミュレーションせずVirtioを #FreeBSDStudy

2012-09-28 19:18:47
Hiroshi Tokuda @tokudahiroshi

なぜかPCIパススルーは実装されている #FreeBSDStudy

2012-09-28 19:18:50
はやかわ ななせ @7seG

FreeBSDだけなんだ QT @goto_ipv6: 浅田さん: ・対応しているゲストOS:FreeBSD 7.2-10/amd64(要改造) ・対応しているデバイス:仮想ディスク、NIC、コンソール、PCIパススルー ・SMP対応(最大8コア) #FreeBSDStudy

2012-09-28 19:18:55
Yoshikazu GOTO @goto_ipv6

浅田さん: →仮想コンソール:やっつけなもの。文字を画面に書くためのもの。独自。このコードがゲスト側に入っていないと画面が出ない。 #FreeBSDStudy

2012-09-28 19:19:46
えむばーど @m_bird

dmesg をVMX.*popでgrepしてやれば良いらしい。POPCNTとEPT片方しか搭載していないCPUは今の所出荷されてないため、とのこと。(筑波大情報科学類誌「WORD 23号」BHyVe記事より wrriten by @iorivur ) #FreeBSDStudy

2012-09-28 19:22:48
Yoshikazu GOTO @goto_ipv6

浅田さん: ・ホストOS側で /boot/loader.conf にて hw.physmem="0x100000000" などと指定して、ホストOSで使用するメモリ量を指定→残りをゲスト側に使用 #FreeBSDStudy

2012-09-28 19:25:51
Yoshikazu GOTO @goto_ipv6

http://t.co/LH8rnOCi にもメモリについての記載がありますね。 #FreeBSDStudy

2012-09-28 19:26:10
Yoshikazu GOTO @goto_ipv6

浅田さん: ・BIOSが実装されていないので、bhyveloadコマンドでカーネルをゲストのメモリ空間にロードする必要がある #FreeBSDStudy

2012-09-28 19:28:31
Yoshikazu GOTO @goto_ipv6

浅田さん: ・デバイス:PCIの下に、virtio-net, virtio-blkしかない。また cpu0, isa0はある。 #FreeBSDStudy

2012-09-28 19:30:47
えむばーど @m_bird

VMwareFusion上でFreeBSDを起動させたら、Macbookが今にも旅立ちそうな音を立てている……。 #FreeBSDStudy

2012-09-28 19:31:09
Yoshikazu GOTO @goto_ipv6

浅田さん: ・コンソールの描写が遅いが、sshで入ればサクサク動きます #FreeBSDStudy

2012-09-28 19:31:24
Yoshikazu GOTO @goto_ipv6

浅田さん: ・ゲストを再起動すると動作は停止するが、メモリは確保されたままであり、またレジスタの設定もされた状態になっている。サスペンドというか、休止状態でVMが残っている。 #FreeBSDStudy

2012-09-28 19:33:04
Yoshikazu GOTO @goto_ipv6

浅田さん:/usr/sbin/bhyveload: ・VMインスタンスを作成し、BSDカーネルをVMインスタンスのメモリ領域にロードして起動可能な状態を作る #FreeBSDStudy

2012-09-28 19:36:40
えむばーど @m_bird

kvmは一つのVMMで/dev/kvmを生やすけど、BHyVeはインスタンスごとに/dev以下ににょっきりコンニチワ!するのか。 #FreeBSDStudy

2012-09-28 19:36:53
Yoshikazu GOTO @goto_ipv6

浅田さん: ・BIOSが無いのでディスクイメージのブートセクタから起動できない。代わりに、bhyveloadにより64bitモードでFreeBSDカーネルを実行するための様々な初期化処理を行なっている #FreeBSDStudy

2012-09-28 19:37:21
Yoshikazu GOTO @goto_ipv6

浅田さん: ・ロードするだけで実行しない。ブートローダが走っているように見えるのは、ホストOSへ移植されたゲスト専用のブートローダが動いているだけ #FreeBSDStudy

2012-09-28 19:37:52
えむばーど @m_bird

ゲスト「動いている」状態で、驟雨兄さんの真似して#vmmctl --vm=myguest --destroyしたら、ついでにホストごとDestroyしてくれて非常に便利だ。 #FreeBSDStudy

2012-09-28 19:37:57
えむばーど @m_bird

BHyVeもそのうちvirshが対応して、VMMの実装の違いを隠蔽されてしまうんだろうなあ……総virsh時代。 #FreeBSDStudy

2012-09-28 19:39:28
Yoshikazu GOTO @goto_ipv6

浅田さん:/usr/sbin/bhyve: ・bhyveloadが初期化したVMインスタンスを実行し、ディスク、NIC、コンソールなどのデバイスエミュレーション処理を行う #FreeBSDStudy

2012-09-28 19:39:53
nakj @nakj

頼んだ QT @m_bird: BHyVeもそのうちvirshが対応して、VMMの実装の違いを隠蔽されてしまうんだろうなあ……総virsh時代。 #FreeBSDStudy

2012-09-28 19:40:29
Yoshikazu GOTO @goto_ipv6

浅田さん: ・VMインスタンスの状態は、プロセス内ではなくて/dev/vmm/$MVNAMEに、つまりカーネル内に #FreeBSDStudy

2012-09-28 19:40:34