vmware integrated openstack with nsx-v pocガイド (第2版)

187
VMware Integrated OpenStack with NSX-V POC ガイド (第2版) 大谷昌二郎 1

Upload: shojiro-ohtani

Post on 10-Aug-2015

1.000 views

Category:

Software


2 download

TRANSCRIPT

VMware Integrated OpenStack with NSX-VPOC ガイド (第2版)

大谷昌二郎

1

もくじ

• 更新履歴

• 用語

• この資料について

• VIOについて

• リソース

• 全体構成とシステム要件

• VIOを手に入れる

• インストール手順- 事前準備

◦ vSphereを構成する

◦ NSX-vをインストールする

◦ NSX-vを構成する

- OMSをデプロイする

- OpenStackをデプロイする

- OpenStackのデプロイを確認する

• Tips

• VIOを操作する- OpenStack環境の起動と停止

- OMSのShellにアクセスする

- OpenStackのShellにアクセスする

- OMSに再接続する

- ログファイル

• トラブルシューティング ガイド

• インスタンスを作成・設定する

• vSphereから見てみる

• OpenStackをCLIから操作する

• NSX-Vから見てみる

• VIOをアンインストールする

2

Updated

New

New

New

New

New

New

New

New

New

更新履歴と今後の予定

• 2015年5月6日 第1版

• 2015年5月18日 第2版 (とりあえずひと段落とします。)

• 以下、今後需要があれば・・・。- OpenStackを拡張する

- OpenStackにパッチを適用する

- 可用性を確認する

- VSANを導入してみる

- vRealize Log Insight for VIOを導入してみる

- vRealize Operations Management Pack for OpenStack を導入してみる

3

用語

• VMwareユーザ向けの用語集です。(未完成)- インスタンス

◦ OpenStackによって管理されるゲストマシン

- イメージ (Glanceイメージ)◦ 仮想マシンのテンプレート

- ダッシュボード (Dashboard)◦ OpenStackを管理するためのWeb GUI

http://docs.openstack.org/ja/user-guide/content/ch_dashboard.html

- Floating (フローティング) IP◦ インスタンスに割り当てることができるパブリックなIPアドレス

http://docs.openstack.org/ja/user-guide/content/manage_ip_addresses.html

- フレーバー◦ 起動する仮想マシンの CPU、メモリ、ストレージ容量を定義したもの

http://docs.openstack.org/ja/user-guide-admin/content/dashboard_manage_flavors.html

- セキュリティグループ◦ インスタンスに対して、アクセスが可能なトラフィックの種別を制限するために使用するネットワークのアクセスルー

ルを名前を付けてまとめたものhttp://docs.openstack.org/ja/user-guide/content/cli_configure_instances.html

4

この資料について

5

この資料について

• この資料はPOCを目的とした、VMware Integrated OpenStack の簡易的なインストール手順と、構成の確認方法について書いたものです。

• デプロイメントには「分散仮想スイッチとの連携」と「NSX for vSphereとの連携」の2種類がありますが、ここでは「NSX for vSphereとの連携」のみ取り扱います。

• どちらかと言うとVMwareユーザ向けに作っています。

6

VIOについて

7

VIOについて

• VMware Integrated OpenStack (VIO) はVMwareによるOpenStackの商用ディストリビューションです。

• VMwareの信頼性の高い仮想化ソフトウェアや各種管理ソフトウェアとの連携にフォーカスし、OpenStack環境を簡単にデプロイメントしたりパッチを当てたりといった管理機能などを備えています。

• 製品紹介ページはこちらです。https://www.vmware.com/jp/products/openstack/

8

slideshare P61より抜粋http://www.slideshare.net/VMwareJenn/reston-virtualization-group-9182014

リソース

9

リソース

• ドキュメンテーション (マニュアル、リリースノート)

• コミュニティ (コミュニティレベルでのサポートを受けられます)

• 動画デモ (日本語)(β版のVIO)- 動画デモ1:VMware Integrated OpenStack(VIO)のOVFをインポート

- 動画デモ2:インポートされたVIOからOpenStack環境をvSphere上へデプロイ

• ハンズオンラボ (HOL-SDC-1420)

• Integrated OpenStack Demo Video (英語)

• OpenStack Blog for VMware

10

全体構成とシステム要件

11

VIO with NSX-Vの全体構成 (この資料の手順で構成するもの)

※都合上、External NetworkとAPI Access Networkは同じセグメントにしています。※Nested環境のため、実際はvCenter と NSX Manager はこの構成の外部に構築しています。

VIO Componentsloadbalancer01

Active

loadbalancer02

Standby

controller01

controller02

memcache01

memcache02

rabbitmq01

rabbitmq02

db01

Active

db02

Standby

db03

Standby

VIOTemplate

VIO OMS

192.168.201.40

Edge Cluster

VM InstanceEdge Instancecompute01 objectstorage

Management Network192.168.201.0/24

API Access Network192.168.205.0/24

NSXManager

192.168.201.30

VCENTER

192.168.201.10NSX

Controllers192.168.201.31

InternetInternet

Management Cluster

NSXControllers192.168.201.32

NSXControllers192.168.201.33

Compute Cluster 1

vSwitch :vSwitch0Port Group: VM Network

DVS : Public-DVSPort Group: Public

External Network192.168.205.0/24

DVS : Public-DVSPort Group: Public

Transport Network192.168.204.0/24

DVS: Tenant-DVSPort Group: (per tenant)

DATASTORE「iSCSI-VIO-030-1」

DATASTORE「iSCSI-VIO-030-1」

12

ネットワークの種類と要件

13※その他、vMotionやストレージのためのネットワークがあると思いますが、ここでは割愛です。

コンポーネント 説明 要件

External Network• NSX Edgeを経由してOpenStackインスタンスが接続す

る外部ネットワーク• 分散仮想スイッチ上のポートグループとして動作

• 他のネットワークとVLANなどで分割されていること(ただしExternal NetworkとAPI Networkは同じネットワークでも動作します。)

• 外部との接続性があること• ポートグループを1つ仮想スイッチ上に作成しておくこと

API Access Network• 外部からOpenStack APIやダッシュボードといった各種

OpenStackサービスに接続するネットワーク• 分散仮想スイッチ上のポートグループとして動作

• 他のネットワークとVLANなどで分割されていること(同上)

• 最低必要なIPアドレス数:3個• 外部との接続性があること• ポートグループを1つ仮想スイッチ上に作成しておくこと

Management Network• 管理用の内部ネットワーク• 標準スイッチまたは分散仮想スイッチ上のポートグルー

プとして動作

• 他のネットワークとVLANなどで分割されていること• 最低必要なIPアドレス数:18個• ポートグループを1つ仮想スイッチ上に作成しておくこと

Transport Network

• テナントネットワーク• NSX連携の場合にはVXLANが動作• 分散仮想スイッチ上のテナントごとに作成されるポート

グループとして動作

• 他のネットワークとVLANなどで分割されていること• VXLANのためのMTU 1600以上

OpenStackコンポーネントの種類とスペック

14※あくまでPOC目的であれば、オーバーコミットやシンプロビジョニングなどを用いれば、合計にあるような規模の環境は必要ありません。

コンポーネント VM数 HA構成 CPU RAM (GB) ディスク (GB) 説明

OpenStack Manager Service (OMS)

1 N/A 2 (2 per VM) 4 (4 per VM) 25OpenStackコンポーネントのデプロイや起動、停止、拡張、構成確認などの管理を行う

VIO Template 1 N/A N/A N/A 20 (20 per VM)各コンポーネントをデプロイする際のテンプレート。ディスク以外のリソースは消費しない。

Load Balancers 2 Active/Standby 4 (2 per VM) 8 (4 per VM) 40 (20 per VM)OSSのhaproxy + keepalived で構成されたロードバランサー。外部および内部に対するエンドポイントとなるVIPを提供。

Controllers 2 Active/Active 16 (8 per VM) 32 (16 per VM) 160 (80 per VM)NovaやGlance、Cinder、Neutron、Keystone、Heatがインストールされたコントローラ

Memcache 2 Active/Active 4 (2 per VM) 32(16 per VM) 40 (20 per VM) Keystoneトークンの保存先

Rabbit MQ 2 Active/Active 8 (4 per VM) 32 (16 per VM) 40 (20 per VM) メッセージキューサービス

Databases 3 Active/Standby 12 (4 per VM) 48 (16 per VM) 240 (80 per VM) MariaDB

Compute Driver 1 * N/A 2 (2 per VM) 4 (4 per VM) 20 (20 per VM) * クラスターごとに1つデプロイされる

Object Storage 1 N/A 2 (2 per VM) 4 (4 per VM) 20 (20 per VM) オブジェクトストレージ (Swift)

合計 15 N/A 50 164 605

NSX-Vコンポーネントの種類とスペック

15

コンポーネント VM数 CPU RAM (GB) ディスク (GB) 説明

NSX Controller 3 12 (4 per VM) 12 (4 per VM) 60 (20 per VM)

NSX Manager 1 4 (4 per VM) 12 (12 per VM) 60 (60 per VM) Version 6.1.3以上

NSX Edge作成する数による

1 per Edge DHCP VM,2 per Edge router VM

0.5 per Edge DHCP VM,1 per Edge router VM

0.5 per Edge DHCP VM,1 per Edge router VM

Security Groupや、Floating IP (NAT)、DHCPサービス、分散ルーティング、分散FWを提供

合計 4 (+ Edges) 16 (+ Edges) 24 (+ Edges) 120 (+ Edges)

vSphereコンポーネントの種類と要件

16

コンポーネント 要件

vCenter ServerVersion 5.5 Update 2 Enterprise Plus またはVersion 6 Enterprise PlusNTPによる時刻同期VIO専用を推奨

ESXi ホスト

Version 5.5 Update 21ホストあたり8論理コア以上NTPによる時刻同期1つ以上の共有データストア

○クラスター要件:・Management Cluster

- 最低3台のESXi ホスト(各OpenStackコンポーネントに対してAnti-Affinityが適用されるため)- DRS必須 (リソースプール作成のため)- 管理コンポーネントを保管する1つ以上のデータストア (他のクラスターと併用可)- 標準スイッチ、または分散仮想スイッチを構成

