2011」に関する記事を公開したので、KVMの実際のインストール、仮想マシンの作成などを紹介できなかった。今回は、元に戻って、KVMのインストール、仮想マシンの作成を試してみる。6.0ベースで紹介をしていきたい。ちなみに、KVMはLinuxカーネルに統合されているため、ほかのLinuxディストリビューションにも入っており、KVM自体のテストは行える。ちなみに、CentOSやFedoraなどでも同じようなテストが行えると思う。6.0と差がある部分があるかもしれない。その時は、レッドハットのWebサイトからRHELの試用版(30日間)をダウンロードしてテストすればいい。II、メモリ8GB、HDD500GBという環境でテストした。スペック的には、デスクトップPCだ。RHELをインストールするだけなら、大規模なサーバーは必要ない。KVMは、ライブマイグレーションの機能を持っているが、今回は1台のPCで動作させているため、ライブマイグレーションのテストは今後行いたいと思う。RHEL上でKVMを利用するためには、PCのBIOSで仮想化支援機能をオンにしておく必要がある。IntelならVT-x、AMDならAMD-VをBIOSでオンにしておく。しないと、KVMが動作しない。RHELのインストールは、ウィザードに従えば非常に簡単だ。インストール時に導入するアプリケーションとしては「仮想化ホスト」を選択する。6系ではXenが取り外されたため、KVM関連のソフトがインストールされる。「今すぐカスタマイズする」を選択して、使い勝手をよくするためにX-WindowsやGNOMEなどのデスクトップ環境を選択する。仮想化関連のツールなどもインストールしておく。後は、RHELのインストールウィザードに従っていけばOKだ。今回は、内蔵のSATAを利用するので、「基本ストレージデバイス」を選択。今回は、「仮想化ホスト」を選択。今すぐカスタマイズを選択するカスタマイズで、デスクトップ、システム管理、仮想化などを選択しておく■仮想マシンを作成するRHELでは、コマンドラインで仮想マシンの作成/起動などが行えるが、今回はGUIベースの仮想マシンマネージャー(Virt-manager)を使って、仮想マシンの作成、仮想マシンへのOSのインストールなどを行う。アプリケーション→システムツール→仮想マシンマネージャーを起動する。localhostを選択して、仮想マシンマネージャーの新規の仮想マシンを作成というアイコンをクリックする。最初に、仮想マシンの名前を入力して、どこからOSをインストールするかを設定する。R2をインストールした。R2のISOイメージをマウントする。これにより、仮想マシンが起動した時点で、仮想CD/DVDドライブからOSのインストールが開始する。マウントするISOイメージを設定すると、インストールするOSタイプ、バージョンなどを設定する。2008」を指定する。次に、仮想メモリの容量、仮想CPUの数を設定する。R2を動かすため、仮想メモリは2GB、仮想CPUは2つに設定した。次に仮想マシンが使用する仮想HDDの容量を設定する。今回は、10GBに設定した。これで、設定は終了した。R2のインストールが開始する。このホストの詳細を表示する。ファイルの下にある新規仮想マシン作成のアイコンをクリックすると、新しい仮想マシンを作成する仮想マシン作成後にOSをインストールする場合、仮想CDにISOイメージをマウントしておく。仮想マシンが動作しているウィンドウのアイコンをクリックすると、この仮想マシンの設定が表示される。Performanceは、仮想マシンのCPU使用量、メモリ使用量、ディスクIO、ネットワークI/Oなどがグラフで表示される。ここでは、仮想マシンがどのくらいの負荷になっているかチェックできる。Processorでは、現在使用している仮想CPUの数などが設定できる。CPUピニングは、仮想CPUが動作する物理CPUを制限する機能だ。NUMA設定から生成するボタンを使えば、NUMAアーキテクチャーで最も性能が出るように設定してくれる。2ソケットのNUMAアーキテクチャーのサーバーの場合、仮想CPUが2つのCPUに分かれていると、性能が犠牲になる。1つのOSが動作する仮想CPUは、同じCPU上で実行された方がいい。Memoryは、仮想マシンが使用する仮想メモリ容量を指定する。ここでは、割り当てを変更、最大割り当てという2つの項目がある。割り当て変更は、最初に指定した仮想メモリの容量を変更する時に利用する。仮想メモリの容量を小さくすることも、大きくすることもできる。最大割り当ては、動的なメモリ割り当てを利用する時に使う。動的にメモリを割り当てる時の最大値を設定する。今回は、複雑なことは行わないため、両方の値も同じに設定しておく。Optionは、仮想マシンがどのデバイスから起動するかを設定する。BIOSなどにあるブートデバイスの順番設定に近い機能だ。CDROM、NIC、タブレット、マウス、表示、Sound、Serial、ビデオなどの設定が用意されている。仮想マシンを動かすだけなら、初期設定でほとんど問題ない。仮想マシンの詳細設定。Overviewでは、仮想マシンの名前やUUID、マシンセッティング、セキュリティなどが変更できる。Performanceでは、CPU、メモリ、ディスクIO、ネットワークIOなどの使用量がグラフで表示されている。CPUは、この仮想マシンが使用しているCPU数が設定されている。ここでCPUピニングの設定も行える。メモリでは、仮想マシンが使用するメモリ容量を設定する。仮想マシンでどの起動デバイスを使用するかを設定。Diskのモードを指定する。NICでは、仮想ネットワークのモデルを指定する。ビデオでは、仮想ディスプレイのモードなどを指定する。■準仮想化ドライバのインストールマイクロソフトのHyper-VやVMwareのESXなどでは、仮想マシンに準仮想化ドライバをインストールすることで、キーボードやマウスの操作が使いやすくなったり、ストレージやネットワークアクセスが高速化sitariする。KVMでも同じような準仮想化ドライバが用意されている。Hyper-VやESXのように、簡単にインストールできるわけではない。virtio-win)。このパッケージをインストールすると/usr/share/virtio-winディレクトリにvirtio-win.isoというISOイメージが用意されている。このISOイメージを仮想マシンのCDドライブにマウントする。このISOイメージの中にあるRHEV-Block64.msiを実行する(32ビットOSは、RHEV-Block.msi)。このドライバは、ハードディスクだけなので、ネットワークドライバも準仮想化ドライバを使用するなら、RHEV-Network64.msiを実行する(32ビットはRHEV-Network.msi)。Hyper-VやESXのように、仮想マシンのコンソールに準仮想化ドライバのインストールボタンがあって、それを押せば自動的に準仮想化ドライバがインストールされるというわけではない。■KVMのライブマイグレーションKVMは、ライブマイグレーション機能をサポートしている。ライブマイグレーションを実現するために、専用の管理ツールがなくても仮想マシンマネージャー(Virt-manager)だけで行うことができる。ライブマイグレーションを利用するには、2台のホストからアクセスできるストレージを用意する必要がある。多くの場合、NFSサーバーや共有ストレージのLUNを利用することになる。テストだけを行うなら、性能的には問題になるが、送信側のホストサーバーにある仮想ディスクファイルがある/var/lib/libvirt/imagesディレクトリをNFSでエクスポートして、受信ホストの/var/lib/libvirt/imagesディレクトリにマウントしておく。ライブマイグレーションの設定は、仮想マシンマネージャーのファイル→接続を追加で、ハイパーバイザーにQEMU/KVM、接続でSSHでのリモートトンネルを選択する。その後、移行先のホスト名を選択してすればOKだ。実際にライブマイグレーションを行うには、仮想マシンマネージャーで移行する仮想マシンを指定して、右クリックして「移行」メニューを選び、「移行」ボタンを押す。KVMでのライブマイグレーションは、仮想マシンが使用しているメモリをネットワークで転送していく。メモリを転送中に、メモリの内容に変化が起これば、その差分を転送していく。実際に移行するのは、すべてのメモリが転送され、移行元と移行先で同じコピーが出来上がった時だ。このため、頻繁にメモリが変更される仮想マシンでは、いつライブマイグレーションが終了するのかを保証していない。昔のCGIなどを利用したアプリケーション、データ更新が頻繁にあるアプリケーションが動作している仮想マシンは、KVMのライブマイグレーションは向かない。ライブマイグレーションを動かしてから、いつライブマイグレーションが終了するかは保証されていない。Hypervisor(RHEV)を用意している。RHEVは、仮想化ホストとして動作するだけのコンパクトなOSとなっている。フットプリントは128MBと非常に小さい。SELinuxによるセキュリティが導入されている。フットプリントが小さいことで、RHEVをインストールしたホストには、数多くの仮想マシンを動かすことができる。RHEVは、GUIがないため、管理が難しい。Serverというアプリケーションを用意している。このアプリケーションを利用すれば、複数のRHEVやRHELを一括して管理することが可能だ。ライブマイグレーションの管理などをもこのソフトで行える。将来的には、RHEL上で動作するようには計画しているようだ。仮想マシンを作成して、動作させるまでしか今回はテストしなかったが、実際KVMを使ってみると、Hyper-VやESXに比べると管理ツールなどの弱さが目立つ。KVMは性能的には良さそうだが、さまざまなオープンソースのツールやアプリケーションによって組み合わされてできているため、使い勝手がいいというわけではない。Linuxを深く分かっているユーザーや開発者がいないと、なかなか運用が難しそうな気がする。レッドハットでは、KVMに関するセミナーを行っている。KVMに関する機能を紹介する「KVMスタートアップ」(1日)、ハンズオン形式でKVMを使用した仮想マシンのインストール、管理までを紹介する「KVMワークショップ」(2日間)があるので、興味を持たれた方は、受講を検討してみるといいだろう。スケジュールに関しては、レッドハットのWebサイトを参照のこと。