• 検索結果がありません。

本日の内容 CORD 概要 - ONFのCORD Projectについて - CORDができていること - 通信キャリアのCORDユースケース動向 CORD 環境構築 - 2-way build a CORD POD - CORDマニュアルデプロイ - CORD 関連で困ったこと - 今後 CORD

N/A
N/A
Protected

Academic year: 2021

シェア "本日の内容 CORD 概要 - ONFのCORD Projectについて - CORDができていること - 通信キャリアのCORDユースケース動向 CORD 環境構築 - 2-way build a CORD POD - CORDマニュアルデプロイ - CORD 関連で困ったこと - 今後 CORD"

Copied!
34
0
0

読み込み中.... (全文を見る)

全文

(1)

CORDの概要と構築

2017年12月4日

日本電気株式会社

ネットワークソリューション事業部

藤井 貴之

Okinawa Open Days 2017

(2)

本日の内容

•CORD概要

- ONFのCORD Projectについて

- CORDができていること

- 通信キャリアのCORDユースケース動向

•CORD環境構築

- 2-way build a CORD POD

- CORDマニュアルデプロイ

- CORD関連で困ったこと

- 今後CORDでやりたいこと

(3)
(4)

4 © NEC Corporation 2017 Okinawa Open Days 2017

ONFのONOS Project, CORD Project

ONF:Open Networking Foundation

2011年に設立された非営利団体

s S

18 Partners(ボードメンバ)

16 Collaborating Innovators

Mission: Transformation of network infrastructure

and carrier business models.

(5)

CORD Project

データセンタの要素技術を使い、局舎ネットワークの再構築

ONOS:SDNコントローラ

CORD:ONOSのユースケースの1つ

「VNFサービスチェイン」

M-CORD:Mobile Network

R-CORD:Residential Network

E-CORD:Enterprise Network

ONOS

CORD

M-CORD

R-CORD

E-CORD

Past

(6)

6 © NEC Corporation 2017 Okinawa Open Days 2017

CORDができていること(ex. R-CORD)

現在のネットワークトポロジ

CPE

OLT

OLT

OLT

Router

(SG)

Access Network

Subscriber access building Home Apartment Business

Metro&Core Network

ONU

ONU

Transport

ISP

ISP

(7)

CORDができていること(ex. R-CORD)

オープンな技術を使って

機能の再配置

Network OS:ONOS

(DockerにUnder,Over)

VNFs:Openstack VM

(jujuでコンポーネントデプロイ)

Device:Ubuntu, ONL

(MAASデプロイ)

PON OLT Opt. cable splitter Spine Switch Spine Switch Leaf Switch Leaf Switch Opt. cable CPE ONU CPE ONU

NAT PPPoE Server

Compute Node NAT PPPoE vSG VM Server Head Node ONOS Openstack XOS Internet

(8)

8 © NEC Corporation 2017 Okinawa Open Days 2017

CORDのユースケース動向(ex. R-CORD)

オープンな技術を使って

機能の再配置+Edge Cloud

Network OS:ONOS

(DockerにUnder,Over)

VNFs:Openstack VM

(jujuでコンポーネントデプロイ)

Device:Ubuntu, ONL

(MAASデプロイ)

PON OLT Spine Switch Opt. cable splitter Spine Switch Leaf Switch Leaf Switch Opt. cable CPE ONU CPE ONU Server Compute Node NAT PPPoE vSG VM Server Head Node ONOS Openstack XOS Internet Opt. cable Server Compute Node vCDN etc.

(9)

CORDのユースケース動向(ex. R-CORD)

オープンな技術を使って機能の再配置+Edge Cloud(computing)

(10)

11 © NEC Corporation 2017 Okinawa Open Days 2017

CORDのユースケース動向(ex. R-CORD)

Telefónicaは米Qwilt(Multi-CDN PF)などと組んで、CORDベース*のプラットフォームで

(video)contents cacheの実証実験を行う予定

*Open Nebulaを使っているなど、ONFからリリースされているCORDに

手が加えられている。

TelefónicaがCORD build 2017で発表した内容

オープンな技術を使って機能の再配置+Edge Cloud(computing)

(11)

CORDのユースケース動向(ex. R-CORD)

