SlideShare una empresa de Scribd logo
1 de 71
Descargar para leer sin conexión
OpenStackクラウド基盤構築ハンズオンセミナー

第2日 講義資料 No.2

ver1.1 2014/01/15
1
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
第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.
第2日 講義資料 No.2

Neutronの基本構造

3
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
第2日 講義資料 No.2

OpenStackの仮想ネットワークモデル
■

プロジェクトごとに仮想ルータを用いて、プライベートなネットワークを構成します。
- 仮想ルータの背後に任意の数の仮想スイッチを作成して、接続します。
- それぞれの仮想スイッチは、プライベートIPの独立したサブネットを持ちます。

■

仮想マシンインスタンス起動時に、接続する仮想スイッチを選択します。
- DHCPでプライベートIPアドレスが割り当てられます。
- 同じプロジェクトの仮想マシンインスタンス間は、プライベートIPで通信できます。

外部ネットワーク

プロジェクトA
仮想ルータ

仮想スイッチ
192.168.101.0/24

プロジェクトB
仮想ルータ

仮想スイッチ
192.168.102.0/24
4
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
第2日 講義資料 No.2

Neutronのプラグイン構造
■

Neutronサービスから指示を受けたAgent群が、実際の仮想ネットワークの構成を行い
ます。
- 使用するAgentをプラグインとして選択することで、仮想ネットワークの実装方式を選択するこ
とができます。OpenStackが標準で提供するプラグインには、「LinuxBridgeプラグイン」
「Open vSwitchプラグイン」などがあります。
- その他、サードベンダのSDN製品が提供するプラグインを利用することもできます。
ネットワークコントローラ

コントローラノード

REST APIを提供

Neutronサービス

L3 Agent

仮想ルータ作成

L2 Agent

仮想スイッチ作成

DHCP Agent

プライベートIP割り当て

コンピュートノード
L2 Agent
メッセージングサーバ経由の通信

仮想スイッチ作成
5

Copyright (C) 2014 National Institute of Informatics, All rights reserved.
第2日 講義資料 No.2

標準プラグインを使用する際のネットワーク構成
■

LinuxBridgeプラグイン / Open vSwitchプラグインを使用する際は、図のようなネット
ワーク構成を取ります。
- ネットワークノード上のL3 Agentが提供する仮想ルータ機能により、プライベートネットワーク
とパブリックネットワークを相互接続します。(「eth0」はホストLinux接続用のNICです。仮
想マシンの通信には使用しません。)
- ネットワークノードが1つしか無いために、ネットワーク通信のボトルネックになるという課題
があります。
パブリックネットワーク
プライベートネットワーク
eth0

eth1

eth2

eth0

L2 Agent
プライベートIP用
のDHCPサーバ

DHCP Agent

eth1

eth1

eth0

L2 Agent

L2 Agent

・・・

仮想スイッチ作成

VM

VM

VM

VM

L3 Agent
ネットワークノード

仮想ルータ機能提供

コンピュートノード
6
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
第2日 講義資料 No.2

LinuxBridgeプラグインによる実装例

7
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
第2日 講義資料 No.2

LinuxBridgeプラグインによる実装例 (1)
■

LinuxBridgeプラグインを用いて、下図の仮想ネットワークを作成した際の具体的な実
装をコンピュートノード、ネットワークノードのそれぞれで示します。
- 1つのプロジェクトのみ存在して、2個の仮想スイッチ(サブネット)が用意されています。

外部ネットワーク

仮想ルータ

仮想スイッチ
private01

vm01

仮想スイッチ
private02

vm02

vm03
8

Copyright (C) 2014 National Institute of Informatics, All rights reserved.
第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.
第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.
第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.
第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.
第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.
第2日 講義資料 No.2

メモとしてお使いください

14
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
第2日 講義資料 No.2

Open vSwitchプラグインによる実装例

15
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
第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.
第2日 講義資料 No.2

OpenFlowについて
■

OpenFlowは、ネットワークスイッチが受け取ったパケットの転送処理を外部の「コン
トローラ」で制御するためのプロトコルです。
- OpenFlow対応のスイッチは、パケットを受け取ると、その処理方法をコントローラに問い合わ
せて、コントローラの指示に基づいて転送処理を行います。
- この際、パケットの内容を比較的自由に操作することができるので、マルチテナント型の仮想
ネットワークの構築が容易になります。具体的には、送信元/送信先MACアドレスによって出力
ポートを決定する、VLANタグなどのヘッダ情報を修正する、などが可能です。
- 1つのコントローラで複数のOpenFlowスイッチを管理する他、OpenFlowスイッチごとにコン
トローラを分けるなどの構成も可能です。
OpenFlowコントローラ
受信パケットの処理方法を
コントローラに問い合わせ

OpenFlowスイッチ
17
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
第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.
第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.
第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.
第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.
第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.
第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.
第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.
第2日 講義資料 No.2

ネットワークネームスペース(netns)について
■

■

複数の仮想ルータを定義した場合、ネットワークノードでは、iptablesによるNAT/フィ
ルタリングの設定を仮想ルータごとに個別に持つ必要があります。Linuxでは、「ネッ
トワークネームスペース(netns)」を利用することで、1つのOS上に複数の独立した
ネットワーク設定を持つことができます。
ネットワークネームスペースの利用手順は次のようになります。
- 新しいネームスペースを作成する。
- ネットワークポートをネームスペース内部に入れる。(物理ポート/論理ポートどちらも可能)
- ネームスペース内部でネットワーク設定(ポート設定、iptablesなど)を行う。
- これにより、特定のネームスペース内部のネットワークポートに出入りするパケットには、その
ネームスペース内部のネットワーク設定が適用されます。

■

LinuxBridgeプラグイン / Open vSwitchプラグインのL3プラグインは、ネットワーク
ネームスペースを利用した設定を行います。
- オプションで、ネットワークネームスペースを使わない設定も利用できますが、この場合は、異
なるプロジェクトで同一のサブネットを利用することができなくなります。
25
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
第2日 講義資料 No.2

Open vSwitchプラグインによる実装の全体像
■

説明は次ページを参照
パブリック
ネットワーク

ネットワーク
ネームスペース

Open vSwitch

ネットワークノード

eth1
br-ex
dnsmasq

仮想ルータの
パブリックNW側のGW IP

dnsmasq
iptablesで
NAT接続

br-int
br-priv
仮想スイッチ毎に
VLANをマッピング
(OpenFlowで制御)

eth2

コンピュートノード

VM1

VM2

br-int
br-priv

仮想ルータの
プライベートNW側
のGW IP

eth1

VLAN Trunk

接続仮想スイッチ毎に
VLANをマッピング
(OpenFlowで制御)

26
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
第2日 講義資料 No.2

Open vSwitchプラグインによる実装の全体像
■

仮想ネットワークを構成するコンポーネント(仮想スイッチ、仮想ルータなど)を定義
していくと、それに合わせて、各エージェントが次のような設定を行います。
- 仮想スイッチを作成するとL2エージェントは、「br-int」のポートとVLANをマッピングして、
複数のComputeノード間をVLANで接続します。また、DHCPエージェントは、dnsmasqを起動
して、対応するVLAN上にDHCP機能を提供します。
- 仮想ルータを作成してパブリックネットワークに接続すると、L3エージェントは、「br-ex」に
パブリックネットワーク側のゲートウェイとなるポートを作成します。
- 仮想スイッチを仮想ルータに接続すると、L3エージェントは、「br-int」にプライベートネット
ワーク側のゲートウェイとなるポートを作成して、プライベートネットワークとパブリックネッ
トワークの間のNAT接続を開始します。

■

この他に、仮想マシンインスタンスにメタデータを提供するための「Metadata Proxy
エージェント」があります。
- ネットワークノード上のiptablesの設定より、「169.254.169.254:80」宛のパケットは、同じ
ノード上のMetadata Proxyエージェントに転送されます。このエージェントは、パケット送信
元のIPアドレスから、どの仮想マシンインスタンスからのリクエストかを判別して、対応するメ
タデータを返送します。
27
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
第2日 講義資料 No.2

Metadata Proxyエージェントへのパケット転送
■

次のコマンドは、ネットワークノード上で、仮想ルータを含むネットワークネームス
ペース内部のiptables設定を見ています。これから、「169.254.169.254:80」宛のパ
ケットが同ノード上のMetadata Proxyエージェントに転送されることが分かります。

