libvirt

 

libvirtとは

オープンソースの仮想化ライブラリー (libvirt) などの管理レイヤーや libvirt ベースのツール (グラフィカル VMM (Virtual Machine Manager) など) を利用

 

仮想化技術が増えるにつれ、Linuxベンダーはそれらの全てに使用できる一つの管理インターフェースを求め始めた。

それがlibvirt 仮想化 API (Application Programming Interface) である

libvirt APIがサポートする仮想化技術には以下のものがある

KVM、Xen、LXCコンテナー、OpenVZ、User-mode Linux、VirtualBox、Microsoft Hyper-V、その他多くのVMware技術

KVM,Xen,Hyper-V,VMwareだけでもほとんど仮想化技術を管理できると言える

 

 

 

libvirtを使うと

システム管理者は 1 つの技術とその関連コマンド・セットに賭けるのではなくlibvirt API を使用するコマンドラインのコマンドやグラフィカル・コマンドだけ学びすれば、仮想化ベースが変わっても、既存(libvirt)ツールを使い続けることが可能

 

libvirt  APIを利用してKVMで仮想化入れる時、以下二つの方法で其々導入が可能になる

  • libvirtペースのグラフィカルな VMM (virt-manager)
  • virsh,virt-install(コンソール)

 

ライブマイグレーションが使える

仮想イメージをどこにおくかによってライブマイグレーションが使えない場合がある

libvirtの「ストレージ・プール」を使うと「NFS、ブロック・レベルのネットワーク・ストレージ、また
は HBA ストレージの中」にディスクイメージを作成することが可能なのでライブマイグレーションが使用できる

↓以下の票はVMイメージをどこに入れるかによって生まれる違いについて書いてある

ローカル・ディスク・ストレージ 一般的な方法(簡単)
退屈で時間がかかる
管理が困難(柔軟性がない)
稼働中のVMをサーバ館でマイグレーションできない。(いわゆるライブマイグレーションが提供されてない)

SCSI ホスト・バス・アダプター (HBA) ストレージ)、NFS 、ブロック・レベルのネットワーク・ストレージ

ライブマイグレーションが使える

 

libvirtベースのコマンドは、初期ファイルシステム・ディレクトリー・ストレー
ジ・プールとして、仮想化ホスト上の /var/lib/libvirt/images ディレクトリーを使用する。

virsh pool-create-as コマンドを使用すると、新しいストレージ・プールを容易に作成することが可能

以下はNFS ベースの (netfs) ストレージ・プールの作成例

virsh pool-create-as NFS-POOL netfs \                 —-①
–source-host 192.168.6.238 \ —-②
–source-path /DATA/POOL \ —-③
–target /var/lib/libvirt/images/NFS-POOL —-④

解説

1 番目の引数 (NFS-POOL) は新しいストレージ・プールの名前を指定し、2 番目の引数(netfs )は作成する
ストレージ・プールのタイプを指定

②–source-host オプションの引数は NFS を介してストレージ・プール・ディレクトリーをエクスポートするホストを指定

③–source-path オプションの引数は、そのホスト上でエクスポートされるディレクトリーの名前を指定

④–target オプションの引数は、ストレージ・プールへのアクセスに使用されるローカル・マウント・ポイントを指定

 

作成されたストレージプールは以下のコマンドで表示される

virsh pool-list

表示例

virsh pool-list –all –details
Name State Autostart Persistent Capacity Allocation Available
—————————————————————————-
default running yes yes 54.89 GB 47.38 GB 7.51 GB
NFS-POOL running no no 915.42 GB 522.64 GB 392.78 GB

注意すべきなところは上記のイメージは永続的ではないこと!

永続的なストレージプールを作るためには

/etc/libvirt/storage ディレクトリーに置かれたそのストレージ・プールの XML 記述ファイルに明記

ストレージ・プールについて記述する XML ファイルは (その XML ファイルと関連付けられる) ス
トレージ・プールと同じ名前を持ち、ファイル拡張子は .xml

virsh pool-dumpxmlコマンドを使用

以下は使用例

cd /etc/libvirt/storage
virsh pool-dumpxml NFS-POOL > NFS-POOL.xml

まだもう一つの作業が残ってる

再起動されたときにプールが自動的に起動されるようにマーキングさせるためには以下のコマンドを使用してストレージ・プールが自動起動するように設定することが可能

virsh pool-autostart

使用例

virsh pool-autostart NFS-POOL
Pool NFS-POOL marked as autostarted

これまで行うと技術的にストレージ・プールの XML 記述ファイルへのシンボリック・リンクが /etc/libvirt/storage/
autostart ディレクトリーに含まれている状態になる。

ストレージ・プールを作成すると、そのプールに 1 つまたは複数の VM を作成することができるのでそれについては次のセクションで説明する。

VMを作成する

このセクションの例では、前のセクションで作成したストレージ・プールを使用するが、今
度は virt-install コマンドを使用

以下の例では、virt-install コマンドを使用して RHEL-6.3-LAMP というハードウェア VM を作
成している

virt-install –name RHEL-6.3-LAMP \
–os-type=linux \ —-①
–os-variant=rhel6 \ —-①
–cdrom /mnt/ISO/rhel63-server-x86_64.iso \ —-②
–graphics vnc\ —-③
–disk pool=NFS-01,format=raw,size=20 \ —-④
–ram 2048 \ —-⑤
–vcpus=2 \ —-⑤
–network bridge=br0 \ —-⑥
–hvm \ —-⑦
–virt-type=kvm \ —-⑦

解説

①Linux および RHEL6 Linux ディストリビューション用に最適化(それぞれ –ostype と –osvariant)

②CD-ROM デバイス (–cdrom) としてインストール

③VNC(Virtual Network Computing) プロトコルを使用して、グラフィカル・コンソール (–graphics) を
作成して表示しようと試み、このコンソールの中でブート・プロセスやブート後のインストー
ル・プロセスが実行される。

④–disk オプションの引数は、20GB のストレージに VM が作成されるように指定しており、この
領域は先ほどのセクションで作成した NFS-POOL ストレージ・プールから自動的に割り当てられる

VM のディスク・イメージは raw イメージ・フォーマットで作成されます。このフォー
マットは大部分の仮想化技術やエミュレーション技術の間での移植性が高い単純なディスク・イ
メージ・フォーマットである

⑤2GB のメモ
リー (–ram) と 2 つの仮想 CPU (–vcpus) で構成される

ネットワーク・ブリッジ br0 (–network)
を介してネットワークにアクセスする

⑥完全仮想化システムとして使用できるように VM を最適化し (—hvm)、

新しい VM をサポートするハイパーバイザー (–virt-type) が KVM
であることを示す

この両方のオプションにより、VM 作成プロセスやオペレーティン
グ・システムのインストール・プロセスの際に一定の最適化が行われる

 

参考ページ:

http://www.ibm.com/developerworks/jp/linux/library/l-using-kvm/l-using-kvm-pdf.pdf

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です