NTT東日本はCORDプラットフォームにIoTゲートウェイ、コンテンツキャッシュ、顔認証

を載せた、サービスユースケースの実証実験を行う予定

*ONF実装CORDをそのまま使う。

NTT東日本がCORD build 2017で発表した内容

オープンな技術を使って機能の再配置+Edge Cloud(computing)

(12)
(13)

2-way build a CORD POD

Automation deployment(Jenkins integration)

ONFのjenkinsサーバにつなぐだけ。

Manual deployment by script and makefile

D

Download from github

“Two commands, and few reboots”

マニュアルデプロイは未だ難しく、試行錯誤が必須。

こちらについて話します

(14)

15 © NEC Corporation 2017 Okinawa Open Days 2017

CORD POD構築フロー

CORD POD

少なくとも、2つのサーバと1つのスイッチで構成された環境。

CORDのコア機能をすべて使うことができる。

External

E

xte

rn

al

M

an

age

men

t

Head node

corddev

compute

node

Fabric Switch

IPMI

Fabric

Fabric

Mgmt

Mgmt

Mgmt

External

(15)

CORD POD構築フロー

corddev install

Githubよりcord-bootstrap.shをダウンロードしてインストール

Head

node

deploy

corddevでHead nodeにするサーバをIP指定してmake config⇒configファイル作成

configファイルを基にmake build⇒LXC, Docker, MAASが用意されてdeploy完了

Compute node&Fabric switch deploy

compute node:head nodeをイーサ接続して起動するとMAASでUbuntuが

インストールされて、ansibleで整備される。

Fabric switch:ONIEブートでONLインストール, ansibleで整備される。

Internet External

Exte

rn

a

l

Man

ag

e

me

n

t

Head node

corddev

compute node

Fabric Switch

IPMI Fabric Fabric Mgmt Mgmt Mgmt External

(16)

17 © NEC Corporation 2017 Okinawa Open Days 2017

CORD POD構築フロー

corddev install

Githubよりcord-bootstrap.shをwget&bashしてインストール

Head

node

deploy

corddevでHead nodeにするサーバをIP指定してmake config⇒configファイル作成

configファイルを基にmake build⇒LXC, Docker, MAASが用意されてdeploy完了

Compute node&Fabric switch deploy

compute node:head nodeをイーサ接続して起動するとMAASでUbuntuが

インストールされて、ansibleで整備される。

Fabric switch:ONIEブートでONLインストール, ansibleで整備される。

External

E

xte

rn

al

Ma

n

a

ge

me

n

t

Head node

corddev

compute node

Fabric Switch

IPMI Fabric Fabric Mgmt Mgmt Mgmt External

(17)

CORD POD構築フロー

corddev install

Githubよりcord-bootstrap.shをwget&bashしてインストール

Head

node

deploy

corddevでHead nodeにするサーバをIP指定してmake config⇒configファイル作成

configファイルを基にmake build⇒LXC, Docker, MAASが用意されてdeploy完了

Compute node&Fabric switch deploy

Compute node:head nodeをイーサ接続して起動するとMAASでUbuntuが

インストールされて、ansibleで整備される。

Fabric switch:ONIEブートでONLインストール、 ansibleで整備される。

External

E

xte

rn

al

Ma

n

a

ge

me

n

t

Head node

corddev

compute node

Fabric Switch

IPMI Fabric Fabric Mgmt Mgmt Mgmt External

(18)

19 © NEC Corporation 2017 Okinawa Open Days 2017

Focus on Head node deploy

v3系ではスクリプト主体⇒v4系ではMakefile

実行を細かく指定することができるようになった。

Build failedは減り、Build timeも~46%減った。

#make PODCONFIG=config.yml config

fabric_ip: '10.1.0.1/24' management_ip: '10.6.0.1/24' external_ip: '192.168.99.1/16' external_gw: '192.168.0.10' external_iface: 'eth0' management_network: 10.6.0.0/24 inventory_groups: head: head1: ansible_host: 192.168.99.1 ansible_port: 22 ansible_user: cord ansible_ssh_pass: onf fabric_include_names: eth1 fabric_exclude_names: eth0,eth2,eth3,eth4,eth5 management_include_names: eth2,eth3,eth4,eth5 management_exclude_names: eth0,eth1