# ip netns list
qrouter-b35f6433-c3e7-489a-b505-c3be5606a643
qdhcp-1a4f4b41-3fbb-48a6-bb12-9621077a4f92
qrouter-86654720-d4ff-41eb-89db-aaabd4b13a35
qdhcp-f8422fc9-dbf8-4606-b798-af10bb389708

仮想ルータを含む
ネットワークネームスペース

# ip netns exec qrouter-b35f6433-c3e7-489a-b505-c3be5606a643 iptables -t nat -L
...
Chain quantum-l3-agent-PREROUTING (1 references)
target
prot opt source
destination
REDIRECT
tcp -- anywhere
169.254.169.254
tcp dpt:http redir ports 9697
...
# ps -ef | grep 9697
root
63055
1 0 7月09 ?
00:00:00 python /bin/quantum-ns-metadata-proxy
--pid_file=/var/lib/quantum/external/pids/b35f6433-c3e7-489a-b505-c3be5606a643.pid
--router_id=b35f6433-c3e7-489a-b505-c3be5606a643 --state_path=/var/lib/quantum
--metadata_port=9697 --verbose --log-file=quantum-ns-metadata-proxyb35f6433-c3e7-489a-b505c3be5606a643.log --log-dir=/var/log/quantum
■

メタデータを利用する際は、ゲストOSの「/etc/sysconfig/network」に
「NOZEROCONF=yes」の設定が必要ですので注意してください。
- これが無いとAPIPAの仕様により、「169.254.0.0/16」宛のパケットが外部にルーティングさ
れないためにメタデータの取得に失敗します。

28

Copyright (C) 2014 National Institute of Informatics, All rights reserved.
第2日 講義資料 No.2

メモとしてお使いください

29
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
第2日 講義資料 No.2

メモとしてお使いください

30
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
第2日 講義資料 No.2

仮想ネットワークの構成手順

31
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
第2日 講義資料 No.2

仮想ネットワークの構成手順 (1)
■

ネットワークノードとコンピュートノードを分離した構成で、コマンドラインから仮想
ネットワークを定義する手順を示します。
- ここでは、環境依存のパラメータとして、次の変数を使用します。
public="192.168.199.0/24"
gateway="192.168.199.1"
nameserver="192.168.199.1"
pool=("192.168.199.100" "192.168.199.199")

- 外部ネットワーク「ext-network」を定義します。
tenant=$(keystone tenant-list | awk '/ services / {print $2}')
quantum net-create 
--tenant-id $tenant ext-network --shared 
--provider:network_type flat --provider:physical_network physnet1 
--router:external=True
●

●

●

●

外部ネットワークは複数プロジェクトで共有するため、所有テナント(--tenant-id)は共有
用の「services」を指定して、--sharedオプションを指定します。
外部ネットワークではVLANを使用しないので、network_typeは「flat」を指定します。
外部ネットワーク接続用のOpen vSwitchには、プラグイン設定ファイル(plugin.ini)で、
physnet1という設定名を付けてあり、これをphysical_networkに指定します。
仮想ルータのデフォルトゲートウェイとするため「--router:external=True」を指定します。
32
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
第2日 講義資料 No.2

仮想ネットワークの構成手順 (2)
- 外部ネットワークのサブネットを定義します。
quantum subnet-create 
--tenant-id $tenant --gateway ${gateway} --disable-dhcp 
--allocation-pool start=${pool[0]},end=${pool[1]} 
ext-network ${public}
●

--allocation-poolでは、IPアドレスプール(外部ネットワーク上のIPアドレスで、OpenStack
が自由に利用できる範囲)を指定します。

- プロジェクト「demo」用の仮想ルータ「demo_router」を作成して、外部ネットワークに接続
します。
tenant=$(keystone tenant-list|awk '/ demo / {print $2}')
quantum router-create --tenant-id $tenant demo_router
quantum router-gateway-set demo_router ext-network
●

所有テナント(--tenant-id)に「demo」を指定します。

プラグイン設定ファイル(/etc/quantum/plugin.ini)のOpen vSwitch関連設定部分
bridge_mappings=physnet1:br-ex,physnet2:br-priv
tenant_network_type=vlan
network_vlan_ranges=physnet1,physnet2:100:199

ネットワーク設定名とOpen vSwitchの対応
各ネットワークで使用するVLAN IDの範囲
(physnet1はVLANを使用しない)

33
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
第2日 講義資料 No.2

仮想ネットワークの構成手順 (3)
- プライベートネットワーク(仮想スイッチ)「private01」を定義します。
quantum net-create 
--tenant-id $tenant private01 
--provider:network_type vlan 
--provider:physical_network physnet2 
--provider:segmentation_id 101
●

●

プライベートネットワークは、VLANで分割するためnetwork_typeは「vlan」を指定しま
す。また、segmentation_idで、VLAN IDを指定します。
プライベートネットワーク接続用のOpen vSwitchには、設定ファイル(plugin.ini)で、
physnet2という名前を付けてあり、これをphysical_networkに指定します。

- 「private01」のサブネットを定義して、仮想ルータに接続します。
quantum subnet-create 
--tenant-id $tenant --name private01-subnet 
--dns-nameserver ${nameserver} private01 192.168.1.101/24
quantum router-interface-add demo_router private01-subnet
●

ここでは例として、サブネット「192.168.1.101/24」を指定しています。

34
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
第2日 講義資料 No.2

SDN (Software Defined Network) の概要

35
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
第2日 講義資料 No.2

SDNの一般的なアーキテクチャ
■

図は「ONF(Open Networking Foundation)」が定義するSDNの一般的なアーキテク
チャです。

コントローラに仮想ネットワークの
構成を要求するアプリケーション

ノースバウンドAPI
複数のネットワーク機器を
制御するコントローラ

サウスバウンドAPI

コントローラから制御される
ネットワーク機器群
(出典)https://www.opennetworking.org/sdn-resources/sdn-library/whitepapers
36
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
第2日 講義資料 No.2

SDNにおけるOpenFlowの役割
■

OpenFlowは、コントローラからネットワーク機器を制御するプロトコルであり、SDN
のアーキテクチャ上は、「サウスバウンドAPI」の標準実装とされています。

ノースバウンドAPI

サウスバウンドAPI
ここがOpenFlowの役割

37
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
第2日 講義資料 No.2

SDNにおけるNeutronの役割
■

Neutronは、エージェントのプラグイン方式でさまざまなSDNコントローラの利用に対
応ます。これは、複数のSDNコントローラに対して、共通のノースバウンドAPIを提供
するものと理解できます。

OpenStack Neutron

ノースバウンドAPI

コントローラ別のエージェント

38
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
第2日 講義資料 No.2

SDNのアーキテクチャの起源
■

■

もともと、スイッチ内部において、ポート間のパケット転送処理に特化したASICによる
「データプレーン」と、パケット転送ルールを決定する組込SWベースの「コントロー
ルプレーン」がありました。
SDNのアーキテクチャは、コントロールプレーンを外出しにして、複数スイッチを制御
するように拡張したものと考えられます。

ここの通信経路が
コントロールプレーン

(出典)http://www.unix-power.net/routing
/catalyst_hardware.html

ここの通信経路が
データプレーン
39
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
第2日 講義資料 No.2

SDNの特徴 (1)
■

従来のネットワーク機器では、個々の機器が独立したコントロールプレーンを持ち、自
律分散型のアーキテクチャで動作していました。
相互に情報交換

相互に情報交換

コントロールプレーン

コントロールプレーン

データプレーン

■

コントロールプレーン
データプレーン

データプレーン

一方、SDNでは、単一のコントローラがデータプレーン全体の動作を集中制御する形態
となります。
集中制御
コントローラ

データプレーン

データプレーン

データプレーン
40

Copyright (C) 2014 National Institute of Informatics, All rights reserved.
第2日 講義資料 No.2

SDNの特徴 (2)
■

従来のネットワーク機器のコントロールプレーンは、組み込みソフトウェアとして実装
されており、エンドユーザがその動作仕様を変更することはできませんでした。
改変不可
コントロールプレーン

コントロールプレーン

データプレーン

■

コントロールプレーン
データプレーン

データプレーン

一方、SDNのコントローラは、一般的なサーバ上で動作するソフトウェアとして実装さ
れており、エンドユーザがソフトウェアを開発して、独自のコントローラを作成するこ
とができます。
コントローラ

データプレーン

