OpenStackとVMDKイメージ

OpenStackでハイパーバイザーをVMwareで選択した場合は、KVMで通常利用しているQcow2イメージでは無くVMDKイメージを利用することになります。今回は実は深くて問題が幾つかあるVMDKイメージの話題を書きます。

イメージのフォーマットについて

VMDKイメージを利用するのはもちろんですが、実はVMDKファイルにも様々なフォーマットが存在します。OpenStackではVMDKファイルのSparseとFlatのイメージ形式に対応しています。残念ながら作成済みの仮想マシンをOVFとしてExportするとStream OptimizedのイメージとなりOpenStackでは利用出来ません。OpenStackのサポートしているイメージ形式へのコンバートはVMwareの提供しているvDisk Managerを利用してコンバートが可能となっています。Stream OptimizedのOpenStackでのサポートは2014年12月に開発中のMasterレポジトリにマージされましたので、Kiloリリース以降で予定されています。

https://review.openstack.org/#/c/71173/

ストレージコントローラの問題

仮想マシン作成時にストレージコントローラーを選択出来ます。Qcow2 Imageをコンバートすると、IDEになっていますしVMware上での仮想マシン作成ではDefaultがSCSIとなっています。GlanceへのイメージUpload時にオプション値を設定しておくことで事前にOpenStack側にストレージコントローラーのタイプを指定しておくことが出来ます。しかしながら、現状はこのストレージコントローラーの設定が上手く受け継ぐ事が出来ない場合が2種類あります。1つ目は仮想マシンのスナップショット取った場合です。GlanceへイメージがUploadされますがストレージコントローラーの情報が失われてしまいます。2つ目はCinder Bootした場合です。元のイメージのストレージコントローラーの設定が上手く伝播せずに規定のストレージコントローラが選択されてしまいます。両方共問題と捉えられてますので、今後改修される予定です。

既存仮想マシンのOpenStack環境への取り込み

OpenStackは既存仮想マシンの取り込みスクリプトやWizardは備えていないため、基本的に実施しないのが方針となります。しかしながら、どうしても取り込みたい場合はOVFでExportしてGlanceにUploadする事になります。復数の仮想ディスクが添付されている仮想マシンの場合はそれぞれの仮想ディスクをイメージとしてGlanceにUploadしておきます。その後OS起動の仮想ディスクをRootディスクとしてインスタンスの起動を行い、データードライブに関してはGlanceからCinderのボリュームに対してイメージを流し込み、インスタンスにヴォリュームを添付する事になります。

OpenStackの利用を始めた例ではVMware上の既存仮想マシンは特に触らない事が多いようですのでインポートは基本的にやらないほうが無難だと考えています。もちろん内製でインポートツール作るのも、Stackforge上で公開するのも可能です。

Qcow2イメージのコンバート

以下のコマンドでコンバートとGlanceへのイメージUploadを行ないます。glanceコマンドのpropertyでvmwareのDiskフォーマットやストレージアダプターを指定しています。

# qemu-img convert -f qcow2 ubuntu.img -O ubuntu.vmdk
# glance image-create --name ubuntu --is-public=False --container-format=bare --disk-format=vmdk --property vmware_disktype="sparse" --property vmware_adaptertype="ide" < ubuntu.vmdk

既存イメージのコンバート

事前に以下のサイトからvDisk ManagerをDownload後Installしておきます。展開後binフォルダにPATHを張っておきます。

https://developercenter.vmware.com/web/sdk/55/vddk

以下のコマンドでコンバートを行ないます。以下はSparseにコンバートを行っていますがオプションでFlatも選択可能です。

c:¥>vmware-vdiskmanager.exe -r c:¥CentOS.vmdk -t 0 CentOS.vmdk

イメージのUploadを行ないます。

#glance image-create --name CentOS --is-public=False --container-format=bare --disk-format=vmdk --property vmware_disktype="sparse" --property vmware_adaptertype="lsiLogic" < CentOS.vmdk

イメージフォーマットの確認

以下のコマンドでアダプタータイプやイメージフォーマットを確認出来ます。

# head -20 CentOS.vmdk
広告
OpenStackとVMDKイメージ

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中