Head nodeのNIC IP設定

デプロイするHead node

のIPやuser/pwを指定

(19)

Focus on Head node deploy

v3系ではスクリプト主体⇒v4系ではMakefile

実行を細かく指定することができるようになった。

Build failedは減り、Build timeも~46%減った。

#make PODCONFIG=config.yml config

#make –j4 build | tee ~/install.out

Deploy完了をチェック(docker daemons, juju services,…)

cord@cord-head-1:~$ docker ps --format "{{.Names}} | {{.Status}}"

switchq | Up 6 days

onosfabric_xos-onos_1 | Up 2 weeks

onoscord_xos-onos_1 | Up 2 weeks

(中略)

registry | Up 2 weeks

cord@cord-head-1:~$ juju status --format tabular [Services]

NAME STATUS EXPOSED CHARM

ceilometer active false cs:trusty/ceilometer-17

glance active false cs:trusty/glance-28

(中略)

(20)

21 © NEC Corporation 2017 Okinawa Open Days 2017

Focus on Head node deploy

Docker images/daemons on Head node

もし動作不良の場合は、docker-compose kill&upする必要がある。

• onos-fabric

⇒Underlay NW用ONOS

• onos-cord

⇒Overlay NW用ONOS

• switchq

⇒PODへのマシン(サーバ、スイッチ)追加を監視して、

それがスイッチの場合にプロビジョニングを開始する。

• automation

⇒MaaSがベアメタルにデプロイする際に、PXEブートを自動化する。

• provisioner

⇒PODに追加されるマシンに対してansible playbookを実行する。

• harvester

⇒すべてのホストをDNS経由で解決できるように、CORD/DHCP/DNS

を統合する。

• allocator

⇒Fabric IFにIPをアロケートする。

(21)

Focus on Head node deploy

Juju services on Head node

Jujuによって、Openstackのコンポーネントと関係性が定義されている。

(22)

23 © NEC Corporation 2017 Okinawa Open Days 2017

Juju services on Head node