データプレーン

エンドユーザが実装可能

データプレーン
41

Copyright (C) 2014 National Institute of Informatics, All rights reserved.
第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.
第2日 講義資料 No.2

(参考)複数ノード構成のインストール手順と
初期設定の概要

43
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
第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.
第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.
第2日 講義資料 No.2

仮想ネットワークの設計
■

各プロジェクトの仮想ネットワークは、OpenStackをインストールした後に、プロジェ
クトごとに自由に構成することができます。
- ここでは、図のように仮想ルータに2個の仮想スイッチを接続して、それぞれ、
「192.168.101.0/24」と「192.168.102.0/24」のサブネットを割り当てるものとします。

仮想ルータ

46
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
第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.
第2日 講義資料 No.2

コントローラノード・Fedora 18のインストール (2)
■

ネットワークの設定
- 「em1」にIPアドレスを設定します。この画面でホスト名を設定するのも忘れないでください。

■

ソフトウェアの選択
- 「最小限のインストール」+ 「標準アドオン」を選びます

48
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
第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.
第2日 講義資料 No.2

コントローラノード・Fedora 18のインストール (4)
- パーティション設定の画面で「ここをクリッ
クすると自動的に作成します。」をクリック
します。
- 右下図のようなパーティションが構成されま
すが、「/home」が余分なので削除します。
(画面下の「-」ボタンで削除します。)
- これで、「/dev/sda1~/dev/sda3」からな
るパーティションが構成できました。
「/dev/sda4」は、インストール完了後に手
動で作成します。

50
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
第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.
第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.
第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.
第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.
第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.
第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.
第2日 講義資料 No.2

コントローラノード・インストール後の初期設定 (3)
■

初期設定スクリプトの解説
- 「config.sh」の内容は下記のURLから参照できます。
●

https://github.com/enakai00/quickrdo/blob/f18-grizzly-mn/config.sh

- このスクリプトでは次のような処理を行なっています。
●

管理者権限を使用するための環境変数をセット

. /root/keystonerc_admin
●

Fedora 19のマシンイメージをインターネットからインポート

glance image-create --name "Fedora19" 
--disk-format qcow2 --container-format bare --is-public true 
--copy-from http://cloud.fedoraproject.org/fedora-19.x86_64.qcow2
●

プロジェクト「demo」と該当プロジェクトのユーザ(一般ユーザ「demo_user/passw0rd」
と管理者ユーザ「demo_admin/passw0rd」)を作成

keystone
keystone
keystone
keystone
keystone

tenant-create --name demo
user-create --name demo_admin --pass passw0rd
user-create --name demo_user --pass passw0rd
user-role-add --user demo_admin --role admin --tenant demo
user-role-add --user demo_user --role Member --tenant demo

57
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
第2日 講義資料 No.2

コントローラノード・インストール後の初期設定 (4)
●

パブリックネットワークを定義
tenant=$(keystone tenant-list | awk '/ services / {print $2}')
quantum net-create 
--tenant-id $tenant ext-network --shared 
--provider:network_type flat --provider:physical_network physnet1 
--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

58
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
第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.
第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.
第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.
第2日 講義資料 No.2

コンピュートノード・Fedora 18のインストール (2)
■

ネットワークの設定
- 「em1」にIPアドレスを設定します。この画面でホスト名を設定するのも忘れないでください。

■

ソフトウェアの選択
- 「最小限のインストール」+ 「標準アドオン」を選びます

62
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
第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.
第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.
第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.
第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.
第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.
第2日 講義資料 No.2

メモとしてお使いください

68
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
第2日 講義資料 No.2

メモとしてお使いください

69
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
第2日 講義資料 No.2

メモとしてお使いください

70
Copyright (C) 2014 National Institute of Informatics, All rights reserved.
71
Copyright (C) 2014 National Institute of Informatics, All rights reserved.

Más contenido relacionado

La actualidad más candente

作って(壊して?)学ぶインターネットのしくみ サイバーエージェントの実験用ASの紹介 / Introduce experimental AS in ...
作って(壊して?)学ぶインターネットのしくみ サイバーエージェントの実験用ASの紹介 / Introduce experimental AS in ...作って(壊して?)学ぶインターネットのしくみ サイバーエージェントの実験用ASの紹介 / Introduce experimental AS in ...
作って(壊して?)学ぶインターネットのしくみ サイバーエージェントの実験用ASの紹介 / Introduce experimental AS in ...whywaita
 
ML2/OVN アーキテクチャ概観
ML2/OVN アーキテクチャ概観ML2/OVN アーキテクチャ概観
ML2/OVN アーキテクチャ概観Yamato Tanaka
 
日本OpenStackユーザ会 第37回勉強会
日本OpenStackユーザ会 第37回勉強会日本OpenStackユーザ会 第37回勉強会
日本OpenStackユーザ会 第37回勉強会Yushiro Furukawa
 
NUCで始めるVMware Tanzu
NUCで始めるVMware TanzuNUCで始めるVMware Tanzu
NUCで始めるVMware TanzuHirotaka Sato
 
君にもできる! にゅーとろん君になってみよー!! 「Neutronになって理解するOpenStack Net - OpenStack最新情報セミナー ...
君にもできる! にゅーとろん君になってみよー!!  「Neutronになって理解するOpenStack Net - OpenStack最新情報セミナー ...君にもできる! にゅーとろん君になってみよー!!  「Neutronになって理解するOpenStack Net - OpenStack最新情報セミナー ...
君にもできる! にゅーとろん君になってみよー!! 「Neutronになって理解するOpenStack Net - OpenStack最新情報セミナー ...VirtualTech Japan Inc.
 
IPv4/IPv6 移行・共存技術の動向
IPv4/IPv6 移行・共存技術の動向IPv4/IPv6 移行・共存技術の動向
IPv4/IPv6 移行・共存技術の動向Yuya Rin
 
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門Kohei Tokunaga
 
OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月
OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月
OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月VirtualTech Japan Inc.
 
OpenStackをさらに”使う”技術 概要と基礎操作
OpenStackをさらに”使う”技術 概要と基礎操作OpenStackをさらに”使う”技術 概要と基礎操作
OpenStackをさらに”使う”技術 概要と基礎操作irix_jp
 
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...whywaita
 
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理NTT DATA Technology & Innovation
 
OpenStackでも重要な役割を果たすPacemakerを知ろう!
OpenStackでも重要な役割を果たすPacemakerを知ろう!OpenStackでも重要な役割を果たすPacemakerを知ろう!
OpenStackでも重要な役割を果たすPacemakerを知ろう!ksk_ha
 
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)Takeshi HASEGAWA
 
CyberAgentのインフラについて メディア事業編 #catechchallenge
CyberAgentのインフラについて メディア事業編 #catechchallengeCyberAgentのインフラについて メディア事業編 #catechchallenge
CyberAgentのインフラについて メディア事業編 #catechchallengewhywaita
 
OpenStack超入門シリーズ Novaのディスク周りあれこれ
OpenStack超入門シリーズ Novaのディスク周りあれこれOpenStack超入門シリーズ Novaのディスク周りあれこれ
OpenStack超入門シリーズ Novaのディスク周りあれこれToru Makabe
 
ONIC-Japan-2019-OVN public
ONIC-Japan-2019-OVN publicONIC-Japan-2019-OVN public
ONIC-Japan-2019-OVN publicManabu Ori
 
第20回 OpenStack勉強会 Neutron Deep Dive - DVR
第20回 OpenStack勉強会 Neutron Deep Dive - DVR第20回 OpenStack勉強会 Neutron Deep Dive - DVR
第20回 OpenStack勉強会 Neutron Deep Dive - DVRToru Makabe
 
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月 知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月 VirtualTech Japan Inc.
 

La actualidad más candente (20)

作って(壊して?)学ぶインターネットのしくみ サイバーエージェントの実験用ASの紹介 / Introduce experimental AS in ...
作って(壊して?)学ぶインターネットのしくみ サイバーエージェントの実験用ASの紹介 / Introduce experimental AS in ...作って(壊して?)学ぶインターネットのしくみ サイバーエージェントの実験用ASの紹介 / Introduce experimental AS in ...
作って(壊して?)学ぶインターネットのしくみ サイバーエージェントの実験用ASの紹介 / Introduce experimental AS in ...
 
ML2/OVN アーキテクチャ概観
ML2/OVN アーキテクチャ概観ML2/OVN アーキテクチャ概観
ML2/OVN アーキテクチャ概観
 
