6. 第1日 講義資料 No.1
(参考) OpenStack Foundation設立のニュース記事
http://sourceforge.jp/magazine/12/04/13/0359223
6
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
7. 第1日 講義資料 No.1
OpenStack Foundation Platinum Members
(2014/01の情報)
https://www.openstack.org/join
7
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
8. 第1日 講義資料 No.1
OpenStack開発への貢献企業
開発者の所属企業別の
OpenStack Havana変更数
開発者の所属企業別の
OpenStack Havana問題解決数
http://activity.openstack.org/dash/releases/index.html?data_dir=data/havana
8
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
12. 第1日 講義資料 No.1
OpenStackが提供するコンピューティング環境
■
OpenStackユーザ
OpenStackのユーザは、Webコンソール
やREST APIを用いて、次のようなコン
ピューティングリソースを利用します。
外部ネットワーク
- 仮想ネットワーク
- 仮想マシンインスタンス
プロジェクト環境
- ブロックボリューム
■
仮想ルータ
各ユーザは特定の「プロジェクト」に所
属します。
仮想スイッチ
- プロジェクト内でリソースを共有します。
- プロジェクト全体でのリソース使用量の上
限設定、リソース使用状況のレポーティン
グなどが可能です。
OS領域
データ領域
仮想マシンインスタンス
ブロックボリューム
12
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
13. 第1日 講義資料 No.1
OpenStackの仮想ネットワークモデル
■
プロジェクトごとに仮想ルータを用いて、プライベートなネットワークを構成します。
- 仮想ルータの背後に任意の数の仮想スイッチを作成して、接続します。
- それぞれの仮想スイッチは、プライベートIPの独立したサブネットを持ちます。
■
仮想マシンインスタンス起動時に、接続する仮想スイッチを選択します。
- DHCPでプライベートIPアドレスが割り当てられます。
- 同じプロジェクトの仮想マシンインスタンス間は、プライベートIPで通信できます。
外部ネットワーク
プロジェクトA
仮想ルータ
仮想スイッチ
192.168.101.0/24
プロジェクトB
仮想ルータ
仮想スイッチ
192.168.102.0/24
13
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
14. 第1日 講義資料 No.1
プライベートIPとフローティングIP
■
外部ネットワークと通信する際は、仮想マシンインスタンスに「フローティングIP」を
割り当てます。
- 外部ネットワークのサブネット上で、フローティングIPとして利用可能なIPアドレスをプールし
ておきます。
- 仮想ルータ上で、フローティングIPとプライベートIPのNATが行われます。
- フローティングIPを割り当てない場合でも、仮想マシンインスタンスから外部ネットワークへの
接続は可能です。(仮想ルータのIPアドレスを代表IPとして、マスカレード接続します。)
外部ネットワークからは
フローティングIPで接続
フローティングIP
プライベートIP
Webサーバ
インスタンス同士は
プライベートIPで接続
プライベートIP
DBサーバ
14
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
15. 第1日 講義資料 No.1
仮想マシンインスタンスの起動
■
仮想マシンインスタンスを起動する際は、次の項目を指定します。
- インスタンスタイプ
外部ネットワーク
- テンプレートイメージ (*)
- 接続する仮想ネットワーク
- セキュリティグループ
- キーペア
形式
説明
raw
フラットなイメージファイル
AMI/AKI/ARI
Amazon EC2が利用する形式
qcow2
Linux KVMが利用する形式
VDI
VirtualBoxが利用する形式
VMDK
VMwareが利用する形式
VHD
Hyper-Vが利用する形式
セキュリティグループ
複数ネットワーク
接続も可能
テンプレートとしてインポート可能なイメージ形式
テンプレート
イメージ
複製
OS領域
15
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
16. 第1日 講義資料 No.1
テンプレートイメージの準備方法 (1)
■
Oz(仮想マシンイメージの作成に特化したOSインストールツール)で作成する
- OpenStack用イメージ作成のデファクトツール
- https://github.com/clalancette/oz/wiki
■
ディストリビューション標準のテンプレートイメージを利用
- FedoraのOpenStack対応イメージ
- http://fedoraproject.org/en/get-fedora-options#clouds
16
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
17. 第1日 講義資料 No.1
テンプレートイメージの準備方法 (2)
■
Red Hat Enterprise Linux (RHEL)では、RHEL6.4より、OpenStackで利用可能なテン
プレートイメージが提供されています。
- これをダウンロードして、OpenStackに登録することで、すぐにRHELの仮想マシンを起動する
ことができます。
17
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
40. 第1日 講義資料 No.1
サーバ配置例 (1)
■
1台のサーバにすべてのコンポーネントを導入する「All-in-one構成」の例です。
- コンピュートノードを増やせませんので、実用的な構成ではありません。
- eth0にIPアドレスを割り当てて、Webコンソール接続、および管理接続に使用します。
- 仮想マシンインスタンス間は、ローカルのOpen vSwitchを経由して通信します。外部ネット
ワークとの通信は、NATで中継します。
パブリックネットワーク
eth0
IP
eth1
br-ex
NAT
br-int
VM
VM
すべてのコンポーネントを
まとめて導入
Open vSwitch
40
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
41. 第1日 講義資料 No.1
サーバ配置例 (2)
■
1台のコントローラノードにコントローラ機能をまとめて導入する構成例です。
- 各サーバのeth0にIPアドレスを割り当てて、Webコンソール接続、API接続、および管理接続に
使用します。
- 仮想マシンインスタンス同士は、プライベートネットワーク上で相互通信します。外部ネット
ワークとの通信は、管理サーバがNATで中継します。
パブリックネットワーク
プライベートネットワーク
eth0
IP
Nova Compute以外の
すべてのコンポーネントを導入
eth1
eth2
br-ex
br-priv
eth0
IP
br-int
eth1
br-priv
eth0
IP
eth1
br-priv
br-int
コントローラノード
Nova Computeと
Neutron L2-pluginを導入
br-int
VM
NAT
・・・
VM
コンピュートノード
Open vSwitch
41
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
42. 第1日 講義資料 No.1
(参考)主な設定ファイルとログファイル
■
設定ファイル
- /etc/nova/nova.conf
- /etc/quantum/quantum.conf
: Neutron(旧Quantum)
- /etc/quantum/l3_agent.ini
: L3 Agent
- /etc/quantum/dhcp_agent.ini
: DHCP Agent
- /etc/quantum/plugin.ini
: L2 Agent
- /etc/cinder/cinder.conf
■
: Nova
: Cinder
ログファイル
- /var/log/(nova|quantum|cinder|glance|horizon)
●
各コンポーネントのログ
- /var/log/messages
●
dnsmasqのログなどは、ここから確認
- /var/log/secure
●
内部的にsudoを多用しているので、sudoに起因する問題をsudoログから確認
42
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
47. 第1日 講義資料 No.1
Fedora 18のインストール (1)
■
DVDメディアからFedora18をインストールする際の手順を記載します。
■
インストールメディアの入手
- 下記URLより「Fedora-18-x86_64-DVD.iso」をダウンロードしてDVDメディアに焼きます。
- http://download.fedoraproject.org/pub/fedora/linux/releases/18/Fedora/x86_64/iso/
※上記がリンク切れの際は下記を使用
- http://dl.fedoraproject.org/pub/archive/fedora/linux/releases/18/Fedora/x86_64/iso/
■
インストール時の注意
- LVM構成のLinuxが導入された環境に対して、Fedora18を上書きインストールしようとすると、
インストーラがエラーで停止する場合があります。そのような際は、インストーラの画面で
[Ctrl]+[Alt]+[F2]を押すとコマンド画面に切り替わるので、次のコマンドなどで、LVMの構成
情報を削除した上で、再度、インストールを行います。
# dd if=/dev/zero of=/dev/sda count=2
# reboot
47
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
48. 第1日 講義資料 No.1
Fedora 18のインストール (2)
■
ネットワークの設定
- 「em1」にIPアドレスを設定します。この画面でホスト名を設定するのも忘れないでください。
■
ソフトウェアの選択
- 「最小限のインストール」+ 「標準アドオン」を選びます
48
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
49. 第1日 講義資料 No.1
Fedora 18のインストール (3)
■
ディスクパーティションは表の構成としますが、GUIインストーラでは、パーティショ
ンを自由に構成することができないため次の手順に従います。
パーティション
サイズ
用途
/dev/sda1
500MB
/boot
/dev/sda2
適宜
Swap
/dev/sda3
50GB
/
/dev/sda4
残り全部
Cinder Volume
- インストール先のディスクを選択して続行す
ると「インストールオプション」のポップ
アップがでるので、「パーティションスキー
マの設定」→「パーティションタイプ」→
「標準パーティション」を選んで、「代わり
にディスクのパーティション設定をカスタマ
イズさせて下さい。」にチェックを入れま
す。
49
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
50. 第1日 講義資料 No.1
Fedora 18のインストール (4)
- パーティション設定の画面で「ここをクリッ
クすると自動的に作成します。」をクリック
します。
- 右下図のようなパーティションが構成されま
すが、「/home」が余分なので削除します。
(画面下の「-」ボタンで削除します。)
- これで、「/dev/sda1~/dev/sda3」からな
るパーティションが構成できました。
「/dev/sda4」は、インストール完了後に手
動で作成します。
50
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
51. 第1日 講義資料 No.1
Fedora 18のインストール (5)
■
インストール完了後の作業
- 「/etc/sysconfig/network-scripts/ifcfg-em2」をエディタで開いて、「ONBOOT=yes」を
「ONBOOT=no」に変更します。
- fdiskコマンドでディスクパーティション「/dev/sda4」を追加します。
# fdisk /dev/sda
コマンド (m でヘルプ): n
Partition type:
p
primary (3 primary, 0 extended, 1 free)
e
extended
Select (default e): p
選択したパーティション 4
最初 sector (122316800-312499999, 初期値 122316800): ← 空エンター
初期値 122316800 を使います
Last sector, +sectors or +size{K,M,G} (122316800-312499999, 初期値 312499999): ← 空エンター
初期値 312499999 を使います
Partition 4 of type Linux and of size 90.7 GiB is set
コマンド (m でヘルプ): wq
51
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
52. 第1日 講義資料 No.1
Fedora 18のインストール (6)
- この後で、Cinder Volume用のボリュームグループを作るために、lvm2のパッケージを追加しま
す。さらに、全パッケージをアップデートして、再起動します。
# yum -y install lvm2
# yum -y update
# reboot
- 再起動したら、/dev/sda4を使って、ボリュームグループ「cinder-volumes」を作成します。
# pvcreate /dev/sda4
# vgcreate cinder-volumes /dev/sda4
52
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
53. 第1日 講義資料 No.1
RDOのインストール (1)
■
RDO (Grizzly) をAll-in-one構成で導入します。
- ここでは、GitHubで公開されているインストールスクリプトを利用します。次の手順で、スク
リプトをダウンロードして、「setup.sh」を実行します。
#
#
#
#
#
#
yum -y install git
cd ~
git clone https://github.com/enakai00/quickrdo
cd quickrdo
git checkout f18-grizzly
./setup.sh
- 途中で次のようなメッセージがでたら、rootパスワードを入力します。
Setting up ssh keys...root@192.168.199.99's password:
- インストールが完了すると、「Done. Now, you need to reboot the server.」というメッセージ
がでます。ここで、一度サーバを再起動します。
# reboot
- インストールが途中で失敗した場合は、次のコマンドを実行するとインストール前の状態に戻り
ます。再度、「~/quickrdo/setup.sh」を実行してください。
# cd ~/quickrdo
# ./cleanup.sh
This will completely uninstall all openstack-related components.
Are you really sure? (yes/no) yes
「yes」を入力
# vgcreate cinder-volumes /dev/sda4
# reboot
53
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
54. 第1日 講義資料 No.1
RDOのインストール (2)
■
インストールスクリプトの解説
- 「setup.sh」の内容は下記のURLから参照できます。
●
https://github.com/enakai00/quickrdo/blob/f18-grizzly/setup.sh
- RDOのインストール処理は、下記の「packstack」コマンドで実施しています。これは、RDOに
標準付属のインストーラで、puppetマニフェストを利用してインストール処理を行います(*)。
# packstack --allinone --nagios-install=n --os-swift-install=n
- 「setup.sh」では、その他にOSレベルの設定変更、既知の問題に対するパッチの適用などを併せ
て行なっています。
(*) 「--allinone」オプションの動作は、Packstackのバージョンによって異なります。
ここでは、「openstack-packstack-2013.1.1-0.20.dev642.fc19」を使用する前提です。
54
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
55. 第1日 講義資料 No.1
インストール後の初期設定 (1)
■
サンプルプロジェクト「demo」を作成して、仮想ネットワークの構成、その他、デモ
用途に必要な最小限の初期設定を行います。
- ここでは、先ほどのインストールスクリプトに付属の初期設定スクリプト「config.sh」を利用
します。スクリプト「~/quickrdo/config.sh」をエディタで開いて、下記のパラメータを環境に
合わせて修正します。
public="192.168.199.0/24"
gateway="192.168.199.1"
nameserver="8.8.8.8"
pool=("192.168.199.100" "192.168.199.199")
private=("192.168.101.0/24")
- 上から順に「パブリックネットワークのサブネット」「デフォルトゲートウェイ」「DNSサー
バ」「IPアドレスプール」「仮想ネットワークのサブネット」に対応します。ここでは、2個の
仮想ネットワークを作成するため、次のように修正します。
Private=("192.168.101.0/24" "192.168.102.0/24")
55
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
56. 第1日 講義資料 No.1
インストール後の初期設定 (2)
- 次のコマンドで、初期設定を行います。
# cd ~/quickrdo
# ./config.sh
- 「VM access NIC:」という表示が出るので、「仮想マシンアクセス用NIC」のデバイス名(今の
例では「em2」)を入力します。最後に「Configuration finished.」と表示されれば完了です。
- 設定を変更する際は、「./config.sh」を再度実行します。以前の設定を削除して、新しい設定が
行われます。
56
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
58. 第1日 講義資料 No.1
インストール後の初期設定 (4)
●
パブリックネットワークを定義
tenant=$(keystone tenant-list | awk '/ services / {print $2}')
quantum net-create
--tenant-id $tenant ext-network --shared
--provider:network_type local --router:external=True
quantum subnet-create
--tenant-id $tenant --gateway ${gateway} --disable-dhcp
--allocation-pool start=${pool[0]},end=${pool[1]}
ext-network ${public}
●
仮想ルータを作成して、パブリックネットワークをデフォルトゲートウェイに設定
tenant=$(keystone tenant-list|awk '/ demo / {print $2}')
quantum router-create --tenant-id $tenant demo_router
quantum router-gateway-set demo_router ext-network
●
仮想スイッチを作成して、仮想ルータに接続
for (( i = 0; i < ${#private[@]}; ++i )); do
name=$(printf "private%02d" $(( i + 1 )))
subnet=${private[i]}
quantum net-create
--tenant-id $tenant ${name} --provider:network_type local
quantum subnet-create
--tenant-id $tenant --name ${name}-subnet
--dns-nameserver ${nameserver} ${name} ${subnet}
quantum router-interface-add demo_router ${name}-subnet
done
58
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
59. 第1日 講義資料 No.1
インストール後の初期設定 (5)
●
デフォルトのセキュリティグループに対して、SSHとPingを許可
export OS_USERNAME=demo_user
export OS_PASSWORD=passw0rd
export OS_TENANT_NAME=demo
nova secgroup-add-rule default tcp 22 22 0.0.0.0/0
nova secgroup-add-rule default icmp 8 0 0.0.0.0/0
●
キーペアを作成して、登録
nova keypair-add mykey > ~/mykey.pem
chmod 600 ~/mykey.pem
●
フローティングIPを確保
for i in $(seq 1 5); do
quantum floatingip-create ext-network
done
●
「VM access NIC:」で指定したNICをOpen vSwitch「br-ex」に接続
ovs-vsctl add-port br-ex ${extnic}
59
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
60. 第1日 講義資料 No.1
仮想マシンインスタンスの起動 (1)
■
初期設定が終わった環境で、仮想マシンを起動する手順を説明します。
- Webブラウザで「http://192.168.199.99」に接続して、ユーザ「demo_user」、パスワード
「passw0rd」でログインします。
- 画面左のメニューから「イメージとスナップショット」を選択して、イメージ名「Fedora19」
のアクション「起動」をクリックします。
60
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
61. 第1日 講義資料 No.1
仮想マシンインスタンスの起動 (2)
- 図の手順に従って、必要な項目を入力します。
②「アクセスとセキュリティ」タブで
キーペアに「mykey」を選択
①「詳細」タブでインスタンス名を入力
③「ネットワーク」タブで「private01」を
選択して、「起動」を押す
61
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
62. 第1日 講義資料 No.1
仮想マシンインスタンスの起動 (3)
- 仮想マシンインスタンスが起動して、状態が「Active」になったら、図の手順に従って、フロー
ティングIPを割り当てます。
①「アクション」の「さらに」→「Floating IPの割り当て」を選択
② プルダウンからIPアドレスを1つ選択して「割り当て」を押す
62
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
63. 第1日 講義資料 No.1
仮想マシンインスタンスの起動 (4)
- SSH認証の秘密鍵ファイルは、「~/mykey.pem」にありますので、次のコマンドでログインする
ことができます。IPアドレスは、先に割り当てたフローティングIPを指定します。
# ssh -i ~/mykey.pem fedora@192.168.199.101
- Fedora19のテンプレートでは、ログイン用のユーザ「fedora」が自動作成されるようになって
おり、rootユーザでのログインはできません。fedoraから、rootユーザには次のコマンドで切り
替えることができます。
$ sudo -i
63
Copyright (C) 2014 National Institute of Informatics, All rights reserved.