NTT ComのEnterprise Cloud と Mirantis OpenStackでプライベート・クラウド構築

ミランティス・ジャパンの武石です。
OpenStack Days Tokyo 2016では、ミランティス・ジャパンのブースにてMirantis OpenStackを使用し、機能強化したNTT ComのEnterprise Cloud 上へのプライベート・クラウド構築について、ミニセッションをさせていただきました。
今回は、その環境を構築するに際の具体的な手順、ちょっとした注意事項ついてお話したいと思います。

1. はじめに

Enterprise Cloud 2.0 と Mirantis OpenStack を使用し、世界各拠点に短期間で プライベート・クラウドを構築できるのではないかと考え、検証を実施いたしました。
なお、今回の記事ですが、Enterprise Cloud 2.0 のアカウントがあり、テナントが作成済みであることを前提として、ご説明させていただきます。

2. 作業フロー

大まかな作業は以下になります。

  1. ① ネットワーク構成の検討
  2. ② ECL2.0 でのネットワーク設定
  3. ③ Fuel Master の構築
  4. ④ ベアメタルサーバーの初期構築
  5. ⑤ Fuel Master からOpenStack 環境のプロビジョニング・デプロイ
  6. ⑥ Horizon への接続

3. プライベート・クラウドの構築

① ネットワーク構成の検討

今回は、インターネットを経由して、Fuel Master、Controller 上の Horizon、Compute Node 上のインスタンス(Floating IP)に接続する構成としました。構成図は以下になります。

  • ※今回の構成では Fuel Master、Horizon、インスタンス(Floating IPアドレス)への接続はファイアウォールのNATにより接続する構成となります。
  • ※実際は、ファイアウォール経由での接続、インターネットに向かうケースは少ないかと思いますが、Fuel Master への接続や動作確認を簡単に行えるようにするため、この構成としています。

次にベアメタルサーバーのネットワーク構成を検討します。
ベアメタルサーバーのNICは 4ポート、また、利用できるネットワークの種類は、データプレーン・ストレージプレーンの2種類となります。

データプレーンは他のネットワークとの通信を行うことができますが、ストレージプレーンは、ストレージ接続等のための閉じたネットワークとなり、外部からの通信を行うことができません。
また、MOS に必要なネットワークとしてFuel Admin、Public、Management、Private、Storage の5つのネットワークが必要となります。

これらの条件を踏まえまして、今回の検証ではベアメタルサーバーのNIC構成は以下の構成としています。

  • ※上記のアサインは検証時のものとなります。
    ネットワークの冗長性や導入するサービスなどにより考慮する必要がありますので、ご注意ください。

② ECL2.0 でのネットワーク設定

今回の構成では、インターネットに接続するための InternetGW、フィルタリング・NATを行うファイアウォールを使用しています。

InternetGW、ファイアウォールの構築を考慮して、以下の順でネットワークの設定を行います。

(1) ロジカルネットワークの作成

ネットワーク構成を元にロジカルネットワークの設定を行います。
ベアメタルサーバーが使用するネットワークについては、データプレーン・ストレージプレーンの違いに注意して設定する必要があります。

「ネットワーク → コロケーション接続 → ロジカルネットワーク」の画面で作成します。

なお、この段階では InternetSeg のロジカルネットワークは作成しません。
InternetGWの作成、グローバルIPアドレスの確保後に作成します。

(2) InternetGW の作成、グローバルIPアドレスの確保

「InternetGW の作成は、ネットワーク → コロケーション接続 → インターネット接続」の画面で行います。
InternetGW の作成後、以下の作業を行います。

  • グローバルIPアドレスの確保。設定はグローバルIPタブで実施。
  • ロジカルネットワークで InternetSeg をデータプレーンで作成。
  • InternetGW のインタフェースの設定の実施。

(3) ファイアウォール(vRouter)の作成、及び初期設定

「ネットワーク → コロケーション接続 → ファイアウォール」 で作成します。

ファイアウォールの作成後、画面の右上に、ログインID・パスワードの情報が表示されますので、ご注意ください。

  • ※表示された情報は、ファイアウォール(Vyatta) の設定の際に必要になります。ファイアウォールは Webブラウザ、または SSH で接続し設定を行います。