日本OpenStackユーザ会 第37回勉強会
日本OpenStackユーザ会 第37回勉強会日本OpenStackユーザ会 第37回勉強会
日本OpenStackユーザ会 第37回勉強会
 
TripleO Deep Dive
TripleO Deep DiveTripleO Deep Dive
TripleO Deep Dive
 
NUCで始めるVMware Tanzu
NUCで始めるVMware TanzuNUCで始めるVMware Tanzu
NUCで始めるVMware Tanzu
 
君にもできる! にゅーとろん君になってみよー!! 「Neutronになって理解するOpenStack Net - OpenStack最新情報セミナー ...
君にもできる! にゅーとろん君になってみよー!!  「Neutronになって理解するOpenStack Net - OpenStack最新情報セミナー ...君にもできる! にゅーとろん君になってみよー!!  「Neutronになって理解するOpenStack Net - OpenStack最新情報セミナー ...
君にもできる! にゅーとろん君になってみよー!! 「Neutronになって理解するOpenStack Net - OpenStack最新情報セミナー ...
 
IPv4/IPv6 移行・共存技術の動向
IPv4/IPv6 移行・共存技術の動向IPv4/IPv6 移行・共存技術の動向
IPv4/IPv6 移行・共存技術の動向
 
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
 
OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月
OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月
OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月
 
OpenStackをさらに”使う”技術 概要と基礎操作
OpenStackをさらに”使う”技術 概要と基礎操作OpenStackをさらに”使う”技術 概要と基礎操作
OpenStackをさらに”使う”技術 概要と基礎操作
 
ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門
 
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
 
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
 
OpenStackでも重要な役割を果たすPacemakerを知ろう!
OpenStackでも重要な役割を果たすPacemakerを知ろう!OpenStackでも重要な役割を果たすPacemakerを知ろう!
OpenStackでも重要な役割を果たすPacemakerを知ろう!
 
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
 
CyberAgentのインフラについて メディア事業編 #catechchallenge
CyberAgentのインフラについて メディア事業編 #catechchallengeCyberAgentのインフラについて メディア事業編 #catechchallenge
CyberAgentのインフラについて メディア事業編 #catechchallenge
 
OpenStack超入門シリーズ Novaのディスク周りあれこれ
OpenStack超入門シリーズ Novaのディスク周りあれこれOpenStack超入門シリーズ Novaのディスク周りあれこれ
OpenStack超入門シリーズ Novaのディスク周りあれこれ
 
ONIC-Japan-2019-OVN public
ONIC-Japan-2019-OVN publicONIC-Japan-2019-OVN public
ONIC-Japan-2019-OVN public
 
第20回 OpenStack勉強会 Neutron Deep Dive - DVR
第20回 OpenStack勉強会 Neutron Deep Dive - DVR第20回 OpenStack勉強会 Neutron Deep Dive - DVR
第20回 OpenStack勉強会 Neutron Deep Dive - DVR
 
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月 知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
 

Destacado

OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No1
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No1OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No1
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No1Etsuji Nakai
 
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2Etsuji Nakai
 
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo2
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo2OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo2
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo2Etsuji Nakai
 
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1Etsuji Nakai
 
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:ハンズオンNo1
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:ハンズオンNo1OpenStackクラウド基盤構築ハンズオンセミナー 第2日:ハンズオンNo1
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:ハンズオンNo1Etsuji Nakai
 
エンジニア向け夏期特別講座 〜 Red Hat OpenStack徹底解説! 第二部 OpenStackの内部構造
エンジニア向け夏期特別講座 〜 Red Hat OpenStack徹底解説! 第二部 OpenStackの内部構造エンジニア向け夏期特別講座 〜 Red Hat OpenStack徹底解説! 第二部 OpenStackの内部構造
エンジニア向け夏期特別講座 〜 Red Hat OpenStack徹底解説! 第二部 OpenStackの内部構造Etsuji Nakai
 
OpenStack: Inside Out
OpenStack: Inside OutOpenStack: Inside Out
OpenStack: Inside OutEtsuji Nakai
 
OpenStackによる、実践オンプレミスクラウド
OpenStackによる、実践オンプレミスクラウドOpenStackによる、実践オンプレミスクラウド
OpenStackによる、実践オンプレミスクラウドMasanori Itoh
 
Openv switchの使い方とか
Openv switchの使い方とかOpenv switchの使い方とか
Openv switchの使い方とかkotto_hihihi
 
OpenStackで自動化ツールを使ってみた!(Ubuntu MAAS 1.7 対応版)
OpenStackで自動化ツールを使ってみた!(Ubuntu MAAS 1.7 対応版)OpenStackで自動化ツールを使ってみた!(Ubuntu MAAS 1.7 対応版)
OpenStackで自動化ツールを使ってみた!(Ubuntu MAAS 1.7 対応版)VirtualTech Japan Inc.
 
エンジニア向け夏期特別講座 〜 Red Hat OpenStack徹底解説! 第一部 OpenStack入門
エンジニア向け夏期特別講座 〜 Red Hat OpenStack徹底解説! 第一部 OpenStack入門エンジニア向け夏期特別講座 〜 Red Hat OpenStack徹底解説! 第一部 OpenStack入門
エンジニア向け夏期特別講座 〜 Red Hat OpenStack徹底解説! 第一部 OpenStack入門Etsuji Nakai
 
OSSのクラウド基盤 OpenStack / CloudStack
OSSのクラウド基盤 OpenStack / CloudStackOSSのクラウド基盤 OpenStack / CloudStack
OSSのクラウド基盤 OpenStack / CloudStackNobuyuki Tamaoki
 
RDOで体験! OpenStackの基本機能
RDOで体験! OpenStackの基本機能RDOで体験! OpenStackの基本機能
RDOで体験! OpenStackの基本機能Etsuji Nakai
 
OpenStack マルチノード環境構築
OpenStack マルチノード環境構築OpenStack マルチノード環境構築
OpenStack マルチノード環境構築HommasSlide
 
Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要
Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要
Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要Etsuji Nakai
 
OpenStackのQuantum(LinuxBridge Plugin)が実際どうやって仮想ネットワークを構成するのか説明する資料
OpenStackのQuantum(LinuxBridge Plugin)が実際どうやって仮想ネットワークを構成するのか説明する資料OpenStackのQuantum(LinuxBridge Plugin)が実際どうやって仮想ネットワークを構成するのか説明する資料
OpenStackのQuantum(LinuxBridge Plugin)が実際どうやって仮想ネットワークを構成するのか説明する資料Etsuji Nakai
 
OpenStack QuickStart - havana
OpenStack QuickStart - havanaOpenStack QuickStart - havana
OpenStack QuickStart - havanaHideki Saito
 
Cloud founryインストール手順
Cloud founryインストール手順Cloud founryインストール手順
Cloud founryインストール手順Kotaro Noyama
 
ベアメタルOpenStackで始めるクラウド環境構築
ベアメタルOpenStackで始めるクラウド環境構築ベアメタルOpenStackで始めるクラウド環境構築
ベアメタルOpenStackで始めるクラウド環境構築VirtualTech Japan Inc.
 

Destacado (20)

OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No1
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No1OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No1
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No1
 
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2
 
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo2
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo2OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo2
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo2
 
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1
 
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:ハンズオンNo1
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:ハンズオンNo1OpenStackクラウド基盤構築ハンズオンセミナー 第2日:ハンズオンNo1
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:ハンズオンNo1
 
エンジニア向け夏期特別講座 〜 Red Hat OpenStack徹底解説! 第二部 OpenStackの内部構造
エンジニア向け夏期特別講座 〜 Red Hat OpenStack徹底解説! 第二部 OpenStackの内部構造エンジニア向け夏期特別講座 〜 Red Hat OpenStack徹底解説! 第二部 OpenStackの内部構造
エンジニア向け夏期特別講座 〜 Red Hat OpenStack徹底解説! 第二部 OpenStackの内部構造
 
OpenStack: Inside Out
OpenStack: Inside OutOpenStack: Inside Out
OpenStack: Inside Out
 
OpenStackによる、実践オンプレミスクラウド
OpenStackによる、実践オンプレミスクラウドOpenStackによる、実践オンプレミスクラウド
OpenStackによる、実践オンプレミスクラウド
 
Openv switchの使い方とか
Openv switchの使い方とかOpenv switchの使い方とか
Openv switchの使い方とか
 