Juju serviceの追加はGUIかCLI(#juju deploy~)で可能

Focus on Head node deploy

つながるものだけがハイライト表示される

Juju GUIで編集したトポロジは

(23)

Focus on Compute&Switch deploy

MAASからOSインストール

Compute nodeはUbuntu14.04(MAAS GUIでイメージを用意)、

Fabric switchはONL 2.0(roles/maas/defaults/main.ymlにて定義)

Control plane(management)でHead nodeとつながっていればok.

複数回リブートが起きた後、MAAS GUIで以下のような画面になればOSインストール完了

*MAAS GUIの”Deployed”はOSインストール完了の意味。

accton_as6712_32x: 'https://www.dropbox.com/s/pl3cvr9olnaufw5/ONL-2.0.0_ONL-OS_2017-01-04.0024-8d23df5_AMD64_INSTALLED_INSTALLER'

(24)

25 © NEC Corporation 2017 Okinawa Open Days 2017

Focus on Compute&Switch deploy

Ansible playbook整備

OSインストール後、Ansibleで各種設定が行われる。

Compute node:Dockerインストール、 NIC設定、juju-compute設定

Fabric switch:OpenFlowのDPID設定(デフォルトではMACアドレスから生成)、

OFagentを起動/停止するスクリプトの生成

deployが完了すると、

cord@cord-head-1:~$ cord prov list

NAME MAC IP STATUS MESSAGE

front-playground.cord.lab d4:3d:7e:6d:c6:de 10.6.0.14 Complete

feminine-fold.cord.lab d4:3d:7e:71:0e:bd 10.6.0.16 Complete

================================================================ juju-compute-setup : Wait for nova-compute nodes to come online --- 309.52s

juju-compute-setup : Add machines to Juju --- 46.38s juju-compute-setup : Pause to let Juju settle --- 20.07s

compute-node-enable-maas : Pause to work around race in VTN or ONOS synchronizers -- 20.05s juju-compute-setup : Deploy nova-compute service if needed --- 6.67s

juju-compute-setup : Create relations between nova-compute and other services if needed --- 5.79s common-prep : Remove annoying default editors --- 3.52s

compute-prep : update-ca-certificates --- 1.69s

compute-node-enable-maas : Load TOSCA to add OpenStack compute nodes, over REST --- 1.47s Gathering Facts --- 1.47s

(25)

Focus on Trellis configuration

Trellis configuration

Trellis: DC Fabric Underlay + Virtual Network Overlay

+ Unified SDN Controller

fabric-network-cfg.jsonを編集してXOSからONOSに流し込む。

(26)

27 © NEC Corporation 2017 Okinawa Open Days 2017

Focus on Trellis configuration

Trellis configuration

Trellis: DC Fabric Underlay + Virtual Network Overlay

+ Unified SDN Controller

fabric-network-cfg.jsonを編集してXOSからONOSに流し込む。

(27)

CORD POD構築完了

CORD POD build complete

最後に、XOSから要件に合わせたサービスを用意することでCORD PODの構築完了

R-CORDのほか、M-CORDも現在整備されている。

(28)

31 © NEC Corporation 2017 Okinawa Open Days 2017

CORD構築の経験

CORD PODで困ったことの例(原因調査中のもの)

Head nodeデプロイ時に”failed to fetch PPA information”

ONOS起動時にIntentServiceが起動せず

TASK [maas : MAAS Repository]

**************************************************************** FAILED - RETRYING: MAAS Repository (3 retries left).

FAILED - RETRYING: MAAS Repository (2 retries left). FAILED - RETRYING: MAAS Repository (1 retries left).

fatal: [head1]: FAILED! => {"attempts": 3, "changed": false, "failed": true, "msg": "failed to fetch

PPA information, error was: Request failed: <urlopen error [Errno -2] Name or service not known>"}

onos> summary

Service org.onosproject.net.intent.IntentService not found

onos> log:display (一部抜粋)

| ERROR | Component Actor | onoscorenet | 127 org.onosproject.onoscorenet -1.10.6 | [org.onosproject.net.intent.impl.installer.DomainIntentInstaller(10)] Cannot create

component instance due to failure to bind reference intentExtensionService

| ERROR | sh for user onos | onoscorenet | 127 org.onosproject.onoscorenet

-1.10.6 | [org.onosproject.net.intent.impl.ObjectiveTracker(33)] Cannot create component instance due to failure to bind reference topologyService

| ERROR | sh for user onos | onoscorenet | 127 org.onosproject.onoscorenet

-1.10.6 | [org.onosproject.net.intent.impl.IntentManager(9)] Cannot create component instance due to failure to bind reference coreService

⇒何らかの理由でcoreServiceが作られず、IntentManagerが起動できなかった? Multiple ONOS, Docker ONOSに見られる現象であり、鋭意調査中。

(29)

CORD構築の経験

CORD PODで困ったことの例(原因調査中のもの)

Serverリブート時にjuju serviceがhook failed

[Services]

NAME STATUS EXPOSED CHARM

ceilometer error false cs:trusty/ceilometer-17

ceilometer-agent false cs:trusty/ceilometer-agent-13

glance error false cs:trusty/glance-28

juju-gui unknown false cs:trusty/juju-gui-142

keystone error false cs:trusty/keystone-267

mongodb unknown false cs:trusty/mongodb-33

nagios unknown false cs:trusty/nagios-10

neutron-api error false cs:~cordteam/trusty/neutron-api-6

nova-cloud-controller error false cs:trusty/nova-cloud-controller-64

nova-compute error false cs:~cordteam/trusty/nova-compute-3

nrpe false cs:trusty/nrpe-4

ntp false cs:trusty/ntp-14

openstack-dashboard error false cs:trusty/openstack-dashboard-19

percona-cluster error false cs:trusty/percona-cluster-31

rabbitmq-server error false cs:trusty/rabbitmq-server-42

⇒機能が使えないことはないが、作業の懸念点となる。 一部のサービスは下記コマンドで対処可能

#juju resolved --retry <unit name>

(30)

33 © NEC Corporation 2017 Okinawa Open Days 2017

CORD構築の経験

ONFが推奨するHW要件

(CORD Guideより)

Server: OCP-qualified QuantaGrid D51B-1U server.

Each server is configured with 2x Intel E5-2630,

64GB of RAM 2133MHz DDR4, and a 40 Gig adapter.

Strongly Suggested NIC:

・Intel Ethernet Converged Network Adapters XL710 10/40 GbE…

・ConnectX®-3 EN Single/Dual-Port 10/40/56GbE Adapters…

Fabric switch: OCP-qualified Accton 6712 switch.

Each switch is configured with 32x40GE ports;

produced by EdgeCore and HP.

ソフトウェア実装の中にベンダ依存が組み込まれている

fabric_include_module_types: 'i40e, mlx4_en'

“prefix” : “CC:37:AB”,(EdgecoreのOUI)

“vendor” : “Edgecore Networks Corporation”,

(31)

CORD構築の経験

非推奨HWでCORD環境を作る

目的:マシンルームにある機材をそのままCORD用に使うことできる。

非推奨HWでも動くことが確認できたら、多くの方がCORDに触れることができる。

実際はソフトウェア実装を変えなくても、ある程度HW要件の融通は効く。

• Server

⇒40G NICではなく、10G NICでも代用可能(ofdpa.confで設定変更)。

⇒NICモジュール(i40e,…)依存はあまり効かない(要検証)。

• Fabric Switch

⇒as6712のほか、as5712やas5812も対応している。

⇒as4610も”Leaf switchとして”使うことができる(要検証)。

# port_mode_1=1x40g if=SR4

#

port_mode_1=4x10g # front port 1

#port_mode_2=1x40g # front port 2

(32)

35 © NEC Corporation 2017 Okinawa Open Days 2017

CORD構築の経験

非推奨HWでCORD環境を作る

SW-Hub Server Head Node Data plane(Underlay NW) Control plane(Overlay Network) IPMI External Server Compute Node Break out cable 1G->10G Convert Switch LAN cable SW-Hub Fabric Switch 40G Server Compute Node VLAN separated Fabric Switch 40G Fabric Switch 40G Fabric Switch 40G Optical cable 1G->10G Convert Switch Internet Break out cable

PODconfig,ソフトウェア実装を把握することで、

ネットワーク含めた柔軟な構築が手軽にできた

(33)

CORDでやっていること&みたいこと

非推奨HWでCORD環境+VNFプラットフォーム

SW-Hub Server Head Node Data plane(Underlay NW) Control plane(Overlay Network) IPMI External Compute Node vSG Break out cable 1G->10G Convert Switch LAN cable SW-Hub Leaf Switch 40G Compute Node Service VLAN separated Leaf Switch 40G Spine Switch 40G Spine Switch 40G Optical cable 1G->10G Convert Switch Internet Break out cable Compute Node Service OLT devices Out of CORD management CORD

(34)

37 © NEC Corporation 2017 Okinawa Open Days 2017

まとめ

CORDはVNFプラットフォームとして注目されており、

世界中の通信キャリアが実証実験に取り組みはじめている。

機能の再配置(vSG,…)に関しては、NTT東等がすでに検証している。

沖縄オープンラボではスループットや高可用性、冗長性の検証に取り組んでいる。

(今後はNCTUと連携してE-CORD検証に取り組む)

CORDは現在アーリーアクセスの状態(主観)であり、

より使いやすく進化させるためにはコミュニティの発展が必要

FlextronicsがCORD build 2017で発表した内容

参照

関連したドキュメント

8)Takahashi S, et al : Comparative single-institute analysis of cord blood transplantation from unrelated donors with bone marrow or peripheral blood stem-cell trans- plants

暑熱環境を的確に評価することは、発熱のある屋内の作業環境はいう

このたび牡蠣養殖業者の皆様がどのような想いで活動し、海の環境に関するや、アイディ

最愛の隣人・中国と、相互理解を深める友愛のこころ

また、 NO 2 の環境基準は、 「1時間値の1 日平均値が 0.04ppm から 0.06ppm までの ゾーン内又はそれ以下であること。」です

○事業者 今回のアセスの図書の中で、現況並みに風環境を抑えるということを目標に、ま ずは、 この 80 番の青山の、国道 246 号沿いの風環境を

このような環境要素は一っの土地の構成要素になるが︑同時に他の上地をも流動し︑又は他の上地にあるそれらと

 今日のセミナーは、人生の最終ステージまで芸術の力 でイキイキと生き抜くことができる社会をどのようにつ