・Compute Cluster- 最低1台のESXi ホスト- インスタンスに対するコンソールアクセスのためにESXi ファイアウォール設定から gdbserverに対する許可を行う(5900-5964/tcp)- Glanceイメージとインスタンスを保管する1つ以上のデータストア (他のクラスターと併用可)- 分散仮想スイッチを構成

・Edge Cluster- Management Cluster と併用可、ただし別途構成を推奨- DRS必須 (リソースプール作成のため)- Edgeを保管する1つ以上のデータストア (他のクラスターと併用可)- 分散仮想スイッチを構成

VIOを手に入れる

17

VIOを手に入れる

• VIOは以下のライセンスを持っていれば無償で手に入れられます。- vSphere Enterprise Plus- vSphere with Operations Management Enterprise Plus- vCloud Suite

• ダウンロードURL- https://my.vmware.com/group/vmware/info?slug=datacenter_cloud_infrastructure/vmware_int

egrated_openstack/1_0

• ダウンロードするもの- VMware Integrated OpenStack Virtual Appliance

「VMware-OpenStack-1.0.0.0-2567172_OVF10.ova」

• 評価版は今のところ無いようです。代わりにハンズオンラボで使用感を体感することができます

https://my.vmware.com/group/vmware/evalcenter?p=openstack-hol

18

ダウンロードページ

インストール手順

19

事前準備 vSphereを構成する

• ここではVIOをインストールする事前準備として、VIOにとって最低限必要なvSphere周りの設定について書きます。

• 基本的なシステム設定やネットワーク設定、ストレージ設定などの詳細な設定手順は割愛します。

20

事前準備 vSphereを構成する

1. vCenter Serverを構築する

2. データセンターを作成する

3. Management Clusterを作成する- 最低3台のホストを構成する

- DRSを有効にする

- NSX Controllerをデプロイするリソースプールを作成する(必須ではありません)

4. Compute Clusterを作成する- ホストを登録する

- ホストのESXi ファイアウォール設定から gdbserverに対する許可を行う(ドキュメント:「ESXi ファイアウォール設定の管理」)

5. Edge Clusterを作成する- ホストを登録する

- DRSを有効にする

21

事前準備 vSphereを構成する

6. クラスター共通設定- ホストのVMkernelポートに対するvMotionの有効化

- ホストに対するデータストアの作成...など

- 以下はQuick Start Guideに書かれていますが、必須じゃないです◦ DRS 有効化

◦ HA 有効化

- ホスト監視ステータス

◦ 「ホストの監視」を有効

- アドミッションコントロール

◦ ポリシーは任意に設定

- 仮想マシンのオプション

◦ 再起動の優先順位 「高」

- 仮想マシンの監視

◦ 「仮想マシンとアプリケーションの監視」

◦ 監視感度 「高」

22

事前準備 vSphereを構成する

7. ネットワークを作成する- 「ネットワークの種類と要件」にある4つのネットワークに対応する仮想スイッチとポートグ

ループを作成します。

23

事前準備 NSX-vをインストール・構成する

• ここではVIOをインストールする事前準備として、VIOにとって最低限必要なNSX forvSphere周りのインストールと基本的な設定について書きます。

• 簡単に言えば、VIOのためにはNSX-vではトランスポートゾーンの作成までを行います。

24

事前準備 NSX-vをインストールする

1. まず最初にNSX Managerをデプロイします。vCenterから「OVFテンプレートのデプロイ」を実行します。

2. ソースの選択- NSX ManagerのOVAファイルを選択します。

3. 詳細の確認- 「追加の構成オプションの承諾」にチェックを入れます。

25

事前準備 NSX-vをインストールする

4. EULAの承諾- 「承諾」を選択します。

5. 名前およびフォルダの選択- NSX Managerの仮想マシン名とデプロイ先を選択します。

26

事前準備 NSX-vをインストールする

6. リソースの選択- NSX Managerの仮想マシン名とデプロイ先を選択します。

7. ストレージの選択- ディスクのフォーマットを選択します。

- デプロイするデータストアを選択します。

27

事前準備 NSX-vをインストールする

8. ネットワークのセットアップ- 接続するポートグループを選択します。

- 「ネットワークの種類と要件」にあるManagementNetworkに相当するポートグループを選択してください。

28

事前準備 NSX-vをインストールする

9. テンプレートのカスタマイズ- NSX Managerのネットワークの設定などを行います。

◦ パスワード

- 「admin」ユーザ パスワード

- CLI権限(enable)モード のパスワード

◦ ネットワークプロパティ

- ホスト名

- IPv4アドレス

- ネットマスク

- ゲートウェイ

◦ DNS

- DNSサーバ

- ドメイン検索リスト

◦ サービスの構成

- NTPサーバ

- SSHの有効化

29

事前準備 NSX-vをインストールする

10. 終了準備の完了- 設定した内容を確認してデプロイを開始します。

11. しばらくしてからNSX ManagerのWeb UIにアクセスし、admin ユーザでログインします。

https://<nsx manager>

30

事前準備 NSX-vをインストールする

12. ホーム画面から「View Summary」を選択します。

13. すべてのサービスがRunningになっていることを確認します。特に「NSX Management Service」は少し時間がかかります。

31

事前準備 NSX-vをインストールする

14. 次にホーム画面から「Manage vCenterRegistration」を選択します。

15. NSX ManagerをvCenterに登録します。- Editを選択します。

32

事前準備 NSX-vをインストールする

16. 以下の接続情報を入力してOKを押します。- vCenter Serverのホスト名、またはIPアドレス

- ユーザ名

- パスワード

17. Yesを選択して証明書を受け入れます。

33

事前準備 NSX-vをインストールする

18. Status が Connected になることを確認します。

19. 登録先のvCenterのWeb Clientにログインします。

34

事前準備 NSX-vをインストールする

20. ホーム画面にNetworking and Securityのアイコンがあれば登録は成功です。

35

事前準備 NSX-vを構成する

1. まずはNSXコントローラをデプロイします。Networking and Securityを選択します。

2. 「インストール手順」- 「管理」に移動します。「NSXコントローラノード」にある+ボタンを押します。

36

事前準備 NSX-vを構成する

3. コントローラの追加(1台目)- 必要項目を入力してOKを押し、コントローラの作成を開始します。

◦ データセンター

◦ クラスター/リソースプール

- Management Clusterまたはその配下のリソースプールを選択します。

◦ データストア

◦ 接続先

- 「変更」を選択して、Management Networkに相当するポートグループを選択します。

◦ IPプール

- 「選択」を選択してコントローラに割り当てるIPアドレスのプールを作成します。次項を参照してください。

◦ パスワード

37

事前準備 NSX-vを構成する

4. IPプールの選択- +ボタンを押します。

5. IPプールの追加- 必要項目を入力してOKを押します。

◦ 名前

- 適当でOK

◦ ゲートウェイ

◦ プリフィックスの長さ

◦ 固定IPプール

38

事前準備 NSX-vを構成する

6. IPプールの選択- IPプールの選択画面に戻ります。

- 作成したIPプールを選択してOKを押します。

- 「コントローラの追加」画面に戻り、OKを押してコントローラの作成を開始します。

7. ステータスが「デプロイ中です」から「標準」になれば作成は完了ですが、少し時間がかかります。

作成が完了しないと2台目以降の作成ができないため、そのあいだに次の「ホストの準備」を行うことをオススメします。

ここでは順番どおり進めます。

39

事前準備 NSX-vを構成する

8. コントローラの追加(2、3台目)- 合計3台まで作成する必要があります。

- 1台目と同じ要領で作成しますが、2台目と3台目は同時に作成可能です。

- パスワードは1台目の設定値が適用されます。

9. 3台すべてのステータスが「標準」になれば作成は完了です。

40

事前準備 NSX-vを構成する

10. ホストの準備 (インストール)- Transport NetworkのためのVXLANを構成します。

- 「ホストの準備」に移動します。

- Transport Networkに接続する以下のクラスターのホストに対してインストールを選択します。◦ Edge Cluster

◦ Compute Cluster

- 「インストールを続行しますか?」に対して「はい」を選択します。

- 画面のとおりエラーが発生しなければ完了です。

41

事前準備 NSX-vを構成する

11. ホストの準備 (設定)- 次にVXLANネットワーク(VTEP)の構成を行います。

- 最初にどちらかのクラスターの「構成」を選択します。

- VXLANネットワークの構成◦ 必要項目を入力してOKを押し、ホストに対してVTEPを構成します。

- スイッチ

◦ Transport Networkが接続する分散仮想スイッチを選択します。

- VLAN

- MTU

◦ 1600以上

- Vmknic IPアドレス

◦ IPプールの使用

◦ IPプールを作成します。次項を参照してください。

- VMKNicチーミングポリシー

◦ フェイルオーバー

42

事前準備 NSX-vを構成する

12. IPプールの追加- 必要項目を入力してOKを押します。

◦ 名前

- 適当でOK

◦ ゲートウェイ

◦ プリフィックスの長さ

◦ 固定IPプール

- 「VXLAN ネットワークの構成」画面に戻り、OKを押してVXLANネットワークの構成を開始します。

- 他のクラスターに対しても同じ要領で実施します。

- VXLANの部分が「有効化」になれば完了です。

43

事前準備 NSX-vを構成する

13. 論理ネットワークの準備- 「論理ネットワークの準備」に移動します。

- VXLAN転送◦ これまでの設定内容を確認できます。

- セグメントID◦ 「編集」を選択します。

◦ VXLANのセグメントIDの範囲を入力します。

44

事前準備 NSX-vを構成する

14. 論理ネットワークの準備- トランスポートゾーン

◦ +ボタンを押します。

◦ 必要項目を入力してOKを押し、トランスポートゾーンを作成します。

- 名前

◦ 適当でOK

- レプリケーションモード

◦ ユニキャスト

- クラスター

◦ Edge ClusterとCompute Clusterを選択

45

事前準備 NSX-vを構成する

15. 論理ネットワークの準備- トランスポートゾーン

◦ 作成が完了したら、VIOに必要なNSXの設定は完了です。

46

OMSをデプロイする

• ここではOpenStackコンポーネントのデプロイや起動、停止、拡張、構成確認などの管理を行うOMS (OpenStack Management Server) のデプロイ方法を書きます。

• OMSはOVA形式からvAppとしてデプロイされます。- 「management-server」 OMS

- 「openstack-template」 OpenStackコンポーネントのテンプレート

47

OMSをデプロイする