OpenStackで自動化ツールを使ってみた!(Ubuntu MAAS 1.7 対応版)
OpenStackで自動化ツールを使ってみた!(Ubuntu MAAS 1.7 対応版)OpenStackで自動化ツールを使ってみた!(Ubuntu MAAS 1.7 対応版)
OpenStackで自動化ツールを使ってみた!(Ubuntu MAAS 1.7 対応版)
 
エンジニア向け夏期特別講座 〜 Red Hat OpenStack徹底解説! 第一部 OpenStack入門
エンジニア向け夏期特別講座 〜 Red Hat OpenStack徹底解説! 第一部 OpenStack入門エンジニア向け夏期特別講座 〜 Red Hat OpenStack徹底解説! 第一部 OpenStack入門
エンジニア向け夏期特別講座 〜 Red Hat OpenStack徹底解説! 第一部 OpenStack入門
 
OSSのクラウド基盤 OpenStack / CloudStack
OSSのクラウド基盤 OpenStack / CloudStackOSSのクラウド基盤 OpenStack / CloudStack
OSSのクラウド基盤 OpenStack / CloudStack
 
RDOで体験! OpenStackの基本機能
RDOで体験! OpenStackの基本機能RDOで体験! OpenStackの基本機能
RDOで体験! OpenStackの基本機能
 
OpenStack マルチノード環境構築
OpenStack マルチノード環境構築OpenStack マルチノード環境構築
OpenStack マルチノード環境構築
 
Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要
Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要
Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要
 
OpenStack入門 2016/06/27
OpenStack入門 2016/06/27OpenStack入門 2016/06/27
OpenStack入門 2016/06/27
 
OpenStackのQuantum(LinuxBridge Plugin)が実際どうやって仮想ネットワークを構成するのか説明する資料
OpenStackのQuantum(LinuxBridge Plugin)が実際どうやって仮想ネットワークを構成するのか説明する資料OpenStackのQuantum(LinuxBridge Plugin)が実際どうやって仮想ネットワークを構成するのか説明する資料
OpenStackのQuantum(LinuxBridge Plugin)が実際どうやって仮想ネットワークを構成するのか説明する資料
 
OpenStack QuickStart - havana
OpenStack QuickStart - havanaOpenStack QuickStart - havana
OpenStack QuickStart - havana
 
Cloud founryインストール手順
Cloud founryインストール手順Cloud founryインストール手順
Cloud founryインストール手順
 
ベアメタルOpenStackで始めるクラウド環境構築
ベアメタルOpenStackで始めるクラウド環境構築ベアメタルOpenStackで始めるクラウド環境構築
ベアメタルOpenStackで始めるクラウド環境構築
 

Similar a OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No2

Neutron Icehouse Update (Japanese)
Neutron Icehouse Update (Japanese)Neutron Icehouse Update (Japanese)
Neutron Icehouse Update (Japanese)Akihiro Motoki
 
Lagopus Switch Usecases
Lagopus Switch UsecasesLagopus Switch Usecases
Lagopus Switch UsecasesSakiko Kawai
 
20131211 Neutron Havana
20131211 Neutron Havana20131211 Neutron Havana
20131211 Neutron HavanaAkihiro Motoki
 
OpenStack Kilo with 6Wind VA High-Performance Networking Using DPDK - OpenSta...
OpenStack Kilo with 6Wind VA High-Performance Networking Using DPDK - OpenSta...OpenStack Kilo with 6Wind VA High-Performance Networking Using DPDK - OpenSta...
OpenStack Kilo with 6Wind VA High-Performance Networking Using DPDK - OpenSta...VirtualTech Japan Inc.
 
[G-Tech2014講演資料] シスコのSDN最新動向とITインフラエンジニアに求められるスキル - シスコシステムズ合同会社
[G-Tech2014講演資料] シスコのSDN最新動向とITインフラエンジニアに求められるスキル - シスコシステムズ合同会社[G-Tech2014講演資料] シスコのSDN最新動向とITインフラエンジニアに求められるスキル - シスコシステムズ合同会社
[G-Tech2014講演資料] シスコのSDN最新動向とITインフラエンジニアに求められるスキル - シスコシステムズ合同会社Trainocate Japan, Ltd.
 
FD.io VPP事始め
FD.io VPP事始めFD.io VPP事始め
FD.io VPP事始めtetsusat
 
CloudStack Ecosystem Day - OpenStack/Swift
CloudStack Ecosystem Day - OpenStack/SwiftCloudStack Ecosystem Day - OpenStack/Swift
CloudStack Ecosystem Day - OpenStack/Swiftirix_jp
 
Contrail overview open stack days tokyo-feb2015
Contrail overview open stack days tokyo-feb2015Contrail overview open stack days tokyo-feb2015
Contrail overview open stack days tokyo-feb2015Nachi Ueno
 
Lagopus Router v19.07.1
Lagopus Router v19.07.1Lagopus Router v19.07.1
Lagopus Router v19.07.1Tomoya Hibi
 
OpenStackネットワーク入門 – OpenStack最新情報セミナー 2015年4月
OpenStackネットワーク入門 – OpenStack最新情報セミナー 2015年4月OpenStackネットワーク入門 – OpenStack最新情報セミナー 2015年4月
OpenStackネットワーク入門 – OpenStack最新情報セミナー 2015年4月VirtualTech Japan Inc.
 
OpenStack with OpenFlow
OpenStack with OpenFlowOpenStack with OpenFlow
OpenStack with OpenFlowToshiki Tsuboi
 
VPP事始め
VPP事始めVPP事始め
VPP事始めnpsg
 
OpenStack Atlanta Summit Report: Neutron, Nova and design summit sessions
OpenStack Atlanta Summit Report: Neutron, Nova and design summit sessionsOpenStack Atlanta Summit Report: Neutron, Nova and design summit sessions
OpenStack Atlanta Summit Report: Neutron, Nova and design summit sessionsAkihiro Motoki
 
『WAN SDN Controller NorthStarご紹介 & デモ』
『WAN SDN Controller NorthStarご紹介 & デモ』『WAN SDN Controller NorthStarご紹介 & デモ』
『WAN SDN Controller NorthStarご紹介 & デモ』Juniper Networks (日本)
 
20150715 xflow kikuta_final
20150715 xflow kikuta_final20150715 xflow kikuta_final
20150715 xflow kikuta_finalKazumasa Ikuta
 
OpenContrail Users Event at OpenStack Summit Paris 行ってきました
OpenContrail Users Event at OpenStack Summit Paris 行ってきましたOpenContrail Users Event at OpenStack Summit Paris 行ってきました
OpenContrail Users Event at OpenStack Summit Paris 行ってきましたTakashi Sogabe
 
OpenDaylightを用いた次世代ネットワーク構成管理の考察
OpenDaylightを用いた次世代ネットワーク構成管理の考察OpenDaylightを用いた次世代ネットワーク構成管理の考察
OpenDaylightを用いた次世代ネットワーク構成管理の考察Naoto MATSUMOTO
 

Similar a OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No2 (20)

Neutron Icehouse Update (Japanese)
Neutron Icehouse Update (Japanese)Neutron Icehouse Update (Japanese)
Neutron Icehouse Update (Japanese)
 
Lagopus Switch Usecases
Lagopus Switch UsecasesLagopus Switch Usecases
Lagopus Switch Usecases
 
20131211 Neutron Havana
20131211 Neutron Havana20131211 Neutron Havana
20131211 Neutron Havana
 
OpenStack Kilo with 6Wind VA High-Performance Networking Using DPDK - OpenSta...
OpenStack Kilo with 6Wind VA High-Performance Networking Using DPDK - OpenSta...OpenStack Kilo with 6Wind VA High-Performance Networking Using DPDK - OpenSta...
OpenStack Kilo with 6Wind VA High-Performance Networking Using DPDK - OpenSta...
 
[G-Tech2014講演資料] シスコのSDN最新動向とITインフラエンジニアに求められるスキル - シスコシステムズ合同会社
[G-Tech2014講演資料] シスコのSDN最新動向とITインフラエンジニアに求められるスキル - シスコシステムズ合同会社[G-Tech2014講演資料] シスコのSDN最新動向とITインフラエンジニアに求められるスキル - シスコシステムズ合同会社
[G-Tech2014講演資料] シスコのSDN最新動向とITインフラエンジニアに求められるスキル - シスコシステムズ合同会社
 
