OpenStackとVMwareの連携

VMWareからVIO(VMware Integrated OpenStack)が発表されたようにVMwareもOpenStackとは良い関係性を持つように努力しています。今回はOpenStackとVMwareの連携の一部解説とPackStackを使った環境構築を行いたいと思います。VMwareは近い商品としてはvRA(vRealize Automation)を持っています。この製品はOpenStackと同じIaaS基盤ですが、OpenStackとの連携機能も持っています。vRAは旧vCACとなります。現在VMware社の製品であるvSphereとNSXと連携可能なのは、OpenStackのNova / Glance / Cinder / Ceilometer / Neutronになります。今回はNova / Glance / Cinder連携の部分に焦点を当ててざっくり解説します。OpenStackはあくまでKVM/Xen利用時に全ての機能が利用できるのでVMwareを利用する場合は、どの機能がサポートされているかは逐一確認と注意をする必要があります。

Nova/Glance連携

Novaのコマンド/HorizonのGUIから仮想マシンを作成する事が出来ます。作成される仮想マシン名はOpenStackから認識するためのUUIDが振られます。Novaは単一、復数のClusterに対して仮想マシンの起動の指示をだします。Cluster単位でユーザーが起動先を指示する事も可能ですがホストの指定は出来ません。Cluster毎にメモリやCPUの空き容量を取得しているため残りリソースに応じたスケジューリングも可能です(あくまでCluster単位)。ネットワークに関してはDefaultではどのテナントの仮想マシンも単一のポートグループに作成されます。NSX-MHを利用すれば自由にNWの構成が可能ですが、NW周りの悩みに関しては別途ブログに書いてみたいと思ってます。OpenStackからの仮想マシンの起動や終了等の基本的な機能はサポートされていますが、ライブマイグレーション等の機能はサポートされてません詳しくは以下を参照ください。

https://wiki.openstack.org/wiki/HypervisorSupportMatrix

仮想マシンの起動イメージはGlanceからVMDKファイルがストリームされます。イメージ転送には時間がかかるため、始めてそのホストで仮想マシンが作成された場合はホスト側にキャッシュが作成されます。事前にキャッシュを配置しておくことも可能です。

Cinder連携

Cinderコマンドで永続的なストレージをvSphere上に作成出来ます。作成時に条件を設定してDatastoreを選択させる事も可能です。残念ながらvSphereでは永続的なストレージの概念が無いためにボリューム保蔵用の仮想マシンが作成して機能を実現しています。この仮想マシンはボリューム作成時ではなく、ボリュームにアタッチされた時に始めて作成されます。ボリューム作成やスナップショット等の機能は実現されていますが、ボリュームマイグレーション等はサポートされていません。詳しくは以下を参照ください。

https://wiki.openstack.org/wiki/CinderSupportMatrix

PACKstackでの構成

今回はRedHat系のOSで動作するPackStackを利用して環境を構築します。

vMware側での事前準備

動作条件

動作の条件は以下になります。

  • vCenterが適切に構成されていること
  • DataCenterが一つ以上構成されていないこと
  • ClusterがDRS付きで作成されていること
  • br-intのポートグループが作成されている事

事前準備

1. クラスターのDRSを有効にしておく

基本的にClusterに対して仮想マシン作成を行うのでホストへの配置を最適化するために必要です。

2. 外部ストレージを構成しておく

OpenStackから構成される仮想マシンは全て外部ストレージに作成されます。外部ストレージが構成されていないと仮想マシンは作成されません。裏技的にCinderを使って構成すると外部ストレージは必要ありません。

3. br-intのポートグループを作成しておく

vSSでもvDSでも良いですが、br-intの名前が付いたポートグループを作成しておきます。DefaultではOpenStackで作成される仮想マシンは全てbr-intと名付けられたポートグループに所属します(名前はnova.confで設定可能です)

Packstackでインストールする

事前の準備はCentOS等を利用して無償のRDOを利用する場合は以下のURLを参考にしてください。RHEL-OSP利用時はRedHatのDocumentを参考にしてください。

https://openstack.redhat.com/Quickstart

まずはPackStackをインストールします。

#yum install openstack-packstack

次にAnswer-fileを生成します。Answer Fileの名前は何でも良いです。

#packstack --gen-answer-file=vmware

生成されたAnswer FileをVMware連携用に変更します。以下の項目を変更すればNova/Glance/Cinderと連携します。

# Set to 'y' if you want to use VMware vCenter as hypervisor and
# storage. Otherwise set to 'n'.
CONFIG_VMWARE_BACKEND=y

# The IP address of the VMware vCenter server
CONFIG_VCENTER_HOST=vCenterのIPアドレス(例 : 192.168.1.1)

# The username to authenticate to VMware vCenter server
CONFIG_VCENTER_USER=vCenterの管理アカウント(例 : administrator)

# The password to authenticate to VMware vCenter server
CONFIG_VCENTER_PASSWORD=vCenter管理アカウントのパスワード(例 : password)

# The name of the vCenter cluster
CONFIG_VCENTER_CLUSTER_NAME=コントロールするクラスター(例 : Lab)

# The Cinder backend to use, valid options are: lvm, gluster, nfs
CONFIG_CINDER_BACKEND=vmdk

このAnswer Fileを利用してOpenStackを構成します。

#packstack --answer-file=vmware

これによりVMwareを利用した環境が構築されます。

Glanceへの仮想イメージの配置

VMDK形式のファイルをGlance上に配置しておくと仮想マシンの起動が行えます。Packstackを使うとDefaultでLoadされるcirrosのイメージははKVM上での利用を想定されているため利用出来ません。今回はqcow2のイメージをコンバートしてGlanceへ配置する方法を示します。

イメージを取得します。

#curl http://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-disk1.img > ubuntu.img

イメージをコンバートします。

$ qemu-img convert -f qcow2 ubuntu.img \ -O vmdk ubuntu.vmdk

GlanceへイメージをUploadします。

$ glance image-create --name ubuntu --is-public False --container-format bare --disk-format vmdk --property vmware_disktype="sparse" --property vmware_adaptertype="ide" < ubuntu.vmdk

動作の確認

仮想マシンを起動します。先ほどのイメージを利用する場合はm1.small以上を選んでください。

広告
OpenStackとVMwareの連携

コメントを残す

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

WordPress.com ロゴ

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

Twitter 画像

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

Facebook の写真

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

Google+ フォト

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

%s と連携中