1. vCenterから「OVFテンプレートのデプロイ」を実行します。

- myvmwareからダウンロードした以下のOVAファイルを選択します。

「VMware-OpenStack-1.0.0.0-2567172_OVF10.ova」

2. 詳細の確認- そのまま次へ

48

OMSをデプロイする

3. EULAの承諾- 「承諾」を選択します。

4. 名前およびフォルダの選択- vAppの名前とデプロイ先を選択します

49

OMSをデプロイする

5. ストレージの選択- ディスクのフォーマットを選択します。

- デプロイするデータストアを選択します。

6. ネットワークのセットアップ- 接続するポートグループを選択します。

- 「ネットワークの種類と要件」にあるManagementNetworkに相当するポートグループを選択してください。

50

OMSをデプロイする

7. テンプレートのカスタマイズ- Networking Properties

◦ OMSのホスト名(FQDN)やIPアドレスなどのネットワーク設定、DNS設定

- VC SSO Lookup Service URL (重要)◦ https://<vcenter>:7444/lookupservice/sdk で設定

- その他◦ NTP Server、Syslog Serverの指定

51

OMSをデプロイする

8. vService バインド- そのまま次へ

9. 終了準備の完了- デプロイ後にパワーオンを選択して、デプロイを開始します。

- 次のステップに移る前に一旦Web Clientからログアウトします。

52

OMSをデプロイする

10. OMSがパワーオンし、しばらくしてからWebClientにログインし直します。

11. ホーム画面にVMware Integrated OpenStackのアイコンがあれば登録は成功です。

53

OpenStackをデプロイする

• ここではOMSの機能を使ってOpenStackコンポーネントをデプロイする手順を書きます。

54

OpenStackをデプロイする

1. ホーム画面のVMware Integrated OpenStackのアイコンを選択します。

2. 「Getting Started」の画面から「DeployOpenStack」を選択してデプロイタスクを起動します。

55

OpenStackをデプロイする

3. Deployment type- 「Deploy a new OpenStack instance」を選択します。

4. vCenterの情報を入力します。- vCenter のIPアドレスまたはFQDN

- ユーザ名

- パスワード

56

OpenStackをデプロイする

5. Select a destination- 最初にOpenStackの管理コンポーネントのデプロイ先を

選択します。

- Management Clusterを選択します。

57

OpenStackをデプロイする

6. Configure Networking- Management Networking Setting

◦ OpenStackの管理コンポーネントのIPアドレスなどのネットワーク設定を定義する箇所です。

- Port group

◦ OpenStack管理コンポーネントの接続先を指定します。

◦ 「ネットワークの種類と要件」にあるManagement Networkに相当するポートグループを選択します。

- IP Range, Subnetmask

◦ IPアドレスは最低15個必要です。

◦ Openstackの管理コンポーネントのIPアドレスはここから割り当てられます。

- Gateway

- DNS address

- OpenStack API Access Network Setting◦ ロードバランサーの外側のインターフェースのIPアドレスなどのネットワーク設定を定義す

る箇所です。

- Port group

◦ ロードバランサーの外側のインターフェースの接続先を指定します。

◦ 「ネットワークの種類と要件」にあるAPI Access Networkに相当するポートグループを選択します。

- IP Range, Subnetmask

◦ IPアドレスは最低3個必要です。

◦ ロードバランサーの外側インターフェースのIPアドレスはここから割り当てられます。

- Gateway

- DNS address

58

OpenStackをデプロイする

7. Configure Load Balancer- ロードバランサーの設定を行います。

◦ Public hostname

◦ Public Virtual IP

- 冗長化されたロードバランサーのVIPです。

8. Add Nova cluster- OpenStackインスタンスが作成されるクラスターを選択

します。

- Compute Clusterを選択してください。

59

OpenStackをデプロイする

9. Add Nova datastores- OpenStackインスタンスが配置されるデータストアを選

択します。

10. Add Glance datastores- Glance イメージ(テンプレート)を配置するデータスト

アを選択します。

60

OpenStackをデプロイする

11. Configure Neutron networking- NSX Networkingを選択します。

- NSX Mangerの接続情報を入力します。

- Transport Zoneを選択するとNSX Managerに接続して情報を取得します。

12. OKを選択してNSX Managerの証明書を受け入れます。

61

OpenStackをデプロイする

13. NSX Managerから取得して情報を選択します。- Transport Zone

◦ NSX Managerの構成で作成したトランスポートゾーンを選択します。

- Edge Cluster◦ Edge Clusterを選択します。

- Virtual Distributed Switch◦ ネットワークの種類と要件の「Transport Network」に相当する分散仮

想スイッチを選択します。

◦ テナントごとのポートグループはこの仮想スイッチの上に作成されます。

- External Network◦ ネットワークの種類と要件の「External Network」に相当するポートグ

ループを選択します。

◦ Edgeの外側のインターフェースはこのポートグループに接続します。

62

OpenStackをデプロイする

14. Configure Authentication Source- OpenStack管理者のログイン情報を設定します。

- LDAP連携もできますが、ここではローカルデータベースを用います。

15. Configure syslog server- OpenStack管理コンポーネントのログを収集するsyslog

サーバを指定します。

63

OpenStackをデプロイする

16. Ready to complete- 設定に問題があったり、リソースが足りないとここでエ

ラーが発生します。

- 問題がなければ「終了」を選択してデプロイを開始します。

17. デプロイのステータスが表示されます。エラーが発生するとこの画面に表示されます。

64

OpenStackをデプロイする

18. Statusが「Running」になったらデプロイは完了です。

65

OpenStackのデプロイを確認する

• すべてのコンポーネントです。

66

OpenStackのデプロイを確認する

• Dashboardにアクセスします。- ブラウザでLoadbalancerのVIPに対してアクセスします。

https://<vip>

- OpenStack管理者のユーザでログインします。

- Dashboard(またはAPI)に対してはAPI AccessNetwork、またはそこまでルーティング可能なネットワークからアクセスしてください。

- 基本的にはManagement Networkにある端末からアクセスすることはできません。LoadbalancerのゲートウェイがAPI Access Networkのゲートウェイに向いているためです。

67

OpenStackのデプロイを確認する

• 「ハイパーバイザー」を選択するとCompute Clusterが表示されます。

68

Tips

69

デプロイのコツ

• ここでは Nested のようなリソースが限られる環境に対するデプロイメントにおけるTipsを書きます。1. デプロイ中にリソースが枯渇するのはほとんどの場合Controllerです。なので2つの

Controllerに対して2~3GBくらいのメモリ予約をしてあげたほうがいいと思います。

2. デプロイは大きく分けて「テンプレートのクローン」→ 「中身の設定」という順番で行われます。NSX Controllerが必要になるのは後者(のかなり後半)なので、それまでは落としておいて構いません。

3. デプロイ中にDRSによってvMotionが発生することがあるので、DRSの移行のしきい値を優先順位1以下にしておくとよいと思います。

4. 失敗したときに備えてOpenStackのデプロイを開始したら、「すべてのアクション」から「Export Configuration」を選択して設定ファイルをダウンロードしておいたほうがいいです。

やり直しするときに「Deploy an OpenStack instance from a template file」を選択してその設定ファイルを読み込むと手入力を省いてくれます。

70

VIOを操作する

71

OpenStack環境の起動と停止

• OpenStack管理コンポーネントの起動と停止は常にOMSから行う必要があります。

• 「すべてのアクション」から操作します。- 停止する場合は「Stop OpenStack Deployment」を選択

- 起動する場合は「Start OpenStack Deployment」を選択

• vSphere ClientからVMを起動しても、サービスが立ち上がってきません。

72

OMSのShellにアクセスする

• OMSに対してSSHでアクセスすることができます。- OMSのコンソールを開くとユーザ名と初期パスワードが

表示されます。

- アクセスすると最初にviouserのパスワードを変更します。

73

You are required to change your password immediately (root enforced)Welcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-45-generic x86_64)

* Documentation: https://help.ubuntu.com/

The programs included with the Ubuntu system are free software;the exact distribution terms for each program are described in theindividual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted byapplicable law.

WARNING: Your password has expired.You must change your password now and login again!Changing password for viouser.(current) UNIX password: <コンソールに表示された初期パスワード>Enter new UNIX password: <任意のパスワード>Retype new UNIX password: <任意のパスワード>(このあとなぜかSSHが切断される・・・)

OpenStackのShellにアクセスする

• OMS経由で各OpenStackコンポーネントにSSHアクセスすることができます。

• viouserでアクセスします。

• hostsにホスト名が書かれているのでIPアドレスはいりません。

74

viouser@localhost:~$ ssh viouser@controller01Welcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-45-generic x86_64)

* Documentation: https://help.ubuntu.com/Last login: Sun May 17 15:46:33 2015 from 192.168.201.40viouser@controller01:~$

OMSに再接続する

• ここではvCenterからOMSに対して再接続を行う手順について書きます。

• OMSのvAppを開始したり再起動しても、起動時に自動的にvCenterに対して再接続しますが、手動での再接続やトラブルシューティングに用いられます。

75

OMSに再接続する

1. 「Summary」を選択します。

2. 「Change Server」を選択します。

76

OMSに再接続する

3. 確認に対して「はい」を選択します。

4. 「management-server」(OMS)を選択して「Test Connection」を選択します。

77

OMSに再接続する

5. ケースによっては証明書の信頼に関する警告が表示されますので、「OK」を選択します。成功すれば「Connection successful」になります。「OK」を選択します。

6. 最後に「OK」を選択します。

78

ログファイル

• デプロイメントの詳しい状況確認やトラブルシューティングのための主なログファイルです。

- OMSのログファイル

/var/log/oms.log

- OpenStackのデプロイメント ログ

/var/log/oms/oms.log (仮想マシンの作成から起動まで)/var/log/jarvis/ansible.log (仮想マシンに対するOpenStackのインストール)

79

トラブルシューティング ガイド

デプロイメント編

80

OpenStackのデプロイをトラブルシューティングする

• ここではOpenStackのデプロイがうまくいかない場合にトラブルシューティングに役立つ情報を紹介します。

- OMSのデプロイ時

- OpenStackのデプロイ時

81

OMSのデプロイ時の主なトラブルと確認方法

• トラブルその1- vCenterへの初期登録がうまくいかない

(ホーム画面にOpenStackアイコンが表示されない)