Software forwarding path
Software forwarding pathSoftware forwarding path
Software forwarding path
 
Jap1
Jap1Jap1
Jap1
 
VIOPS06: OpenFlowによるネットワーク構築と実証事件
VIOPS06: OpenFlowによるネットワーク構築と実証事件VIOPS06: OpenFlowによるネットワーク構築と実証事件
VIOPS06: OpenFlowによるネットワーク構築と実証事件
 
FD.io VPP事始め
FD.io VPP事始めFD.io VPP事始め
FD.io VPP事始め
 
CloudStack Ecosystem Day - OpenStack/Swift
CloudStack Ecosystem Day - OpenStack/SwiftCloudStack Ecosystem Day - OpenStack/Swift
CloudStack Ecosystem Day - OpenStack/Swift
 
Contrail overview open stack days tokyo-feb2015
Contrail overview open stack days tokyo-feb2015Contrail overview open stack days tokyo-feb2015
Contrail overview open stack days tokyo-feb2015
 
Lagopus Router v19.07.1
Lagopus Router v19.07.1Lagopus Router v19.07.1
Lagopus Router v19.07.1
 
OpenStackネットワーク入門 – OpenStack最新情報セミナー 2015年4月
OpenStackネットワーク入門 – OpenStack最新情報セミナー 2015年4月OpenStackネットワーク入門 – OpenStack最新情報セミナー 2015年4月
OpenStackネットワーク入門 – OpenStack最新情報セミナー 2015年4月
 
OpenStack with OpenFlow
OpenStack with OpenFlowOpenStack with OpenFlow
OpenStack with OpenFlow
 
VPP事始め
VPP事始めVPP事始め
VPP事始め
 
OpenStack Atlanta Summit Report: Neutron, Nova and design summit sessions
OpenStack Atlanta Summit Report: Neutron, Nova and design summit sessionsOpenStack Atlanta Summit Report: Neutron, Nova and design summit sessions
OpenStack Atlanta Summit Report: Neutron, Nova and design summit sessions
 
『WAN SDN Controller NorthStarご紹介 & デモ』
『WAN SDN Controller NorthStarご紹介 & デモ』『WAN SDN Controller NorthStarご紹介 & デモ』
『WAN SDN Controller NorthStarご紹介 & デモ』
 
20150715 xflow kikuta_final
20150715 xflow kikuta_final20150715 xflow kikuta_final
20150715 xflow kikuta_final
 
OpenContrail Users Event at OpenStack Summit Paris 行ってきました
OpenContrail Users Event at OpenStack Summit Paris 行ってきましたOpenContrail Users Event at OpenStack Summit Paris 行ってきました
OpenContrail Users Event at OpenStack Summit Paris 行ってきました
 
OpenDaylightを用いた次世代ネットワーク構成管理の考察
OpenDaylightを用いた次世代ネットワーク構成管理の考察OpenDaylightを用いた次世代ネットワーク構成管理の考察
OpenDaylightを用いた次世代ネットワーク構成管理の考察
 

Más de Etsuji Nakai

「ITエンジニアリングの本質」を考える
「ITエンジニアリングの本質」を考える「ITエンジニアリングの本質」を考える
「ITエンジニアリングの本質」を考えるEtsuji Nakai
 
Googleのインフラ技術に見る基盤標準化とDevOpsの真実
Googleのインフラ技術に見る基盤標準化とDevOpsの真実Googleのインフラ技術に見る基盤標準化とDevOpsの真実
Googleのインフラ技術に見る基盤標準化とDevOpsの真実Etsuji Nakai
 
Introducton to Convolutional Nerural Network with TensorFlow
Introducton to Convolutional Nerural Network with TensorFlowIntroducton to Convolutional Nerural Network with TensorFlow
Introducton to Convolutional Nerural Network with TensorFlowEtsuji Nakai
 
Googleにおける機械学習の活用とクラウドサービス
Googleにおける機械学習の活用とクラウドサービスGoogleにおける機械学習の活用とクラウドサービス
Googleにおける機械学習の活用とクラウドサービスEtsuji Nakai
 
Spannerに関する技術メモ
Spannerに関する技術メモSpannerに関する技術メモ
Spannerに関する技術メモEtsuji Nakai
 
Googleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOpsGoogleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOpsEtsuji Nakai
 
A Brief History of My English Learning
A Brief History of My English LearningA Brief History of My English Learning
A Brief History of My English LearningEtsuji Nakai
 
TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎Etsuji Nakai
 
TensorFlowによるニューラルネットワーク入門
TensorFlowによるニューラルネットワーク入門TensorFlowによるニューラルネットワーク入門
TensorFlowによるニューラルネットワーク入門Etsuji Nakai
 
Using Kubernetes on Google Container Engine
Using Kubernetes on Google Container EngineUsing Kubernetes on Google Container Engine
Using Kubernetes on Google Container EngineEtsuji Nakai
 
Lecture note on PRML 8.2
Lecture note on PRML 8.2Lecture note on PRML 8.2
Lecture note on PRML 8.2Etsuji Nakai
 
Machine Learning Basics for Web Application Developers
Machine Learning Basics for Web Application DevelopersMachine Learning Basics for Web Application Developers
Machine Learning Basics for Web Application DevelopersEtsuji Nakai
 
Your first TensorFlow programming with Jupyter
Your first TensorFlow programming with JupyterYour first TensorFlow programming with Jupyter
Your first TensorFlow programming with JupyterEtsuji Nakai
 
Deep Q-Network for beginners
Deep Q-Network for beginnersDeep Q-Network for beginners
Deep Q-Network for beginnersEtsuji Nakai
 
TensorFlowで学ぶDQN
TensorFlowで学ぶDQNTensorFlowで学ぶDQN
TensorFlowで学ぶDQNEtsuji Nakai
 
DevOpsにおける組織に固有の事情を どのように整理するべきか
DevOpsにおける組織に固有の事情を どのように整理するべきかDevOpsにおける組織に固有の事情を どのように整理するべきか
DevOpsにおける組織に固有の事情を どのように整理するべきかEtsuji Nakai
 
インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜
インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜
インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜Etsuji Nakai
 

Más de Etsuji Nakai (20)

PRML11.2-11.3
PRML11.2-11.3PRML11.2-11.3
PRML11.2-11.3
 
「ITエンジニアリングの本質」を考える
「ITエンジニアリングの本質」を考える「ITエンジニアリングの本質」を考える
「ITエンジニアリングの本質」を考える
 
Googleのインフラ技術に見る基盤標準化とDevOpsの真実
Googleのインフラ技術に見る基盤標準化とDevOpsの真実Googleのインフラ技術に見る基盤標準化とDevOpsの真実
Googleのインフラ技術に見る基盤標準化とDevOpsの真実
 
Introducton to Convolutional Nerural Network with TensorFlow
Introducton to Convolutional Nerural Network with TensorFlowIntroducton to Convolutional Nerural Network with TensorFlow
Introducton to Convolutional Nerural Network with TensorFlow
 
Googleにおける機械学習の活用とクラウドサービス
Googleにおける機械学習の活用とクラウドサービスGoogleにおける機械学習の活用とクラウドサービス
Googleにおける機械学習の活用とクラウドサービス
 
Spannerに関する技術メモ
Spannerに関する技術メモSpannerに関する技術メモ
Spannerに関する技術メモ
 
Googleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOpsGoogleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOps
 
A Brief History of My English Learning
A Brief History of My English LearningA Brief History of My English Learning
A Brief History of My English Learning
 
TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎
 
TensorFlowによるニューラルネットワーク入門
TensorFlowによるニューラルネットワーク入門TensorFlowによるニューラルネットワーク入門
TensorFlowによるニューラルネットワーク入門
 
Using Kubernetes on Google Container Engine
Using Kubernetes on Google Container EngineUsing Kubernetes on Google Container Engine
Using Kubernetes on Google Container Engine
 
Lecture note on PRML 8.2
Lecture note on PRML 8.2Lecture note on PRML 8.2
Lecture note on PRML 8.2
 
Machine Learning Basics for Web Application Developers
Machine Learning Basics for Web Application DevelopersMachine Learning Basics for Web Application Developers
Machine Learning Basics for Web Application Developers
 
Your first TensorFlow programming with Jupyter
Your first TensorFlow programming with JupyterYour first TensorFlow programming with Jupyter
Your first TensorFlow programming with Jupyter
 
