※現職でスキルアップ発表会等で作成していたものをQiitaに書き起こすシリーズ③
元がppt資料で口頭説明ありきな文章なのでちょっと分かりづらい部分はごめんなさい。
KVMとは?
- KVM( Karnel-based Virtual Machine)
- 名前の通り、Linuxカーネル上にQEMU(CPUエミュレーションソフト)を置き、その上でゲストOSを動作させる。
- ハイパーバイザ型、完全仮想化(OSに手を入れずに動作する)
- 2009年~のLinux系OSには標準搭載。
- それまではLinuxに搭載される仮想化ソフトはXenが主流。
- 2008年にQEMUをRed Hat社が買収したことでKVMに置き換わった。
- 仮想ハードウェアを提供するのはQEMU。
- KVMはLinuxのCPU演算のみをQEMUに仲介する。
⇒KVMはQEMUを高速化するモジュールに過ぎない - つまりQEMUとKVMは切っても切り離せない関係
KVMのメリット
- タダで使える
- LinuxOS標準搭載だから
- Windows Serverに標準搭載されているHyper-V等もあるが、KVMは無償Linuxを用いることでOS代すらも節約できる。
- 有償版Red Hatを用いた場合はベンダーサポートが受けられる。
- カーネル標準搭載で使いやすい
- 導入の手間がいらない
- Linux用のドライバがそのまま利用できる
- Xenは対応カーネルを作る為にカーネルコンパイルせねばならない
KVMのデメリット
- 準仮想化が使えない
- 完全仮想化よりも準仮想化の方が処理が早い。
- ちなみにXenは準仮想化・完全仮想化両方に対応している。
- virtioを用いることで、完全仮想化の処理遅延はそこそこ解消。
- 歴史が浅い
- 資料や障害時の事例が少なく、実績も乏しい。
…と言われてきたが、もはや出てから15年近く経つので多分十分ある。
- 資料や障害時の事例が少なく、実績も乏しい。
- GPL
- 自社内で使う分には気にする必要なし
今回の目標
KVM管理ツール
KVM管理環境の導入
仮想ルータ作成
①仮想マシン(CentOS)を作成
②作成した仮想マシンのNICを2つに増設
③IPv4フォワーディングを有効にしルーティングの設定を行う
※IPフォワーディング:
他のホストから受け取ったIPパケットをルーティングテーブルに従い別の経路へ
再送信すること。セキュリティ上の理由から、通常は無効化されている
/etc/sysctl.conf
⇒192.168.10.0セグメントと192.168.11.0セグメントをルーティングするルータが誕生!
ルーティングテスト
- Tracerouteし仮想マシンAを経由してpingできてることを確認
まとめ
- KVMで仮想サーバを作るのは存外簡単
- 今回使ったのはCentOSだが、1マシンあたり最低512MBのメモリを要求してくる。大規模な仮想ネットワーク作成時は十分なメモリを用意すること