• 確認方法- もし最初のデプロイメントではない場合、前回の登録を解除したか確認してください。

- vCenter Server Applianceを使用している場合は、KB2112339が役に立つかもしれません。

- OMSにアクセスして、/opt/vmware/vio/etc/vc.properties からvCenterのIP/FQDNが正しいことを確認してください。

- OMSのログを参照して、何か問題が起きていないか確認してみてください。登録がうまくいくと以下のような記録が確認できます。

82

root@localhost:~# more /opt/vmware/vio/etc/vc.propertiesvim.host = 192.168.201.10vim.port = 443vim.evs_url = https://vc010.lab.local/vsm/extensionServicevim.evs_token = d4512ee6b061dce94fdda03ce42edfa71c81700dvim.thumbprint = c3:3d:5b:14:54:6a:3a:ec:56:9a:4d:c7:0f:91:e6:1b:a9:e2:ed:42vc.session_time_out = 240000

vim.cms_moref = VirtualMachine:vm-105

ext.prefix = com.vmware.openstack.vcext.instance-product.name = VIO

sts=https://vc010.lab.local:7444/sts/STSService/vsphere.localsts_crts_dir = /opt/vmware/vio/ssotool/ssoData

INFO localhost-startStop-1| org.springframework.web.servlet.DispatcherServlet: FrameworkServlet'restapi': initialization completed in 1059 ms

OMSのデプロイ時の主なトラブルと確認方法

• トラブルその2- OpenStackのアイコンを選択してOMSの画面に移

動するとエラーが表示される

• 確認方法- OMSへの接続に問題が起きている場合があります。

- まずOMSのvAppが起動していることを確認してください。

- 次にOMSへの再接続をしてみてください。

- 「Getting Started」の画面の「基本タスク」の部分が「Connect to a ...」になっている場合は接続できていません。

- それでもうまくいかない場合にはOMSのログを参照して、何か問題が起きていないか確認してみてください。

83

OpenStackのデプロイ時の主なトラブルと確認方法

• トラブルその3- OpenStackのデプロイメント ウィザードで失敗する

• 確認方法- ここで発生するエラーはだいたい要件に対して

リソースが不足しています。

- 以下のようなエラーが発生した場合には、特定のコンポーネントに対してリソースを提供できるESXiがありません。例えば1台あたり4vCPU/16GBメモリが必要なDBに対して、少なくともそれ以上のリソースを持つESXiを用意する必要があります。(参考情報)

No qualified ESXi host for placing nodes <コンポーネント名>

- 同種類のOpenStackコンポーネントに対して適用するアンチアフィニティルールによる分散も含めて、全体としてリソースが足りない場合には以下のようなエラーが発生します。 (参考情報)

Deploy OpenStack instance failed. Insufficient number of ESXi hosts to meet the anti-affinity rule.

84

OpenStackのデプロイ時の主なトラブルと確認方法

• トラブルその4- OpenStackのデプロイメント途中で失敗する。

• 確認方法- リソースが貧弱だと一番トラブるところです。

- Web Clientのエラーはあまり詳しい進捗を教えてくれないので、OpenStackのデプロイメント ログを参照して、まずはどの部分で失敗しているか特定してください。

- 仮想マシンの作成から起動のところで失敗する場合◦ ログ以外にも、vSphere Clientのタスクの結果でどんなトラブルか確認できます。

◦ だいたいvSphere側(特にIO負荷がかかるストレージのリソース不足)に問題がある場合が多いです。

- OpenStackのインストールに失敗する場合◦ ansible.logにfailedと記録されたタスクに問題が起きています。

◦ Tipsも参考にしてみてください。

◦ 腕に自信があればどうにでもなる部分もあります。 (ansible.logから失敗したタスクを特定し、あとから手動でできるものであれば、playbookから該当する部分をマスクしてスキップさせてしまう・・・など。)

85

OpenStackのデプロイ時の主なトラブルと確認方法

• トラブルその5- OpenStack Dashboardにアクセスできない

• 確認方法- OpenStackのデプロイメントが終わった直後などで、Controllerが起動しきっていないかもし

れません。

- または、Management NetworkからはDashboardにアクセスすることができません。APIAccess Networkからアクセスしてください。

86

インスタンスを作成・設定する

87

インスタンスを作成するまでの流れ

• ここではDashboardを使用してインスタンスを作成するまでの流れについて書きます。

• テナントとユーザを作成する- VIOは初期構成で管理者用のテナント(admin テナント)が構成されていますが、ここでは別途ユーザ用のテナントを作成することにします。

• 外部ネットワークを作成する- まずは外部ネットワークを作成します。

- これは「VIO with NSX-Vの全体構成」の External Networkに相当します。外部ネットワークは管理者のみが作成することができます。

• ルータを作成する- ルータを作成し、外部ネットワークと接続します。

- ルータとしてNSX Edgeを構成しますが、細かいNSXとの連携部分については別のページで書きます。

- ここで作成されるEdgeはEdge Service Gatewayです。 Distributed Router は CLI から作成します。

• 内部ネットワークを作成する- 次にインスタンスが接続する内部ネットワークを作成し、これをルータに接続します。

- これは「VIO with NSX-Vの全体構成」の Transport Networkを流れるオーバーレイネットワークに相当します。内部ネットワークやルータはテナントユーザが作成することができます。

• インスタンスを作成する- ネットワークができたらインスタンスを作成します。

- OpenStackをデプロイメントする中で作成される(デフォルトの?)イメージを使用してインスタンスを作成します。

• インスタンスを確認する- 作成したインスタンスを確認します。

88

テナントを作成する

1. ブラウザでデプロイメント ウィザードで設定したVIPにアクセスし、管理者としてDashboardにログインします。

- https://<vip>

2. [管理] - [認証パネル] - [プロジェクト]を選択します。

89参考:「プロジェクトかテナントか?」http://docs.openstack.org/ja/openstack-ops/content/projects_users.html#projects_or_tenants認証はすべてKeystoneに移行されていますので、この資料ではテナントと呼びます。

テナントを作成する

3. 「プロジェクトの作成」を選択します。

4. プロジェクトの情報- 名前

◦ テナントの名前を入力します。

- 説明◦ テナントの説明文を入力します。

- 「プロジェクトの作成」を選択します。

90

テナントを作成する

5. テナントが作成されました。

91

ユーザを作成する

1. ユーザを作成します。[管理] - [認証パネル] -[ユーザー]を選択します。

2. 「ユーザの作成」を選択します。

92

ユーザを作成する

3. ユーザーの作成- ユーザー名とパスワード

- 主プロジェクト◦ 所属するテナントを選択します。

- ロール◦ ユーザ権限である_member_を選択します。(デフォルト)

- 「ユーザーの作成」を選択します。

4. ユーザが作成されました。

93

ユーザを作成する

5. ログインできるか確認する- 画面右上からadminユーザをログアウトし、Dashboard

に対して新たに作成したユーザでログインし直します。

94

外部ネットワークを作成する

1. 外部ネットワークを作成する- 管理者としてDashboardにログインし、[管理] - [システ

ムパネル] - [ネットワーク]を選択します。

2. 「ネットワークの作成」を選択します。

95

外部ネットワークを作成する

3. ネットワークの作成- 名前

- プロジェクト◦ adminテナントを選択します。

- Provider Network Type◦ Port Groupを選択します。

- 物理ネットワーク◦ External Networkに相当するポートグループのIDを

dvportgroup-xxxの形式で入力します。確認方法は次項を参照してください。

- 管理状態◦ 有効にします。(デフォルト)

- 共有◦ 有効します。

- 外部ネットワーク◦ 有効にします。

96

外部ネットワークを作成する

4. ポートグループのIDの確認方法- vSphere Web Clientの[ホーム] - [ネット

ワーク] から External Networkに相当するポートグループを選択してください。

- ブラウザのURLの中に「dvportgroup-xxx」というIDが見つかるはずです。

97

外部ネットワークを作成する

5. 外部ネットワークが作成されました。

6. 次にサブネットを作成します。作成した外部ネットワークを選択します。

98

外部ネットワークを作成する

7. 「サブネットの作成」を選択します。

99

外部ネットワークを作成する

8. サブネットの作成- サブネット名

- ネットワークアドレス◦ 「VIO with NSX-Vの全体構成」の External Networkのネットワークア

ドレスを入力します。

- IP バージョン◦ IPv4を選択します。(デフォルト)

- ゲートウェイIP◦ External Networkのゲートウェイのアドレスを入力します。

- 「次へ」を選択します。

100

外部ネットワークを作成する

9. サブネットの作成- DHCP有効

◦ 無効にします。(外部ネットワークで有効にするとエラーになります。忘れやすいので注意)

- IPアドレス割り当てプール◦ 外部ネットワークに接続するルータなどに割り当てるIPアドレスのプー

ルを設定します。

- 最後に「作成」を選択します。

101

外部ネットワークを作成する

10. 外部ネットワークのサブネットが作成されました。

102

ルータを作成する

1. テナントユーザでDashboardにログインします。

[プロジェクト] - [ネットワーク] - [ネットワークトポロジー]を選択します。先ほど作成した外部ネットワークが共有されています。

2. まずはルータを作成します。「ルータの作成」を選択します。

3. ルータの作成- ルータの名前を入力して、「ルータの作成」を選択します。

103

ルータを作成する

4. ルータが作成されました。

104

ルータを作成する

5. 次にルータを外部ネットワークに接続します。「ルーター」を選択します。

6. 「ゲートウェイの設定」を選択します。

105

ルータを作成する

7. ゲートウェイの設定- 外部ネットワーク

◦ このルータのゲートウェイのネットワークを選択します。

- 「ゲートウェイの設定」を選択します。

8. ゲートウェイの設定が完了しました。

106

内部ネットワークを作成する

1. ネットワークトポロジーを選択します。ルータが外部ネットワークに接続しました。

テナントユーザはルータの外部のIPアドレスを確認することができません。管理者としてルータのインターフェースを確認すると、外部ネットワークのIPアドレスプールから割り当てられたアドレスを確認することができます。

107

内部ネットワークを作成する

2. 次に内部ネットワークを作成します。「ネットワークの作成」を選択します。

3. ネットワークの作成- ネットワーク名

- 管理状態◦ 有効にします。(デフォルト)

- 「次へ」を選択します。

108

内部ネットワークを作成する

4. サブネットの作成- サブネット名