ファイアウォールの設定後、ファイアウォールのインタフェースの設定を行います。
事前に定義したロジカルネットワークをここで割り当てます。

(4) ファイアウォールへの設定投入

ファイアウォールにフィルタ設定、NAT設定を投入します。
今回は SSH で設定を行いました。以下に簡単なコマンド例を記述します。

内容 コマンド 備考
コンフィグの確認 show configuration
show configuration commands
通常モード
コンフィグモードへの移行・戻り configuration / exit 通常モード、
コンフィグモード
コンフィグ設定 set XXXXX
例:set security firewall name Firewall_policy_In-Out default-action 'accept'
コンフィグモード
コンフィグ削除 delete XXXXX コンフィグモード
コンフィグ破棄 discard
※commit前の設定の破棄
コンフィグモード
コンフィグの比較 compare コンフィグモード
コンフィグの確定 commit コンフィグモード
コンフィグの保存 save コンフィグモード

また、今回は ファイアウォールでNATを行う構成としています。
以下にNATの設定例を記述します。

●外→内の 1:1 NATの例
set service nat destination rule 100 destination address 'aaa.aaa.aaa.aaa'
set service nat destination rule 100 inbound-interface 'dp0s4'
set service nat destination rule 100 translation address '192.168.1.2'

●内→外の1:1 NATの例 set service nat source rule 100 outbound-interface 'dp0s4'
set service nat source rule 100 source address '192.168.1.2
set service nat source rule 100 translation address 'aaa.aaa.aaa.aaa'

●内→外 の 1:N NATの例 (masquerade)
set service nat source rule 900 outbound-interface 'dp0s4'
set service nat source rule 900 source address '192.168.1.0/24'
set service nat source rule 900 translation address 'masquerade'

  • ※今回の構成では、dp0s4 はファイアウォールの外側インタフェースになります。

(5) NATのためのルーティング追加

ファイアウォールでの設定だけでは、NATが動きません。
グローバルIPアドレスで受けた通信をファイアウォール側にわたす必要があります。
この設定は、InternetGW のスタティックルートの設定で行います。

③ Fuel Master の構築

Fuel Master の構築は以下の手順で行います。

(1) MOSイメージのアップロード

「サーバー → 仮想サーバー → イメージ保存領域」でに Fuel Master の ISOイメージを登録します。

(2) Fuel Master用ボリュームの作成

Fuel Master をインストールするボリュームを作成します。
「サーバー → 仮想サーバー → ボリューム」画面で作成します。

(3) 仮想サーバーのインスタンス作成

Fuel Master をインストールするためのインスタンスを作成します。
後述しますが、ここで作成したインスタンスはインストール終了後、いったん削除しますので、フレーバー設定は一時的なものになります。

次に以下のようにボリュームを割り当てます。

ネットワーク構成に合わせて設定を行います。

インスタンスの作成をクリック後、Fuel Master のインストーラが起動します。
初期インストールが終了し、再起動処理が実行されるまで、30分ほど待機します。

(4) インストール終了後、インスタンスを削除する

Fuel Master のインストール終了後、OS再起動が発生します。
この直後のコンソール画面では再度、Fuel インストーラの画面が表示されます。
このままではインストール処理が実行されるため、インスタンスを停止します。
停止後、インストール処理を行ったインスタンスを削除します。

削除後、Fuel Master のインストールで使用したボリュームをブートソースにします。
なお、ネットワークの設定は初回作成時と同様に行います。また、この時にはデータボリュームの設定は行いません。

(5) インスタンスの起動後、Fuel の初期設定を行います。

MOS8.0 の場合、以下のように 「Press a Key to enter」が表示されますので、Enter キーを押下します。

Enter 押下後、Fuel の初期設定画面が表示されるため、必要な設定を実施していきます。

(6) Fuel Master の SSH設定の修正

MOS 8.0 の場合、初期設定ではリモートからのSSH接続が行えません。
初期設定終了後、/etc/ssh/sshd_config の設定を修正し、sshdプロセスを再起動する必要があります。

