Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

OpenStack Icehouse構築手順書

2,139 views

Published on

Ubuntu14.04 LTSにOpenStack (IceHouse)をインストールするための構築手順書です。

Published in: Technology
  • Be the first to comment

  • Be the first to like this

OpenStack Icehouse構築手順書

  1. 1. OpenStack構築手順書 Icehouse版 日本仮想化技術 1 OpenStack構築手順書 Icehouse版 バージョン:1.1 2014年7月10日作成 日本仮想化技術株式会社
  2. 2. OpenStack構築手順書 Icehouse版 日本仮想化技術 2 変更履歴 バージョン 更新日 更新内容 1.0 2014/06/04 Icehouse版初版 1.1 2014/07/10 Swift、Heat構築手順追加
  3. 3. OpenStack構築手順書 Icehouse版 日本仮想化技術 3 目次 1. 構築する環境について 1–1 環境構築に使用するOS 1–2 作成するノード 1–3 仮想マシンの設定 1–4 ネットワーク全体の設定 1–5 各ノードのネットワーク設定 1–6 Ubuntuのインストール 1–7 Ubuntuへのログインとroot権限 1–8 設定ファイル等の記述について 2. インストール前設定 2–1 ネットワークデバイスの設定 2–2 静的名前解決の設定 2–3 sysctlによるシステムの設定 2–4 aptのアップデート 2–5 NTPのインストール 2–6 Python用MySQLクライアントのインストール 3. controllerノードのインストール前設定 3–1 MySQLサーバーのインストール 3–2 RabbitMQのインストール 3–3 環境変数設定ファイル作成 4. Keystoneインストールと設定(controllerノード) 4–1 パッケージのインストール 4–2 データベースの作成・確認 4–3 設定の変更 4–4 使用しないデータベースファイルの削除 4–5 データベースに表を作成 4–6 サービスの再起動 4–7 ログの確認 4–8 認証情報の設定 4–9 Keystone設定確認 5. Glanceのインストールと設定 5–1 パッケージのインストール 5–2 データベースの作成・確認 5–3 認証情報の設定 5–4 設定の変更 5–5 データベースに表を作成 5–6 サービス再起動 5–7 ログ確認 5–8 イメージの取得と登録 6. Novaのインストール・設定(controllerノード) 6–1 パッケージインストール
  4. 4. OpenStack構築手順書 Icehouse版 日本仮想化技術 4 6–2 データベースの作成・確認 6–3 認証情報の設定 6–4 設定変更 6–5 使用しないデータベースファイル削除 6–6 データベースに表を作成 6–7 サービス再起動 6–8 ログ確認 6–9 Glanceとの通信確認 7. Novaのインストール・設定(compute1ノード) 7–1 パッケージインストール 7–2 カーネル設定変更 7–3 設定の変更 7–4 使用しないデータベースファイル削除 7–5 サービス再起動 7–6 ログ確認 7–7 controllerノードとの疎通確認 8. Neutronのインストール・設定(controllerノード) 8–1 パッケージインストール 8–2 データベース作成・確認 8–3 認証情報の設定 8–4 設定の変更 8–5 使用しないデータベースファイル削除 8–6 サービス再起動 8–7 ログ確認 9. Neutronのインストール・設定(networkノード) 9–1 パッケージインストール 9–2 設定の変更 9–3 Open vSwitchサービス再起動 9–4 ブリッジデバイス設定 9–5 ブリッジデバイス設定確認 9–6 ネットワークインタフェースの設定変更 9–7 networkノード再起動 9–8 ブリッジ設定確認 9–9 サービス再起動 9–10 ログ確認 10. Neutornのインストール・設定(compute1ノード) 10–1 パッケージインストール 10–2 設定の変更 10–3 Open vSwitchサービス再起動 10–4 ブリッジ作成 10–5 サービス再起動 10–6 ログ確認 11. 仮想ネットワーク設定(controllerノード) 11–1 外部接続ネットワークの設定
  5. 5. OpenStack構築手順書 Icehouse版 日本仮想化技術 5 11–2 インスタンス用ネットワーク設定 11–3 仮想ネットワークルーター設定 12. 仮想ネットワーク設定確認(networkノード) 12–1 仮想ネットワークルーターの確認 12–2 仮想ルーターのネームスペースのIPアドレスを確認 12–3 仮想ゲートウェイの疎通確認 13. Cinderインストール(controllerノード) 13–1 パッケージインストール 13–2 データベース作成・確認 13–3 認証情報の設定 13–4 設定の変更 13–5 使用しないデータベースファイル削除 13–6 データベースに表を作成 13–7 サービス再起動 13–8 ログ確認 13–9 イメージ格納用ボリューム作成 14. Ceilometerインストール・設定(controllerノード) 14–1 パッケージインストール 14–2 デフォルトのデータベースファイル削除 14–3 mongodb データベース設定 14–4 mongodbサービス再起動 14–5 mongodbデータベース作成 14–6 認証情報の設定 14–7 設定の変更 14–8 使用しないデータベースファイル削除 14–9 サービス再起動 14–10 ログ確認 15. Ceilometerインストール・設定(compute1ノード) 15–1 パッケージインストール 15–2 設定の変更 15–3 サービス再起動 15–4 ログ確認 15–5 計測項目取得確認 16. フロントエンドインストール・確認(controllerノード) 16–1 パッケージインストール 16–2 フロントエンドアクセス確認 17. セキュリティグループ設定(controllerノード) 17–1 demo環境変数設定ファイル読み込み 17–2 ICMPパケット透過設定 17–3 SSHパケット透過設定 17–4 設定確認 18. Swiftのインストールと設定 18–1 共通設定(controllerノード、compute1ノード) 18–2 認証情報の設定(controllerノード)
  6. 6. OpenStack構築手順書 Icehouse版 日本仮想化技術 6 18–3 Swiftストレージノード設定(compute1ノード) 18–4 Swiftプロキシ設定(controllerノード) 18–5 リングファイル作成・設定(controllerノード) 18–6 リング設定反映(compute1ノード) 19. Heat 動作確認(controllerノード) 19–1 admin環境変数設定ファイル読み込み 19–2 Swift状態確認 19–3 テスト用ファイル作成 19–4 テスト用ファイルアップロード 19–5 テスト用ファイルダウンロード 19–6 ダウンロード確認 20. Heat のインストールと設定(controllerノード) 20–1 パッケージのインストール 20−2 データベースの作成・確認 20–3 認証情報の設定 20–4 設定の変更 20–5 使用しないデータベースファイルの削除 20–6 データベースに表を作成 20–7 サービス再起動 20–8 ログ確認 21. Heat 動作確認(controllerノード) 21–1 demo環境変数読み込み 21–2 テンプレートファイル作成 21–3 スタック作成 21–4 スタック作成確認
  7. 7. OpenStack構築手順書 Icehouse版 日本仮想化技術 7 1. 構築する環境について 1–1 環境構築に使用するOS 今回構築するOpenStack環境はUbuntu Server 14.04LTS上に構築します、以下からイメージをダウンロードしてインストール します。 http://releases.ubuntu.com/14.04/ubuntu–14.04-server-amd64.iso ※Ubuntu Server 12.04LTSを使用して構築を行う場合、The Ubuntu Cloud Archiveのリポジトリを使用する必要があります。 1–2 作成するノード 今回構築するOpenStack環境は、以下の3ノードで構成します。 controllerノード OpenStack環境全体を管理するコントローラーとして機能します。 networkノード 外部ネットワークとインスタンスの間のネットワークを制御します。 compute1ノード 仮想マシンインスタンスを実行します。 1–3 仮想マシンの設定 本手順書はMac OS X上で動作するParallels Desktop 9を使用した環境での構築手順を解説しています。その他の仮想マシンソ フトウェアを使用する場合は、適宜用語、設定などを読み替えて下さい。 controllerノードにゲストOSのイメージを配置するので、仮想ハードディスクを別途追加しておきます。Linuxからは/dev/sdbと して認識されます。 compute1ノードはCPU仮想化機能を有効にしておきます。 ネットワークインターフェースを2つ作成します。1つ目をホストオンリーネットワーク、2つ目を共有ネットワークに接続しま す。 ※Parallels Desktopの仕様上、外部に接続できる共有ネットワーク(NAT)が1つしか作成できないため、このような設定とな っています。 外部へNATできる仮想ネットワークを複数作成できる仮想マシンソフトウェアの場合には、両方のネットワークを共有ネット ワークに接続しても構いません。
  8. 8. OpenStack構築手順書 Icehouse版 日本仮想化技術 8 1–4 ネットワーク全体の設定 内部ネットワーク ノード間の通信のために使用するネットワーク。インターネットへの接続は行えなくても構いません。 外部ネットワーク 外部との接続に使用するネットワーク。OpenStackのFloating IPを利用して、クライアントからcompute1ノード上のインスタン スへと接続できます。 aptコマンドを使って外部リポジトリからパッケージなどをダウンロードするため、外部接続が必要となります。今回はeth1から 外部インターネット接続を行っています。 各種APIを外部公開する際にも使用できますが、今回は公開は行っていません。 内部ネットワーク 外部ネットワーク インターフェース eth0 eth1 仮想化ソフト ホストオンリーネットワーク 共有ネットワーク ネットワーク 192.168.0.0/24 10.0.0.0/24 ゲートウェイ なし 10.0.0.1 ネームサーバー なし 10.0.0.1 1–5 各ノードのネットワーク設定 controllerノード インターフェース eth0 eth1 IPアドレス 192.168.0.10 10.0.0.10 ネットマスク 255.255.255.0 255.255.255.0 ゲートウェイ なし 10.0.0.1 ネームサーバー なし 10.0.0.1 networkノード インターフェース eth0 eth1 IPアドレス 192.168.0.9 10.0.0.9 ネットマスク 255.255.255.0 255.255.255.0 ゲートウェイ なし 10.0.0.1 ネームサーバー なし 10.0.0.1 compute1ノード
  9. 9. OpenStack構築手順書 Icehouse版 日本仮想化技術 9 インターフェース eth0 eth1 IPアドレス 192.168.0.11 10.0.0.11 ネットマスク 255.255.255.0 255.255.255.0 ゲートウェイ なし 10.0.0.1 ネームサーバー なし 10.0.0.1
  10. 10. OpenStack構築手順書 Icehouse版 日本仮想化技術 10 1–6 Ubuntuのインストール 優先ネットワークインターフェースの指定 インストール時は優先ネットワークインターフェース(Primary network interface)に選択したインターフェースのみDHCPで設定されるので、外部インターネットに接続できる側のネットワークイン ターフェースを選択します。 今回の環境ではeth1を選択します。 OpenSSH serverをインストールする compute1ノードでKVMを実行するが、Virtual machine hostはインストールしないこと。 インストール時の設定パラメータ例 設定項目 設定例 初期起動時のLanguage English 起動 Install Ubuntu Server Language English - English Country location other→Asia→Japan Country locale United States - en_US.UTF–8 Detect keyboard layout No Keyboard Japanese→Japanese Primary network interface eth1: Ethernet Hostname それぞれのノード名 ユーザ名 フルネームで入力 アカウント名 ユーザ名のファーストネームで設定される パスワード 任意のパスワード Weak password(出ない場合も) Yesを選択 ホームの暗号化 任意 タイムゾーン Asia/Tokyoであることを確認 パーティション設定 Guided - use entire disk and set up LVM パーティション選択 sdaを選択 パーティション書き込み Yesを選択 パーティションサイズ デフォルトのまま 変更の書き込み Yesを選択 HTTP proxy 環境に合わせて任意 アップグレード 任意 ソフトウェア OpenSSH serverのみ選択 GRUB Yesを選択 インストール完了 Continueを選択
  11. 11. OpenStack構築手順書 Icehouse版 日本仮想化技術 11 1–7 Ubuntuへのログインとroot権限 インストールしたUbuntuはセキュリティの設定が行われているため、root権限が必要となる作業は以下のように行ってくださ い。 rootで直接ログインできないので、インストール時に作成したアカウントでログインする。 root権限が必要な場合には、sudoコマンドを使用する。 rootで連続して作業したい場合には、sudo -sコマンドでシェルを起動する。 1–8 設定ファイル等の記述について 設定ファイルは特別な記述が無い限り、必要な設定を抜粋したものです。 特に変更が必要ない設定項目は省略されています。 [見出し]が付いている場合、その見出しから次の見出しまでの間に設定を記述します。 コメントアウトされていない設定項目が存在する場合には、値を変更してください。多くの設定項目は記述が存在しているた め、エディタの検索機能で検索することをお勧めします。 既存の設定を記述に含む場合には、値の変更が不要であることを示すために斜体にしている場合があります。 設定ファイルの記述例 [database] ←この見出しから次の見出しまでの間に以下を記述 #connection = sqlite:////var/lib/glance/glance.sqlite ← 既存設定をコメントアウト connection = mysql://glance:password@controller/glance ← 追記 [keystone_authtoken] ← 見出し #auth_host = 127.0.0.1 ← 既存設定をコメントアウト auth_host = controller ← 追記 auth_port = 35357 ← 既存のまま auth_protocol = http ← 既存のまま auth_uri = http://controller:5000/v2.0 ← 追記 admin_tenant_name = service ← 変更 admin_user = glance ← 変更 admin_password = password ← 変更
  12. 12. OpenStack構築手順書 Icehouse版 日本仮想化技術 12 2. インストール前設定 OpenStackパッケージのインストール前に各々のノードで以下の設定を行います。 ネットワークデバイスの設定 静的名前解決の設定 sysctlによるシステムの設定 aptの設定 NTPのインストール Python用MySQLクライアントのインストール MySQLサーバーのインストール(controllerノードのみ) RabbitMQのインストール(controllerノードのみ) 2–1 ネットワークデバイスの設定 各ノードの/etc/network/interfacesを編集し、IPアドレスの設定を行います。 2–1–1 controllerノードのIPアドレスの設定 /etc/network/interfaces auto eth0 iface eth0 inet static address 192.168.0.10 netmask 255.255.255.0 auto eth1 iface eth1 inet static address 10.0.0.10 netmask 255.255.255.0 gateway 10.0.0.1 dns-nameservers 10.0.0.1
  13. 13. OpenStack構築手順書 Icehouse版 日本仮想化技術 13 2–1–2 networkノードのIPアドレスの設定 /etc/network/interfaces auto eth0 iface eth0 inet static address 192.168.0.9 netmask 255.255.255.0 auto eth1 iface eth1 inet static address 10.0.0.9 netmask 255.255.255.0 gateway 10.0.0.1 dns-nameservers 10.0.0.1 2–1–3 compute1ノードのIPアドレスの設定 /etc/network/interfaces auto eth0 iface eth0 inet static address 192.168.0.11 netmask 255.255.255.0 auto eth1 iface eth1 inet static address 10.0.0.11 netmask 255.255.255.0 gateway 10.0.0.1 dns-nameservers 10.0.0.1 2–1–4 ネットワーク設定反映 各ノードで変更した設定をネットワークデバイスに反映します。 ※Ubuntu Server 14.04LTSはserviceコマンドや/etc/init.d/でのネットワークデバイスの再起動を行えないので、直接ネットワ ークデバイスの停止・起動を行って設定を反映させます。 # ifdown eth0 eth1;ifup eth0 eth1
  14. 14. OpenStack構築手順書 Icehouse版 日本仮想化技術 14 2–2 静的名前解決の設定 各ノードの/etc/hostsに各ノードのIPアドレスとホスト名を記述し、静的名前解決の設定を行います。127.0.1.1の行はコメン トアウトします。 2–2–1 controllerノードの/etc/hostsの設定 /etc/hosts 127.0.0.1 localhost #127.0.1.1 controller ← 既存設定をコメントアウト 192.168.0.10 controller 192.168.0.9 network 192.168.0.11 compute1 2–2–2 networkノードの/etc/hostsの設定 /etc/hosts 127.0.0.1 localhost #127.0.1.1 network ← 既存設定をコメントアウト 192.168.0.9 network 192.168.0.10 controller 192.168.0.11 compute1 2–2–3 compute1ノードの/etc/hostsの設定 /etc/hosts 127.0.0.1 localhost #127.0.1.1 compute1 ← 既存設定をコメントアウト 192.168.0.11 compute1 192.168.0.9 network 192.168.0.10 controller
  15. 15. OpenStack構築手順書 Icehouse版 日本仮想化技術 15 2–3 sysctlによるシステムの設定 Linuxのネットワークパケット処理について設定を行います。 2–3–1 controllerノードの/etc/sysctl.confの設定 /etc/sysctl.conf net.ipv4.conf.default.rp_filter=0 net.ipv4.conf.all.rp_filter=0 sysctlコマンドで設定を適用します。 controller# sysctl -p net.ipv4.conf.default.rp_filter = 0 net.ipv4.conf.all.rp_filter = 0 2–3–2 networkノードの/etc/sysctl.confの設定 /etc/sysctl.conf net.ipv4.conf.default.rp_filter=0 net.ipv4.conf.all.rp_filter=0 net.ipv4.ip_forward=1 sysctlコマンドで設定を適用します。 network# sysctl -p net.ipv4.conf.default.rp_filter = 0 net.ipv4.conf.all.rp_filter = 0 net.ipv4.ip_forward=1 2–3–3 compute1ノードの/etc/sysctl.confの設定 /etc/sysctl.conf net.ipv4.conf.default.rp_filter=0 net.ipv4.conf.all.rp_filter=0 sysctlコマンドで設定を適用します。 compute1# sysctl -p net.ipv4.conf.default.rp_filter = 0 net.ipv4.conf.all.rp_filter = 0
  16. 16. OpenStack構築手順書 Icehouse版 日本仮想化技術 16 2–4 aptのアップデート 各ノードでパッケージの更新を行い、再起動を行います。 # apt-get update && apt-get dist-upgrade # reboot 2–5 NTPのインストール 時刻合わせを正確にするために各ノードでNTPをインストールします。 # apt-get install -y ntp 2–6 Python用MySQLクライアントのインストール 各ノードでPython用のMySQLクライアントをインストールします。 # apt-get install -y python-mysqldb
  17. 17. OpenStack構築手順書 Icehouse版 日本仮想化技術 17 3. controllerノードのインストール前設定 3–1 MySQLサーバーのインストール MySQLサーバーをインストールします。 3–1–1 パッケージのインストール インストール中にMySQLのrootパスワードを設定する必要があります。パスワードはpasswordに設定します。 controller# apt-get install -y mysql-server 3–1–2 バインドアドレスの変更 別のノードからMySQLへアクセスできるよう、バインドアドレスを変更します。加えて使用する文字コードをutf8に変更しま す。 ※文字コードをutf8に変更しないとOpenStackモジュールとデータベース間の通信でエラーが発生します。 /etc/mysql/my.cnf [mysqld] #bind-address = 127.0.0.1 ← 既存設定をコメントアウト bind-address = 192.168.0.10 ← 追記 default-storage-engine = innodb ← 追記 collation-server = utf8_general_ci ← 追記 init-connect = 'SET NAMES utf8' ← 追記 character-set-server = utf8 ← 追記 3–1–3 サービスの再起動 変更後、サービスを再起動します。 controller# service mysql restart 3–2 RabbitMQのインストール RabbitMQをインストールします。 3–2–1 パッケージのインストール controller# apt-get install -y rabbitmq-server 3–2–2 guestユーザーのパスワード変更 rabbitmqctlのパスワードをguestからpasswordへ変更します。
  18. 18. OpenStack構築手順書 Icehouse版 日本仮想化技術 18 controller# rabbitmqctl change_password guest password Changing password for user "guest" ... ...done. 3–3 環境変数設定ファイル作成 3–3–1 admin環境変数設定ファイル作成 admin環境変数設定ファイルを作成します。 admin-openrc export OS_USERNAME=admin export OS_PASSWORD=password export OS_TENANT_NAME=admin export OS_AUTH_URL=http://controller:35357/v2.0 3–3–2 demo環境変数設定ファイル作成 demo環境変数設定ファイルを作成します。 demo-openrc export OS_USERNAME=demo export OS_PASSWORD=password export OS_TENANT_NAME=demo export OS_AUTH_URL=http://controller:35357/v2.0
  19. 19. OpenStack構築手順書 Icehouse版 日本仮想化技術 19 4. Keystoneインストールと設定(controllerノード) Keystoneのインストールと設定を行います。 4–1 パッケージのインストール controller# apt-get install -y keystone 4–2 データベースの作成・確認 4–2–1 データベースの作成 MySQLのデータベースにKeystoneのデータベースを作成します。 controller# mysql -u root -p << EOF CREATE DATABASE keystone; GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'password'; EOF Enter password: ← MySQLのrootパスワードpasswordを入力 4–2–2 データベースの確認 MySQLにKeystoneのデータベースが作成されたか確認します。
  20. 20. OpenStack構築手順書 Icehouse版 日本仮想化技術 20 controller# mysql -u keystone -p Enter password: ← MySQLのkeystoneパスワードpasswordを入力 Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 71 Server version: 5.5.37-0ubuntu0.14.04.1 (Ubuntu) Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | keystone | +--------------------+ 2 rows in set (0.00 sec) ※ユーザーkeystoneでログイン可能でデータベースの閲覧が可能なら問題ありません。 4–3 設定の変更 /etc/keystone/keystone.conf [DEFAULT] admin_token = password ← 追記 log_dir=/var/log/keystone ← 追記 [database] #connection = sqlite:////var/lib/keystone/keystone.db ← 既存設定をコメントアウト connection = mysql://keystone:password@controller/keystone ← 追記 4–4 使用しないデータベースファイルの削除 controller# rm /var/lib/keystone/keystone.db 4–5 データベースに表を作成 controller# keystone-manage db_sync
  21. 21. OpenStack構築手順書 Icehouse版 日本仮想化技術 21 4–6 サービスの再起動 controller# rm /var/log/keystone/* controller# service keystone restart 4–7 ログの確認 controller# grep "ERROR|WARNING" /var/log/keystone/* 2014-05-16 14:01:28.074 28051 WARNING keystone.openstack.common.versionutils [-] Deprecated: keystone.middleware.core.XmlBodyMiddleware is deprecated as of Icehouse in favor of support for "application/json" only and may be removed in K. ※上記WARNING以外、特に何も表示されなければ問題ありません。
  22. 22. OpenStack構築手順書 Icehouse版 日本仮想化技術 22 4–8 認証情報の設定 以下コマンドで認証情報を設定します。 controller# export OS_SERVICE_TOKEN=password controller# export OS_SERVICE_ENDPOINT=http://controller:35357/v2.0 controller# keystone user-create --name=admin --pass=password --email=admin@example.com +----------+----------------------------------+ | Property | Value | +----------+----------------------------------+ | email | admin@example.com | | enabled | True | | id | 9b6f2e4f6e074566937119a05a26e01e | | name | admin | | username | admin | +----------+----------------------------------+ controller# keystone role-create --name=admin +----------+----------------------------------+ | Property | Value | +----------+----------------------------------+ | id | 9d34e8df7bc04bf3b16abc8a09238499 | | name | admin | +----------+----------------------------------+ controller# keystone tenant-create --name=admin --description="Admin Tenant" +-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+ | description | Admin Tenant | | enabled | True | | id | 07e06d1d7f35430e8906e6fb5badd893 | | name | admin | +-------------+----------------------------------+ controller# keystone user-role-add --user=admin --tenant=admin --role=admin controller# keystone user-role-add --user=admin --role=_member_ --tenant=admin controller# keystone user-create --name=demo --pass=password --email=demo@example.com +----------+----------------------------------+ | Property | Value | +----------+----------------------------------+ | email | demo@example.com | | enabled | True | | id | 7d0a62a5abf7445688b2fd223e1a9a1f | | name | demo | | username | demo | +----------+----------------------------------+
  23. 23. OpenStack構築手順書 Icehouse版 日本仮想化技術 23 controller# keystone tenant-create --name=demo --description="Demo Tenant" +-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+ | description | Demo Tenant | | enabled | True | | id | 6d19304a59b3456bbe2552a9080d1301 | | name | demo | +-------------+----------------------------------+ controller# keystone user-role-add --user=demo --role=_member_ --tenant=demo controller# keystone tenant-create --name=service --description="Service Tenant" +-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+ | description | Service Tenant | | enabled | True | | id | 0571e304708f4cdcb4ecedc363547acb | | name | service | +-------------+----------------------------------+ controller# keystone service-create --name=keystone --type=identity --description="OpenStack Identity" +-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+ | description | OpenStack Identity | | enabled | True | | id | c315a41214b84597af88ab11bb5a089d | | name | keystone | | type | identity | +-------------+----------------------------------+ controller# keystone endpoint-create --service=keystone --publicurl=http://controller:5000/v2.0 --internalurl=http://controller:5000/v2.0 --adminurl=http://controller:35357/v2.0 +-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+ | adminurl | http://controller:35357/v2.0 | | id | 1f1746a1b9204bf297d4c599767fc6bd | | internalurl | http://controller:5000/v2.0 | | publicurl | http://controller:5000/v2.0 | | region | regionOne | | service_id | c315a41214b84597af88ab11bb5a089d |
  24. 24. OpenStack構築手順書 Icehouse版 日本仮想化技術 24 +-------------+----------------------------------+ 4–9 Keystone設定確認 4–9–1 Keystoneトークン確認 Keystoneの認証に問題ないか確認するために、トークンを取得してみます。 controller# keystone --os-username=admin --os-password=password --os-tenant-name=admin --os-auth-url=http://controller:35357/v2.0 token-get +-----------+---------------------------------------+ | Property | Value | +-----------+---------------------------------------+ | expires | 2014-05-18T02:51:48Z | | id | MIIMYAYJKoZIhvcNAQcbWsNz2gqLtB6dfg== | | tenant_id | b348b47155884978af344b84db561865 | | user_id | 6ca7845a6d554ef8ab737a777dd0a7cb | +-----------+---------------------------------------+ controller# keystone --os-username=demo --os-password=password --os-tenant-name=demo --os-auth-url=http://controller:35357/v2.0 token-get -+-----------+---------------------------------------+ | Property | Value | -+-----------+---------------------------------------+ | expires | 2014-05-18T02:53:09Z | | id | MIIMJQYJKoZIhvcfso3dfgcJ+I7J40KS9fo= | | tenant_id | 6803ec4cf70f43ed8cfdbd060c1a2293 | | user_id | 7605b233fede4f958c121e31b508eeac | -+-----------+---------------------------------------+ ※トークンのid情報等が出力されていれば問題ありません。(実際のトークン情報は一行が長いので、コマンド例では省略し て記述してます) 4–9–2 Keystoneユーザー確認 Keystoneにユーザーが登録されているかを確認します。
  25. 25. OpenStack構築手順書 Icehouse版 日本仮想化技術 25 controller# source admin-openrc controller# keystone user-list +----------------------------------+-------+---------+-------------------+ | id | name | enabled | email | +----------------------------------+-------+---------+-------------------+ | 6ca7845a6d554ef8ab737a777dd0a7cb | admin | True | admin@example.com | | 7605b233fede4f958c121e31b508eeac | demo | True | demo@example.com | +----------------------------------+-------+---------+-------------------+ ※一覧にadminとdemoユーザーが登録されていれば問題ありません。
  26. 26. OpenStack構築手順書 Icehouse版 日本仮想化技術 26 5. Glanceのインストールと設定 5–1 パッケージのインストール controller# apt-get install -y glance python-glanceclient sheepdog sheepdogのインストールで次回ログイン時にメッセージが複数表示されるのを抑制するために設定ファイルを削除します。 controller# rm -f /etc/bash_completion.d/sheepdog 5–2 データベースの作成・確認 5–2–1 データベース作成 MySQLのデータベースにGlanceのデータベースを作成します。 controller# mysql -u root -p << EOF CREATE DATABASE glance; GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'password'; EOF Enter password: ← MySQLのrootパスワードpasswordを入力
  27. 27. OpenStack構築手順書 Icehouse版 日本仮想化技術 27 5–2–2 データベースの確認 MySQLにGlanceのデータベースが作成されたか確認します。 controller# mysql -u glance -p Enter password: ← MySQLのglanceパスワードpasswordを入力 Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 72 Server version: 5.5.37-0ubuntu0.14.04.1 (Ubuntu) Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | glance | +--------------------+ 2 rows in set (0.00 sec) ※ユーザーglanceでログイン可能でデータベースの閲覧が可能なら問題ありません。
  28. 28. OpenStack構築手順書 Icehouse版 日本仮想化技術 28 5–3 認証情報の設定 以下コマンドで認証情報を設定します。 controller# source admin-openrc controller# keystone user-create --name=glance --pass=password --email=glance@example.com +----------+----------------------------------+ | Property | Value | +----------+----------------------------------+ | email | glance@example.com | | enabled | True | | id | 4731656ea2604725873be52d08ad3a26 | | name | glance | | username | glance | +----------+----------------------------------+ controller# keystone user-role-add --user=glance --tenant=service --role=admin controller# keystone service-create --name=glance --type=image --description="OpenStack Image Service" +-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+ | description | OpenStack Image Service | | enabled | True | | id | b9a5d0e108474d928a29b896658897ef | | name | glance | | type | image | +-------------+----------------------------------+ controller# keystone endpoint-create --service=glance --publicurl=http://controller:9292 --internalurl=http://controller:9292 --adminurl=http://controller:9292 +-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+ | adminurl | http://controller:9292 | | id | db113425a5b740428b970925bde913f8 | | internalurl | http://controller:9292 | | publicurl | http://controller:9292 | | region | regionOne | | service_id | b9a5d0e108474d928a29b896658897ef | +-------------+----------------------------------+
  29. 29. OpenStack構築手順書 Icehouse版 日本仮想化技術 29 5–4 設定の変更 /etc/glance/glance-api.conf [DEFAULT] rpc_backend = rabbit rabbit_host = controller ← 追記 rabbit_password = password ← 追記 [database] #sqlite_db = /var/lib/glance/glance.sqlite ← 既存設定をコメントアウト connection = mysql://glance:password@controller/glance ← 追記 [keystone_authtoken] #auth_host = 127.0.0.1 ← 既存設定をコメントアウト auth_uri = http://controller:5000 ← 追記 auth_host = controller ← 追記 auth_port = 35357 auth_protocol = http #admin_tenant_name = %SERVICE_TENANT_NAME% ← 既存設定をコメントアウト #admin_user = %SERVICE_USER% ← 既存設定をコメントアウト #admin_password = %SERVICE_PASSWORD% ← 既存設定をコメントアウト admin_tenant_name = service ← 追記 admin_user = glance ← 追記 admin_password = password ← 追記 [paste_deploy] flavor = keystone ← 追記
  30. 30. OpenStack構築手順書 Icehouse版 日本仮想化技術 30 /etc/glance/glance-registry.conf [database] #sqlite_db = /var/lib/glance/glance.sqlite ← 既存設定をコメントアウト connection = mysql://glance:password@controller/glance ← 追記 [keystone_authtoken] #auth_host = 127.0.0.1 ← 既存設定をコメントアウト auth_uri = http://controller:5000 ← 追記 auth_host = controller ← 追記 auth_port = 35357 auth_protocol = http #admin_tenant_name = %SERVICE_TENANT_NAME% ← 既存設定をコメントアウト #admin_user = %SERVICE_USER% ← 既存設定をコメントアウト #admin_password = %SERVICE_PASSWORD% ← 既存設定をコメントアウト admin_tenant_name = service ← 追記 admin_user = glance ← 追記 admin_password = password ← 追記 [paste_deploy] flavor = keystone ← 追記 5–5 データベースに表を作成 controller# glance-manage db_sync 5–6 サービス再起動 controller# rm /var/log/glance/* controller# service glance-registry restart && service glance-api restart
  31. 31. OpenStack構築手順書 Icehouse版 日本仮想化技術 31 5–7 ログ確認 controller# grep "ERROR|WARNING" /var/log/glance/* /var/log/glance/api.log:2014-05-18 12:10:04.528 8459 ERROR glance.store.sheepdog [-] Error in store configurat ion: Unexpected error while running command. /var/log/glance/api.log:2014-05-18 12:10:04.531 8459 WARNING glance.store.base [-] Failed to configure store c orrectly: Store sheepdog could not be configured correctly. Reason: Error in store configuration: Unexpected e rror while running command. /var/log/glance/api.log:2014-05-26 12:10:04.532 8459 WARNING glance.store [-] Deprecated: glance.store.sheepdo g.Store not found in `known_store`. Stores need to be explicitly enabled in the configuration file. /var/log/glance/api.log:2014-05-18 12:10:04.541 8459 WARNING glance.store [-] Deprecated: glance.store.rbd.Sto re not found in `known_store`. Stores need to be explicitly enabled in the configuration file. /var/log/glance/api.log:2014-05-18 12:10:04.545 8459 WARNING glance.store.base [-] Failed to configure store c orrectly: Store gridfs could not be configured correctly. Reason: Missing dependencies: pymongo Disabling add method. /var/log/glance/api.log:2014-05-18 12:10:04.546 8459 WARNING glance.store [-] Deprecated: glance.store.gridfs. Store not found in `known_store`. Stores need to be explicitly enabled in the configuration file. /var/log/glance/api.log:2014-05-18 12:10:04.645 8459 WARNING glance.store.base [-] Failed to configure store c orrectly: Store cinder could not be configured correctly. Reason: Cinder storage requires a context. Disabling add method. /var/log/glance/api.log:2014-05-18 12:10:04.646 8459 WARNING glance.store [-] Deprecated: glance.store.cinder. Store not found in `known_store`. Stores need to be explicitly enabled in the configuration file. /var/log/glance/api.log:2014-05-18 12:10:04.669 8459 WARNING glance.store [-] Deprecated: glance.store.swift.S tore not found in `known_store`. Stores need to be explicitly enabled in the configuration file. /var/log/glance/api.log:2014-05-18 12:10:04.719 8459 WARNING glance.store [-] Deprecated: glance.store.vmware_ datastore.Store not found in `known_store`. Stores need to be explicitly enabled in the configuration file. /var/log/glance/api.log:2014-05-18 12:10:04.721 8459 WARNING glance.store [-] Deprecated: glance.store.s3.Stor e not found in `known_store`. Stores need to be explicitly enabled in the configuration file. ※上記ERRORとWARNING以外が出力されていなければ問題ありません。 5–8 イメージの取得と登録 5–8–1 イメージ取得 CirrOSがインストールされたイメージをダウンロード取得します。 controller# wget http://cdn.download.cirros-cloud.net/0.3.2/cirros-0.3.2-x86_64-disk.img 5–8–2 イメージ登録 ダウンロードしたCirrOSのイメージをGlanceに登録します。
  32. 32. OpenStack構築手順書 Icehouse版 日本仮想化技術 32 controller# glance image-create --name="CirrOS 0.3.2" --disk-format=qcow2 --container-format=bare --is-public=true <cirros-0.3.2-x86_64-disk.img +------------------+--------------------------------------+ | Property | Value | +------------------+--------------------------------------+ | checksum | 64d7c1cd2b6f60c92c14662941cb7913 | | container_format | bare | | created_at | 2014-04-28T01:23:57 | | deleted | False | | deleted_at | None | | disk_format | qcow2 | | id | 1cdc90ca-fc4b-4064-8514-21aac275729f | | is_public | True | | min_disk | 0 | | min_ram | 0 | | name | CirrOS 3.2 | | owner | 261110e97ca143c091d8c82c50f5291c | | protected | False | | size | 13167616 | | status | active | | updated_at | 2014-04-28T01:23:58 | | virtual_size | None | +------------------+--------------------------------------+ 5–8–3 イメージ登録確認 controller# glance image-list +--------------------------------------+--------------+-------------+------------------+----------+ | ID | Name | Disk Format | Container Format | Size | +--------------------------------------+--------------+-------------+------------------+----------+ | 1cdc90ca-fc4b-4064-8514-21aac275729f | CirrOS 0.3.2 | qcow2 | bare | 13167616 | +--------------------------------------+--------------+-------------+------------------+----------+ ※登録したCirrOSのイメージが一覧に表示されれば問題ありません。
  33. 33. OpenStack構築手順書 Icehouse版 日本仮想化技術 33 6. Novaのインストール・設定(controllerノード) 6–1 パッケージインストール controller# apt-get install -y nova-api nova-cert nova-conductor nova-consoleauth nova-novncproxy nova-scheduler python-novaclient 6–2 データベースの作成・確認 6–2–1 データベースの作成 MySQLのデータベースにNovaのデータベースを作成します。 controller# mysql -u root -p << EOF CREATE DATABASE nova; GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'password'; EOF Enter password: ← MySQLのrootパスワードpasswordを入力 6–2–2 データベースの作成確認 MySQLにNovaのデータベースが作成されたか確認します。
  34. 34. OpenStack構築手順書 Icehouse版 日本仮想化技術 34 controller# mysql -u nova -p Enter password: ← MySQLのnovaパスワードpasswordを入力 Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 74 Server version: 5.5.37-0ubuntu0.14.04.1 (Ubuntu) Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | nova | +--------------------+ 2 rows in set (0.00 sec) ※ユーザーnovaでログイン可能でデータベースの閲覧が可能なら問題ありません。 6–3 認証情報の設定 以下コマンドで認証情報を設定します。
  35. 35. OpenStack構築手順書 Icehouse版 日本仮想化技術 35 controller# source admin-openrc controller# keystone user-create --name=nova --pass=password --email=nova@example.com +----------+----------------------------------+ | Property | Value | +----------+----------------------------------+ | email | nova@example.com | | enabled | True | | id | 60d2a224d82449c2b087a0f0b4b9e0a3 | | name | nova | | username | nova | +----------+----------------------------------+ controller# keystone user-role-add --user=nova --tenant=service --role=admin controller# keystone service-create --name=nova --type=compute --description="OpenStack Compute" +-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+ | description | OpenStack Compute | | enabled | True | | id | 247c48a462b94870920631626d7f9d23 | | name | nova | | type | compute | +-------------+----------------------------------+ controller# keystone endpoint-create --service=nova --publicurl=http://controller:8774/v2/%(tenant_id)s --internalurl=http://controller:8774/v2/%(tenant_id)s --adminurl=http://controller:8774/v2/%(tenant_id)s +-------------+-----------------------------------------+ | Property | Value | +-------------+-----------------------------------------+ | adminurl | http://controller:8774/v2/%(tenant_id)s | | id | 6a25dd781e5043f7af621eae43a4448d | | internalurl | http://controller:8774/v2/%(tenant_id)s | | publicurl | http://controller:8774/v2/%(tenant_id)s | | region | regionOne | | service_id | 247c48a462b94870920631626d7f9d23 | +-------------+-----------------------------------------+ 6–4 設定変更 /etc/nova/nova.conf
  36. 36. OpenStack構築手順書 Icehouse版 日本仮想化技術 36 [DEFAULT] ※既にある記述はそのままにして、以下の記述を追加します。 rpc_backend = rabbit rabbit_host = controller rabbit_password = password auth_strategy = keystone my_ip = controller vncserver_listen = controller vncserver_proxyclient_address = controller # Networking network_api_class = nova.network.neutronv2.api.API neutron_url = http://controller:9696 neutron_auth_strategy = keystone neutron_admin_tenant_name = service neutron_admin_username = neutron neutron_admin_password = password neutron_admin_auth_url = http://controller:35357/v2.0 linuxnet_interface_driver = nova.network.linux_net.LinuxOVSInterfaceDriver # Security Groups firewall_driver = nova.virt.firewall.NoopFirewallDriver security_group_api = neutron # Metadata neutron_metadata_proxy_shared_secret = password service_neutron_metadata_proxy = true metadata_listen = controller metadata_listen_port = 8775 [keystone_authtoken] auth_uri = http://controller:5000 auth_host = controller auth_port = 35357 auth_protocol = http admin_tenant_name = service admin_user = nova admin_password = password [database] connection = mysql://nova:password@controller/nova
  37. 37. OpenStack構築手順書 Icehouse版 日本仮想化技術 37 6–5 使用しないデータベースファイル削除 controller# rm /var/lib/nova/nova.sqlite 6–6 データベースに表を作成 controller# nova-manage db sync 6–7 サービス再起動 controller# rm /var/log/nova/* controller# service nova-api restart && service nova-cert restart && service nova-consoleauth restart && service nova-scheduler restart && service nova-conductor restart && service nova-novncproxy restart 6–8 ログ確認 controller# grep "ERROR|WARNING" /var/log/nova/* ※特に何も表示されなければ問題ありません。 6–9 Glanceとの通信確認 NovaのコマンドラインインターフェースでGlanceと通信してGlanceと相互に通信できているかを確認します。 controller# nova image-list +--------------------------------------+--------------+--------+--------+ | ID | Name | Status | Server | +--------------------------------------+--------------+--------+--------+ | 1cdc90ca-fc4b-4064-8514-21aac275729f | CirrOS 0.3.2 | ACTIVE | | +--------------------------------------+--------------+--------+--------+ ※glanceで登録したCirrOSイメージが表示できていれば問題ありません。
  38. 38. OpenStack構築手順書 Icehouse版 日本仮想化技術 38 7. Novaのインストール・設定(compute1ノード) 7–1 パッケージインストール compute1# apt-get install -y nova-compute-kvm python-guestfs 7–2 カーネル設定変更 デフォルトのカーネルパーミッションでは、仮想化機能を使用する場合にユーザーがカーネルを読み込めないためカーネルの パーミッションを変更します。 7–2–1 設定変更 compute1# dpkg-statoverride --update --add root root 0644 /boot/vmlinuz-$(uname -r) 7–2–2 設定変更ファイル作成・設定 上記のみではcomputeノード再起動時にカーネルのパーミッション変更が必要となるので、カーネル設定変更ファイル作成を 作成してノード起動時に変更を読み込むようにします。 /etc/kernel/postinst.d/statoverride #!/bin/sh version="$1" # passing the kernel version is required [ -z "${version}" ] && exit 0 dpkg-statoverride --update --add root root 0644 /boot/vmlinuz-${version} 実行権限を付与します。 compute1# chmod +x /etc/kernel/postinst.d/statoverride 7–3 設定の変更 /etc/nova/nova.conf
  39. 39. OpenStack構築手順書 Icehouse版 日本仮想化技術 39 [DEFAULT] ※既にある記述はそのままにして、以下の記述を追加します。 rpc_backend = rabbit rabbit_host = controller rabbit_password = password auth_strategy = keystone my_ip = compute1 vnc_enabled = True vncserver_listen = 0.0.0.0 vncserver_proxyclient_address = compute1 novncproxy_base_url = http://controller:6080/vnc_auto.html glance_host = controller # Networking network_api_class = nova.network.neutronv2.api.API neutron_url = http://controller:9696 neutron_auth_strategy = keystone neutron_admin_tenant_name = service neutron_admin_username = neutron neutron_admin_password = password neutron_admin_auth_url = http://controller:35357/v2.0 linuxnet_interface_driver = nova.network.linux_net.LinuxOVSInterfaceDriver # Security Groups firewall_driver = nova.virt.firewall.NoopFirewallDriver security_group_api = neutron [keystone_authtoken] auth_uri = http://controller:5000 auth_host = controller auth_port = 35357 auth_protocol = http admin_tenant_name = service admin_user = nova admin_password = password [database] connection = mysql://nova:password@controller/nova ※日本語キーボードを使用する場合は[DEFAULT]に以下を追加します。
  40. 40. OpenStack構築手順書 Icehouse版 日本仮想化技術 40 vnc_keymap = ja 7–4 使用しないデータベースファイル削除 compute1# rm /var/lib/nova/nova.sqlite 7–5 サービス再起動 compute1# rm /var/log/nova/* compute1# service nova-compute restart 7–6 ログ確認 compute1# grep "ERROR|WARNING" /var/log/nova/* ※何も表示されなければ問題ありません。 7–7 controllerノードとの疎通確認 疎通確認はcontrollerノード上にて、admin環境変数設定ファイルを読み込んで行います。 controller# source admin-openrc 7–7–1 ホストリストの確認 controllerノードとcomputeノードが相互に接続できているか確認します。 controller# nova host-list +------------+-------------+----------+ | host_name | service | zone | +------------+-------------+----------+ | controller | cert | internal | | controller | consoleauth | internal | | controller | scheduler | internal | | controller | conductor | internal | | compute1 | compute | nova | +------------+-------------+----------+ ※host_name一覧にcompute1が表示されていれば問題ありません。 7–7–2 ハイパーバイザの確認 controllerノードよりcomputeノードのハイパーバイザが取得可能か確認します。
  41. 41. OpenStack構築手順書 Icehouse版 日本仮想化技術 41 controller# nova hypervisor-list +----+---------------------+ | ID | Hypervisor hostname | +----+---------------------+ | 1 | compute1 | +----+---------------------+ ※Hypervisor hostname一覧にcompute1が表示されていれば問題ありません。
  42. 42. OpenStack構築手順書 Icehouse版 日本仮想化技術 42 8. Neutronのインストール・設定(controllerノード) 8–1 パッケージインストール controller# apt-get install -y neutron-server neutron-plugin-ml2 8–2 データベース作成・確認 8–2–1 データベース作成 MySQLのデータベースにNeutronのデータベースを作成します。 controller# mysql -u root -p << EOF CREATE DATABASE neutron; GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' IDENTIFIED BY 'password'; EOF Enter password: ← MySQLのrootパスワードpasswordを入力 8–2–2 データベースの確認 MySQLにNeutronのデータベースが登録されたか確認します。
  43. 43. OpenStack構築手順書 Icehouse版 日本仮想化技術 43 controller# mysql -u neutron -p Enter password: ← MySQLのneutronパスワードpasswordを入力 Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 75 Server version: 5.5.37-0ubuntu0.14.04.1 (Ubuntu) Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | neutron | +--------------------+ 2 rows in set (0.00 sec) ※ユーザーneutronでログイン可能でデータベースが閲覧可能なら問題ありません。 8–3 認証情報の設定 以下コマンドで認証情報を設定します。
  44. 44. OpenStack構築手順書 Icehouse版 日本仮想化技術 44 controller# source admin-openrc controller# keystone user-create --name neutron --pass password --email neutron@example.com +----------+----------------------------------+ | Property | Value | +----------+----------------------------------+ | email | neutron@example.com | | enabled | True | | id | 23f88938cbd94deb95b4c2c3caec2c60 | | name | neutron | | username | neutron | +----------+----------------------------------+ controller# keystone user-role-add --user neutron --tenant service --role admin controller# keystone service-create --name neutron --type network --description "OpenStack Networking" +-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+ | description | OpenStack Networking | | enabled | True | | id | 6c36ba679b16402aaed73c0e032f0d02 | | name | neutron | | type | network | +-------------+----------------------------------+ controller# keystone endpoint-create --service=neutron --publicurl http://controller:9696 --adminurl http://controller:9696 --internalurl http://controller:9696 +-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+ | adminurl | http://controller:9696 | | id | f9c6285e5242428ba5fb80a2b88535fb | | internalurl | http://controller:9696 | | publicurl | http://controller:9696 | | region | regionOne | | service_id | 6c36ba679b16402aaed73c0e032f0d02 | +-------------+----------------------------------+
  45. 45. OpenStack構築手順書 Icehouse版 日本仮想化技術 45 8–4 設定の変更 設定変更時にSERVICE_TENANT_IDを求められるファイルがあるので予めSERVICE_TENANT_IDを取得します。 controller# source admin-openrc controller# keystone tenant-get serivce +-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+ | description | Service Tenant | | enabled | True | | id | f727b5ec2ceb4d71bad86dfc414449bf | | name | service | +-------------+----------------------------------+ /etc/neutron/neutron.conf
  46. 46. OpenStack構築手順書 Icehouse版 日本仮想化技術 46 [DEFAULT] #core_plugin = neutron.plugins.ml2.plugin.Ml2Plugin ← 既存設定をコメントアウト core_plugin = ml2 ← 追記 service_plugins = router ← 追記 auth_strategy = keystone ← 追記 allow_overlapping_ips = True ← 追記 rpc_backend = neutron.openstack.common.rpc.impl_kombu ← 追記 rabbit_host = controller ← 追記 rabbit_password = password ← 追記 notify_nova_on_port_status_changes = True ← 追記 notify_nova_on_port_data_changes = True ← 追記 nova_url = http://controller:8774/v2 ← 追記 nova_admin_username = nova ← 追記 nova_admin_tenant_id = SERVICE_TENANT_ID ← 追記 ※SERVICE_TENANT_IDは先程の作業で表示されたIDを使用します。 nova_admin_password = password ← 追記 nova_admin_auth_url = http://controller:35357/v2.0 ← 追記 [keystone_authtoken] #auth_host = 127.0.0.1 ← 既存設定をコメントアウト auth_uri = http://controller:5000 ← 追記 auth_host = controller ← 追記 auth_protocol = http auth_port = 35357 #admin_tenant_name = %SERVICE_TENANT_NAME% ← 既存設定をコメントアウト #admin_user = %SERVICE_USER% ← 既存設定をコメントアウト #admin_password = %SERVICE_PASSWORD% ← 既存設定をコメントアウト admin_tenant_name = service ← 追記 admin_user = neutron ← 追記 admin_password = password ← 追記
  47. 47. OpenStack構築手順書 Icehouse版 日本仮想化技術 47 [database] #connection = sqlite:////var/lib/neutron/neutron.sqlite ← 既存設定をコメントアウト connection = mysql://neutron:password@controller/neutron ← 追記 /etc/neutron/plugins/ml2/ml2_conf.ini [ml2] type_drivers = gre ← 追記 tenant_network_types = gre ← 追記 mechanism_drivers = openvswitch ← 追記 [ml2_type_gre] tunnel_id_ranges = 1:1000 ← 追記 [securitygroup] firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver ← 追記 enable_security_group = True ← 追記 8–5 使用しないデータベースファイル削除 controller# rm /var/lib/neutron/neutron.sqlite 8–6 サービス再起動 controller# rm /var/log/neutron/* controller# service nova-api restart && service nova-scheduler restart && service nova-conductor restart && service neutron-server restart
  48. 48. OpenStack構築手順書 Icehouse版 日本仮想化技術 48 8–7 ログ確認 controller# grep "ERROR|WARNING" /var/log/neutron/* 2014-05-16 18:41:24.106 2331 ERROR neutron.openstack.common.rpc.common [-] AMQP server on localhost:5672 is un reachable: Socket closed. Trying again in 30 seconds. 2014-05-16 18:41:34.119 2708 WARNING neutron.openstack.common.db.sqlalchemy.session [-] This application has n ot enabled MySQL traditional mode, which means silent data corruption may occur. Please encourage the applicat ion developers to enable this mode. 2014-05-16 18:41:36.423 2708 WARNING neutron.api.extensions [-] Extension fwaas not supported by any of loaded plugins 2014-05-16 18:41:36.429 2708 WARNING neutron.api.extensions [-] Extension flavor not supported by any of loade d plugins 2014-05-16 18:41:36.484 2708 WARNING neutron.api.extensions [-] Extension lbaas_agent_scheduler not supported by any of loaded plugins 2014-05-16 18:41:36.502 2708 WARNING neutron.api.extensions [-] Extension lbaas not supported by any of loaded plugins 2014-05-16 18:41:36.528 2708 WARNING neutron.api.extensions [-] Extension metering not supported by any of loa ded plugins 2014-05-16 18:41:36.558 2708 WARNING neutron.api.extensions [-] Extension port-security not supported by any of loaded plugins 2014-05-16 18:41:36.593 2708 WARNING neutron.api.extensions [-] Extension routed-service-insertion not support ed by any of loaded plugins 2014-05-16 18:41:36.601 2708 WARNING neutron.api.extensions [-] Extension router-service-type not supported by any of loaded plugins 2014-05-16 18:41:36.630 2708 WARNING neutron.api.extensions [-] Extension service-type not supported by any of loaded plugins 2014-05-16 18:41:36.653 2708 WARNING neutron.api.extensions [-] Extension vpnaas not supported by any of loade d plugins ※上記ERRORとWARNING以外が出力されなければ問題ありません。
  49. 49. OpenStack構築手順書 Icehouse版 日本仮想化技術 49 9. Neutronのインストール・設定(networkノード) 9–1 パッケージインストール network# apt-get install -y neutron-plugin-ml2 neutron-plugin-openvswitch-agent openvswitch-datapath-dkms neutron-l3-agent neutron-dhcp-agent 9–2 設定の変更 /etc/neutron/neutron.conf [DEFAULT] #core_plugin = neutron.plugins.ml2.plugin.Ml2Plugin ← 既存設定をコメントアウト core_plugin = ml2 ← 追記 service_plugins = router ← 追記 auth_strategy = keystone ← 追記 allow_overlapping_ips = True ← 追記 rpc_backend = neutron.openstack.common.rpc.impl_kombu ← 追記 rabbit_host = controller ← 追記 rabbit_password = password ← 追記 [keystone_authtoken] #auth_host = 127.0.0.1 ← 既存設定をコメントアウト auth_uri = http://controller:5000 ← 追記 auth_host = controller ← 追記 auth_protocol = http auth_port = 35357 #admin_tenant_name = %SERVICE_TENANT_NAME% ← 既存設定をコメントアウト #admin_user = %SERVICE_USER% ← 既存設定をコメントアウト #admin_password = %SERVICE_PASSWORD% ← 既存設定をコメントアウト admin_tenant_name = service ← 追記 admin_user = neutron ← 追記 admin_password = password ← 追記 [database] #connection = sqlite:////var/lib/neutron/neutron.sqlite ← 既存設定をコメントアウト connection = mysql://neutron:password@controller/neutron ← 追記 /etc/neutron/l3_agent.ini
  50. 50. OpenStack構築手順書 Icehouse版 日本仮想化技術 50 [DEFAULT] interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver ← 追記 use_namespaces = True ← 追記 /etc/neutron/dhcp_agent.ini [DEFAULT] interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver ← 追記 dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq ← 追記 use_namespaces = True ← 追記 /etc/neutron/metadata_agent.ini [DEFAULT] #auth_url = http://localhost:5000/v2.0 ← 既存設定をコメントアウト auth_url = http://controller:5000/v2.0 ← 追記 auth_region = RegionOne #admin_tenant_name = %SERVICE_TENANT_NAME% ← 既存設定をコメントアウト #admin_user = %SERVICE_USER% ← 既存設定をコメントアウト #admin_password = %SERVICE_PASSWORD% ← 既存設定をコメントアウト admin_tenant_name = service ← 追記 admin_user = neutron ← 追記 admin_password = password ← 追記 # nova_metadata_ip = 127.0.0.1 ← 既存設定をコメントアウト nova_metadata_ip = controller ← 追記 # metadata_proxy_shared_secret = metadata_proxy_shared_secret = password ← 追記 /etc/neutron/plugins/ml2/ml2_conf.ini
  51. 51. OpenStack構築手順書 Icehouse版 日本仮想化技術 51 [ml2] type_drivers = gre ← 追記 tenant_network_types = gre ← 追記 mechanism_drivers = openvswitch ← 追記 [ml2_type_gre] tunnel_id_ranges = 1:1000 ← 追記 [ovs] ← 追記 local_ip = 10.0.0.9 ← 追記 tunnel_type = gre ← 追記 enable_tunneling = True ← 追記 [securitygroup] firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver ← 追記 # enable_security_group = True enable_security_group = True ← 追記 9–3 Open vSwitchサービス再起動 network# service openvswitch-switch restart 9–4 ブリッジデバイス設定 内部通信用と外部通信用のブリッジを作成して外部通信用ブリッジに共有ネットワークデバイスを接続します。 network# ovs-vsctl add-br br-int network# ovs-vsctl add-br br-ex network# ovs-vsctl add-port br-ex eth1 9–5 ブリッジデバイス設定確認 ブリッジの作成・設定を確認します。 9–5–1 ブリッジの確認 network# ovs-vsctl list-br br-ex br-int br-tun ※add-brしたブリッジが表示されていれば問題ありません。 9–5–2 外部接続用ブリッジと共有ネットワークデバイスの接続確認
  52. 52. OpenStack構築手順書 Icehouse版 日本仮想化技術 52 # ovs-vsctl list-ports br-ex eth1 qg-26005736-4d ※add-port で設定したネットワークデバイスが表示されていれば問題ありません。
  53. 53. OpenStack構築手順書 Icehouse版 日本仮想化技術 53 9–6 ネットワークインタフェースの設定変更 /etc/network/interfaces # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface #auto eth0 #iface eth0 inet dhcp auto eth0 iface eth0 inet static address 192.168.0.9 netmask 255.255.255.0 auto eth1 iface eth1 inet manual ← 既存設定を変更 up ip address add 0/0 dev $IFACE ← 既存設定を変更 up ip link set $IFACE up ← 既存設定を変更 down ip link set $IFACE down ← 既存設定を変更 auto br-ex ← 追記 iface br-ex inet static ← 追記 address 10.0.0.9 ← 追記 netmask 255.255.255.0 ← 追記 gateway 10.0.0.1 ← 追記 dns-nameservers 10.0.0.1 ← 追記 9–7 networkノード再起動 インタフェース設定変更を適用するために、システムを再起動します。 network# reboot 9–8 ブリッジ設定確認 各種ブリッジが正常に設定されていることを確認します。 network# ifconfig
  54. 54. OpenStack構築手順書 Icehouse版 日本仮想化技術 54 br-ex Link encap:Ethernet HWaddr 00:1c:42:29:b3:bd inet addr:10.0.0.9 Bcast:10.0.0.255 Mask:255.255.255.0 inet6 addr: fe80::a840:fbff:fe7d:dd6e/64 Scope:Link UP BROADCAST RUNNING MTU:1500 Metric:1 RX packets:2148 errors:0 dropped:0 overruns:0 frame:0 TX packets:2956 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:257185 (257.1 KB) TX bytes:654268 (654.2 KB) br-int Link encap:Ethernet HWaddr ea:04:ce:9b:58:4b inet6 addr: fe80::b84c:fbff:fe1a:d627/64 Scope:Link UP BROADCAST RUNNING MTU:1500 Metric:1 RX packets:56 errors:0 dropped:0 overruns:0 frame:0 TX packets:8 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:4978 (4.9 KB) TX bytes:648 (648.0 B) br-tun Link encap:Ethernet HWaddr 2e:8d:24:75:de:47 inet6 addr: fe80::f0fb:45ff:fee5:1133/64 Scope:Link UP BROADCAST RUNNING MTU:1500 Metric:1 RX packets:1 errors:0 dropped:0 overruns:0 frame:0 TX packets:8 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:90 (90.0 B) TX bytes:648 (648.0 B) eth0 Link encap:Ethernet HWaddr 00:1c:42:5c:58:ba inet addr:192.168.0.9 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::21c:42ff:fe5c:58ba/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:283 errors:0 dropped:0 overruns:0 frame:0 TX packets:239 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:41011 (41.0 KB) TX bytes:37254 (37.2 KB) eth1 Link encap:Ethernet HWaddr 00:1c:42:29:b3:bd inet6 addr: fe80::21c:42ff:fe29:b3bd/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:25542 errors:0 dropped:0 overruns:0 frame:0 TX packets:3083 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:5297181 (5.2 MB) TX bytes:668414 (668.4 KB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0
  55. 55. OpenStack構築手順書 Icehouse版 日本仮想化技術 55 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:6 errors:0 dropped:0 overruns:0 frame:0 TX packets:6 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:3456 (3.4 KB) TX bytes:3456 (3.4 KB) 9–9 サービス再起動 network# rm /var/log/neutron/* network# service openvswitch-switch restart && service neutron-plugin-openvswitch-agent restart && service neutron-l3-agent restart && service neutron-dhcp-agent restart && service neutron-metadata-agent restart 9–10 ログ確認 network# grep "ERROR|WARNING" /var/log/neutron/* /var/log/neutron/openvswitch-agent.log:2014-05-16 19:33:14.963 1523 ERROR neutron.agent.linux.ovsdb_monitor [- ] Error received from ovsdb monitor: ovsdb-client: unix:/var/run/openvswitch/db.sock: receive failed (End of f ile) /var/log/neutron/openvswitch-agent.log:2014-05-16 19:33:15.455 1523 ERROR neutron.agent.linux.ovs_lib [-] Unab le to execute ['ovs-vsctl', '--timeout=10', 'list-ports', 'br-int']. Exception: /var/log/neutron/openvswitch-agent.log:2014-05-16 19:33:15.456 1523 ERROR neutron.plugins.openvswitch.agent.ov s_neutron_agent [-] Error while processing VIF ports ※上記ERRORとWARNING以外が出力されなければ問題ありません。
  56. 56. OpenStack構築手順書 Icehouse版 日本仮想化技術 56 10. Neutornのインストール・設定(compute1ノード) 10–1 パッケージインストール compute1# apt-get install -y neutron-common neutron-plugin-ml2 neutron-plugin-openvswitch-agent openvswitch-datapath-dkms 10–2 設定の変更 /etc/neutron/neutron.conf [DEFAULT] #core_plugin = neutron.plugins.ml2.plugin.Ml2Plugin ← 既存設定をコメントアウト core_plugin = ml2 ← 追記 service_plugins = router ← 追記 auth_strategy = keystone ← 追記 allow_overlapping_ips = True ← 追記 # rpc_backend = neutron.openstack.common.rpc.impl_kombu rpc_backend = neutron.openstack.common.rpc.impl_kombu ← 追記 rabbit_host = controller ← 追記 rabbit_password = password ← 追記 [keystone_authtoken] #auth_host = 127.0.0.1 ← 既存設定をコメントアウト auth_uri = http://controller:5000 ← 追記 auth_host = controller ← 追記 auth_protocol = http auth_port = 35357 #admin_tenant_name = %SERVICE_TENANT_NAME% ← 既存設定をコメントアウト #admin_user = %SERVICE_USER% ← 既存設定をコメントアウト #admin_password = %SERVICE_PASSWORD% ← 既存設定をコメントアウト admin_tenant_name = service ← 追記 admin_user = neutron ← 追記 admin_password = password ← 追記 [database] #connection = sqlite:////var/lib/neutron/neutron.sqlite ← 既存設定をコメントアウト connection = mysql://neutron:password@controller/neutron ← 追記 /etc/neutron/plugins/ml2/ml2_conf.ini
  57. 57. OpenStack構築手順書 Icehouse版 日本仮想化技術 57 [ml2] type_drivers = gre ← 追記 tenant_network_types = gre ← 追記 mechanism_drivers = openvswitch ← 追記 [ml2_type_gre] tunnel_id_ranges = 1:1000 ← 追記 [ovs] ← 追記 local_ip = 10.0.0.11 ← 追記 tunnel_type = gre ← 追記 enable_tunneling = True ← 追記 [securitygroup] firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver ← 追記 enable_security_group = True ← 追記 10–3 Open vSwitchサービス再起動 compute1# service openvswitch-switch restart 10–4 ブリッジ作成 内部通信用のブリッジを作成します。 compute1# ovs-vsctl add-br br-int 10–5 サービス再起動 compute1# rm /var/log/neutron/* compute1# service nova-compute restart && service neutron-plugin-openvswitch-agent restart 10–6 ログ確認 compute1# grep "ERROR|WARNING" /var/log/neutron/* ※何も表示されなければ問題ありません。
  58. 58. OpenStack構築手順書 Icehouse版 日本仮想化技術 58 11. 仮想ネットワーク設定(controllerノード) 11–1 外部接続ネットワークの設定 11–1–1 admin環境変数読み込み 外部接続用ネットワーク作成するためにadmin環境変数を読み込みます。 controller# source admin-openrc 11–1–2 外部ネットワーク作成 ext-netという名前で外部用ネットワークを作成します。 controller# neutron net-create ext-net --shared --router:external=True Created a new network: +---------------------------+--------------------------------------+ | Field | Value | +---------------------------+--------------------------------------+ | admin_state_up | True | | id | 8cbfd14f-72bb-4e6d-a9a6-f1312d641cd4 | | name | ext-net | | provider:network_type | gre | | provider:physical_network | | | provider:segmentation_id | 1 | | router:external | True | | shared | True | | status | ACTIVE | | subnets | | | tenant_id | 07e06d1d7f35430e8906e6fb5badd893 | +---------------------------+--------------------------------------+
  59. 59. OpenStack構築手順書 Icehouse版 日本仮想化技術 59 11–1–3 外部ネットワーク用サブネット作成 ext-subnetという名前で外部ネットワーク用サブネットを作成します。 controller# neutron subnet-create ext-net --name ext-subnet --allocation-pool start=10.0.0.200,end=10.0.0.250 --disable-dhcp --gateway 10.0.0.1 10.0.0.0/24 Created a new subnet: +------------------+----------------------------------------------+ | Field | Value | +------------------+----------------------------------------------+ | allocation_pools | {"start": "10.0.0.200", "end": "10.0.0.250"} | | cidr | 10.0.0.0/24 | | dns_nameservers | | | enable_dhcp | False | | gateway_ip | 10.0.0.1 | | host_routes | | | id | 7c457880-29f9-4a85-8714-1a5762b3c932 | | ip_version | 4 | | name | ext-subnet | | network_id | 8cbfd14f-72bb-4e6d-a9a6-f1312d641cd4 | | tenant_id | 07e06d1d7f35430e8906e6fb5badd893 | +------------------+----------------------------------------------+ 11–2 インスタンス用ネットワーク設定 11–2–1 demo環境変数読み込み インスタンス用ネットワーク作成するためにdemo環境変数読み込みます。 controller# source demo-openrc 11–2–2 インスタンス用ネットワーク作成 demo-netという名前でインスタンス用ネットワークを作成します。
  60. 60. OpenStack構築手順書 Icehouse版 日本仮想化技術 60 controller# neutron net-create demo-net Created a new network: +----------------+--------------------------------------+ | Field | Value | +----------------+--------------------------------------+ | admin_state_up | True | | id | 71059c78-fd2c-4e52-a4b9-98776be0ba28 | | name | demo-net | | shared | False | | status | ACTIVE | | subnets | | | tenant_id | 6d19304a59b3456bbe2552a9080d1301 | +----------------+--------------------------------------+ 11–2–3 インスタンス用ネットワークサブネット作成 demo-subnetという名前でインスタンス用ネットワークサブネットを作成します。 controller# neutron subnet-create demo-net --name demo-subnet --gateway 192.168.0.1 192.168.0.0/24 Created a new subnet: +------------------+--------------------------------------------------+ | Field | Value | +------------------+--------------------------------------------------+ | allocation_pools | {"start": "192.168.0.2", "end": "192.168.0.254"} | | cidr | 192.168.0.0/24 | | dns_nameservers | | | enable_dhcp | True | | gateway_ip | 192.168.0.1 | | host_routes | | | id | 6cf9c7f6-2105-4c2a-9fac-0b1df83f774d | | ip_version | 4 | | name | demo-subnet | | network_id | 71059c78-fd2c-4e52-a4b9-98776be0ba28 | | tenant_id | 6d19304a59b3456bbe2552a9080d1301 | +------------------+--------------------------------------------------+ 11–3 仮想ネットワークルーター設定 仮想ネットワークルーターを作成して外部接続用ネットワークとインスタンス用ネットワークをルーターに接続し、双方でデ ータのやり取りを行えるようにします。 11–3–1 demo-router作成 仮想ネットワークルータを作成します。
  61. 61. OpenStack構築手順書 Icehouse版 日本仮想化技術 61 controller# neutron router-create demo-router Created a new router: +-----------------------+--------------------------------------+ | Field | Value | +-----------------------+--------------------------------------+ | admin_state_up | True | | external_gateway_info | | | id | d1a10de8-37e2-4966-a84d-caff3e6b0e1f | | name | demo-router | | status | ACTIVE | | tenant_id | 6d19304a59b3456bbe2552a9080d1301 | +-----------------------+--------------------------------------+ 11–3–2 demo-routerにsubnet追加 仮想ネットワークルーターにインスタンス用ネットワークを接続します。 controller# neutron router-interface-add demo-router demo-subnet Added interface fc83f7f5-6da5-4607-b9f8-34d0004dfc3e to router demo-router. 11–3–3 demo-routerにgateway追加 仮想ネットワークルーターに外部ネットワークを接続します。 controller# neutron router-gateway-set demo-router ext-net Set gateway for router demo-router
  62. 62. OpenStack構築手順書 Icehouse版 日本仮想化技術 62 12. 仮想ネットワーク設定確認(networkノード) 12–1 仮想ネットワークルーターの確認 以下コマンドで仮想ネットワークルーターが作成されているか確認します。 network# ip netns qdhcp-ed07c38c-8609-43d8-ae02-582f9f202a3e qrouter-7c1ca8eb-eaa0-4a68-843d-daca30824693 ※qrouter~~ という名前の行が表示されていれば問題ありません。 12–2 仮想ルーターのネームスペースのIPアドレスを確認 仮想ルーターと外部用ネットワークの接続を確認します。 network# ip netns exec qrouter-7c1ca8eb-eaa0-4a68-843d-daca30824693 ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 13: qr-65249869-77: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default link/ether fa:16:3e:d0:df:2c brd ff:ff:ff:ff:ff:ff inet 192.168.0.1/24 brd 192.168.0.255 scope global qr-65249869-77 valid_lft forever preferred_lft forever inet6 fe80::f816:3eff:fed0:df2c/64 scope link valid_lft forever preferred_lft forever 14: qg-bd7c5797-3f: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default link/ether fa:16:3e:35:80:8f brd ff:ff:ff:ff:ff:ff inet 10.0.0.200/24 brd 10.0.0.255 scope global qg-bd7c5797-3f valid_lft forever preferred_lft forever inet6 fe80::f816:3eff:fe35:808f/64 scope link valid_lft forever preferred_lft forever ※外部アドレス(この環境では10.0.0.0/24)のアドレスを確認します。 12–3 仮想ゲートウェイの疎通確認 仮想ルーターと通信が行えるかを確認します。
  63. 63. OpenStack構築手順書 Icehouse版 日本仮想化技術 63 network# ping 10.0.0.200 PING 10.0.0.200 (10.0.0.200) 56(84) bytes of data. 64 bytes from 10.0.0.200: icmp_seq=1 ttl=64 time=1.17 ms 64 bytes from 10.0.0.200: icmp_seq=2 ttl=64 time=0.074 ms 64 bytes from 10.0.0.200: icmp_seq=3 ttl=64 time=0.061 ms 64 bytes from 10.0.0.200: icmp_seq=4 ttl=64 time=0.076 ms ※応答が返ってくるなら問題ありません、networkノード以外のノードからも通信を確認してみてもよいです。
  64. 64. OpenStack構築手順書 Icehouse版 日本仮想化技術 64 13. Cinderインストール(controllerノード) 13–1 パッケージインストール controller# apt-get install -y cinder-common cinder-api cinder-scheduler cinder-volume 13–2 データベース作成・確認 13–2–1 データベース作成 MySQLのデータベースにCinderのデータベースを作成します。 controller# mysql -u root -p <<EOF CREATE DATABASE cinder; GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY 'password'; EOF Enter password: ← MySQLのrootパスワードpasswordを入力 13–2–2 データベースの確認 MySQLにCinderのデータベースが登録されたか確認します。
  65. 65. OpenStack構築手順書 Icehouse版 日本仮想化技術 65 controller# mysql -u cinder -p Enter password: ← MySQLのcinderパスワードpasswordを入力 Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 50 Server version: 5.5.37-0ubuntu0.14.04.1 (Ubuntu) Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | cinder | +--------------------+ 2 rows in set (0.00 sec) ※ユーザーcinderでログイン可能でデータベースの閲覧が可能なら問題ありません。 13–3 認証情報の設定 以下コマンドで認証情報を設定します。 controller# source admin-openrc controller# keystone user-create --name=cinder --pass=password --email=cinder@example.com +----------+----------------------------------+ | Property | Value | +----------+----------------------------------+ | email | cinder@example.com | | enabled | True | | id | 2e391db9f2004b5ab0712c67ae6c9bcd | | name | cinder | | username | cinder | +----------+----------------------------------+ controller# keystone user-role-add --user=cinder --tenant=service --role=admin controller# keystone service-create --name=cinder --type=volume --description="OpenStack Block Storage" +-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+
  66. 66. OpenStack構築手順書 Icehouse版 日本仮想化技術 66 | description | OpenStack Block Storage | | enabled | True | | id | 3830cd8b2c614414903b0bc31ed9e1ca | | name | cinder | | type | volume | +-------------+----------------------------------+ controller# keystone service-create --name=cinderv2 --type=volumev2 --description="OpenStack Block Storage v2" +-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+ | description | OpenStack Block Storage v2 | | enabled | True | | id | cb2b03621220473c9bcbe194dfd55695 | | name | cinderv2 | | type | volumev2 | +-------------+----------------------------------+ controller# keystone endpoint-create --service=cinder --publicurl=http://controller:8776/v1/%(tenant_id)s --internalurl=http://controller:8776/v1/%(tenant_id)s --adminurl=http://controller:8776/v1/%(tenant_id)s +-------------+-----------------------------------------+ | Property | Value | +-------------+-----------------------------------------+ | adminurl | http://controller:8776/v1/%(tenant_id)s | | id | 44b37c343f6c4c52843ce3ca6c7fbad3 | | internalurl | http://controller:8776/v1/%(tenant_id)s | | publicurl | http://controller:8776/v1/%(tenant_id)s | | region | regionOne | | service_id | 3830cd8b2c614414903b0bc31ed9e1ca | +-------------+-----------------------------------------+ controller# keystone endpoint-create --service=cinderv2 --publicurl=http://controller:8776/v2/%(tenant_id)s --internalurl=http://controller:8776/v2/%(tenant_id)s --adminurl=http://controller:8776/v2/%(tenant_id)s +-------------+-----------------------------------------+ | Property | Value | +-------------+-----------------------------------------+ | adminurl | http://controller:8776/v2/%(tenant_id)s | | id | 0eda32a224b74b958be4dc551dfe4aaa | | internalurl | http://controller:8776/v2/%(tenant_id)s | | publicurl | http://controller:8776/v2/%(tenant_id)s | | region | regionOne |
  67. 67. OpenStack構築手順書 Icehouse版 日本仮想化技術 67 | service_id | cb2b03621220473c9bcbe194dfd55695 | +-------------+-----------------------------------------+ 13–4 設定の変更 /etc/cinder/cinder.conf ※以下の記述を追加します。 [DEFAULT] rpc_backend = cinder.openstack.common.rpc.impl_kombu rabbit_host = controller rabbit_port = 5672 rabbit_userid = guest rabbit_password = password glance_host = controller [keystone_authtoken] auth_uri = http://controller:5000 auth_host = controller auth_port = 35357 auth_protocol = http admin_tenant_name = service admin_user = cinder admin_password = password [database] connection = mysql://cinder:password@controller/cinder 13–5 使用しないデータベースファイル削除 controller# rm /var/lib/cinder/cinder.sqlite 13–6 データベースに表を作成 controller# cinder-manage db sync 13–7 サービス再起動 controller# rm /var/log/cinder/* controller# service cinder-scheduler restart && service cinder-api restart 13–8 ログ確認
  68. 68. OpenStack構築手順書 Icehouse版 日本仮想化技術 68 controller# grep "ERROR|WARNING" /var/log/cinder/* /var/log/cinder/cinder-api.log:2014-05-16 16:56:57.401 2641 WARNING cinder.service [-] Value of config option osapi_volume_workers must be integer greater than 1. Input value ignored. /var/log/cinder/cinder-scheduler.log:2014-05-16 16:56:37.733 2287 ERROR oslo.messaging._drivers.impl_rabbit [r eq-b051f972-4128-49bb-a820-b0718340f8fd - - - - -] AMQP server on localhost:5672 is unreachable: Socket closed . Trying again in 30 seconds. /var/log/cinder/cinder-volume.log:2014-05-16 16:56:38.409 2390 ERROR oslo.messaging._drivers.impl_rabbit [-] A MQP server on localhost:5672 is unreachable: Socket closed. Trying again in 30 seconds. /var/log/cinder/cinder-volume.log:2014-05-16 16:57:12.442 2390 ERROR oslo.messaging._drivers.impl_rabbit [-] A MQP server on localhost:5672 is unreachable: Socket closed. Trying again in 30 seconds. /var/log/cinder/cinder-volume.log:2014-05-16 16:57:46.479 2390 ERROR oslo.messaging._drivers.impl_rabbit [-] A MQP server on localhost:5672 is unreachable: Socket closed. Trying again in 30 seconds. ※上記ERRORとWARNINGが出力されなければ問題ありません。 13–9 イメージ格納用ボリューム作成 イメージ格納用ボリュームを設定するために物理ボリュームの設定、ボリューム作成を行います。 13–9–1 物理ボリューム設定 以下コマンドで物理ボリュームを設定します。 controller# pvcreate /dev/sdb Physical volume "/dev/sdb" successfully created controller# vgcreate cinder-volumes /dev/sdb Volume group "cinder-volumes" successfully created 13–9–2 サービス再起動 controller# service cinder-volume restart && service tgt restart 13–9–3 admin環境変数設定ファイル読み込み インスタンス格納用ボリュームを作成するためにadmin環境変数を読み込みます。 controller# source admin-openrc 13–9–4 ボリューム作成 以下コマンドでインスタンス格納用ボリュームを作成します。
  69. 69. OpenStack構築手順書 Icehouse版 日本仮想化技術 69 controller# cinder create --display-name testvolume01 1 +---------------------+--------------------------------------+ | Property | Value | +---------------------+--------------------------------------+ | attachments | [] | | availability_zone | nova | | bootable | false | | created_at | 2014-04-30T10:57:30.357692 | | display_description | None | | display_name | testvolume01 | | encrypted | False | | id | 2bd90ca8-0062-4b31-b3b2-7fd6fdc8da97 | | metadata | {} | | size | 1 | | snapshot_id | None | | source_volid | None | | status | creating | | volume_type | None | +---------------------+--------------------------------------+ 13–9–5 作成ボリュームの確認 以下コマンドで作成ボリュームを確認します。 controller# cinder list +--------------------------------------+-----------+--------------+------+-------------+----------+----------- --+ | ID | Status | Display Name | Size | Volume Type | Bootable | Attached t o | +--------------------------------------+-----------+--------------+------+-------------+----------+----------- --+ | 2bd90ca8-0062-4b31-b3b2-7fd6fdc8da97 | available | testvolume01 | 1 | None | false | | +--------------------------------------+-----------+--------------+------+-------------+----------+----------- --+ ※一覧に登録されたボリュームが作成表示されていれば問題ありません。
  70. 70. OpenStack構築手順書 Icehouse版 日本仮想化技術 70 14. Ceilometerインストール・設定(controllerノード) 14–1 パッケージインストール controller# apt-get install -y ceilometer-api ceilometer-collector ceilometer-agent-central ceilometer-agent-notification ceilometer-alarm-evaluator ceilometer-alarm-notifier python-ceilometerclient m ongodb-server 14–2 デフォルトのデータベースファイル削除 controller# service mongodb stop controller# rm /var/lib/mongodb/journal/prealloc.* controller# service mongodb start 14–3 mongodb データベース設定 /etc/mongodb.conf #bind_ip = 127.0.0.1 ← 既存設定をコメントアウト bind_ip = 192.168.0.10 ← 追記 14–4 mongodbサービス再起動 controller# service mongodb restart 14–5 mongodbデータベース作成 mongodbのデータベースを作成します、–hostオプションはcontrollerノードのIPアドレスを直接入力してください。
  71. 71. OpenStack構築手順書 Icehouse版 日本仮想化技術 71 controller# mongo --host 192.168.0.10 --eval ' > db = db.getSiblingDB("ceilometer"); > db.addUser({user:"ceilometer",pwd:"password",roles:["readWrite","dbAdmin"]})' MongoDB shell version: 2.4.9 connecting to: 192.168.0.10:27017/test { "user" : "ceilometer", "pwd" : "c3f1480e5fb171fed77480ec8a9c1a7f", "roles" : [ "readWrite", "dbAdmin" ], "_id" : ObjectId("5361de166482a8aae1aa39c0") }
  72. 72. OpenStack構築手順書 Icehouse版 日本仮想化技術 72 14–6 認証情報の設定 以下コマンドで認証情報を設定します。 controller# source admin-openrc controller# keystone user-create --name=ceilometer --pass=password --email=ceilometer@example.com +----------+----------------------------------+ | Property | Value | +----------+----------------------------------+ | email | ceilometer@example.com | | enabled | True | | id | f496357d3de9426087fc81684c434d68 | | name | ceilometer | | username | ceilometer | +----------+----------------------------------+ controller# keystone user-role-add --user=ceilometer --tenant=service --role=admin controller# keystone service-create --name=ceilometer --type=metering --description="Telemetry" +-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+ | description | Telemetry | | enabled | True | | id | 0e7928583f2c4f3e80315eb53dfc705b | | name | ceilometer | | type | metering | +-------------+----------------------------------+ controller# keystone endpoint-create --service=ceilometer --publicurl=http://controller:8777 --internalurl=http://controller:8777 --adminurl=http://controller:8777 +-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+ | adminurl | http://controller:8777 | | id | e6b0107d3aa04a04b824a4c2aa7fe1f4 | | internalurl | http://controller:8777 | | publicurl | http://controller:8777 | | region | regionOne | | service_id | 0e7928583f2c4f3e80315eb53dfc705b | +-------------+----------------------------------+
  73. 73. OpenStack構築手順書 Icehouse版 日本仮想化技術 73 14–7 設定の変更 /etc/ceilometer/ceilometer.conf [DEFAULT] # auth_strategy = keystone auth_strategy = keystone ← 追記 rabbit_host = controller ← 追記 rabbit_password = password ← 追記 log_dir = /var/log/ceilometer ← 追記 [database] #connection=sqlite:////var/lib/ceilometer/$sqlite_db ← 既存設定をコメントアウト connection = mongodb://ceilometer:password@192.168.0.10:27017/ceilometer ← 追記 [keystone_authtoken] auth_host = controller ← 追記 auth_port = 35357 ← 追記 auth_protocol = http ← 追記 auth_uri = http://controller:5000 ← 追記 admin_tenant_name = service ← 追記 admin_user = ceilometer ← 追記 admin_password = password ← 追記 [publisher] metering_secret = password ← 追記 [service_credentials] os_auth_url = http://controller:5000/v2.0 ← 追記 os_username = ceilometer ← 追記 os_tenant_name = service ← 追記 os_password = password ← 追記 ※connectionの接続先はIPアドレスを指定しないとデータベースの接続エラーとなります。 /etc/glance/glance-api.conf ※[DEFAULT]に以下の記述を追加します。 [DEFAULT] notification_driver = messaging /etc/cinder/cinder.conf ※[DEFAULT]に以下の記述を追加します。
  74. 74. OpenStack構築手順書 Icehouse版 日本仮想化技術 74 [DEFAULT] control_exchange = cinder notification_driver = cinder.openstack.common.notifier.rpc_notifier 14–8 使用しないデータベースファイル削除 controller# rm /var/lib/ceilometer/ceilometer.sqlite 14–9 サービス再起動 controller# rm /var/log/glance/* controller# rm /var/log/cinder/* controller# rm /var/log/ceilometer/* controller# service ceilometer-agent-central restart && service ceilometer-agent-notification restart && service ceilometer-api restart && service ceilometer-collector restart && service ceilometer-alarm-evaluator restart && service ceilometer-alarm-notifier restart && service glance-registry restart && service glance-api restart && service cinder-api restart && service cinder-scheduler restart && service cinder-volume restart 14–10 ログ確認 controller# grep "ERROR|WARNING" /var/log/glance/* /var/log/glance/api.log:2014-05-18 14:10:04.528 8459 ERROR glance.store.sheepdog [-] Error in store configurat ion: Unexpected error while running command. /var/log/glance/api.log:2014-05-18 14:10:04.531 8459 WARNING glance.store.base [-] Failed to configure store c orrectly: Store sheepdog could not be configured correctly. Reason: Error in store configuration: Unexpected e rror while running command. /var/log/glance/api.log:2014-05-26 14:10:04.532 8459 WARNING glance.store [-] Deprecated: glance.store.sheepdo g.Store not found in `known_store`. Stores need to be explicitly enabled in the configuration file. /var/log/glance/api.log:2014-05-18 14:10:04.541 8459 WARNING glance.store [-] Deprecated: glance.store.rbd.Sto re not found in `known_store`. Stores need to be explicitly enabled in the configuration file. /var/log/glance/api.log:2014-05-18 14:10:04.545 8459 WARNING glance.store.base [-] Failed to configure store c orrectly: Store gridfs could not be configured correctly. Reason: Missing dependencies: pymongo Disabling add method. /var/log/glance/api.log:2014-05-18 14:10:04.546 8459 WARNING glance.store [-] Deprecated: glance.store.gridfs. Store not found in `known_store`. Stores need to be explicitly enabled in the configuration file.
  75. 75. OpenStack構築手順書 Icehouse版 日本仮想化技術 75 /var/log/glance/api.log:2014-05-18 14:10:04.645 8459 WARNING glance.store.base [-] Failed to configure store c orrectly: Store cinder could not be configured correctly. Reason: Cinder storage requires a context. Disabling add method. /var/log/glance/api.log:2014-05-18 14:10:04.646 8459 WARNING glance.store [-] Deprecated: glance.store.cinder. Store not found in `known_store`. Stores need to be explicitly enabled in the configuration file. /var/log/glance/api.log:2014-05-18 14:10:04.669 8459 WARNING glance.store [-] Deprecated: glance.store.swift.S tore not found in `known_store`. Stores need to be explicitly enabled in the configuration file. /var/log/glance/api.log:2014-05-18 14:10:04.719 8459 WARNING glance.store [-] Deprecated: glance.store.vmware_ datastore.Store not found in `known_store`. Stores need to be explicitly enabled in the configuration file. /var/log/glance/api.log:2014-05-18 14:10:04.721 8459 WARNING glance.store [-] Deprecated: glance.store.s3.Stor e not found in `known_store`. Stores need to be explicitly enabled in the configuration file. controller# grep "ERROR|WARNING" /var/log/cinder/* /var/log/cinder/cinder-api.log:2014-05-18 16:22:08.840 3902 WARNING cinder.service [-] Value of config option osapi_volume_workers must be integer greater than 1. Input value ignored. /var/log/cinder/cinder-scheduler.log:2014-05-18 14:10:55.049 1141 WARNING cinder.context [-] Arguments dropped when creating context: {'user': None, 'tenant': None, 'user_identity': u'- - - - -'} /var/log/cinder/cinder-scheduler.log:2014-05-18 14:10:09.436 3921 WARNING cinder.context [-] Arguments dropped when creating context: {'user': None, 'tenant': None, 'user_identity': u'- - - - -'} /var/log/cinder/cinder-scheduler.log:2014-05-18 14:10:31.494 3921 WARNING cinder.context [-] Arguments dropped when creating context: {'user': None, 'tenant': None, 'user_identity': u'- - - - -'} controller# grep "ERROR|WARNING" /var/log/ceilometer/* /var/log/ceilometer/ceilometer-agent-central.log:2014-05-18 14:10:04.621 3471 WARNING ceilometer.agent [-] Con tinue after error from image: Error communicating with ※上記WARNING以外表示されなければ問題ありません。
  76. 76. OpenStack構築手順書 Icehouse版 日本仮想化技術 76 15. Ceilometerインストール・設定(compute1ノード) 15–1 パッケージインストール compute1# apt-get install -y ceilometer-agent-compute 15–2 設定の変更 15–2–1 Nova設定ファイル変更 /etc/nova/nova.conf ※[DEFAULT]に以下の記述を追加します。 [DEFAULT] instance_usage_audit = True instance_usage_audit_period = hour notify_on_state_change = vm_and_task_state notification_driver = nova.openstack.common.notifier.rpc_notifier notification_driver = ceilometer.compute.nova_notifier 15–2–2 サービス再起動 compute1# service nova-compute restart
  77. 77. OpenStack構築手順書 Icehouse版 日本仮想化技術 77 15–2–3 Ceilometer設定ファイル変更 /etc/ceilometer/ceilometer.conf [DEFAULT] rabbit_host = controller ← 追記 rabbit_password = password ← 追記 log_dir = /var/log/ceilometer ← 追記 [keystone_authtoken] auth_host = controller ← 追記 auth_port = 35357 ← 追記 auth_protocol = http ← 追記 admin_tenant_name = service ← 追記 admin_user = ceilometer ← 追記 admin_password = password ← 追記 [publisher] metering_secret = password ← 追記 [service_credentials] os_auth_url = http://controller:5000/v2.0 ← 追記 os_username = ceilometer ← 追記 os_tenant_name = service ← 追記 os_password = password ← 追記 15–3 サービス再起動 compute1# rm /var/log/nova/* compute1# rm /var/log/ceilometer/* compute1# service ceilometer-agent-compute restart
  78. 78. OpenStack構築手順書 Icehouse版 日本仮想化技術 78 15–4 ログ確認 compute1# grep "ERROR|WARNING" /var/log/nova/* compute1# grep "ERROR|WARNING" /var/log/ceilometer/* 2014-05-17 18:08:33.648 4421 WARNING ceilometer.compute.virt.libvirt.inspector [-] Failed to inspect disks of instance-0000000b, domain is in state of SHUTOFF 2014-05-17 18:08:33.661 4421 WARNING ceilometer.compute.virt.libvirt.inspector [-] Failed to inspect disks of instance-0000000a, domain is in state of SHUTOFF 2014-05-17 18:08:33.694 4421 WARNING ceilometer.transformer.conversions [-] dropping sample with no predecesso r: (<ceilometer.sample.Sample object at 0x7f8afbd9c390>,) 2014-05-17 18:08:33.698 4421 WARNING ceilometer.transformer.conversions [-] dropping sample with no predecesso r: (<ceilometer.sample.Sample object at 0x7f8afbd9c250>,) 2014-05-17 18:08:33.708 4421 WARNING ceilometer.compute.virt.libvirt.inspector [-] Failed to inspect vnics of instance-0000000b, domain is in state of SHUTOFF 2014-05-17 18:08:33.718 4421 WARNING ceilometer.compute.virt.libvirt.inspector [-] Failed to inspect vnics of instance-0000000a, domain is in state of SHUTOFF 2014-05-17 18:08:33.740 4421 WARNING ceilometer.transformer.conversions [-] dropping sample with no predecesso r: (<ceilometer.sample.Sample object at 0x7f8afbd9c310>,) 2014-05-17 18:08:33.743 4421 WARNING ceilometer.transformer.conversions [-] dropping sample with no predecesso r: (<ceilometer.sample.Sample object at 0x7f8afbda9e50>,) 2014-05-17 18:08:33.766 4421 WARNING ceilometer.transformer.conversions [-] dropping sample with no predecesso r: (<ceilometer.sample.Sample object at 0x7f8afbda9cd0>,) 2014-05-17 18:08:33.769 4421 WARNING ceilometer.transformer.conversions [-] dropping sample with no predecesso r: (<ceilometer.sample.Sample object at 0x7f8afbda9dd0>,) 2014-05-17 18:08:33.781 4421 WARNING ceilometer.transformer.conversions [-] dropping sample with no predecesso r: (<ceilometer.sample.Sample object at 0x7f8afbda9d10>,) 2014-05-17 18:08:33.785 4421 WARNING ceilometer.transformer.conversions [-] dropping sample with no predecesso r: (<ceilometer.sample.Sample object at 0x7f8afbda9d90>,) 2014-05-17 18:08:33.806 4421 WARNING ceilometer.transformer.conversions [-] dropping sample with no predecesso r: (<ceilometer.sample.Sample object at 0x7f8afbda9e90>,) 2014-05-17 18:08:33.808 4421 WARNING ceilometer.transformer.conversions [-] dropping sample with no predecesso r: (<ceilometer.sample.Sample object at 0x7f8afbda9d90>,) ※上記WARNING以外表示されなければ問題ありません。 15–5 計測項目取得確認 確認はcontrollerノードで行ってください。 15–5–1 admin環境変数設定ファイル読み込み controller# source admin-openrc 15–5–2 controllerノードでCeilometerの計測項目が取得可能か確認
  79. 79. OpenStack構築手順書 Icehouse版 日本仮想化技術 79 controller# ceilometer meter-list +------------+-------+------+--------------------------------------+---------+-------------------------------- --+ | Name | Type | Unit | Resource ID | User ID | Project ID | +------------+-------+------+--------------------------------------+---------+-------------------------------- --+ | image.size | gauge | B | 1cdc90ca-fc4b-4064-8514-21aac275729f | None | 261110e97ca143c091d8c82c50f5291 c | +------------+-------+------+--------------------------------------+---------+-------------------------------- --+ ※計測項目一覧が表示されるであれば問題ありません。

×