- ネットワークアドレス◦ 内部ネットワークのネットワークアドレスを入力します。

- ゲートウェイIP◦ インスタンスのデフォルトゲートウェイのアドレスを入力します。

◦ このアドレスでルータの内部ネットワークのインターフェースが設定されます。

109

内部ネットワークを作成する

5. サブネットの詳細- IPアドレス割り当てプール

◦ DHCPのプール

- DNSサーバ◦ インスタンスに設定するDNS

- 「作成」を選択します。

110

内部ネットワークを作成する

6. 内部ネットワークが作成されました。

7. 内部ネットワークを選択します。

111

内部ネットワークを作成する

8. 内部ネットワークのサブネットが作成されました。

112

内部ネットワークを作成する

9. 次にルータを内部ネットワークに接続します。「ルーター」を選択します。

10. ルータを選択します。

113

内部ネットワークを作成する

11. 「インターフェースの追加」を選択します。

12. インターフェースの追加- サブネット

◦ 内部ネットワークを選択します。

- IPアドレス◦ 空欄にします。内部ネットワークのサブネットを作成したときに定義し

たゲートウェイIPが設定されます。

- 「インターフェースの追加」を選択します。

114

内部ネットワークを作成する

13. インターフェースが追加されました。

14. 「ネットワークトポロジー」を選択します。ルータが内部ネットワークに接続しました。

ここでひとまずネットワークの作成は完了とします。

115

インスタンスを作成する

• ネットワークができたのでインスタンスを作成していきます。

1. テナントユーザでDashboardにログインし、「インスタンス」を選択します。

2. 「インスタンスの起動」を選択します。

116

インスタンスを作成する

3. インスタンスの起動- インスタンス名

◦ OpenStackにおけるインスタンスの名前です。

- フレーバー◦ ここではm1.smallを選択します。フレーバーの詳細が右側に表示されます。

◦ 一番小さいフレーバーであるm1.tinyを使用したいのですが、ディスクサイズが1GBのこのm1.tinyは、このあと選択するUbuntu 14.04のイメージを起動するのには使うことができません。

◦ なぜなら、VIOがデフォルトでアップロードするUbuntu 14.04のイメージは最小ディスクサイズが5GBで定義されており、つまり5GB以上で起動しなければならないためです。(この定義は変更できます。)

- インスタンス数- インスタンスのブートソース

◦ イメージからの起動を選択します。

- イメージ名◦ デフォルトで用意されているUbuntu 14.04を選択します。

4. 上のメニューから「アクセスとセキュリティ」を選択します。

117

インスタンスを作成する

5. セキュリティグループ- デフォルトの「default」が選択されていることをひとま

ず確認します。

- 「default」のルールは以下のとおりです。◦ すべての着信を拒否

(同じセキュリティグループを設定したインスタンス同士は許可)

◦ すべての送信を許可

6. 上のメニューから「ネットワーク」を選択します。

7. インスタンスが接続するネットワークを選択します。- 「利用可能なネットワーク」から、先ほど作成した内部

ネットワークをドラッグアンドドロップするか、 を選択して「選択済みネットワーク」に移動させます。

8. 最後に右下の「起動」を選択します。

118

+

インスタンスを作成する

9. インスタンスの一覧画面に戻ります。「稼動状態」がRunningになれば作成は完了です。

- 一番最初のインスタンスの作成は時間がかかります。

- これはイメージが保管されているGlance datastoreから、Nova datastoreにキャッシュ用としてイメージのコピーが行われるからです。

119

インスタンスを確認する

1. インスタンスの一覧には主な情報が表示されます。- インスタンス名

- イメージ名

- IPアドレス

- サイズ

- 状態

- 稼動状態 …など

2. インスタンスの名前を選択して、詳細情報に移動します。

120

インスタンスを確認する

3. インスタンスの詳細- インスタンスの名前

- インスタンスのID

- スペック (次項に続く)

121

インスタンスを確認する

3. インスタンスの詳細 (続き)- 接続しているネットワークとIPアドレス

- セキュリティグループの内容

- 接続されているボリューム ・・・など

122

インスタンスを確認する

4. コンソールに接続する- 「コンソール」を選択してコンソールに接続します。

- ここでコンソールにアクセスできない場合には、ホストのESXi ファイアウォール設定がされていない可能性があります。

- リンクを選択して、コンソールのみを表示します。

5. 別ウインドウでコンソールに接続した状態です。

123

インスタンスを確認する

6. インスタンスからネットワーク接続を確認する- とりあえず外部への疎通を確認します。

- Loginを選択してEnterを押します。

- デフォルトのイメージはID : root / PW : vmware でログインします。

124

インスタンスを確認する

7. インスタンス情報にあるIPアドレスがDHCPで実際に取得できていることを確認します。

8. 外部のどこかにpingとwgetを実行します。

- とりあえず外部へのルーティングと疎通、名前解決ができていることが確認できました。

125

root@vm:~# ifconfigeth0 Link encap:Ethernet HWaddr fa:16:3e:04:88:e2

inet addr:10.1.0.106 Bcast:10.1.0.255 Mask:255.255.255.0inet6 addr: fe80::f816:3eff:fe04:88e2/64 Scope:LinkUP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1RX packets:24298 errors:0 dropped:0 overruns:0 frame:0TX packets:7872 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:31931608 (31.9 MB) TX bytes:568735 (568.7 KB)

root@vm:~# ping www.google.comPING www.google.com (173.194.117.211) 56(84) bytes of data.64 bytes from nrt04s11-in-f19.1e100.net (173.194.117.211): icmp_seq=1 ttl=53 time=19.9 ms64 bytes from nrt04s11-in-f19.1e100.net (173.194.117.211): icmp_seq=2 ttl=53 time=13.3 ms64 bytes from nrt04s11-in-f19.1e100.net (173.194.117.211): icmp_seq=3 ttl=53 time=21.6 ms^C--- www.google.com ping statistics ---3 packets transmitted, 3 received, 0% packet loss, time 2003msrtt min/avg/max/mdev = 13.340/18.294/21.640/3.574 msroot@vm:~# wget www.google.com--2015-05-16 07:31:37-- http://www.google.com/Resolving www.google.com (www.google.com)... 173.194.117.211, 173.194.117.208, 173.194.117.210, ...(省略)2015-05-16 07:31:37 (1003 KB/s) - 'index.html' saved [18137]

インスタンスを確認する

9. 「ネットワークトポロジー」を選択します。

10. トポロジーにインスタンスが表示されていることを確認します。

126

インスタンスを設定する

• ここからは、作成したインスタンスに対していくつか設定をしていきます。

- セキュリティを設定する◦ HTTPとSSHの受信を許可するセキュリティグループを作成し、インスタンスに割り当ててみようと思います。

- Floating IPを設定する◦ Floating IPを設定して、外部からインスタンスに接続してみます。

127

セキュリティを設定する

1. 「アクセスとセキュリティ」に移動します。

2. 「セキュリティグループの作成」を選択します。

128

セキュリティを設定する

3. セキュリティグループの作成- 名前

- 説明

- セキュリティグループの作成を選択します。

4. 作成できたら「ルールの管理」を選択します。

129

セキュリティを設定する

5. デフォルトですべての送信許可のルールが定義されています。「ルールの作成」を選択します。

130

セキュリティを設定する

6. 「ルール」からHTTPを選択して、「追加」を選択します。変更しない限りすべてのネットワーク(0.0.0.0/0)からの受信を許可します。

7. HTTPに対する受信を許可するルールが定義されました。

131

セキュリティを設定する

8. 同じ要領でSSHも作成します。

9. SSHに対する受信を許可するルールが定義されました。

132

セキュリティを設定する

10. もう1つルールを作成します。これは同じセキュリティグループに所属するインスタンス同士の通信を許可する設定です。

- ルール◦ 「その他のプロトコル」を選択します。

- 接続相手◦ 「セキュリティグループ」を選択します。

- セキュリティグループ◦ 「このグループ」を選択します。

11. ルールが定義されました。

これでセキュリティグループの設定は終わりです。

133

セキュリティを設定する

12. 次にセキュリティグループをインスタンスに割り当てます。「インスタンス」に移動します。

13. インスタンスのアクションから「セキュリティグループの編集」を選択します。

134

セキュリティを設定する

14. 作成したセキュリティグループをドラッグアンドドロップか を選択して、右側の「インスタンスのセキュリティグループ」に移動させます。

最後に「保存」を選択して終了します。

135

+

Floating IPを設定する

1. 「アクセスとセキュリティ」に移動して「Floating IP」の確保を選択します。

2. 外部ネットワークを選択して、「IPの確保」を選択します。これによって外部ネットワークのサブネットを作成したときに定義したIPアドレス割り当てプールから割り当てられます。

136

Floating IPを設定する

3. IPアドレスを確保することができました。

次に「割り当て」を選択します。

4. Floating IP の割り当ての管理- IPアドレス

◦ 確保したIPアドレスを選択します。

- IPを割り当てるポート◦ インスタンスを選択します。

137

Floating IPを設定する

5. IPアドレスがインスタンスに割り当てられました。

138

Floating IPを設定する

6. 外部からFloating IPに対してアクセスしてみます。

- デフォルトで用意されているUbuntu 14.04にはapache2がインストールされていませんので、apt-get install してください。

139

vSphereから見てみる

140

vSphereから見てみる

• ここではVMware管理者として、vSphere Web Clientにログインして作成されたインスタンスを確認してみます。

• 比較対象としてOpenStackから見た、あるインスタンスの情報を載せておきます。

141

インスタンスを確認する

• インスタンスは Nova clusterとして選択したクラスターに配置されます。

• 仮想マシンの名前には、インスタンスの名前にIDが付きます。

142

インスタンスを確認する

• 仮想マシンのサマリを選択します。

• ここではvSphereから見た仮想マシンのスペックとIPアドレスです。

143

インスタンスを確認する

• 仮想マシンのサマリには、OpenStackから作成された仮想マシンのための設定された各種Metadataが表示されます。- OpenStak VM

◦ インスタンスの基本情報

- Security Groupメンバシップ◦ NSXとの連携に使用されます。

- タグ◦ 検索のキーとして使用することができます。

◦ 例えばあるOpenStackユーザが作成したインスタンスを検索することができます。

- メモ◦ もうちょっと細かい情報、かな?

144

インスタンスを確認する