Deep Q-Network for beginners
Deep Q-Network for beginnersDeep Q-Network for beginners
Deep Q-Network for beginners
 
Life with jupyter
Life with jupyterLife with jupyter
Life with jupyter
 
TensorFlowで学ぶDQN
TensorFlowで学ぶDQNTensorFlowで学ぶDQN
TensorFlowで学ぶDQN
 
DevOpsにおける組織に固有の事情を どのように整理するべきか
DevOpsにおける組織に固有の事情を どのように整理するべきかDevOpsにおける組織に固有の事情を どのように整理するべきか
DevOpsにおける組織に固有の事情を どのように整理するべきか
 
PRML7.2
PRML7.2PRML7.2
PRML7.2
 
インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜
インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜
インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜
 

OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No2

  • 1. OpenStackクラウド基盤構築ハンズオンセミナー 第2日 講義資料 No.2 ver1.1 2014/01/15 1 Copyright (C) 2014 National Institute of Informatics, All rights reserved.
  • 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.
  • 3. 第2日 講義資料 No.2 Neutronの基本構造 3 Copyright (C) 2014 National Institute of Informatics, All rights reserved.
  • 4. 第2日 講義資料 No.2 OpenStackの仮想ネットワークモデル ■ プロジェクトごとに仮想ルータを用いて、プライベートなネットワークを構成します。 - 仮想ルータの背後に任意の数の仮想スイッチを作成して、接続します。 - それぞれの仮想スイッチは、プライベートIPの独立したサブネットを持ちます。 ■ 仮想マシンインスタンス起動時に、接続する仮想スイッチを選択します。 - DHCPでプライベートIPアドレスが割り当てられます。 - 同じプロジェクトの仮想マシンインスタンス間は、プライベートIPで通信できます。 外部ネットワーク プロジェクトA 仮想ルータ 仮想スイッチ 192.168.101.0/24 プロジェクトB 仮想ルータ 仮想スイッチ 192.168.102.0/24 4 Copyright (C) 2014 National Institute of Informatics, All rights reserved.
  • 5. 第2日 講義資料 No.2 Neutronのプラグイン構造 ■ Neutronサービスから指示を受けたAgent群が、実際の仮想ネットワークの構成を行い ます。 - 使用するAgentをプラグインとして選択することで、仮想ネットワークの実装方式を選択するこ とができます。OpenStackが標準で提供するプラグインには、「LinuxBridgeプラグイン」 「Open vSwitchプラグイン」などがあります。 - その他、サードベンダのSDN製品が提供するプラグインを利用することもできます。 ネットワークコントローラ コントローラノード REST APIを提供 Neutronサービス L3 Agent 仮想ルータ作成 L2 Agent 仮想スイッチ作成 DHCP Agent プライベートIP割り当て コンピュートノード L2 Agent メッセージングサーバ経由の通信 仮想スイッチ作成 5 Copyright (C) 2014 National Institute of Informatics, All rights reserved.
  • 6. 第2日 講義資料 No.2 標準プラグインを使用する際のネットワーク構成 ■ LinuxBridgeプラグイン / Open vSwitchプラグインを使用する際は、図のようなネット ワーク構成を取ります。 - ネットワークノード上のL3 Agentが提供する仮想ルータ機能により、プライベートネットワーク とパブリックネットワークを相互接続します。(「eth0」はホストLinux接続用のNICです。仮 想マシンの通信には使用しません。) - ネットワークノードが1つしか無いために、ネットワーク通信のボトルネックになるという課題 があります。 パブリックネットワーク プライベートネットワーク eth0 eth1 eth2 eth0 L2 Agent プライベートIP用 のDHCPサーバ DHCP Agent eth1 eth1 eth0 L2 Agent L2 Agent ・・・ 仮想スイッチ作成 VM VM VM VM L3 Agent ネットワークノード 仮想ルータ機能提供 コンピュートノード 6 Copyright (C) 2014 National Institute of Informatics, All rights reserved.
  • 7. 第2日 講義資料 No.2 LinuxBridgeプラグインによる実装例 7 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.
  • 14. 第2日 講義資料 No.2 メモとしてお使いください 14 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.
  • 25. 第2日 講義資料 No.2 ネットワークネームスペース(netns)について ■ ■ 複数の仮想ルータを定義した場合、ネットワークノードでは、iptablesによるNAT/フィ ルタリングの設定を仮想ルータごとに個別に持つ必要があります。Linuxでは、「ネッ トワークネームスペース(netns)」を利用することで、1つのOS上に複数の独立した ネットワーク設定を持つことができます。 ネットワークネームスペースの利用手順は次のようになります。 - 新しいネームスペースを作成する。 - ネットワークポートをネームスペース内部に入れる。(物理ポート/論理ポートどちらも可能) - ネームスペース内部でネットワーク設定(ポート設定、iptablesなど)を行う。 - これにより、特定のネームスペース内部のネットワークポートに出入りするパケットには、その ネームスペース内部のネットワーク設定が適用されます。 ■ LinuxBridgeプラグイン / Open vSwitchプラグインのL3プラグインは、ネットワーク ネームスペースを利用した設定を行います。 - オプションで、ネットワークネームスペースを使わない設定も利用できますが、この場合は、異 なるプロジェクトで同一のサブネットを利用することができなくなります。 25 Copyright (C) 2014 National Institute of Informatics, All rights reserved.
  • 26. 第2日 講義資料 No.2 Open vSwitchプラグインによる実装の全体像 ■ 説明は次ページを参照 パブリック ネットワーク ネットワーク ネームスペース Open vSwitch ネットワークノード eth1 br-ex dnsmasq 仮想ルータの パブリックNW側のGW IP dnsmasq iptablesで NAT接続 br-int br-priv 仮想スイッチ毎に VLANをマッピング (OpenFlowで制御) eth2 コンピュートノード VM1 VM2 br-int br-priv 仮想ルータの プライベートNW側 のGW IP eth1 VLAN Trunk 接続仮想スイッチ毎に VLANをマッピング (OpenFlowで制御) 26 Copyright (C) 2014 National Institute of Informatics, All rights reserved.
  • 27. 第2日 講義資料 No.2 Open vSwitchプラグインによる実装の全体像 ■ 仮想ネットワークを構成するコンポーネント(仮想スイッチ、仮想ルータなど)を定義 していくと、それに合わせて、各エージェントが次のような設定を行います。 - 仮想スイッチを作成するとL2エージェントは、「br-int」のポートとVLANをマッピングして、 複数のComputeノード間をVLANで接続します。また、DHCPエージェントは、dnsmasqを起動 して、対応するVLAN上にDHCP機能を提供します。 - 仮想ルータを作成してパブリックネットワークに接続すると、L3エージェントは、「br-ex」に パブリックネットワーク側のゲートウェイとなるポートを作成します。 - 仮想スイッチを仮想ルータに接続すると、L3エージェントは、「br-int」にプライベートネット ワーク側のゲートウェイとなるポートを作成して、プライベートネットワークとパブリックネッ トワークの間のNAT接続を開始します。 ■ この他に、仮想マシンインスタンスにメタデータを提供するための「Metadata Proxy エージェント」があります。 - ネットワークノード上のiptablesの設定より、「169.254.169.254:80」宛のパケットは、同じ ノード上のMetadata Proxyエージェントに転送されます。このエージェントは、パケット送信 元のIPアドレスから、どの仮想マシンインスタンスからのリクエストかを判別して、対応するメ タデータを返送します。 27 Copyright (C) 2014 National Institute of Informatics, All rights reserved.
  • 28. 第2日 講義資料 No.2 Metadata Proxyエージェントへのパケット転送 ■ 次のコマンドは、ネットワークノード上で、仮想ルータを含むネットワークネームス ペース内部のiptables設定を見ています。これから、「169.254.169.254:80」宛のパ ケットが同ノード上のMetadata Proxyエージェントに転送されることが分かります。 # ip netns list qrouter-b35f6433-c3e7-489a-b505-c3be5606a643 qdhcp-1a4f4b41-3fbb-48a6-bb12-9621077a4f92 qrouter-86654720-d4ff-41eb-89db-aaabd4b13a35 qdhcp-f8422fc9-dbf8-4606-b798-af10bb389708 仮想ルータを含む ネットワークネームスペース # ip netns exec qrouter-b35f6433-c3e7-489a-b505-c3be5606a643 iptables -t nat -L ... Chain quantum-l3-agent-PREROUTING (1 references) target prot opt source destination REDIRECT tcp -- anywhere 169.254.169.254 tcp dpt:http redir ports 9697 ... # ps -ef | grep 9697 root 63055 1 0 7月09 ? 00:00:00 python /bin/quantum-ns-metadata-proxy --pid_file=/var/lib/quantum/external/pids/b35f6433-c3e7-489a-b505-c3be5606a643.pid --router_id=b35f6433-c3e7-489a-b505-c3be5606a643 --state_path=/var/lib/quantum --metadata_port=9697 --verbose --log-file=quantum-ns-metadata-proxyb35f6433-c3e7-489a-b505c3be5606a643.log --log-dir=/var/log/quantum ■ メタデータを利用する際は、ゲストOSの「/etc/sysconfig/network」に 「NOZEROCONF=yes」の設定が必要ですので注意してください。 - これが無いとAPIPAの仕様により、「169.254.0.0/16」宛のパケットが外部にルーティングさ れないためにメタデータの取得に失敗します。 28 Copyright (C) 2014 National Institute of Informatics, All rights reserved.
  • 29. 第2日 講義資料 No.2 メモとしてお使いください 29 Copyright (C) 2014 National Institute of Informatics, All rights reserved.
  • 30. 第2日 講義資料 No.2 メモとしてお使いください 30 Copyright (C) 2014 National Institute of Informatics, All rights reserved.
  • 31. 第2日 講義資料 No.2 仮想ネットワークの構成手順 31 Copyright (C) 2014 National Institute of Informatics, All rights reserved.
  • 32. 第2日 講義資料 No.2 仮想ネットワークの構成手順 (1) ■ ネットワークノードとコンピュートノードを分離した構成で、コマンドラインから仮想 ネットワークを定義する手順を示します。 - ここでは、環境依存のパラメータとして、次の変数を使用します。 public="192.168.199.0/24" gateway="192.168.199.1" nameserver="192.168.199.1" pool=("192.168.199.100" "192.168.199.199") - 外部ネットワーク「ext-network」を定義します。 tenant=$(keystone tenant-list | awk '/ services / {print $2}') quantum net-create --tenant-id $tenant ext-network --shared --provider:network_type flat --provider:physical_network physnet1 --router:external=True ● ● ● ● 外部ネットワークは複数プロジェクトで共有するため、所有テナント(--tenant-id)は共有 用の「services」を指定して、--sharedオプションを指定します。 外部ネットワークではVLANを使用しないので、network_typeは「flat」を指定します。 外部ネットワーク接続用のOpen vSwitchには、プラグイン設定ファイル(plugin.ini)で、 physnet1という設定名を付けてあり、これをphysical_networkに指定します。 仮想ルータのデフォルトゲートウェイとするため「--router:external=True」を指定します。 32 Copyright (C) 2014 National Institute of Informatics, All rights reserved.
  • 33. 第2日 講義資料 No.2 仮想ネットワークの構成手順 (2) - 外部ネットワークのサブネットを定義します。 quantum subnet-create --tenant-id $tenant --gateway ${gateway} --disable-dhcp --allocation-pool start=${pool[0]},end=${pool[1]} ext-network ${public} ● --allocation-poolでは、IPアドレスプール(外部ネットワーク上のIPアドレスで、OpenStack が自由に利用できる範囲)を指定します。 - プロジェクト「demo」用の仮想ルータ「demo_router」を作成して、外部ネットワークに接続 します。 tenant=$(keystone tenant-list|awk '/ demo / {print $2}') quantum router-create --tenant-id $tenant demo_router quantum router-gateway-set demo_router ext-network ● 所有テナント(--tenant-id)に「demo」を指定します。 プラグイン設定ファイル(/etc/quantum/plugin.ini)のOpen vSwitch関連設定部分 bridge_mappings=physnet1:br-ex,physnet2:br-priv tenant_network_type=vlan network_vlan_ranges=physnet1,physnet2:100:199 ネットワーク設定名とOpen vSwitchの対応 各ネットワークで使用するVLAN IDの範囲 (physnet1はVLANを使用しない) 33 Copyright (C) 2014 National Institute of Informatics, All rights reserved.
  • 34. 第2日 講義資料 No.2 仮想ネットワークの構成手順 (3) - プライベートネットワーク(仮想スイッチ)「private01」を定義します。 quantum net-create --tenant-id $tenant private01 --provider:network_type vlan --provider:physical_network physnet2 --provider:segmentation_id 101 ● ● プライベートネットワークは、VLANで分割するためnetwork_typeは「vlan」を指定しま す。また、segmentation_idで、VLAN IDを指定します。 プライベートネットワーク接続用のOpen vSwitchには、設定ファイル(plugin.ini)で、 physnet2という名前を付けてあり、これをphysical_networkに指定します。 - 「private01」のサブネットを定義して、仮想ルータに接続します。 quantum subnet-create --tenant-id $tenant --name private01-subnet --dns-nameserver ${nameserver} private01 192.168.1.101/24 quantum router-interface-add demo_router private01-subnet ● ここでは例として、サブネット「192.168.1.101/24」を指定しています。 34 Copyright (C) 2014 National Institute of Informatics, All rights reserved.
  • 35. 第2日 講義資料 No.2 SDN (Software Defined Network) の概要 35 Copyright (C) 2014 National Institute of Informatics, All rights reserved.
  • 36. 第2日 講義資料 No.2 SDNの一般的なアーキテクチャ ■ 図は「ONF(Open Networking Foundation)」が定義するSDNの一般的なアーキテク チャです。 コントローラに仮想ネットワークの 構成を要求するアプリケーション ノースバウンドAPI 複数のネットワーク機器を 制御するコントローラ サウスバウンドAPI コントローラから制御される ネットワーク機器群 (出典)https://www.opennetworking.org/sdn-resources/sdn-library/whitepapers 36 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.
  • 46. 第2日 講義資料 No.2 仮想ネットワークの設計 ■ 各プロジェクトの仮想ネットワークは、OpenStackをインストールした後に、プロジェ クトごとに自由に構成することができます。 - ここでは、図のように仮想ルータに2個の仮想スイッチを接続して、それぞれ、 「192.168.101.0/24」と「192.168.102.0/24」のサブネットを割り当てるものとします。 仮想ルータ 46 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.
  • 57. 第2日 講義資料 No.2 コントローラノード・インストール後の初期設定 (3) ■ 初期設定スクリプトの解説 - 「config.sh」の内容は下記のURLから参照できます。 ● https://github.com/enakai00/quickrdo/blob/f18-grizzly-mn/config.sh - このスクリプトでは次のような処理を行なっています。 ● 管理者権限を使用するための環境変数をセット . /root/keystonerc_admin ● Fedora 19のマシンイメージをインターネットからインポート glance image-create --name "Fedora19" --disk-format qcow2 --container-format bare --is-public true --copy-from http://cloud.fedoraproject.org/fedora-19.x86_64.qcow2 ● プロジェクト「demo」と該当プロジェクトのユーザ(一般ユーザ「demo_user/passw0rd」 と管理者ユーザ「demo_admin/passw0rd」)を作成 keystone keystone keystone keystone keystone tenant-create --name demo user-create --name demo_admin --pass passw0rd user-create --name demo_user --pass passw0rd user-role-add --user demo_admin --role admin --tenant demo user-role-add --user demo_user --role Member --tenant demo 57 Copyright (C) 2014 National Institute of Informatics, All rights reserved.
  • 58. 第2日 講義資料 No.2 コントローラノード・インストール後の初期設定 (4) ● パブリックネットワークを定義 tenant=$(keystone tenant-list | awk '/ services / {print $2}') quantum net-create --tenant-id $tenant ext-network --shared --provider:network_type flat --provider:physical_network physnet1 --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 58 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.
  • 68. 第2日 講義資料 No.2 メモとしてお使いください 68 Copyright (C) 2014 National Institute of Informatics, All rights reserved.
  • 69. 第2日 講義資料 No.2 メモとしてお使いください 69 Copyright (C) 2014 National Institute of Informatics, All rights reserved.
  • 70. 第2日 講義資料 No.2 メモとしてお使いください 70 Copyright (C) 2014 National Institute of Informatics, All rights reserved.
  • 71. 71 Copyright (C) 2014 National Institute of Informatics, All rights reserved.