第4回 Mirantis OpenStack と VMware との連携実現！

# 第4回 Fuel DVSプラグインの動作確認

1. まえがき
1. 状態確認
1. 動作確認：ESXi上インスタンスとCompute上インスタンスの疎通確認
 1. インスタンス起動
 1. PINGとSSHで疎通確認
 1. HTTPの疎通確認

# まえがき

前回はFuelによるOpenStack環境のDeployが完了するところまでご説明しました。

第1回概要：http://qiita.com/MakitaTatsuro/items/6812bbaa0d7c82654374
第2回vSphere環境構築：http://qiita.com/MakitaTatsuro/items/813c85f45f51367912c4
第3回OpenStack環境構築：http://qiita.com/MakitaTatsuro/items/aacd20869ddb4348645f


今回は、Deploy後、正常に動作することを確認していきます。

まず、Deployが終わった状態のNetworkから確認してみましょう。

# 状況確認

さっそくHorizonのDashbordにアクセスしてみましょう。

FuelのDeploy完了した画面からHorizonへリンクされています。
便利ですね。

![WS000026hehe.png](https://qiita-image-store.s3.amazonaws.com/0/134498/e9bf4766-18c9-dc45-5f54-52489a7dc29f.png)

★Horizonのアクセスはデフォルトでは、ユーザがadmin、パスワードはadmin、で設定されています。

「プロジェクト」→「ネットワーク」→「ネットワーク」
デフォルトで「admin_floating_net」と「admin_internal_net」のネットワークができています。

![WS000034.png](https://qiita-image-store.s3.amazonaws.com/0/134498/5c62607b-30b9-b231-4e54-9f15b416570a.png)

この「admin_internal_net」のUUIDを確認しましょう。

![WS000029.png](https://qiita-image-store.s3.amazonaws.com/0/134498/ea3b8f0a-c835-9172-1bb7-b2965d3205dc.png)


「9d66cbc5-86ae-4b13-8394-8e58b9fe386f」でした。

このネットワークが、VMware環境側の「DSwitch_compute」にアタッチされているか確認してみましょう。
vCenterにブラウザアクセスしてログインします。
「ホーム」→「ネットワーク」→「管理」タブの「トポロジ」を確認します。

![WS000033.png](https://qiita-image-store.s3.amazonaws.com/0/134498/a75613f6-e12d-e48b-b23b-b619f75c718e.png)

「DSwitch_Compute9d66cbc5-86ae-4b13-8394-8e58b9fe386f」というスイッチがアタッチされていることがわかります。

それと、Novaが各サービスを正しく認識しているか確認してみましょう。

Controllerノードにログインします。

コマンドは
```
. openrc
nova service-list
```

です。（画面キャプチャし忘れました）

![WS000035.png](https://qiita-image-store.s3.amazonaws.com/0/134498/5174b534-7077-ed5d-9637-d6839d010a81.png)


上記でわかるのは、nova-computeが2つあるように見えますが、Zoneがvcenter用とnova用に分かれていて、vcernter用については、ホスト名がvcenter-sn1で登録されていることがわかります。
このvcenter用のホスト上にインスタンスが起動するわけではなく、そのホスト（compute_vmware）からvCenterにAPIが飛ばされて操作されます。

なので、Hypervisor list してもVMware環境側の空き容量などは確認することはできません。

![WS000036.png](https://qiita-image-store.s3.amazonaws.com/0/134498/41eafaac-00d8-e801-04e8-4a5761caa6d6.png)


それでは「admin_internal_net」をアタッチしたインスタンスを起動してみましょう。

## インスタンス起動

「admin_internal_net」ネットワークにアタッチしたインスタンスを2台起動します。
1つはAvailability Zoneをnova、もう一つはAvailability Zoneをvcenterで作成します。
手順は省略するので、下記の指定のとおり作成します。

Incetance Name : osvm01
Availability Zone : nova
ブートイメージ：TestVM（デフォルトで登録されているQCOW2のイメージ）
フレーバ：m1.micro
ネットワーク：admin_internal_netのみアタッチ

→起動します。

Incetance Name : osvm02
Availability Zone : vcenter
ブートイメージ：TestVM-VMDK（デフォルトで登録されているVMDKのイメージ。VMDKでないとESXiで起動しません。）
フレーバ：m1.micro
ネットワーク：admin_internal_netのみアタッチ

→起動します。

![WS000038.png](https://qiita-image-store.s3.amazonaws.com/0/134498/a6bfd5ac-6d7b-8d1c-4106-75d8660eea42.png)


両機ともステータスが稼働中になることを確認したら、vCenter側でどう認識されているか確認してみましょう。

起動前：
![WS000037.png](https://qiita-image-store.s3.amazonaws.com/0/134498/300f45f9-c0cf-ee79-035a-a8fa23c5ce4b.png)

起動後：
![WS000039.png](https://qiita-image-store.s3.amazonaws.com/0/134498/7ac7b7f3-7cec-f820-498c-fb23c12dc374.png)

vcenterのZoneを指定したインスタンスが「DSwitch_Compute9d66...」のDistributed Switch にアタッチされていることがわかります。

では、noVNC接続してPINGとSSHを確認します。

## PINGとSSHで疎通確認

ブラウザでHorizonにアクセスして、インスタンスのコンソール画面を開いてみましょう。

【注意】AvailavirlityZoneをvcenterで指定したインスタンスは、HorizonのDashbordのnoVNCでアクセスすることはできません。

ですので、ここでみるインスタンスは、「 osvm01 」のコンソール画面になります。

もし、「 osvm02 」のコンソールにアクセスしたい場合は、vCenterのブラウザにアクセスして、vCenter経由でコンソールを確認してください。

それではifconfigコマンドでIPアドレスが自動取得できていることを確認のうえ、PINGを飛ばします。

![WS000041.png](https://qiita-image-store.s3.amazonaws.com/0/134498/fbc50fe0-11df-1f89-42c2-79612d4128c6.png)

![WS000042.png](https://qiita-image-store.s3.amazonaws.com/0/134498/4981a87f-5175-6262-70dc-d79576e5aa02.png)

通っていますね。

sshで接続してみましょう。

![pic000000.JPG](https://qiita-image-store.s3.amazonaws.com/0/134498/ed8adb07-63f3-f5fd-852e-692bea73300b.jpeg)
![pic000001.JPG](https://qiita-image-store.s3.amazonaws.com/0/134498/f5b2ca1e-b02f-9362-5e09-0f408ba722e7.jpeg)


通りました。

応答がない場合、セキュリティグループを追加しましょう。
今回は、追加方法の説明は省略します。（Horizonのブラウザから「プロジェクト」→「コンピュート」→「アクセスとセキュリティー」の画面で追加できます）

SSHと同様にHTTPについても許可しておいてください。次はHTTPで疎通を試みます。

##  HTTPの疎通確認

SSHが通っていれば疎通は確認できていると思いますが、
ここではHTTPでも疎通できていることを明示的に確認しておきます。

インスタンスの1つ目にて、ncコマンドで簡易HTTPサーバを起動しておきます。

ブラウザでvCenterにアクセスしてコンソールを開きます。（インスタンスのページを開いて「アクション」→「コンソールを開く」をクリック）

![pic000002.JPG](https://qiita-image-store.s3.amazonaws.com/0/134498/8d841b93-d681-397b-7e3f-64f972cad795.jpeg)

下記のコマンドで80ポートでLISETENモードで常駐状態にします。

```
while true ; do (echo -ne "HTTP/1.0 200 OK"; echo; echo "Hello!") | sudo nc -l -p 80; done
```

![pic000006.JPG](https://qiita-image-store.s3.amazonaws.com/0/134498/52820fe2-78aa-7910-1552-be59240bc72a.jpeg)



もう一つのブラウザで、OpenStackのHorizon（Dashbord）にアクセスします。
該当のインスタンスのコンソールを開いて、curlでHTTPリクエストを飛ばして、応答があるか確認してみましょう。

![pic000007.JPG](https://qiita-image-store.s3.amazonaws.com/0/134498/dbc5c204-f6ee-8f7e-84e4-24b8ab2e263e.jpeg)


通りますね。

以上でデータ連携が可能なことを証明しました。

# 所感

いかがでしたでしょうか。

4回に渡って、OpenStackベースのクラウド環境と VMwareベースのクラウド環境のネットワーク接続を、
**Fule プラグインの「 VMware Fuel DVS Plugin 」**を使って構築するご紹介をいたしました。

比較的簡単に VMware環境とデータ連携できる OpenStackベースのクラウド環境を構築することができました。
VMware環境とOpenStack環境間でデータ連携できるクラウド環境が容易に構築できることは、非常にメリットが高いですね。