• 「仮想マシンおよびテンプレート」に移動します。- テナントごとの仮想マシンを参照することが

できます。

145

OpenStackをCLIから操作する

146

OpenStackをCLIから操作する

• ここからは、これまでDashbordから設定した設定を、代わりに外部の端末からOpenStack CLIを使ってやってみます。

• 詳しいことは書きませんので、 例えばCLIの構文についてはReferenceなどを見てください。

• 「OpenStack Command-Line Interface Reference」http://docs.openstack.org/cli-reference/content/

147

準備

1. 端末にOpenStack コマンドラインクライアントをインストールします。

- 参考:「OpenStack コマンドラインクライアントのインストール」http://docs.openstack.org/ja/user-guide/content/install_clients.html

2. loadbalancerから証明書を取得します。- loadbalanacer01 と 02 どちらでもいいです。

- 証明書は /etc/ssl/certs/vio.pem です。

- scpでダウンロードでもいいですが、ターミナルからコピーして同じ名前で端末に保存したほうがいいと思います。。

148

viouser@localhost:~$ ssh viouser@loadbalancer01Welcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-45-generic x86_64)

* Documentation: https://help.ubuntu.com/Last login: Sun May 17 15:50:15 2015 from 192.168.201.40viouser@loadbalancer01:~$ cat /etc/ssl/certs/vio.pem-----BEGIN CERTIFICATE-----MIIDpjCCAo6gAwIBAgIJAK38bj7VM7PRMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNV(省略)EpH8g7Nu/1nGmeLHKHfMnLSq77DX+HU4+kY=-----END CERTIFICATE-----viouser@loadbalancer01:~$

準備

3. 環境変数を設定するOpenStack RC ファイルを作成します。ファイル名は任意です。- 管理者用 (Management Networkからアクセスする必要があります。)

- テナントユーザ用 (API Access Networkからアクセスする必要があります。)

149

ファイル名:cloudadmin.rc

unset OS_SERVICE_TOKENunset OS_SERVICE_ENDPOINTexport OS_AUTH_URL=http://192.168.201.41:35357/v2.0export OS_REGION_NAME=novaexport OS_TENANT_NAME=adminexport OS_USERNAME=adminexport OS_PASSWORD=*****export NOVA_ENDPOINT_TYPE=internalURLexport OS_ENDPOINT_TYPE=internalURLexport CINDER_ENDPOINT_TYPE=internalURL

loadbalancerの内部のVIPを指定します。

管理者のテナント管理者の名前管理者のパスワード

ファイル名:ta-user1.rc

unset OS_ENDPOINT_TYPEunset NOVA_ENDPOINT_TYPEunset CINDER_ENDPOINT_TYPEunset OS_REGION_NAMEexport OS_AUTH_URL=https://vio.lab.local:5000/v2.0export OS_TENANT_NAME=tenant-aexport OS_USERNAME=ta-user1export OS_PASSWORD=*****export OS_CACERT=/home/*****/vio.pem

Ddashboardのホスト名、またはIPアドレステナント名テナントユーザテナントユーザのパスワードloadbalancerから取得した証明書の場所

ファイル名:ta-user1.bat(Windows用)

unset OS_ENDPOINT_TYPEunset NOVA_ENDPOINT_TYPEunset CINDER_ENDPOINT_TYPEunset OS_REGION_NAMEexport OS_AUTH_URL=https://vio.lab.local:5000/v2.0export OS_TENANT_NAME=tenant-aexport OS_USERNAME=ta-user1export OS_PASSWORD=*****set OS_CACERT=C:¥Python27¥Scripts¥vio.pem

テナントを作成する

• 管理者用の環境変数をロードします。

• 作成します。

• 確認します。

• 詳細を確認します。

150

# keystone tenant-create --name tenant-a --description "Tenant A"+-------------+----------------------------------+| Property | Value |+-------------+----------------------------------+| description | Tenant A || enabled | True || id | e8842543642e4514b12c57d0f9f1a2da || name | tenant-a |+-------------+----------------------------------+

# source cloudadmin.rc

# keystone tenant-list+----------------------------------+----------+---------+| id | name | enabled |+----------------------------------+----------+---------+| 13b7bcd8465a457285b828d61e497977 | admin | True || c9af6aaaf9de43888804419921e77ab1 | service | True || e8842543642e4514b12c57d0f9f1a2da | tenant-a | True |+----------------------------------+----------+---------+

# keystone tenant-get tenant-a+-------------+----------------------------------+| Property | Value |+-------------+----------------------------------+| description | Tenant A || enabled | True || id | e8842543642e4514b12c57d0f9f1a2da || name | tenant-a |+-------------+----------------------------------+

ユーザを作成する

• 作成します。

• 確認します。

• 詳細を確認します。

151

# keystone user-create --name tb-user1 --tenant tenant-b --pass *******+----------+----------------------------------+| Property | Value |+----------+----------------------------------+| email | || enabled | True || id | 3cda4ed190da4269b6c4c63c801fee78 || name | ta-user1 || tenantId | e8842543642e4514b12c57d0f9f1a2da || username | ta-user1 |+----------+----------------------------------+

# keystone user-list+----------------------------------+----------+---------+-------+| id | name | enabled | email |+----------------------------------+----------+---------+-------+| 73958a0d9ed84c65b6a4a023ebd5ab62 | admin | True | || c0e6f7287d2b413d8840674934a76476 | cinder | True | || 491bfe32774d4f14abc61a6d71546506 | glance | True | || febadf3617c2447f8c6fc2b90100970b | heat | True | || 4666159c6d7b4fb88abad73ed707074b | neutron | True | || 8bca92a530f4469eab4df3f5c0ce63e4 | nova | True | || 3cda4ed190da4269b6c4c63c801fee78 | ta-user1 | True | |+----------------------------------+----------+---------+-------+

# keystone user-get ta-user1+----------+----------------------------------+| Property | Value |+----------+----------------------------------+| email | || enabled | True || id | 3cda4ed190da4269b6c4c63c801fee78 || name | ta-user1 || tenantId | e8842543642e4514b12c57d0f9f1a2da || username | ta-user1 |+----------+----------------------------------+

外部ネットワークを作成する

• 管理者用の環境変数をロードします。

• 作成します。

152

# neutron net-create Ext-Network-1 --provider:network_type=portgroup --provider:physical_network=dvportgroup-35 --router:external=trueCreated a new network:+---------------------------+--------------------------------------+| Field | Value |+---------------------------+--------------------------------------+| admin_state_up | True || id | adf3fa1f-e6a6-4472-b37b-a4fed6ba4b0d || name | Ext-Network-1 || port_security_enabled | True || provider:network_type | portgroup || provider:physical_network | dvportgroup-35 || provider:segmentation_id | 0 || router:external | True || shared | False || status | ACTIVE || subnets | || tenant_id | 13b7bcd8465a457285b828d61e497977 |+---------------------------+--------------------------------------+

# source cloudadmin.rc

外部ネットワークを作成する

• 確認します。

• 詳細を確認します。

153

# neutron net-list+--------------------------------------+----------------+-------------------------------------------------------+| id | name | subnets |+--------------------------------------+----------------+-------------------------------------------------------+| e50d525d-64f0-4b7c-b815-ca8ffbde036d | inter-edge-net | 9abd948b-9ec4-4fdf-9135-9af9c5028b5c 169.254.128.0/17 || adf3fa1f-e6a6-4472-b37b-a4fed6ba4b0d | Ext-Network-1 | |+--------------------------------------+----------------+-------------------------------------------------------+

# neutron net-show Ext-Network-1+---------------------------+--------------------------------------+| Field | Value |+---------------------------+--------------------------------------+| admin_state_up | True || id | adf3fa1f-e6a6-4472-b37b-a4fed6ba4b0d || name | Ext-Network-1 || port_security_enabled | True || provider:network_type | portgroup || provider:physical_network | dvportgroup-35 || provider:segmentation_id | 0 || router:external | True || shared | False || status | ACTIVE || subnets | || tenant_id | 13b7bcd8465a457285b828d61e497977 |+---------------------------+--------------------------------------+

外部サブネットを作成する

• 作成します。

154

# neutron subnet-create --allocation-pool start=192.168.205.100,end=192.168.205.199 --name Ext-Subnet-1 --dns-nameserver 192.168.201.2 --enable_dhcp=False Ext-Network-1 192.168.205.0/24Created a new subnet:+------------------+--------------------------------------------------------+| Field | Value |+------------------+--------------------------------------------------------+| allocation_pools | {"start": "192.168.205.100", "end": "192.168.205.199"} || cidr | 192.168.205.0/24 || dns_nameservers | 192.168.201.2 || enable_dhcp | False || gateway_ip | 192.168.205.1 || host_routes | || id | fb84ce9a-982b-4f38-aa27-5e8a0ee3fb6b || ip_version | 4 || name | Ext-Subnet-1 || network_id | adf3fa1f-e6a6-4472-b37b-a4fed6ba4b0d || tenant_id | 13b7bcd8465a457285b828d61e497977 |+------------------+--------------------------------------------------------+

外部サブネットを作成する

• 確認します。

• 詳細を確認します。

155

# neutron subnet-list+--------------------------------------+-------------------+------------------+--------------------------------------------------------+| id | name | cidr | allocation_pools |+--------------------------------------+-------------------+------------------+--------------------------------------------------------+| 9abd948b-9ec4-4fdf-9135-9af9c5028b5c | inter-edge-subnet | 169.254.128.0/17 | {"start": "169.254.128.2", "end": "169.254.255.254"} || fb84ce9a-982b-4f38-aa27-5e8a0ee3fb6b | Ext-Subnet-1 | 192.168.205.0/24 | {"start": "192.168.205.100", "end": "192.168.205.199"} |+--------------------------------------+-------------------+------------------+--------------------------------------------------------+

# neutron subnet-show Ext-Subnet-1+-----------------------+--------------------------------------------------------+| Field | Value |+-----------------------+--------------------------------------------------------+| adv_service_providers | || allocation_pools | {"start": "192.168.205.100", "end": "192.168.205.199"} || cidr | 192.168.205.0/24 || dns_nameservers | 192.168.201.2 || enable_dhcp | False || gateway_ip | 192.168.205.1 || host_routes | || id | fb84ce9a-982b-4f38-aa27-5e8a0ee3fb6b || ip_version | 4 || name | Ext-Subnet-1 || network_id | adf3fa1f-e6a6-4472-b37b-a4fed6ba4b0d || tenant_id | 13b7bcd8465a457285b828d61e497977 |+-----------------------+--------------------------------------------------------+

