2. 第2日 講義資料 No.2
目次
■
Neutronの基本構造
■
LinuxBridgeプラグインによる実装例
■
Open vSwitchプラグインによる実装例
■
仮想ネットワークの構成手順
■
SDN (Software Defined Network) の概要
■
(参考)複数ノード構成のインストール手順と初期設定の概要
注意:本テキストで扱うOpenStackは、RDO(Grizzly)がベースとなります。
2
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
8. 第2日 講義資料 No.2
LinuxBridgeプラグインによる実装例 (1)
■
LinuxBridgeプラグインを用いて、下図の仮想ネットワークを作成した際の具体的な実
装をコンピュートノード、ネットワークノードのそれぞれで示します。
- 1つのプロジェクトのみ存在して、2個の仮想スイッチ(サブネット)が用意されています。
外部ネットワーク
仮想ルータ
仮想スイッチ
private01
vm01
仮想スイッチ
private02
vm02
vm03
8
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
9. 第2日 講義資料 No.2
LinuxBridgeによるコンピュートノードの実装 (1)
■
LinuxBridgeプライグインでは、仮想スイッチごとに「仮想ブリッジ」を用意して、プ
ライベートネットワーク上でのVLANを分割します。
Nova Computeが構成
vm01
IP
eth0
vm02
IP
eth0
vm03
IP
IP
eth1
eth0
Networkノード上の
dnsmasqからIPを割り当て
brqyyy
brqxxxx
private01
仮想スイッチごとに
VLANを分割
プライベートネットワーク用
L2スイッチ
private02
eth1.102
eth1.101
eth1
L2 Agentが構成
VLAN101
VLAN102
9
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
10. 第2日 講義資料 No.2
LinuxBridgeによるネットワークノードの実装 (1)
パブリックネットワークへ
eth1
外部GW IP
brqxxxx
概念的には
ここが仮想ルータ
IP
内部GW IP
IP
DHCP Agentが構成
サブネットごとに
dnsmasqが起動
■
■
ネットワークノードでは、iptables
によるNAT/フィルタリングが仮想
ルータの機能を提供します。
dnsmasqは、該当サブネットのIPア
ドレスを割り当てるDHCPサーバと
して機能します。
- 仮想NICのMACアドレスに対して固定
的にIPアドレスを割り当てます。
L3 Agentが構成
qg-VVV
IP
qr-WWW
qr-YYY
dnsmasq
dnsmasq
ns-XXX
iptablesで
NAT&フィルタリング
IP
ns-ZZZ
IP
brqyyy
brqxxxx
private01
private02
eth1.102
eth1.101
eth2
L2 Agentが構成
プライベートネットワーク用スイッチへ
10
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
11. 第2日 講義資料 No.2
LinuxBridgeプラグインによる実装例 (2)
■
LinuxBridgeプラグインを用いて、下図の仮想ネットワークを作成した際の具体的な実
装をコンピュートノード、ネットワークノードのそれぞれで示します。
- 2つのプロジェクトがそれぞれの仮想ルータを持っています。
外部ネットワーク
プロジェクトB
仮想ルータ
プロジェクトA
仮想ルータ
仮想スイッチ
projectA
vm01
仮想スイッチ
projectB
vm02
vm03
vm04
11
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
12. 第2日 講義資料 No.2
LinuxBridgeによるコンピュートノードの実装 (2)
■
コンピュートノードの構成は、単一プロジェクトの場合とほとんど同じで、仮想スイッ
チごとに仮想ブリッジとVLANが割り当てられます。
Nova Computeが構成
vm01
IP
eth0
vm02
IP
vm03
IP
eth0
vm04
IP
eth0
eth0
Networkノード上の
dnsmasqからIPを割り当て
brqyyy
brqxxxx
projectA
仮想スイッチごとに
VLANを分割
プライベートネットワーク用
L2スイッチ
projectB
eth1.102
eth1.101
eth1
L2 Agentが構成
VLAN101
VLAN102
12
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
13. 第2日 講義資料 No.2
LinuxBridgeによるネットワークノードの実装 (2)
■
パブリックネットワークへ
複数の仮想ルータに対応して
iptablesによるパケット転送
のパスが複数用意されます。
eth1
brqxxxx
iptablesで
NAT&フィルタリング
IP
qg-CCC
IP
qr-YYY
qr-BBB
dnsmasq
dnsmasq
ns-XXX
IP
qg-ZZZ
IP
サブネットごとに
dnsmasqが起動
L3 Agentが構成
IP
ns-AAA
IP
DHCP Agentが構成
brqyyy
brqxxxx
projectA
projectB
eth1.102
eth1.101
eth2
L2 Agentが構成
プライベートネットワーク用スイッチへ
13
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
15. 第2日 講義資料 No.2
Open vSwitchプラグインによる実装例
15
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
16. 第2日 講義資料 No.2
Open vSwitchについて
■
Open vSwitchは、Linuxサーバ上に仮想スイッチを構成するソフトウェアです。仮想ブ
リッジと異なり、商用の物理スイッチ機器と同等のさまざまな機能をサポートします。
- 特にOpenFlowを利用して、パケットの転送処理を細かく制御することができますので、仮想
ネットワークを構成する際によく利用されます。
Open vSwitchのサポート機能(http://openvswitch.org/features/)
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
Visibility into inter-VM communication via NetFlow, sFlow(R), IPFIX, SPAN, RSPAN, and
GRE-tunneled mirrors
LACP (IEEE 802.1AX-2008)
Standard 802.1Q VLAN model with trunking
BFD and 802.1ag link monitoring
STP (IEEE 802.1D-1998)
Fine-grained QoS control
Support for HFSC qdisc
Per VM interface traffic policing
NIC bonding with source-MAC load balancing, active backup, and L4 hashing
OpenFlow protocol support (including many extensions for virtualization)
IPv6 support
Multiple tunneling protocols (GRE, VXLAN, IPsec, GRE and VXLAN over IPsec)
Remote configuration protocol with C and Python bindings
Kernel and user-space forwarding engine options
Multi-table forwarding pipeline with flow-caching engine
Forwarding layer abstraction to ease porting to new software and hardware platforms
16
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
17. 第2日 講義資料 No.2
OpenFlowについて
■
OpenFlowは、ネットワークスイッチが受け取ったパケットの転送処理を外部の「コン
トローラ」で制御するためのプロトコルです。
- OpenFlow対応のスイッチは、パケットを受け取ると、その処理方法をコントローラに問い合わ
せて、コントローラの指示に基づいて転送処理を行います。
- この際、パケットの内容を比較的自由に操作することができるので、マルチテナント型の仮想
ネットワークの構築が容易になります。具体的には、送信元/送信先MACアドレスによって出力
ポートを決定する、VLANタグなどのヘッダ情報を修正する、などが可能です。
- 1つのコントローラで複数のOpenFlowスイッチを管理する他、OpenFlowスイッチごとにコン
トローラを分けるなどの構成も可能です。
OpenFlowコントローラ
受信パケットの処理方法を
コントローラに問い合わせ
OpenFlowスイッチ
17
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
18. 第2日 講義資料 No.2
Open vSwitchプラグインによる実装例 (1)
■
Open vSwitchプラグインを用いて、下図の仮想ネットワークを作成した際の具体的な
実装をコンピュートノード、ネットワークノードのそれぞれで示します。
- 1つのプロジェクトのみ存在して、2個の仮想スイッチ(サブネット)が用意されています。
外部ネットワーク
仮想ルータ
仮想スイッチ
private01
vm01
仮想スイッチ
private02
vm02
vm03
18
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
19. 第2日 講義資料 No.2
Open vSwitchによるコンピュートノードの実装 (1)
■
説明は次ページを参照
Nova Computeが構成
vm01
IP
vm02
IP
eth0
qvoXXX
IP
eth0
qvoYYY
eth1
qvoZZZ
ポートVLAN tag:1
仮想スイッチごとに異なる
「内部VLAN」を割り当てる
vm03
IP
eth0
qvoWWW
ポートVLAN tag:2
br-int
int-br-priv
phy-br-priv
L2 Agentが構成
br-priv
内部VLANと外部VLANを相互変換
・内部VLAN1⇔外部VLAN101
・内部VLAN2⇔外部VLAN102
eth1
VLAN101
VLAN102
Open vSwitch
19
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
20. 第2日 講義資料 No.2
Open vSwitchによるコンピュートノードの実装 (1)
■
仮想マシンインスタンスの仮想NICはすべて、共通の「インテグレーションスイッチ
(br-int)」に接続します。
- この際、ポートVLANによって、接続先の(論理的な)仮想スイッチごとに異なる「内部VLAN」
が割り当てられます。
■
物理的なプライベートネットワーク(物理スイッチ)との接続は、「プライベートス
イッチ(br-priv)」を経由して行います。
- 物理スイッチ上でも(論理的な)仮想スイッチごとに異なる「外部VLAN」が割り当てられてお
り、OpenFlowの機能により、内部VLAN番号と外部VLAN番号を相互変換します。
■
Open vSwtichプラグインでは、物理スイッチ上での経路分割は、「外部VLAN」の他
に、GREトンネルなども利用可能です。
- この場合は、OpenFlowの機能により、「内部VLAN番号」と「GREトンネルID」の相互変換が行
われます。
20
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
21. 第2日 講義資料 No.2
Open vSwitchによるネットワークノードの実装 (1)
パブリックネットワークへ
概念的には
ここが仮想ルータ
eth1
br-ex
外部GW IP
IP
内部GW IP
L3 Agentが構成
iptablesで
NAT&フィルタリング
dnsmasq
IP
DHCP Agentが構成
qg-VVV
IP
tapXXX
IP
qr-YYY
qr-ZZZ
ポートVLAN tag:1
dnsmasq
IP
tapWWW
ポートVLAN tag:2
br-int
int-br-priv
内部VLANと外部VLANを相互変換
・内部VLAN1⇔外部VLAN101
・内部VLAN2⇔外部VLAN102
phy-br-priv
br-priv
eth2
L2 Agentが構成
プライベートネットワーク用スイッチへ
21
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
22. 第2日 講義資料 No.2
Open vSwitchプラグインによる実装例 (2)
■
Open vSwitchプラグインを用いて、下図の仮想ネットワークを作成した際の具体的な
実装をコンピュートノード、ネットワークノードのそれぞれで示します。
- 2つのプロジェクトがそれぞれの仮想ルータを持っています。
外部ネットワーク
プロジェクトB
仮想ルータ
プロジェクトA
仮想ルータ
仮想スイッチ
projectA
vm01
仮想スイッチ
projectB
vm02
vm03
vm04
22
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
23. 第2日 講義資料 No.2
Open vSwitchによるコンピュートノードの実装 (2)
■
コンピュートノードの構成は、単一プロジェクトの場合とほとんど同じで、仮想スイッ
チごとに内部VLAN / 外部VLANが割り当てられます。
Nova Computeが構成
vm01
IP
vm02
IP
eth0
qvoXXX
vm03
IP
eth0
qvoYYY
qvoZZZ
ポートVLAN tag:1
仮想スイッチごとに異なる
「内部VLAN」を割り当てる
eth0
vm04
IP
eth0
qvoWWW
ポートVLAN tag:2
br-int
int-br-priv
phy-br-priv
L2 Agentが構成
br-priv
内部VLANと外部VLANを相互変換
・内部VLAN1⇔外部VLAN101
・内部VLAN2⇔外部VLAN102
eth1
VLAN101
VLAN102
Open vSwitch
23
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
24. 第2日 講義資料 No.2
Open vSwitchによるネットワークノードの実装 (2)
■
パブリックネットワークへ
複数の仮想ルータに対応して
iptablesによるパケット転送
のパスが複数用意されます。
eth1
IP
qg-VVV
qg-CCC
IP
iptablesで
NAT&フィルタリング
dnsmasq
IP
DHCP Agentが構成
L3 Agentが構成
br-ex
IP
tapXXX
IP
qr-YYY
dnsmasq
IP
qr-BBB
ポートVLAN tag:1
tapAAA
ポートVLAN tag:2
br-int
int-br-priv
内部VLANと外部VLANを相互変換
・内部VLAN1⇔外部VLAN101
・内部VLAN2⇔外部VLAN102
L2 Agentが構成
phy-br-priv
br-priv
eth2
プライベートネットワーク用スイッチへ
24
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
40. 第2日 講義資料 No.2
SDNの特徴 (1)
■
従来のネットワーク機器では、個々の機器が独立したコントロールプレーンを持ち、自
律分散型のアーキテクチャで動作していました。
相互に情報交換
相互に情報交換
コントロールプレーン
コントロールプレーン
データプレーン
■
コントロールプレーン
データプレーン
データプレーン
一方、SDNでは、単一のコントローラがデータプレーン全体の動作を集中制御する形態
となります。
集中制御
コントローラ
データプレーン
データプレーン
データプレーン
40
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
41. 第2日 講義資料 No.2
SDNの特徴 (2)
■
従来のネットワーク機器のコントロールプレーンは、組み込みソフトウェアとして実装
されており、エンドユーザがその動作仕様を変更することはできませんでした。
改変不可
コントロールプレーン
コントロールプレーン
データプレーン
■
コントロールプレーン
データプレーン
データプレーン
一方、SDNのコントローラは、一般的なサーバ上で動作するソフトウェアとして実装さ
れており、エンドユーザがソフトウェアを開発して、独自のコントローラを作成するこ
とができます。
コントローラ
データプレーン
データプレーン
エンドユーザが実装可能
データプレーン
41
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
42. 第2日 講義資料 No.2
SDNにおける仮想ネットワークの実装方式
■
SDNでマルチテナント型の仮想ネットワークを構成する方法に、「エッジネットワー
ク」と呼ばれる方式があります。
- SDNコントローラに仮想ネットワークの構成情報を持たせておき、仮想マシンから送信されたパ
ケットの行き先をコントローラ上で計算して、最終的なパケットの到達先を決定します。
- 仮想マシンからパケットを受け取ったOpen vSwitchは、コントローラの計算結に基づいて、パ
ケットの内容を変更した後に、最終到達先のOpen vSwitchにパケットを転送します。
OpenFlow
コントローラ
パケットの
処理方法を指示
VM
VM
Open vSwitch
VM
VM
Open vSwitch
普通のローカル
ネットワーク網
仮想ネットワーク
の論理構成
外部ネットワーク
42
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
44. 第2日 講義資料 No.2
全体の構成
■
ここでは、図の構成で、Fedora 18の上にRDO (Grizzly) をインストールする場合を例
として、インストール手順と初期設定の概要を説明します。
※ ここでは、物理サーバにインストールする手順を説明
しています。本講義の演習では、Nested KVMによる
仮想マシン環境を使用するため少し手順が異なります。
インターネット
パブリックネットワーク
プライベートネットワーク
em1
IP
Nova Compute以外の
すべてのコンポーネントを導入
em2
em3
br-ex
br-priv
em1
IP
br-int
em2
br-priv
em1
IP
em2
br-priv
br-int
コントローラノード
Nova Computeと
Neutron L2-pluginを導入
br-int
VM
NAT
・・・
VM
コンピュートノード
Open vSwitch
44
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
45. 第2日 講義資料 No.2
ネットワーク構成の設計
■
これから構築する環境で使用するIPアドレスを表のように決めておきます。
- サーバ自身のIPアドレスの他に、仮想ルータに割り当てるパブリックネットワーク側のIPアドレ
スや仮想マシンインスタンスに割り当てるフローティングIPなどに、パブリックIPアドレスを使
用します。「IPアドレスプール」は、これらの目的にOpenStackが使用するパブリックIPアドレ
スの範囲を指定します。
項目
値
サブネット
192.168.199.0/24
デフォルトゲートウェイ
192.168.199.1
DNSサーバ
8.8.8.8
IPアドレスプール
192.168.199.100
〜 192.168.199.199
サーバのIPアドレス
192.168.199.99
パブリック
ネットワーク
パブリックIP
仮想ルータ
仮想ネットワーク構成
仮想マシン
インスタンス
45
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
47. 第2日 講義資料 No.2
コントローラノード・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. 第2日 講義資料 No.2
コントローラノード・Fedora 18のインストール (2)
■
ネットワークの設定
- 「em1」にIPアドレスを設定します。この画面でホスト名を設定するのも忘れないでください。
■
ソフトウェアの選択
- 「最小限のインストール」+ 「標準アドオン」を選びます
48
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
49. 第2日 講義資料 No.2
コントローラノード・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. 第2日 講義資料 No.2
コントローラノード・Fedora 18のインストール (4)
- パーティション設定の画面で「ここをクリッ
クすると自動的に作成します。」をクリック
します。
- 右下図のようなパーティションが構成されま
すが、「/home」が余分なので削除します。
(画面下の「-」ボタンで削除します。)
- これで、「/dev/sda1~/dev/sda3」からな
るパーティションが構成できました。
「/dev/sda4」は、インストール完了後に手
動で作成します。
50
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
51. 第2日 講義資料 No.2
コントローラノード・Fedora 18のインストール (5)
■
インストール完了後の作業
- 「/etc/sysconfig/network-scripts/ifcfg-em2」と「/etc/sysconfig/network-scripts/ifcfgem3」をエディタで開いて、それぞれ、「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. 第2日 講義資料 No.2
コントローラノード・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. 第2日 講義資料 No.2
コントローラノード・RDOのインストール (1)
■
RDO (Grizzly) をコントローラノード用の構成で導入します。
- ここでは、GitHubで公開されているインストールスクリプトを利用します。次の手順で、スク
リプトをダウンロードして、「setup.sh」を実行します。
#
#
#
#
#
#
yum -y install git
cd ~
git clone https://github.com/enakai00/quickrdo
cd quickrdo
git checkout f18-grizzly-mn
./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. 第2日 講義資料 No.2
コントローラノード・RDOのインストール (2)
■
インストールスクリプトの解説
- 「setup.sh」の内容は下記のURLから参照できます。
●
https://github.com/enakai00/quickrdo/blob/f18-grizzly-mn/setup.sh
- RDOのインストール処理は、事前にControllerノード用のAnswerファイル「controller.txt」生
成した上で、下記の「packstack」コマンドで実施しています。
# packstack --answer-file=controller.txt
- Answerファイルの生成は次のコマンドで行なっています。デフォルトの内容をsedコマンドで修
正しています。
packstack --gen-answer-file=controller.txt
cp controller.txt controller.txt.orig
sed -i 's/CONFIG_SWIFT_INSTALL=.*/CONFIG_SWIFT_INSTALL=n/' controller.txt
sed -i 's/CONFIG_NAGIOS_INSTALL=.*/CONFIG_NAGIOS_INSTALL=n/' controller.txt
sed -i 's/CONFIG_CINDER_VOLUMES_CREATE=.*/CONFIG_CINDER_VOLUMES_CREATE=n/' controller.txt
sed -i 's/CONFIG_QUANTUM_OVS_TENANT_NETWORK_TYPE=.*/CONFIG_QUANTUM_OVS_TENANT_NETWORK_TYPE=vlan/' controller.txt
sed -i 's/CONFIG_QUANTUM_OVS_VLAN_RANGES=.*/CONFIG_QUANTUM_OVS_VLAN_RANGES=physnet2:100:199/' controller.txt
sed -i 's/CONFIG_QUANTUM_OVS_BRIDGE_MAPPINGS=.*/CONFIG_QUANTUM_OVS_BRIDGE_MAPPINGS=physnet2:br-priv/' controller.txt
- 「setup.sh」では、その他にOSレベルの設定変更、既知の問題に対するパッチの適用などを併せ
て行なっています。
54
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
55. 第2日 講義資料 No.2
コントローラノード・インストール後の初期設定 (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. 第2日 講義資料 No.2
コントローラノード・インストール後の初期設定 (2)
- 次のコマンドで、初期設定を行います。
# cd ~/quickrdo
# ./config.sh
- 「External NIC:」および「Private NIC:」という表示が出るので、それぞれ「パブリックネット
ワーク接続用NIC」と「プライベートネットワーク接続用NIC」のデバイス名(今の例では
「em2」と「em3」)を入力します。「Configuration finished.」と表示されれば完了です。
- 設定を変更する際は、「./config.sh」を再度実行します。以前の設定を削除して、新しい設定が
行われます。
パブリックネットワーク
パブリックネットワーク
接続用NIC
em1
IP
プライベートネットワーク
em2
em3
br-ex
br-priv
プライベートネットワーク
接続用NIC
br-int
NAT
コントローラノード
56
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
59. 第2日 講義資料 No.2
コントローラノード・インストール後の初期設定 (5)
●
仮想スイッチを作成して、仮想ルータに接続
for (( i = 0; i < ${#private[@]}; ++i )); do
name=$(printf "private%02d" $(( i + 1 )))
vlanid=$(printf "%03d" $(( i + 101 )))
subnet=${private[i]}
quantum net-create
--tenant-id $tenant ${name}
--provider:network_type vlan
--provider:physical_network physnet2
--provider:segmentation_id ${vlanid}
quantum subnet-create
--tenant-id $tenant --name ${name}-subnet
--dns-nameserver ${nameserver} ${name} ${subnet}
quantum router-interface-add demo_router ${name}-subnet
done
59
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
60. 第2日 講義資料 No.2
コントローラノード・インストール後の初期設定 (6)
●
デフォルトのセキュリティグループに対して、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
●
「External NIC:」と「Private NIC:」で指定したNICをOpen vSwitch「br-ex」と「br-priv」
に接続
ovs-vsctl add-port br-ex ${extnic}
ovs-vsctl add-port br-priv ${privnic}
60
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
61. 第2日 講義資料 No.2
コンピュートノード・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
61
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
62. 第2日 講義資料 No.2
コンピュートノード・Fedora 18のインストール (2)
■
ネットワークの設定
- 「em1」にIPアドレスを設定します。この画面でホスト名を設定するのも忘れないでください。
■
ソフトウェアの選択
- 「最小限のインストール」+ 「標準アドオン」を選びます
62
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
63. 第2日 講義資料 No.2
コンピュートノード・Fedora 18のインストール (3)
■
ディスクパーティションは表の構成としますが、GUIインストーラからは、次の手順に
従います。
パーティション
サイズ
用途
/dev/sda1
500MB
/boot
/dev/sda2
適宜
Swap
/dev/sda3
残り全部
/
- インストール先のディスクを選択して続行す
ると「インストールオプション」のポップ
アップがでるので、「パーティションスキー
マの設定」→「パーティションタイプ」→
「標準パーティション」を選んで、「代わり
にディスクのパーティション設定をカスタマ
イズさせて下さい。」にチェックを入れま
す。
63
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
64. 第2日 講義資料 No.2
コンピュートノード・Fedora 18のインストール (4)
- パーティション設定の画面で「ここをクリック
すると自動的に作成します。」をクリックしま
す。
- 右下図のようなパーティションが構成されます
が、「/home」が余分なので削除します。(画
面下の「-」ボタンで削除します。)
- 「/」を選択して、容量を最大まで拡張します。
(極端に大きな容量を指定すると、自動的に最
大容量に調整されます。)
■
インストール完了後の作業
- 「/etc/sysconfig/network-scripts/ifcfgem2」をエディタで開いて、「ONBOOT=yes」
を「ONBOOT=no」に変更します。
- 全パッケージをアップデートしておきます。
# yum -y update
64
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
65. 第2日 講義資料 No.2
コンピュートノード・RDOのインストール (1)
■
RDO (Grizzly) をコンピュートノード用の構成で導入します。
- コンピュートノードへのRDOのインストールは、先に構築したコントローラノードからネット
ワーク経由で実施します。先にダウンロードした次のスクリプトを実行します。
# cd ~/quickrdo
# ./add_compute.sh 192.168.199.12
インストール対象のコンピュートノードのIPアドレスを指定
- 「「Private NIC:」という表示が出るので、「プライベートネットワーク接続用NIC」のデバイス
名(今の例では「em2」)を入力します。
パブリックネットワーク
プライベートネットワーク
em1
IP
em2
br-priv
プライベートネットワーク
接続用NIC
br-int
コンピュートノード
VM
65
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
66. 第2日 講義資料 No.2
コンピュートノード・RDOのインストール (2)
- さらに、途中で次のようなメッセージがでたら、それぞれ、「yes」とコンピュートノードの
rootパスワードを入力します。
Are you sure you want to continue connecting (yes/no)?
root@192.168.199.12's password:
- 途中で一度、インストール対象のコンピュートノードが再起動しますが、そのまま待ちます。最
後に「Done.」と表示されて、スクリプトが終了すればインストール完了です。
■
コンピュートノードは、同じ手順で任意の台数だけ追加していくことができます。
66
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
67. 第2日 講義資料 No.2
コンピュートノード・RDOのインストール (3)
■
インストールスクリプトの解説
- 「add_compute.sh」の内容は下記のURLから参照できます。
●
https://github.com/enakai00/quickrdo/blob/f18-grizzly-mn/add_compute.sh
- RDOのインストール処理は、事前にコンピュートノード用のAnswerファイル「compute.txt」生
成した上で、下記の「packstack」コマンドで実施しています。
# packstack --answer-file=compute.txt
- Answerファイルの生成は次のコマンドで行なっています。コンピュートノード用のAnswerファ
イルをコピーして、必要な修正を行なっています。
cp -f controller.txt compute.txt
compute_ip=$(awk -F"=" '/CONFIG_NOVA_API_HOST=/{ print $2 }' compute.txt )
sed -i "s/EXCLUDE_SERVERS=.*/EXCLUDE_SERVERS=${compute_ip}/" compute.txt
sed -i "s/CONFIG_NOVA_COMPUTE_HOSTS=.*/CONFIG_NOVA_COMPUTE_HOSTS=${node}/" compute.txt
- 「add_compute.sh」では、その他にOSレベルの設定変更、既知の問題に対するパッチの適用な
どを併せて行なっています。
67
Copyright (C) 2014 National Institute of Informatics, All rights reserved.