④ ベアメタルサーバーの初期構築

Controller、Compute ノードとなるベアメタルサーバーを以下の順で構築を行います。

(1) VPN接続ユーザの作成

ベアメタルサーバーのリモートコンソールに接続するためには、VPN接続ユーザを作成する必要があります。
VPN接続ユーザは「サーバー → ベアメタルサーバー → リモートコンソールアクセス」の画面で作成を行います。
ユーザ名は自動的に決定されるため、ここではVPN接続するためのパスワードを設定するのみとなります。

(2) ベアメタルサーバーの初期構築

「サーバー → ベアメタルサーバー → サーバーリスト」の画面で「サーバーの新規作成」をクリックします。以下、初期構築時の画面を例示します。

詳細タブではサーバー名、フレーバーを選択します。
また、Fuel Master からOSのプロビジョニング、OpenStack をデプロイするため、ここでイメージの指定は行いません。

次にネットワークタブで、ロジカルネットワークを割り当てます。
どのポートがどのデータプレーンになるかに注意して設定を行います。

(3) VLAN設定の実施

ベアメタルサーバーの初期構築終了時点では、VLANの設定はなされていないため、別途作業が必要となります。

VLANを作成するためには、「サーバー → ベアメタルサーバー → サーバーリスト」の画面で、作成したベアメタルサーバーをクリックし、「物理NICポート」タブで表示される、物理NICポートで設定を行う必要があります。
物理NICポートの画面からVLAN設定を行う必要があるポートをクリックします。

表示されたポート画面では、初期構築の段階で割り当てた物理ポートを削除します。

ポートの削除後、VLAN割り当てのため、「ポートをベアメタルサーバーに追加」をクリックします。

表示されたダイアログでVLANが必要なロジカルネットワークを選択し、セグメント種別をVLANに変更します。

以上の作業を、必要なロジカルネットワーク数分、繰り返します。

(4) PXEbootの設定変更

VLANの設定後、ベアメタルサーバーがPXEbootできるよう、UEFIの設定を変更します。
変更は、「サーバー → ベアメタルサーバー → サーバーリスト」画面において、変更したいサーバーのアクション列のプルダウンから行います。

表示されたダイアログで、UEFIの設定を以下のように変更します。

(5) リモートコンソールからの PXEboot の確認

実際に PXEboot しているかを確認するには、リモートコンソールにアクセスします。
リモートコンソールにアクセスするための情報は、「サーバー → ベアメタルサーバー → サーバーリスト」画面のアクション列のプルダウンメニューから確認します。

確認した情報にもとづき、VPN接続を行い、リモートコンソールにログイン、コンソールを立ち上げます。
Fuel Masterとベアメタルサーバーのネットワーク疎通に問題がない状態で、ベアメタルサーバーを再起動すると、以下のように bootstrap imageで起動していることが確認できます。

⑤ Fuel からOpenStack 環境のプロビジョニング・デプロイ

Fuel に接続し、プロビジョニング・デプロイを行うため、各種設定を行います。

今回は、ベアメタルサーバーで VLAN を設定しているため、Networks タブは以下のような設定としています。

また、各ノードのNIC設定は、ベアメタルサーバーの物理ポートにあわせ、以下のように設定を行っています。

NICの設定後、プロビジョニング・デプロイ前に Connectivity Check を行います。
問題がなければ以下のような画面が表示されます。

Connectivity Check が無事成功しましたら、デプロイを開始します。

  • ※デプロイ時間の目安となりますが、今回の構成では 1.5時間程度でした。

⑥ Horizon への接続

無事、OpenStack 環境のデプロイが成功しますと、以下のような画面となります。
Horizonをクリックすれば、インスタンスの作成などを行えます。

以下は実際に Horizon にログインした際の画面です。

4. まとめ

今回の検証では、インスタンスの作成やインスタンスから外部への通信、OpenStack 環境へのノードの追加等については割愛させていただきましたが、これらは問題なく可能であることを確認しています。
Enterprise Cloud 2.0 と Mirantis OpenStack の組み合わせで、比較的簡単かつ短期間にプライベート・クラウドの構築ができると考えています。