OpenStackクラウド基盤構築ハンズオンセミナー

第2日 講義資料 No.2

ver1.1 2014/01/15
1
Copyright (C) 2014 National Institute of Informatics, All r...
第2日 講義資料 No.2

目次
■

Neutronの基本構造

■

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

■

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

■

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

■

SDN (Softwa...
第2日 講義資料 No.2

Neutronの基本構造

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

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

プロジェクトごとに仮想ルータを用いて、プライベートなネットワークを構成します。
- 仮想ルータの背後に任意の数の仮想スイッチを作成して、接続します。
- それぞれの...
第2日 講義資料 No.2

Neutronのプラグイン構造
■

Neutronサービスから指示を受けたAgent群が、実際の仮想ネットワークの構成を行い
ます。
- 使用するAgentをプラグインとして選択することで、仮想ネットワークの実装...
第2日 講義資料 No.2

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

LinuxBridgeプラグイン / Open vSwitchプラグインを使用する際は、図のようなネット
ワーク構成を取ります。
- ネットワークノード上のL3 ...
第2日 講義資料 No.2

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

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

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

LinuxBridgeプラグインを用いて、下図の仮想ネットワークを作成した際の具体的な実
装をコンピュートノード、ネットワークノードのそれぞれで示します。...
第2日 講義資料 No.2

LinuxBridgeによるコンピュートノードの実装 (1)
■

LinuxBridgeプライグインでは、仮想スイッチごとに「仮想ブリッジ」を用意して、プ
ライベートネットワーク上でのVLANを分割します。
No...
第2日 講義資料 No.2

LinuxBridgeによるネットワークノードの実装 (1)
パブリックネットワークへ
eth1

外部GW IP

brqxxxx

概念的には
ここが仮想ルータ

IP

内部GW IP

IP
DHCP Ag...
第2日 講義資料 No.2

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

LinuxBridgeプラグインを用いて、下図の仮想ネットワークを作成した際の具体的な実
装をコンピュートノード、ネットワークノードのそれぞれで示します。...
第2日 講義資料 No.2

LinuxBridgeによるコンピュートノードの実装 (2)
■

コンピュートノードの構成は、単一プロジェクトの場合とほとんど同じで、仮想スイッ
チごとに仮想ブリッジとVLANが割り当てられます。
Nova Co...
第2日 講義資料 No.2

LinuxBridgeによるネットワークノードの実装 (2)
■

パブリックネットワークへ

複数の仮想ルータに対応して
iptablesによるパケット転送
のパスが複数用意されます。

eth1
brqxxxx...
第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サーバ上に仮想スイッチを構成するソフトウェアです。仮想ブ
リッジと異なり、商用の物理スイッチ機器と同等のさまざまな機能をサポートします。...
第2日 講義資料 No.2

OpenFlowについて
■

OpenFlowは、ネットワークスイッチが受け取ったパケットの転送処理を外部の「コン
トローラ」で制御するためのプロトコルです。
- OpenFlow対応のスイッチは、パケットを受け...
第2日 講義資料 No.2

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

Open vSwitchプラグインを用いて、下図の仮想ネットワークを作成した際の具体的な
実装をコンピュートノード、ネットワークノードのそれぞれで示しま...
第2日 講義資料 No.2

Open vSwitchによるコンピュートノードの実装 (1)
■

説明は次ページを参照
Nova Computeが構成
vm01
IP

vm02
IP

eth0

qvoXXX

IP

eth0

qvo...
第2日 講義資料 No.2

Open vSwitchによるコンピュートノードの実装 (1)
■

仮想マシンインスタンスの仮想NICはすべて、共通の「インテグレーションスイッチ
(br-int)」に接続します。
- この際、ポートVLANによ...
第2日 講義資料 No.2

Open vSwitchによるネットワークノードの実装 (1)
パブリックネットワークへ

概念的には
ここが仮想ルータ

eth1

br-ex

外部GW IP

IP

内部GW IP

L3 Agentが構...
第2日 講義資料 No.2

Open vSwitchプラグインによる実装例 (2)
■

Open vSwitchプラグインを用いて、下図の仮想ネットワークを作成した際の具体的な
実装をコンピュートノード、ネットワークノードのそれぞれで示しま...
第2日 講義資料 No.2

Open vSwitchによるコンピュートノードの実装 (2)
■

コンピュートノードの構成は、単一プロジェクトの場合とほとんど同じで、仮想スイッ
チごとに内部VLAN / 外部VLANが割り当てられます。
No...
第2日 講義資料 No.2

Open vSwitchによるネットワークノードの実装 (2)
■

パブリックネットワークへ

複数の仮想ルータに対応して
iptablesによるパケット転送
のパスが複数用意されます。

eth1

IP

q...
第2日 講義資料 No.2

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

■

複数の仮想ルータを定義した場合、ネットワークノードでは、iptablesによるNAT/フィ
ルタリングの設定を仮想ルータごとに個別に持つ必要があります。...
第2日 講義資料 No.2

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

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

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

Open vSwitch

ネットワークノード

eth1
br-ex
...
第2日 講義資料 No.2

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

仮想ネットワークを構成するコンポーネント(仮想スイッチ、仮想ルータなど)を定義
していくと、それに合わせて、各エージェントが次のような設定を行います。
-...
第2日 講義資料 No.2

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

次のコマンドは、ネットワークノード上で、仮想ルータを含むネットワークネームス
ペース内部のiptables設定を見ています。これから、「169.254...
第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)
■

