今回も前回に引き続き、3回目となるハイパーコンバージドインフラの構築方法を紹介し、本稿ではScaleIOとMirantis OpenStackの連携について説明する。
ScaleIOとMirantis OpenStackの連携
1. Cinder Volumeのインストール/設定
OpenStack LibertyからScaleIOのドライバはOpenStackのアップストリームに含まれるため、Mirantis 8との連携は簡単にできる。
ControllerにCinder Volumeをインストール
# apt-get install cinder-volumeCinderの設定
x /etc/cinder/cinder.confの編集(適当な場所に次の行を追加)
[Default]
enabled_backends = scaleio
[scaleio]
volume_driver = cinder.volume.drivers.emc.scaleio.ScaleIODriver
volume_backend_name = scaleio
san_ip = 192.168.200.104
sio_rest_server_port = 8443
sio_protection_domain_name = domain1
sio_storage_pool_name = hdd
sio_storage_pools = domain1:hdd
san_login = admin
san_password = P@ssw0rd
- OpenStack関連の各種サービスを再起動
# service nova-api restart
# service cinder-scheduler restart
# service cinder-api restart
# service cinder-volume restart
2. OpenStackのUIからVolume Typeを作成し、Extra Specを設定(図3-1)
Volume Typeを作成し、それを指定することでサービスレベルに応じたボリューム作成が可能になる。
ブラウザでControllerにアクセスしてログイン。
System -> VolumesメニューでVolume Tpesタブを開き、Create Volume Typeを押下。
名前を入力し、Create Volume Typeを押下。
作成したVolume TypeのActionからView Extra Specsを選択。
Createを押下して、KeyとValueを入力後、Createを押下。
Extra Specの入力項目を次の表にまとめた。
Key | 説明 |
---|---|
sio:pd_name | Protection Domain名 |
sio:pd_id | Protection Domain ID |
sio:sp_name | Storage Pool名 |
sio:sp_id | Storage Pool ID |
sio:provisioning_type | プロビジョニングの方法。thickまたはthin |
sio:iops_limit | クライアントからボリュームへのIOPSの上限設定10以上を設定、0は無制限 |
sio:bandwidth_limit | クライアントからボリュームへのKB/sの上限設定0は無制限 |
- 必要なExtra Specを入力したらCloseを押下。
3. OpenStackのUIからVolume、Instanceを作成・起動(図3-2)
OpenStackのUIからVolume操作、Instance操作を行えば、Cinder Driver経由でScaleIOのボリューム作成、マッピング(SDCへの割り当て)が自動的に行われる。
Project -> Compute -> VolumesメニューでCreate Volumeを押下。
名前の入力、Volume SourceにImageを選択、ImageはTestVMを選択、Typeは前の手順で作成したScaleIO用のVolume Typeを選択し、Create Volumeを押下。
ScaleIOのGUIでVolumeが作成されていることを確認。
VolumeのActionでLaunch as Instanceを選択。
名前を入力してLaunchを押下。
VMで使用するネットワークをSelected networksに追加してLaunchを押下。
作成したInstanceをクリックして、Consoleを確認するとVMが起動しているのが確認できる。
ScaleIOのGUIでVolumeがマッピングされていることを確認(図3-3)。
4.ScaleIOのCLIでVolumeの確認
CLIはMasterのMDM(MDMがインストールされているノードのどちらか)からしか実行できない。Instance作成後volumeの情報を確認するとIOPS、MB/sの上限値が設定されていることが確認できる。
# scli --login --username admin
Enter password:
Logged in. User role is SuperUser. System ID is 1eb1b8bc52fd7df8
root@node-6:~# scli --query_all_volumes
Query-all-volumes returned 1 volumes
Protection Domain ce2e8e9900000000 Name: domain1
Storage Pool b2e7c82b00000000 Name: hdd
Volume ID: d647984000000000 Name: Xd7SarMkT9ufLyirLmYyWg== Size: 8.0 GB (8192 MB) Unmapped Thin-provisioned
# scli --query_volume --volume_id d647984000000000
>> Volume ID: d647984000000000 Name: Xd7SarMkT9ufLyirLmYyWg== Thin-provisioned Size: 8.0 GB (8192 MB)
Capacity in use: 40.0 MB (40960 KB)
Trimmed capacity: 0 Bytes
Storage Pool b2e7c82b00000000 Name: hdd
Protection Domain ce2e8e9900000000 Name: domain1
Creation time: 2016-05-15 05:03:33
Uses RAM Read Cache
Read bandwidth: 0 IOPS 0 Bytes per-second
Write bandwidth: 0 IOPS 0 Bytes per-second
Mapped SDC:
SDC ID: 6c67f08200000003 IP: 192.168.210.189 Name: sdc3
Limit: 1000 IOPS 100 MB per-second
# scli --query_sdc
--query_sdc --query_sdc_volume_limits
root@node-6:~# scli --query_sdc_volume_limits --sdc_id 6c67f08200000003 --volume_id d647984000000000
Successfully queried limits from SDC with ID 6c67f08200000003 to volume with ID d647984000000000: IOPS limit is 1000. Bandwidth limit is 100 MB/sec
#
5. OpenStackのUIでVMのコンソールが表示されない場合の対処
OpenStackのUIでVMのコンソールが表示されない場合はNova Compute Nodeでvncの設定を編集する。
/etc/nova/nova.confの編集
novncproxy_base_url=http://192.168.200.104:6080/vnc_auto.html
(publicのIPになっていることがあるので、controllerのmgmtのIPに変更)nova-computeを再起動
# service nova-compute restart
まとめ
以上でScaleIOとOpenStackを用いてハイパーコンバージドインフラを構築し、その上にVMを展開することが可能になった。ScaleIOに関しては、通常のインストールは非常に簡単なのだが、Ubuntu対応するために少し手間がかかっていることは否めない。また、OpenStackの知識が多少必要である。とはいえ、1からハイパーコンバージドインフラを構築することに比べれば、間違いなく簡単に構築を進められる。サーバ、ストレージともにスケールアウトできるITインフラとしてハイパーコンバージド構成を検討しているのであれば、OpenStackとScaleIOの組み合わせは、試してみる価値のあるソリューションとなる。
(EMCジャパン株式会社 システムズ エンジニアリング本部 プロダクト ソリューション統括部 SAS & SDSソリューション部 シニア システムズ エンジニア 中村雅史)