ルータを作成する

• テナントユーザの環境変数をロードします。

• 作成します。

• 外部ネットワークに接続します。

156

# neutron router-create ta-router-1Created a new router:+-----------------------+--------------------------------------+| Field | Value |+-----------------------+--------------------------------------+| admin_state_up | True || distributed | False || external_gateway_info | || id | e5503225-fa5e-4f59-bb92-f02d4d999b60 || name | ta-router-1 || router_type | shared || routes | || status | ACTIVE || tenant_id | cb07be4260f84414b5bb555bb2183793 |+-----------------------+--------------------------------------+

# neutron router-gateway-set ta-router-1 Ext-Network-1Set gateway for router ta-router-1

# source ta-user1.rc

ルータを作成する

• 確認します。

• 詳細を確認します。

157

# neutron router-list+--------------------------------------+-------------+-----------------------------------------------------------------------------+-------------+| id | name | external_gateway_info | distributed |+--------------------------------------+-------------+-----------------------------------------------------------------------------+-------------+| e5503225-fa5e-4f59-bb92-f02d4d999b60 | ta-router-1 | {"network_id": "adf3fa1f-e6a6-4472-b37b-a4fed6ba4b0d", "enable_snat": true} | False |+--------------------------------------+-------------+-----------------------------------------------------------------------------+-------------+

# neutron router-show ta-router-1+-----------------------+-----------------------------------------------------------------------------+| Field | Value |+-----------------------+-----------------------------------------------------------------------------+| admin_state_up | True || distributed | False || external_gateway_info | {"network_id": "adf3fa1f-e6a6-4472-b37b-a4fed6ba4b0d", "enable_snat": true} || id | e5503225-fa5e-4f59-bb92-f02d4d999b60 || name | ta-router-1 || router_type | shared || routes | || status | ACTIVE || tenant_id | cb07be4260f84414b5bb555bb2183793 |+-----------------------+-----------------------------------------------------------------------------+

ルータを作成する

• 備考- Distributed Routerを作成するには

オプションを付けます。

- 参考「OpenStack Command-Line Interface Reference」http://docs.openstack.org/cli-reference/content/neutronclient_commands.html#neutronclient_subcommand_router-create

158

$ neutron router-create --distributed True ta-router-3Created a new router:+-----------------------+--------------------------------------+| Field | Value |+-----------------------+--------------------------------------+| admin_state_up | True || distributed | True || external_gateway_info | || id | 60857e89-a791-4a22-9e54-fbded56696d4 || name | ta-router-3 || router_type | exclusive || routes | || status | ACTIVE || tenant_id | cb07be4260f84414b5bb555bb2183793 |+-----------------------+--------------------------------------+

内部ネットワークを作成する

• 作成します。

• 確認します。

• 詳細を確認します。

159

# neutron net-create Int-Network-1Created a new network:+-----------------------+--------------------------------------+| Field | Value |+-----------------------+--------------------------------------+| admin_state_up | True || id | fc08e87a-4267-4268-8953-89fa1cf0cc62 || name | Int-Network-1 || port_security_enabled | True || shared | False || status | ACTIVE || subnets | || tenant_id | cb07be4260f84414b5bb555bb2183793 |+-----------------------+--------------------------------------+

# neutron net-list+--------------------------------------+---------------+---------------------------------------+| id | name | subnets |+--------------------------------------+---------------+---------------------------------------+| adf3fa1f-e6a6-4472-b37b-a4fed6ba4b0d | Ext-Network-1 | fb84ce9a-982b-4f38-aa27-5e8a0ee3fb6b || fc08e87a-4267-4268-8953-89fa1cf0cc62 | Int-Network-1 | |+--------------------------------------+---------------+---------------------------------------+

# neutron net-show Int-Network-1+-----------------------+--------------------------------------+| Field | Value |+-----------------------+--------------------------------------+| admin_state_up | True || id | fc08e87a-4267-4268-8953-89fa1cf0cc62 || name | Int-Network-1 || port_security_enabled | True || router:external | False || shared | False || status | ACTIVE || subnets | || tenant_id | cb07be4260f84414b5bb555bb2183793 |+-----------------------+--------------------------------------+

内部サブネットを作成する

• 作成します。

• 確認します。

• 詳細を確認します。

160

# neutron subnet-create --name Int-Subnet-1 --dns-nameserver 192.168.201.2 Int-Network-1 10.1.0.0/24Created a new subnet:+------------------+--------------------------------------------+| Field | Value |+------------------+--------------------------------------------+| allocation_pools | {"start": "10.1.0.2", "end": "10.1.0.254"} || cidr | 10.1.0.0/24 || dns_nameservers | 192.168.201.2 || enable_dhcp | True || gateway_ip | 10.1.0.1 || host_routes | || id | 29874c44-45bd-49cf-ae63-2c7efbede4a2 || ip_version | 4 || name | Int-Subnet-1 || network_id | fc08e87a-4267-4268-8953-89fa1cf0cc62 || tenant_id | cb07be4260f84414b5bb555bb2183793 |+------------------+--------------------------------------------+

# neutron subnet-list+--------------------------------------+--------------+-------------+--------------------------------------------+| id | name | cidr | allocation_pools |+--------------------------------------+--------------+-------------+--------------------------------------------+| 29874c44-45bd-49cf-ae63-2c7efbede4a2 | Int-Subnet-1 | 10.1.0.0/24 | {"start": "10.1.0.2", "end": "10.1.0.254"} |+--------------------------------------+--------------+-------------+--------------------------------------------+

# neutron subnet-show Int-Subnet-1+------------------+--------------------------------------------+| Field | Value |+------------------+--------------------------------------------+| allocation_pools | {"start": "10.1.0.2", "end": "10.1.0.254"} || cidr | 10.1.0.0/24 || dns_nameservers | 192.168.201.2 || enable_dhcp | True || gateway_ip | 10.1.0.1 || host_routes | || id | 29874c44-45bd-49cf-ae63-2c7efbede4a2 || ip_version | 4 || name | Int-Subnet-1 || network_id | fc08e87a-4267-4268-8953-89fa1cf0cc62 || tenant_id | cb07be4260f84414b5bb555bb2183793 |+------------------+--------------------------------------------+

内部サブネットを作成する

• ルータと接続します。

161

# neutron router-interface-add ta-router-1 Int-Subnet-1Added interface 77a5c7c1-2940-4e73-92aa-76a2e8f030de to router ta-router-1.

インスタンスを作成する

• ネットワークを確認します。

• フレーバーを確認します。

• イメージを確認します。

162

$ neutron net-list+--------------------------------------+---------------+--------------------------------------------------+| dc3e888f-bf9c-4f66-91a5-b7f86326cf42 | Ext-Network-1 | 780a6ca6-4925-47b8-a3ad-359b88b5b7a3 || c286f200-d0d7-41b2-befe-c23f9eb5af27 | Int-Network-1 | 0fdf55ef-b08c-48c0-b461-0833693cc4a3 10.1.0.0/24 |+--------------------------------------+---------------+--------------------------------------------------+

$ nova flavor-list+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+| ID | Name | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public |+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+| 1 | m1.tiny | 512 | 1 | 0 | | 1 | 1.0 | True || 2 | m1.small | 2048 | 20 | 0 | | 1 | 1.0 | True || 3 | m1.medium | 4096 | 40 | 0 | | 2 | 1.0 | True || 4 | m1.large | 8192 | 80 | 0 | | 4 | 1.0 | True || 5 | m1.xlarge | 16384 | 160 | 0 | | 8 | 1.0 | True |+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+

$ nova image-list+--------------------------------------+---------------------------+--------+--------+| ID | Name | Status | Server |+--------------------------------------+---------------------------+--------+--------+| c140f656-9d8f-4a1d-9535-38712efd926e | ubuntu-14.04-server-amd64 | ACTIVE | |+--------------------------------------+---------------------------+--------+--------+

インスタンスを作成する

• インスタンスを起動します。

163

# nova boot --flavor m1.small --image ubuntu-14.04-server-amd64 --nic net-id=fc08e87a-4267-4268-8953-89fa1cf0cc62 vm+--------------------------------------+------------------------------------------------------------------+| Property | Value |+--------------------------------------+------------------------------------------------------------------+| OS-DCF:diskConfig | MANUAL || OS-EXT-AZ:availability_zone | nova || OS-EXT-STS:power_state | 0 || OS-EXT-STS:task_state | scheduling || OS-EXT-STS:vm_state | building || OS-SRV-USG:launched_at | - || OS-SRV-USG:terminated_at | - || accessIPv4 | || accessIPv6 | || adminPass | DyNabBgR5nsX || config_drive | || created | 2015-05-17T07:43:56Z || flavor | m1.small (2) || hostId | || id | 7a34ba85-12c3-426f-92b6-18f56650b56d || image | ubuntu-14.04-server-amd64 (c140f656-9d8f-4a1d-9535-38712efd926e) || key_name | - || metadata | {} || name | vm || os-extended-volumes:volumes_attached | [] || progress | 0 || security_groups | default || status | BUILD || tenant_id | cb07be4260f84414b5bb555bb2183793 || updated | 2015-05-17T07:43:56Z || user_id | 7b35e3fc6b33422286ab71742d91498b |+--------------------------------------+------------------------------------------------------------------+

インスタンスを作成する

• 確認します。

• 詳細を確認する

164

# nova list+--------------------------------------+------+--------+------------+-------------+------------------------+| ID | Name | Status | Task State | Power State | Networks |+--------------------------------------+------+--------+------------+-------------+------------------------+| 7a34ba85-12c3-426f-92b6-18f56650b56d | vm | ACTIVE | - | Running | Int-Network-1=10.1.0.3 |+--------------------------------------+------+--------+------------+-------------+------------------------+