ネットワークノードとコンピュートノードを分離した構成で、コマンドラインから仮想
ネットワークを定義する手順を示します。
- ここでは、環境依存のパラメータとして、次の変数を...
第2日 講義資料 No.2

仮想ネットワークの構成手順 (2)
- 外部ネットワークのサブネットを定義します。
quantum subnet-create 
--tenant-id $tenant --gateway ${gateway} -...
第2日 講義資料 No.2

仮想ネットワークの構成手順 (3)
- プライベートネットワーク(仮想スイッチ)「private01」を定義します。
quantum net-create 
--tenant-id $tenant private0...
第2日 講義資料 No.2

SDN (Software Defined Network) の概要

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

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

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

コントローラに仮想ネットワークの
構成を要求するアプリ...
第2日 講義資料 No.2

SDNにおけるOpenFlowの役割
■

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

ノース...
第2日 講義資料 No.2

SDNにおけるNeutronの役割
■

Neutronは、エージェントのプラグイン方式でさまざまなSDNコントローラの利用に対
応ます。これは、複数のSDNコントローラに対して、共通のノースバウンドAPIを提供
...
第2日 講義資料 No.2

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

■

もともと、スイッチ内部において、ポート間のパケット転送処理に特化したASICによる
「データプレーン」と、パケット転送ルールを決定する組込SWベースの「コントロー
ルプレー...
第2日 講義資料 No.2

SDNの特徴 (1)
■

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

相互に情報交換

コントロールプレーン

...
第2日 講義資料 No.2

SDNの特徴 (2)
■

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

SDNにおける仮想ネットワークの実装方式
■

SDNでマルチテナント型の仮想ネットワークを構成する方法に、「エッジネットワー
ク」と呼ばれる方式があります。
- SDNコントローラに仮想ネットワークの構成情報を持...
第2日 講義資料 No.2

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

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

全体の構成
■

ここでは、図の構成で、Fedora 18の上にRDO (Grizzly) をインストールする場合を例
として、インストール手順と初期設定の概要を説明します。

※ ここでは、物理サーバにインストー...
第2日 講義資料 No.2

ネットワーク構成の設計
■

これから構築する環境で使用するIPアドレスを表のように決めておきます。
- サーバ自身のIPアドレスの他に、仮想ルータに割り当てるパブリックネットワーク側のIPアドレ
スや仮想マシンイ...
第2日 講義資料 No.2

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

各プロジェクトの仮想ネットワークは、OpenStackをインストールした後に、プロジェ
クトごとに自由に構成することができます。
- ここでは、図のように仮想ルータに2個の仮想スイッチ...
第2日 講義資料 No.2

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

■

コントローラノードについて、DVDメディアからFedora18をインストールする際の手
順を記載します。
インストールメディアの入手
- 下...
第2日 講義資料 No.2

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

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

■

ソフトウェアの選択
-...
第2日 講義資料 No.2

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

ディスクパーティションは表の構成としますが、GUIインストーラでは、パーティショ
ンを自由に構成することができないため次の手順に従います。
パーテ...
第2日 講義資料 No.2

コントローラノード・Fedora 18のインストール (4)
- パーティション設定の画面で「ここをクリッ
クすると自動的に作成します。」をクリック
します。
- 右下図のようなパーティションが構成されま
すが、「...
第2日 講義資料 No.2

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

