OPNFV を
インストールしてみた
関谷 勇司
東京大学 /	次世代 NSP	コンソーシアム
2016年9月9日 NSP	CONSORTIUM	@	OPNFV	MEETUP	TOKYO	#1 1
インストールしてみよう
2016年9月9日 NSP	CONSORTIUM	@	OPNFV	MEETUP	TOKYO	#1 2
VNF
Manager(s
)
VNF
Manager(s
)
ETSI NFVアーキテクチャ
2016年9月9日 3
OSS/BSS
EMS 1 EMS 2 EMS 3
VNF 1 VNF 2 VNF 3
Orchestrator
VNF
Manager(s)
Virtualized
Infrastructure
Manager(s)
Os-Ma
Or-Vnfm
Virtual
Computing
Virtual
Storage
Virtual
Network
Computing
Hardware
Storage
Hardware
Network
Hardware
Virtualisation Layer
Ve-Vnfm
Nf-Vi
Vi-Vnfm
Or-Vi
Service, VNF and
Infrastructure Description
Se-Ma
NSP	CONSORTIUM	@	OPNFV	MEETUP	TOKYO	#1
VNF
Manager(s
)
VNF
Manager(s
)
OSS/BSS
EMS 1 EMS 2 EMS 3
VNF 1 VNF 2 VNF 3
Orchestrator
VNF
Manager(s)
Virtualized
Infrastructure
Manager(s)
Os-Ma
Or-Vnfm
Virtual
Computing
Virtual
Storage
Virtual
Network
Computing
Hardware
Storage
Hardware
Network
Hardware
Virtualisation Layer
Ve-Vnfm
Nf-Vi
Vi-Vnfm
Or-Vi
Service, VNF and
Infrastructure Description
Se-Ma
オープンソースの対応
2016年9月9日 4
openmano
OpenStack Tacker
Open Source MANO
openmano
OVS
OpenDaylight
Open Contrail
ONOS
Floodlight
OpenStack
各種仮想
アプライアンス
OpenStack
cephkvm
NSP	CONSORTIUM	@	OPNFV	MEETUP	TOKYO	#1
OPNFVのリリース
2015年6月 Arno
2015年10月 Arno SR(Stable Release) 1
2016年3月 Brahmaputra 1.0
2016年4月 Brahmaputra 2.0
2016年4月 Brahmaputra 3.0
2016年9月? Colorado 1.0
2016年9月9日 5
*https://www.opnfv.org/
NSP	CONSORTIUM	@	OPNFV	MEETUP	TOKYO	#1
Arno Release
Arno
◦ 2種類のインストーラ
◦ Foreman/QuickStack
◦ Fuel
◦ Arno リリースに含まれるもの
◦ OpenStack Juno
◦ OpenDaylight Helium
◦ KVM
◦ OVS
2016年9月9日 NSP	CONSORTIUM	@	OPNFV	MEETUP	TOKYO	#1 6
Brahmaputra Release
Brahmaputra
◦ 4種類のインストーラ
◦ Apex
◦ Compass
◦ Fuel
◦ JuJu
◦ 含まれるもの
◦ OpenStack Liverty
◦ OpenDaylight Beryllium
◦ OVS (DPDK capable)
◦ KVM
◦ OpenContrail
◦ ONOS
2016年9月9日 NSP	CONSORTIUM	@	OPNFV	MEETUP	TOKYO	#1 7
OPNFV Brahmaputraについて
OpenStackのInstallerが4つある
◦ Apex
◦ Compass
◦ Fuel
◦ Joid
インストーラー毎に有効化できるPluginが異なる
◦ 今回の検証ターゲットは,SFCとDPDK OVS
◦ http://artifacts.opnfv.org/opnfvdocs/brahmaputra/configguide/configoption
s.html#opnfv-scenario-s
2016年9月9日 NSP	CONSORTIUM	@	OPNFV	MEETUP	TOKYO	#1 8
NFVに特化した機能
4つのインストーラー
◦ Apex(RDOベース)
◦ Compass
◦ Fuel(Mirantis Fuel)
◦ Joid(Canonical Jujuベース)
NFVに特化した機能を追加
◦ SDNコントローラの取り込み
◦ DPDKやNSHに対応したOVS
◦ SFC
2016年9月9日 NSP	CONSORTIUM	@	OPNFV	MEETUP	TOKYO	#1 9
Features Apex Compass Fuel Joid
BGPVPN ✔
Doctor ✔
KVM4NFV ✔
ONOS ✔ ✔ ✔ ✔
OpenContrail ? ✔ ?
ODL	Layer2	HA ✔ ✔ ✔ ✔
ODL	Layer3	HA ✔ ✔
OpenStack ✔ ✔ ✔ ✔
OVS4NFV ✔
ODL	Layer2	
SFC
✔ ✔
(Brahmaputra	3.0	Release	でのサポート予定含む)
Brahmaputra 試してみた結果
Fuel
◦ インストール成功
◦ SFC Featureをインストール
◦ OpenDaylight BerylliumのSFC Featureがインストールされることを確認
◦ VNFのネットワーク情報とSFCの結びつけが不足 à VNFMが必要
◦ VNF,SFCのプロビジョニングはTackerを想定
◦ http://artifacts.opnfv.org/sfc/brahmaputra/docs/design/architecture.html
◦ https://ask.opnfv.org/question/419/sfc-usecase-with-opendaylight/
◦ https://ask.opnfv.org/question/677/opnfv-sfc-configuration-in-brahmaputra/
Joid(juju)
◦ インストール成功
◦ 一部の定義ファイル(yaml, shellスクリプト)を修正
◦ 動作は未確認
2016年9月9日 NSP	CONSORTIUM	@	OPNFV	MEETUP	TOKYO	#1 10
Jump	server
IPMI(172.16.1.0/24)
PXE(10.0.20.0/24)
Public(172.16.0.0/24)
Private(vlan101)
Storage(vlan102)
IPMI eth0 eth1 eth2
VPN
IPMI eno0 eno130s0f0eno1
mgmt(vlan103)
検証環境L3トポロジ
InternetController / Compute	Node
2016年9月9日 NSP	CONSORTIUM	@	OPNFV	MEETUP	TOKYO	#1 11
検証環境L2トポロジ
Cat3550(172.16.0.42)
3,4,5,6
eno0.c6220-{1,2,3,4}
13,14,15,16
IPMI.	-{1,2,3,4}
25,26,27,28
eno1.c6220-{1,2,3,4}
S3048(172.16.0.44)
49,50,51,52
C6220-{1,2,3,4}
Eno130s0f0.c6220-{1,2,3,4}
10G Ethernet (DAC)
Tagged vlan 101,102,102
1G Ethernet (UTP)
Untagged vlan
1VPN
2016年9月9日 NSP	CONSORTIUM	@	OPNFV	MEETUP	TOKYO	#1 12
主なインストール手順 (Fuel)
1. インストールメディアからインストール
2. fuelmenuによる初期設定
3. Post-installプロセスによる設定の適用,dockerコンテナの起動など
4. Fuel Webインターフェースの起動
5. 各種Pluginのインストール
6. OpenStack環境の追加
7. 環境におけるControllerとCompute Nodeのデプロイ
なんて簡単なんでしょう (棒)
2016年9月9日 NSP	CONSORTIUM	@	OPNFV	MEETUP	TOKYO	#1 13
インストール後の注意事項
Hostsに自分の名前を解決出来るエントリを入れること
FuelmenuでIPアドレス割当前に,Ethtools等でif_indexと物理IFの対応関係を検査すること
◦ FuelのNIC認識順は1G ‒ 10G ‒ 1G ‒ 10Gなど,変わった順序になる.
Fuelのpublicネットワークに属するIFは,一番若番のIFにすること
◦ Fuelmenuにおける多くの問題はこれに起因する
◦ Flavor DebianではMOSのレポジトリエラー
◦ NTPの解決エラー
◦ Dockerイメージがダウンロードできない
◦ など
初期設定から変更した場合はOpenStackの設定を再構成すること
◦ IPアドレスやPXE Boot用IFを変更後,bootstrap_admin_node.shを行う
OpenStack環境のデプロイ前にPluginをインストールすること
◦ /opt/opnfv配下のRPMをfuel-plugisでrpmをインストール
◦ 例) OVS-NFVなど
2016年9月9日 NSP	CONSORTIUM	@	OPNFV	MEETUP	TOKYO	#1 14
Pluginについて
Plugin個別に有効化
排他なPluginがある
◦ 例) SFCとNSH
◦ 現在原因調査中
2016年9月9日 NSP	CONSORTIUM	@	OPNFV	MEETUP	TOKYO	#1 15
デプロイの注意事項
FuelからDeployされるControllerとCompute Node で
PXE boot に用いる I/F は一番若番の I/F にする
Compute Nodeが3台未満の時は,Cephは使えない。
LVM + Cinderを利用する
あきらめない
おかしくなったら再度構築
2016年9月9日 NSP	CONSORTIUM	@	OPNFV	MEETUP	TOKYO	#1 16
Tacker で遊ぼう
2016年9月9日 NSP	CONSORTIUM	@	OPNFV	MEETUP	TOKYO	#1 17
Mitaka + Tacker
どこまで動くのか検証
目指すのは赤枠
◦ Tacker でできる?
2016年9月9日 NSP	CONSORTIUM	@	OPNFV	MEETUP	TOKYO	#1 18
基本的には Heat をたたく
それだけでできるのか?
2016年9月9日 NSP	CONSORTIUM	@	OPNFV	MEETUP	TOKYO	#1 19
Heat の仕様
どちらかのフォーマットにて スタック を指定
◦ HOT テンプレート
Heat Orchestration Template (HOT)
◦ CNF テンプレート
AWS Cloud Foundation の形式
スタック とは ?
◦ 複数の VM で構成されるシステムの単位
立ち上げた VM の中身の構成指定も可能
◦ 立ち上がる VM が構成指定を受け付けるよう作成されている必要がある
◦ 起動後実行するスクリプトを叩き込むこともできる
2016年9月9日 NSP	CONSORTIUM	@	OPNFV	MEETUP	TOKYO	#1 20
NFV抽象化モデルの
有力な記述方法はTOSCA
[TOSCA-1.0]
◦ Topology and Orchestration Topology and Orchestration Specification for Cloud
Applications (TOSCA) Version 1.0, an OASIS Standard, 25 November 2013
◦ OASIS(Organization for the Advancement of Structured Information Standards)が
定めたクラウドアプリケーション向けのトポロジー・オーケストレーションに関する仕様
◦ アプリとインフラを,クラウド環境に非依存で記述できる
◦ http://docs.oasis-open.org/tosca/TOSCA/v1.0/os/TOSCA-v1.0-os.pdf
[TOSCA-Simple-Profile-YAML]
◦ TOSCA Simple Profile in YAML Version 1.0
◦ https://www.oasis-open.org/committees/download.php/52571/TOSCA-Simple-
Profile-YAML-v1.0-wd01-Rev-38.pdf
NSP	CONSORTIUM	@	OPNFV	MEETUP	TOKYO	#1 212016年9月9日
TOSCA でのモデル定義
CP = Connection Point
VL = Virtual Link
VDU = Virtualization Deployment
Unit = a subset of VNF (= VM)
2016年9月9日 NSP	CONSORTIUM	@	OPNFV	MEETUP	TOKYO	#1 22
TOSCAによるNFVの記述
TOSCA	Simple	Profile	for	Network	Functions	Virtualization	(NFV)	Version	1.0
http://docs.oasis-open.org/tosca/tosca-nfv/v1.0/tosca-nfv-v1.0.html
NSP	CONSORTIUM	@	OPNFV	MEETUP	TOKYO	#1 232016年9月9日
VNFD の例
template_name: sample-vnfd
description: demo-example
service_properties:
Id: sample-vnfd
vendor: tacker
version: 1
vdus:
vdu1:
id: vdu1
vm_image: <IMAGE>
instance_type: <FLAVOR>
network_interfaces:
management:
network: <NETWORK_ID>
management: true
placement_policy:
availability_zone: nova
auto-scaling: noop
config:
param0: key0
param1: key1
これが VNFD (VNF Description)
◦ なるほど YAML フォーマット
tacker vnfd-create --vnfd-file
sample-vnfd.yml <NAME>
tacker vnf-list
◦ で定義されていれば準備完了
tacker vnf-create --vnfd-id
<VNFD_ID> <NAME>
◦ 定義ファイルに基づき展開
https://github.com/openstack/tacke
r/tree/master/samples/tosca-
templates/vnfd
2016年9月9日 NSP	CONSORTIUM	@	OPNFV	MEETUP	TOKYO	#1 24
Tacker GUI (1)
2016年9月9日 NSP	CONSORTIUM	@	OPNFV	MEETUP	TOKYO	#1 25
Tacker GUI (2)
2016年9月9日 NSP	CONSORTIUM	@	OPNFV	MEETUP	TOKYO	#1 26
Tacker CLI (1)
2016年9月9日 NSP	CONSORTIUM	@	OPNFV	MEETUP	TOKYO	#1 27
未確認コマンド (チェイン定義)
2016年9月9日 NSP	CONSORTIUM	@	OPNFV	MEETUP	TOKYO	#1 28
https://gist.github.com/trozet/f24e2b81ed0be504c3904f3a7a2ab27d
まとめ
OPNFV Release は NFV 環境を定義するもの
◦ その上で動く NFV をつくり上げるのは自身
現状のオープンソースの場合は
◦ Tacker
◦ OpenMANO
◦ ManageIQ
みたいなソフトウェアを最大限活用
OPNFV Release が更新されるに従って使える部品は増えている
次世代 NSP コンソーシアム
◦ http://www.next-nsp.org/
2016年9月9日 NSP	CONSORTIUM	@	OPNFV	MEETUP	TOKYO	#1 29

OPNFVをインストールしてみた