# nova show vm+--------------------------------------+------------------------------------------------------------------+| Property | Value |+--------------------------------------+------------------------------------------------------------------+| Int-Network-1 network | 10.1.0.3 || OS-DCF:diskConfig | MANUAL || OS-EXT-AZ:availability_zone | nova || OS-EXT-STS:power_state | 1 || OS-EXT-STS:task_state | - || OS-EXT-STS:vm_state | active || OS-SRV-USG:launched_at | 2015-05-17T07:44:16.000000 || OS-SRV-USG:terminated_at | - || accessIPv4 | || accessIPv6 | || config_drive | || created | 2015-05-17T07:43:56Z || flavor | m1.small (2) || hostId | a667335b67ee39333f1977f75b04fc6085d184f1876314bdf9a1afc2 || id | 7a34ba85-12c3-426f-92b6-18f56650b56d || image | ubuntu-14.04-server-amd64 (c140f656-9d8f-4a1d-9535-38712efd926e) || key_name | - || metadata | {} || name | vm || os-extended-volumes:volumes_attached | [] || progress | 0 || security_groups | default || status | ACTIVE || tenant_id | cb07be4260f84414b5bb555bb2183793 || updated | 2015-05-17T07:44:16Z || user_id | 7b35e3fc6b33422286ab71742d91498b |+--------------------------------------+------------------------------------------------------------------+

NSX-Vから見てみる

165

NSX-Vとの連携の概要

• VMware Integrated OpenStack と NSX for vSphere との連携については詳しい情報がまだありません。ですのでとりあえず確認できた限りとしてですが、このような連携をします。- テナントネットワーク

◦ 論理スイッチによるVXLAN ベースのオーバーレイネットワーク

◦ 専用EdgeによるDHCPサービス

◦ SpoofGuardによる成りすましの防止

◦ 分散ファイアウォールによるマイクロセグメンテーション

- ルーティングとゲートウェイサービス◦ Edge Service Gateway、またはDistributed Routerの作成

◦ ゲートウェイルーティングと分散ルーティング

◦ ゲートウェイファイアウォール

◦ SNAT/DNAT

- その他◦ Metadata Service のプロキシ

• 次項では一部の機能について載せています。

166

OpenStack テナント ネットワークトポロジー

• ここではこのようなOpenStackのテナントネットワークを作成しています。- ルータはEdge Service Gatewayです。

- vm1に対してFloating IPを設定しています。

167

論理スイッチ

• 1つ1つのテナントネットワークは論理スイッチによって構成されます。

• ネットワークのIDで識別します。

168

# neutron net-list --all-tenants+--------------------------------------+----------------+-------------------------------------------------------+| id | name | subnets |+--------------------------------------+----------------+-------------------------------------------------------+| adf3fa1f-e6a6-4472-b37b-a4fed6ba4b0d | Ext-Network-1 | fb84ce9a-982b-4f38-aa27-5e8a0ee3fb6b 192.168.205.0/24 || e50d525d-64f0-4b7c-b815-ca8ffbde036d | inter-edge-net | 9abd948b-9ec4-4fdf-9135-9af9c5028b5c 169.254.128.0/17 || ab9279ee-97ca-427a-b0cf-4b61c9394310 | Int-Network-1 | f34d1407-fa99-42b1-b84b-5ab8f38ba4bb 10.1.0.0/24 || af0dd4ed-4792-49a0-869e-55844f1e428d | Int-Network-2 | c597275a-8b23-4b83-8be9-0bdd19e36ab7 10.2.0.0/24 || 223025d0-39f4-41ca-b3b9-815a0ff94899 | Int-Network-3 | 1d0b8220-e2bf-4ca4-a55a-cce5ea5cca53 10.3.0.0/24 |+--------------------------------------+----------------+-------------------------------------------------------+

Int-Network-3

Int-Network-1

Int-Network-2

DHCPサービス

• DHCPサービスを提供する専用のEdge Gatewayがデプロイされます。

• このDHCP EdgeはOpenStackのネットワークトポロジーには表示されません。

169

DHCPサービス

• DHCP Edgeのインターフェースを見ると、テナントネットワークにトランク接続していることがわかります。

• DHCP Edgeのインターフェースにはアドレスプールの一番最初のIPアドレスが割り当てられます。

170

Int-Network-3Int-Network-1Int-Network-2

# neutron net-list --all-tenants+--------------------------------------+----------------+-------------------------------------------------------+| id | name | subnets |+--------------------------------------+----------------+-------------------------------------------------------+| adf3fa1f-e6a6-4472-b37b-a4fed6ba4b0d | Ext-Network-1 | fb84ce9a-982b-4f38-aa27-5e8a0ee3fb6b 192.168.205.0/24 || e50d525d-64f0-4b7c-b815-ca8ffbde036d | inter-edge-net | 9abd948b-9ec4-4fdf-9135-9af9c5028b5c 169.254.128.0/17 || ab9279ee-97ca-427a-b0cf-4b61c9394310 | Int-Network-1 | f34d1407-fa99-42b1-b84b-5ab8f38ba4bb 10.1.0.0/24 || af0dd4ed-4792-49a0-869e-55844f1e428d | Int-Network-2 | c597275a-8b23-4b83-8be9-0bdd19e36ab7 10.2.0.0/24 || 223025d0-39f4-41ca-b3b9-815a0ff94899 | Int-Network-3 | 1d0b8220-e2bf-4ca4-a55a-cce5ea5cca53 10.3.0.0/24 |+--------------------------------------+----------------+-------------------------------------------------------+

DHCPサービス

• バインドから割り当て済みのIPアドレスを確認します。

171

SpoofGuard

• SpoofGuardは、承認済みのIPアドレス以外からの通信を止めることで、成りすましなどを防ぐ機能です。(参考:Using SpoofGuard)

• テナントネットワークごとにポリシーが作成され、インスタンス作成時に割り当てたIPアドレスでもってインスタンスの通信を承認します。

172

Int-Network-1

Security Group

• OpenStackで作成したセキュリティグループは、NSX Security Groupとして作成されます。

• 同じOpenStackセキュリティグループに属するインスタンスは、同じNSX SecurityGroupに含められます。

173

分散ファイアウォール

• OpenStack セキュリティグループで定義したルールは、NSX 分散ファイアウォールのポリシーから参照することができます。

• OpenStack セキュリティグループごとに、セクションが作成されます。

174

Edge Service Gateway

• OpenStack ルータは、NSX Edgeとして構成されます。

• 「shared-」と付くものが実際に使われているEdgeです。

175

Edge Service Gateway

• NSX Edgeにはアップリンクとして外部ネットワークが、内部リンクとしてテナントのネットワークが接続されます。

176

# neutron net-list --all-tenants+--------------------------------------+----------------+-------------------------------------------------------+| id | name | subnets |+--------------------------------------+----------------+-------------------------------------------------------+| adf3fa1f-e6a6-4472-b37b-a4fed6ba4b0d | Ext-Network-1 | fb84ce9a-982b-4f38-aa27-5e8a0ee3fb6b 192.168.205.0/24 || e50d525d-64f0-4b7c-b815-ca8ffbde036d | inter-edge-net | 9abd948b-9ec4-4fdf-9135-9af9c5028b5c 169.254.128.0/17 || ab9279ee-97ca-427a-b0cf-4b61c9394310 | Int-Network-1 | f34d1407-fa99-42b1-b84b-5ab8f38ba4bb 10.1.0.0/24 || af0dd4ed-4792-49a0-869e-55844f1e428d | Int-Network-2 | c597275a-8b23-4b83-8be9-0bdd19e36ab7 10.2.0.0/24 || 223025d0-39f4-41ca-b3b9-815a0ff94899 | Int-Network-3 | 1d0b8220-e2bf-4ca4-a55a-cce5ea5cca53 10.3.0.0/24 |+--------------------------------------+----------------+-------------------------------------------------------+

Int-Network-3

Int-Network-1

Int-Network-2

Ext-Network-1

ゲートウェイファイアウォール

• ゲートウェイファイアウォールでは、常にすべてのテナントネットワーク間の通信と、外部への通信が許可されます。

177

SNAT/DNAT

• NSX Edgeに定義されるNATの設定です。- Floating IPを設定したインスタンスのためのSNAT/DNAT

- 各テナントネットワークから外部にアクセスするためのSNAT

178

Floating IP

各テナント用のSNAT

VIOをアンインストールする

179

VIOをアンインストールする

• ここではVIOのアンインストール方法について書きます。

• すべて削除して初期状態に戻すには以下の流れになります。- OpenStack管理コンポーネントを削除する

- OMSを削除する

- vCenterからの登録を解除する

- インスタンスを削除する

- NSX-vからVIOの設定を削除する

180

VIOをアンインストールする

• OpenStack管理コンポーネントを削除する- OMSの「すべてのアクション」から「Delete OpenStack

deployment」を選択して、すべてのOpenStack管理コンポーネントを削除します。

• OMSを削除する- 手動でvAppを削除します。

181

VIOをアンインストールする

• vCenterからの登録を解除する◦ vCenter からOMSの拡張プラグイン削除します。

KB 1025360 に記載されている方法を使用します。

1. vSphere Web Clientからログアウトします。

2. vSphere Managed Object Browserへアクセスします。https://<vceter/mob

3. 管理者権限でログインします。

4. 「content」を選択します。

182

VIOをアンインストールする

• vCenterからの登録を解除する1. 「ExtensionManager」を選択します。

2. 以下のExtensionを探す

◦ com.vmware.openstack.vcext.instance-xxx

◦ com.vmware.openstack.ui

◦ org.openstack.compute

3. ページ下にある「UnregisterExtension」を選択します。

183

VIOをアンインストールする

• vCenterからの登録を解除する4. 別ウインドウが開くので、VALUEにさっきの3つのExtentionを1つ

ずつ入力してInvoke Methodを選択します。

5. 成功するとこんなメッセージが表示されます。

「Method Invocation Result : void」

184

VIOをアンインストールする

• vCenterからの登録を解除する6. vCenter Web Clientにログインしなおし

ホーム画面からOpenStackのアイコンが消えていれば完了です。

185

VIOをアンインストールする

• インスタンスを削除する- OpenStackインスタンスは手動で削除する必要があります。

• NSX-vからVIOの設定を削除する- Neutron経由で設定したNSXの以下の設定は手動で削除する必要があります。

◦ Edge

◦ 論理スイッチ

◦ Security Group

◦ ファイアウォールポリシー

◦ SpoofGuardポリシー

- これが大量にある場合には、ここで公開されているPythonスクリプトを使用すると便利です。(が、OpenStack用以外のものもすべて削除してしまいますので要注意)

https://github.com/stackforge/vmware-nsx/blob/master/devstack/tools/nsxv_cleanup.py

186

187

おわり