インストール完了後の作業
- 「/etc/sysconfig/network-scripts/ifcfg-em2」と「/etc/sysconfig...
第2日 講義資料 No.2

コントローラノード・Fedora 18のインストール (6)
- この後で、Cinder Volume用のボリュームグループを作るために、lvm2のパッケージを追加しま
す。さらに、全パッケージをアップデートして、...
第2日 講義資料 No.2

コントローラノード・RDOのインストール (1)
■

RDO (Grizzly) をコントローラノード用の構成で導入します。
- ここでは、GitHubで公開されているインストールスクリプトを利用します。次の手順...
第2日 講義資料 No.2

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

インストールスクリプトの解説
- 「setup.sh」の内容は下記のURLから参照できます。
●

https://github.com/enakai00/q...
第2日 講義資料 No.2

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

サンプルプロジェクト「demo」を作成して、仮想ネットワークの構成、その他、デモ
用途に必要な最小限の初期設定を行います。
- ここでは、先ほどのインスト...
第2日 講義資料 No.2

コントローラノード・インストール後の初期設定 (2)
- 次のコマンドで、初期設定を行います。
# cd ~/quickrdo
# ./config.sh

- 「External NIC:」および「Private...
第2日 講義資料 No.2

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

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

https://github.com/enakai00/...
第2日 講義資料 No.2

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

パブリックネットワークを定義
tenant=$(keystone tenant-list | awk '/ services / {print $2}')...
第2日 講義資料 No.2

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

仮想スイッチを作成して、仮想ルータに接続

