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

http://atnd.org/events/30986 講師は浅田拓也さん
6
前へ 1 2 ・・ 5 次へ
Yoshikazu GOTO @goto_ipv6

浅田さん:バイナリトランスレーション: ・昔の手法 ・ゲストのプログラムを実行中(問題の箇所が実行される前)に書き換え→まずい命令が実行されないように ・現在では、後述のハードウェア仮想化支援が主流になった #FreeBSDStudy

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

浅田さん:ハードウェア仮想化支援機能による仮想化: ・CPUにRing(Intelでは0~3)とは独立した仮想化用のモードを追加:ハイパーバイザーモード、ゲストモード ・カーネルモードはRing 0、ユーザモードはRing 3 #FreeBSDStudy

2012-09-28 18:45:26
Yoshikazu GOTO @goto_ipv6

浅田さん:(続き): ・エミュレーションが必要になった時点で中断され、ハイパーバイザーモードへ復帰 ・ハードウェアレベルでトラップできる →オーバーヘッドを低減しながらハイパーバイザーの実装を簡単にできるようになった #FreeBSDStudy

2012-09-28 18:46:42
Yoshikazu GOTO @goto_ipv6

浅田さん:VirtualBox: ・ハイパーバイザーの機能はホストOS(カーネル)のドライバーという形 →ゲストマシンは通常のプロセスとしてFreeBSDが管理 →ライセンスはGPLv2 →開発はオラクル、多くのOS上で動作 #FreeBSDStudy

2012-09-28 18:48:16
Yoshikazu GOTO @goto_ipv6

浅田さん:Xen(HVM): ・ハードウェア上で直接Xenハイパーバイザーが動作 ・ユーザからの操作やハードウェアへのアクセスには「dom0」と呼ばれる準仮想化された管理OSを用いる(FreeBSDは未対応) ・ライセンスはGPLv2 #FreeBSDStudy

2012-09-28 18:49:36
Yoshikazu GOTO @goto_ipv6

浅田さん:(続き): ・XenハイパーバイザーはXenコミュニティで開発 →各OSの準仮想化対応はそれぞれのOSのコミュニティ・開発元で開発 #FreeBSDStudy

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

浅田さん:(続き): →OS側に対応が必要なため #FreeBSDStudy

2012-09-28 18:51:17
Yoshikazu GOTO @goto_ipv6

浅田さん:Linux KVM(参考): ・ハイパーバイザーはLinuxカーネルに統合 ・ゲストマシンは通常のプロセスとしてLinuxが管理 ・ライセンスはGPLv2 ・Linuxカーネルコミュニティで開発 #FreeBSDStudy

2012-09-28 18:52:39
Yoshikazu GOTO @goto_ipv6

浅田さん:BHyVe: ・Linux KVMのFreeBSD版(似たような構造のものをFreeBSDに) ・ハイパーバイザーはFreeBSDカーネルに統合 ・ゲストマシンは通常のプロセスとしてFreeBSDが管理 ・ライセンスはBSDL #FreeBSDStudy

2012-09-28 18:53:30
Yoshikazu GOTO @goto_ipv6

浅田さん:準仮想化(PVM): ・仮想化に都合が良い構造にゲストOSを改変→ハイパーバイザーによるエミュレーションが必要な処理は、ゲストからハイパーバイザーを呼び出す「ハイパーバイザーコール」に置き換え #FreeBSDStudy

2012-09-28 18:54:56
Yoshikazu GOTO @goto_ipv6

浅田さん:(続き): ・高速化のため、ゲストマシン上で実行されるプログラムを直接実CPUで実行→センシティブ命令の実行など実行されてまずい処理は予め書き換えられている ・現在はHVMを使うことが多くなったが、登場時は性能がよくオーバーヘッドも低かった #FreeBSDStudy

2012-09-28 18:56:45
Yoshikazu GOTO @goto_ipv6

浅田さん:準仮想化デバイス: ・完全仮想化環境で用いられているHDDやNICなどの仮想デバイスは実デバイスをエミュレートしているのでゲストOS上の既存のドライバが使えるが、ゲストからハイパーバイザー間のモード切替がムダに多い、メモリコピーが発生する #FreeBSDStudy

2012-09-28 18:58:48
tak @erre_factory

すごく丁寧に説明されてるなぁ。kernel触ったことなくても興味ある人なんかでもわかりやすいと思うけどなぁ #FreeBSDstudy

2012-09-28 18:59:15
Yoshikazu GOTO @goto_ipv6

浅田さん:(続き) →必ずしも性能が良くない ・準仮想化環境で用いられている仮想デバイスはゲスト・ハイパーバイザー間のやり取りに最適化されているため、既存デバイスのエミュレーションよりも性能が高い #FreeBSDStudy

2012-09-28 19:00:02
Yoshikazu GOTO @goto_ipv6

浅田さん:(続き): ・準仮想化デバイスを完全仮想化環境にも導入しよう→virtio(NICとブロックデバイスと、コンソールも) →BHyVeでも使用 #FreeBSDStudy

2012-09-28 19:01:34
Yoshikazu GOTO @goto_ipv6

浅田さん: →ソースコードを持ってきたわけではなくて、実装上の規格のようなものが決まっているので、それに準拠して実装 #FreeBSDStudy

2012-09-28 19:02:23
Yoshikazu GOTO @goto_ipv6

浅田さん:コンテナ型仮想化: ・Jail:1つのOS上に擬似的に複数のOS環境を作り、OSの各種リソース情報をコンテナごとに別々に管理することにより、プロセスに対し別のOSであるかのように見せかける #FreeBSDStudy

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

浅田さん:(続き): ・オーバーヘッドは最も低いが、OSは1つしか動作していないので、再起動やPanicには全コンテナが巻き込まれる、1つのバージョンのOSにしか対応しない、異なるOSの混在環境は作れないなどの制約がある #FreeBSDStudy

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

浅田さん:コンテナ型仮想化: ・chroot:あるプロセスに対して、あるディレクトリをルートディレクトリに見せる ・jail:chrootに加えて、プロセス空間も独立 ・jail+VIMAGE:更にネットワークスタックも独立 #FreeBSDStudy

2012-09-28 19:05:52
Yoshikazu GOTO @goto_ipv6

浅田さん:余談:VPS: ・KVMやXenの他に、Parallelsなどのような商用技術のコンテナ型技術も→後者の場合、FreeBSDをインストール出来ない #FreeBSDStudy

2012-09-28 19:08:37
tak @erre_factory

VIMAGEは、まだsys/amd64/conf/NOTES, sys/conf/NOTESにも載っていませんね #FreeBSDstudy

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

浅田さん:BHyVeとは: ・Linux KVMのようなFreeBSDカーネルに統合されたハイパーバイザー ・FreeBSD 10へのマージを目指して開発中 ・別のツリーで開発中 #FreeBSDStudy

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

浅田さん:(続き): ・Intel VT-x、EPT対応CPUで動作(Nehalem以降のIntel CPU) ・NetAppで開発が始まった(2人くらいで) ・対応しているホストOS:FreeBSD 8.1-10/amd64(無変更) #FreeBSDStudy

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

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

2012-09-28 19:13:41
前へ 1 2 ・・ 5 次へ