for (( i = 0; i < ${#private[@]}; ++i )); do
name=$(pri...
第2日 講義資料 No.2

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

デフォルトのセキュリティグループに対して、SSHとPingを許可
export OS_USERNAME=demo_user
export OS_PASSW...
第2日 講義資料 No.2

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

■

コンピュートノードについて、DVDメディアからFedora18をインストールする際の手
順を記載します。
インストールメディアの入手
- 下...
第2日 講義資料 No.2

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

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

■

ソフトウェアの選択
-...
第2日 講義資料 No.2

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

ディスクパーティションは表の構成としますが、GUIインストーラからは、次の手順に
従います。
パーティション

サイズ

用途

/dev/sda...
第2日 講義資料 No.2

コンピュートノード・Fedora 18のインストール (4)
- パーティション設定の画面で「ここをクリック
すると自動的に作成します。」をクリックしま
す。
- 右下図のようなパーティションが構成されます
が、「...
第2日 講義資料 No.2

コンピュートノード・RDOのインストール (1)
■

RDO (Grizzly) をコンピュートノード用の構成で導入します。
- コンピュートノードへのRDOのインストールは、先に構築したコントローラノードからネ...
第2日 講義資料 No.2

コンピュートノード・RDOのインストール (2)
- さらに、途中で次のようなメッセージがでたら、それぞれ、「yes」とコンピュートノードの
rootパスワードを入力します。
Are you sure you wa...
第2日 講義資料 No.2

コンピュートノード・RDOのインストール (3)
■

インストールスクリプトの解説
- 「add_compute.sh」の内容は下記のURLから参照できます。
●

https://github.com/enak...
第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.
Upcoming SlideShare
Loading in...5
×

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

7,444

Published on

Published in: Technology
0 Comments
34 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
7,444
On Slideshare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
497
Comments
0
Likes
34
Embeds 0
No embeds

No notes for slide

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

  1. 1. OpenStackクラウド基盤構築ハンズオンセミナー 第2日 講義資料 No.2 ver1.1 2014/01/15 1 Copyright (C) 2014 National Institute of Informatics, All rights reserved.
  2. 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. 3. 第2日 講義資料 No.2 Neutronの基本構造 3 Copyright (C) 2014 National Institute of Informatics, All rights reserved.
  4. 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. 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. 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. 7. 第2日 講義資料 No.2 LinuxBridgeプラグインによる実装例 7 Copyright (C) 2014 National Institute of Informatics, All rights reserved.
  8. 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. 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. 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. 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. 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. 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. 14. 第2日 講義資料 No.2 メモとしてお使いください 14 Copyright (C) 2014 National Institute of Informatics, All rights reserved.
  15. 15. 第2日 講義資料 No.2 Open vSwitchプラグインによる実装例 15 Copyright (C) 2014 National Institute of Informatics, All rights reserved.
  16. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 29. 第2日 講義資料 No.2 メモとしてお使いください 29 Copyright (C) 2014 National Institute of Informatics, All rights reserved.
  30. 30. 第2日 講義資料 No.2 メモとしてお使いください 30 Copyright (C) 2014 National Institute of Informatics, All rights reserved.
  31. 31. 第2日 講義資料 No.2 仮想ネットワークの構成手順 31 Copyright (C) 2014 National Institute of Informatics, All rights reserved.
  32. 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. 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. 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. 35. 第2日 講義資料 No.2 SDN (Software Defined Network) の概要 35 Copyright (C) 2014 National Institute of Informatics, All rights reserved.
  36. 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.
  37. 37. 第2日 講義資料 No.2 SDNにおけるOpenFlowの役割 ■ OpenFlowは、コントローラからネットワーク機器を制御するプロトコルであり、SDN のアーキテクチャ上は、「サウスバウンドAPI」の標準実装とされています。 ノースバウンドAPI サウスバウンドAPI ここがOpenFlowの役割 37 Copyright (C) 2014 National Institute of Informatics, All rights reserved.
  38. 38. 第2日 講義資料 No.2 SDNにおけるNeutronの役割 ■ Neutronは、エージェントのプラグイン方式でさまざまなSDNコントローラの利用に対 応ます。これは、複数のSDNコントローラに対して、共通のノースバウンドAPIを提供 するものと理解できます。 OpenStack Neutron ノースバウンドAPI コントローラ別のエージェント 38 Copyright (C) 2014 National Institute of Informatics, All rights reserved.
  39. 39. 第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.
  40. 40. 第2日 講義資料 No.2 SDNの特徴 (1) ■ 従来のネットワーク機器では、個々の機器が独立したコントロールプレーンを持ち、自 律分散型のアーキテクチャで動作していました。 相互に情報交換 相互に情報交換 コントロールプレーン コントロールプレーン データプレーン ■ コントロールプレーン データプレーン データプレーン 一方、SDNでは、単一のコントローラがデータプレーン全体の動作を集中制御する形態 となります。 集中制御 コントローラ データプレーン データプレーン データプレーン 40 Copyright (C) 2014 National Institute of Informatics, All rights reserved.
  41. 41. 第2日 講義資料 No.2 SDNの特徴 (2) ■ 従来のネットワーク機器のコントロールプレーンは、組み込みソフトウェアとして実装 されており、エンドユーザがその動作仕様を変更することはできませんでした。 改変不可 コントロールプレーン コントロールプレーン データプレーン ■ コントロールプレーン データプレーン データプレーン 一方、SDNのコントローラは、一般的なサーバ上で動作するソフトウェアとして実装さ れており、エンドユーザがソフトウェアを開発して、独自のコントローラを作成するこ とができます。 コントローラ データプレーン データプレーン エンドユーザが実装可能 データプレーン 41 Copyright (C) 2014 National Institute of Informatics, All rights reserved.
  42. 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.
  43. 43. 第2日 講義資料 No.2 (参考)複数ノード構成のインストール手順と 初期設定の概要 43 Copyright (C) 2014 National Institute of Informatics, All rights reserved.
  44. 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. 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. 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. 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. 48. 第2日 講義資料 No.2 コントローラノード・Fedora 18のインストール (2) ■ ネットワークの設定 - 「em1」にIPアドレスを設定します。この画面でホスト名を設定するのも忘れないでください。 ■ ソフトウェアの選択 - 「最小限のインストール」+ 「標準アドオン」を選びます 48 Copyright (C) 2014 National Institute of Informatics, All rights reserved.
  49. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 62. 第2日 講義資料 No.2 コンピュートノード・Fedora 18のインストール (2) ■ ネットワークの設定 - 「em1」にIPアドレスを設定します。この画面でホスト名を設定するのも忘れないでください。 ■ ソフトウェアの選択 - 「最小限のインストール」+ 「標準アドオン」を選びます 62 Copyright (C) 2014 National Institute of Informatics, All rights reserved.
  63. 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. 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. 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. 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. 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. 68. 第2日 講義資料 No.2 メモとしてお使いください 68 Copyright (C) 2014 National Institute of Informatics, All rights reserved.
  69. 69. 第2日 講義資料 No.2 メモとしてお使いください 69 Copyright (C) 2014 National Institute of Informatics, All rights reserved.
  70. 70. 第2日 講義資料 No.2 メモとしてお使いください 70 Copyright (C) 2014 National Institute of Informatics, All rights reserved.
  71. 71. 71 Copyright (C) 2014 National Institute of Informatics, All rights reserved.
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×