openstack project update neutron update · openstack days tokyo 2016 1. neutron -db-manage upgrade...

34
Copyright©2016 NTT corp. All Rights Reserved. OpenStack Project Update Neutron Update 日本電信電話株式会社 NTT ソフトウェアイノベーションセンタ 第三推進プロジェクト 市原 裕史 OpenStack Days Tokyo 2016

Upload: others

Post on 30-Jul-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: OpenStack Project Update Neutron Update · OpenStack Days Tokyo 2016 1. neutron -db-manage upgrade --expand • DBのテーブル追加等、server は稼働していても良い

Copyright©2016 NTT corp. All Rights Reserved.

OpenStack Project UpdateNeutron Update

日本電信電話株式会社NTT ソフトウェアイノベーションセンタ

第三推進プロジェクト市原 裕史

OpenStack Days Tokyo 2016

Page 2: OpenStack Project Update Neutron Update · OpenStack Days Tokyo 2016 1. neutron -db-manage upgrade --expand • DBのテーブル追加等、server は稼働していても良い

2Copyright©2016 NTT corp. All Rights Reserved.OpenStack Days Tokyo 2016

市原 裕史•所属

• NTT SIC 第三推進プロジェクト• OpenStack Developer

• Neutron Core Reviewer、その他プロジェクトへの貢献•技術: SDN/NFV中心

• パブリッククラウドの開発• LinuxconでDPDKスイッチの性能の発表• Neutronへの機能提案

自己紹介

Page 3: OpenStack Project Update Neutron Update · OpenStack Days Tokyo 2016 1. neutron -db-manage upgrade --expand • DBのテーブル追加等、server は稼働していても良い

3Copyright©2016 NTT corp. All Rights Reserved.OpenStack Days Tokyo 2016

Mitaka New Features&

Newton New Feature Plans

Agenda

Page 4: OpenStack Project Update Neutron Update · OpenStack Days Tokyo 2016 1. neutron -db-manage upgrade --expand • DBのテーブル追加等、server は稼働していても良い

4Copyright©2016 NTT corp. All Rights Reserved.OpenStack Days Tokyo 2016

•新機能を含む、44の変更が加えられた• Availability Zone• QoS

Mitaka New Features

“Neutron Mitaka releasenotes” http://docs.openstack.org/releasenotes/neutron/mitaka.html

Page 5: OpenStack Project Update Neutron Update · OpenStack Days Tokyo 2016 1. neutron -db-manage upgrade --expand • DBのテーブル追加等、server は稼働していても良い

5Copyright©2016 NTT corp. All Rights Reserved.OpenStack Days Tokyo 2016

Availability Zone

Page 6: OpenStack Project Update Neutron Update · OpenStack Days Tokyo 2016 1. neutron -db-manage upgrade --expand • DBのテーブル追加等、server は稼働していても良い

6Copyright©2016 NTT corp. All Rights Reserved.OpenStack Days Tokyo 2016

Availability Zone がない状態

DHCP(ACT)

ネットワークノード

Router(ACT)

DHCP(ACT)

ネットワークノード

Router(SBY)

• L3HA機能やMultiple DHCP機能により冗長可能

Switch

Page 7: OpenStack Project Update Neutron Update · OpenStack Days Tokyo 2016 1. neutron -db-manage upgrade --expand • DBのテーブル追加等、server は稼働していても良い

7Copyright©2016 NTT corp. All Rights Reserved.OpenStack Days Tokyo 2016

Availability Zone がない状態

DHCP(ACT)

ネットワークノード

Router(ACT)

DHCP(ACT)

ネットワークノード

Router(ACT)

• L3HA機能やMultiple DHCP機能により冗長可能

Switch

DHCP、Routerともに通信は維持

Page 8: OpenStack Project Update Neutron Update · OpenStack Days Tokyo 2016 1. neutron -db-manage upgrade --expand • DBのテーブル追加等、server は稼働していても良い

8Copyright©2016 NTT corp. All Rights Reserved.OpenStack Days Tokyo 2016

Availability Zone がない状態

DHCP(ACT)

ネットワークノード

Router(ACT)

DHCP(ACT)

ネットワークノード

Router(ACT)

• L3HA機能やMultiple DHCP機能により冗長可能

スイッチ

DHCP、Routerともに通信は維持

•複数のネットワークノードにまたがる障害に対応不可

DHCP(ACT)

ネットワークノード

Router(ACT)

DHCP(ACT)

ネットワークノード

Router(SBY)

ラック

・・・

Page 9: OpenStack Project Update Neutron Update · OpenStack Days Tokyo 2016 1. neutron -db-manage upgrade --expand • DBのテーブル追加等、server は稼働していても良い

9Copyright©2016 NTT corp. All Rights Reserved.OpenStack Days Tokyo 2016

Availability Zone を利用

DHCP(ACT)

ネットワークノード

Router(ACT)

ラック

・・・ DHCP(ACT)

ネットワークノード

Router(ACT)

ラック

・・・

•管理者が各ノードのAvailability Zoneを設定• ノードAはAZ1、ノードBはAZ2等

•ユーザはリソース作成時にAZ候補を指定

AZ1 AZ2

AZ3 AZ4 ・・・

DHCP、Routerともに通信は維持

Page 10: OpenStack Project Update Neutron Update · OpenStack Days Tokyo 2016 1. neutron -db-manage upgrade --expand • DBのテーブル追加等、server は稼働していても良い

10Copyright©2016 NTT corp. All Rights Reserved.OpenStack Days Tokyo 2016

QoS

Page 11: OpenStack Project Update Neutron Update · OpenStack Days Tokyo 2016 1. neutron -db-manage upgrade --expand • DBのテーブル追加等、server は稼働していても良い

11Copyright©2016 NTT corp. All Rights Reserved.OpenStack Days Tokyo 2016

QoS in Mitaka

VM

コンピュートノード

Openvswitch によるegress パケット制限

VM VM

コンピュートノード

• Linuxbridge agent が QoS 機能に対応•ロールベースアクセス制御(RBAC) に対応

VM 仮想計算機

仮想スイッチ

vSwitch bridge

vSwitch/bridge

設定対象

VMVM

SR-IOV

NIC

SR-IOV によるegress パケット制限

Linuxbridge によるegress パケット制限

Page 12: OpenStack Project Update Neutron Update · OpenStack Days Tokyo 2016 1. neutron -db-manage upgrade --expand • DBのテーブル追加等、server は稼働していても良い

12Copyright©2016 NTT corp. All Rights Reserved.OpenStack Days Tokyo 2016

• QoS ingress rule/DSCP/帯域保証• Get me a Network• OpenStack Client への移行• Upgrade• Neutron Stadium

Newton New Feature Plans

Page 13: OpenStack Project Update Neutron Update · OpenStack Days Tokyo 2016 1. neutron -db-manage upgrade --expand • DBのテーブル追加等、server は稼働していても良い

13Copyright©2016 NTT corp. All Rights Reserved.OpenStack Days Tokyo 2016

QoS in Newton

Page 14: OpenStack Project Update Neutron Update · OpenStack Days Tokyo 2016 1. neutron -db-manage upgrade --expand • DBのテーブル追加等、server は稼働していても良い

14Copyright©2016 NTT corp. All Rights Reserved.OpenStack Days Tokyo 2016

QoS

VM

コンピュートノード

• Egress パケット制限(Mitaka)• Ingress パケット制限(開発中)• DSCP付加(Newton)

VM

• 帯域保証サポート(開発中)

VM

コンピュートノード

new VM(未配置)

• Minimum bandwithscheduling support(開発中)• 帯域保証スケジューリング(開発中)

• QoSを実現するための様々な新機能を提供• 帯域制限、帯域保証、DSCP付加など

VM 仮想計算機

仮想スイッチ

vSwitch vSwitch

vSwitch

設定対象

Page 15: OpenStack Project Update Neutron Update · OpenStack Days Tokyo 2016 1. neutron -db-manage upgrade --expand • DBのテーブル追加等、server は稼働していても良い

15Copyright©2016 NTT corp. All Rights Reserved.OpenStack Days Tokyo 2016

QoS 帯域保証スケジューリング

VM

コンピュートノードB

VM VM

コンピュートノードC

new VM(未配置)

vSwitch vSwitch

VM

コンピュートノードA

VM

vSwitch

VM 仮想計算機

仮想スイッチvSwitch

最大10Gbps, 残り4Gbps 最大10Gbps, 残り2Gbps 最大10Gbps, 残り7Gbps

帯域保証値 3Gbps

Page 16: OpenStack Project Update Neutron Update · OpenStack Days Tokyo 2016 1. neutron -db-manage upgrade --expand • DBのテーブル追加等、server は稼働していても良い

16Copyright©2016 NTT corp. All Rights Reserved.OpenStack Days Tokyo 2016

QoS 帯域保証スケジューリング

VM

コンピュートノードB

VM VM

コンピュートノードC

new VM

vSwitch vSwitch

VM

コンピュートノードA

VM

vSwitch

VM 仮想計算機

仮想スイッチvSwitch

最大10Gbps, 残り4Gbps 最大10Gbps, 残り2Gbps 最大10Gbps, 残り4Gbps

Page 17: OpenStack Project Update Neutron Update · OpenStack Days Tokyo 2016 1. neutron -db-manage upgrade --expand • DBのテーブル追加等、server は稼働していても良い

17Copyright©2016 NTT corp. All Rights Reserved.OpenStack Days Tokyo 2016

Get me a Network

Page 18: OpenStack Project Update Neutron Update · OpenStack Days Tokyo 2016 1. neutron -db-manage upgrade --expand • DBのテーブル追加等、server は稼働していても良い

18Copyright©2016 NTT corp. All Rights Reserved.OpenStack Days Tokyo 2016

•従来のVM作成のプロセスにおいてユーザはあらかじめ仮想ネットワークを作成しなければならなかった

Get me a Network なしの従来の手順

Neutron Nova

VMNetwork

VM

VM

VM

Network

(1)テナントネットワークを作成(2)ルータを作成(3)外部ネットワークとテナント

ネットワークをルータに接続

(4) 作成済みのNetworkもしくはPortを指定してVMを作成

Router

Router

ユーザ

Page 19: OpenStack Project Update Neutron Update · OpenStack Days Tokyo 2016 1. neutron -db-manage upgrade --expand • DBのテーブル追加等、server は稼働していても良い

19Copyright©2016 NTT corp. All Rights Reserved.OpenStack Days Tokyo 2016

• Neutronが自動でネットワークとルータを作成し設定を行う

Get me a Network を利用

ユーザ

Neutron Nova

VMNetwork

VM

VM

VM

Network

(1)テナントネットワークを作成(2)ルータを作成(3)外部ネットワークとテナント

ネットワークをルータに接続(1) VMを作成

Router

Router

不要

自動的に作成される

Page 20: OpenStack Project Update Neutron Update · OpenStack Days Tokyo 2016 1. neutron -db-manage upgrade --expand • DBのテーブル追加等、server は稼働していても良い

20Copyright©2016 NTT corp. All Rights Reserved.OpenStack Days Tokyo 2016

Get me a Network 実行例$ curl -g -i -X POST http://localhost:8774/v2.1/9cf06c7e8d424a8895390e76f7cdd969/servers -H "User-Agent: python-novaclient" -H "Content-Type: application/json" -H "Accept: application/json" -H "X-OpenStack-Nova-API-Version: 2.32" -H "X-Auth-Token: $TOKEN" -d '{"server": {"name": "net-auto-test", "imageRef": "58baf694-b22a-4c93-b47c-a67c62d19586", "flavorRef": "1", "max_count": 1, "min_count": 1, "networks": [{"uuid": "auto"}]}}'HTTP/1.1 202 AcceptedContent-Length: 436Location: http://localhost:8774/v2.1/9cf06c7e8d424a8895390e76f7cdd969/servers/49a11878-c0dc-4d7e-9c16-cd3080fdb984Content-Type: application/jsonOpenstack-Api-Version: compute 2.32X-Openstack-Nova-Api-Version: 2.32Vary: OpenStack-API-VersionVary: X-OpenStack-Nova-API-VersionX-Compute-Request-Id: req-28051989-738d-4293-b125-9b4759c866b8Date: Mon, 04 Jul 2016 06:21:19 GMT

{"server": {"security_groups": [{"name": "default"}], "OS-DCF:diskConfig": "MANUAL", "id": "49a11878-c0dc-4d7e-9c16-cd3080fdb984", "links": [{"href": "http://localhost:8774/v2.1/9cf06c7e8d424a8895390e76f7cdd969/servers/49a11878-c0dc-4d7e-9c16-cd3080fdb984", "rel": "self "}, {"href": "http://localhost:8774/9cf06c7e8d424a8895390e76f7cdd969/servers/49a11878-c0dc-4d7e-9c16-cd3080fdb984", "rel": "bookmark"}], "adminPass": "9zvzhqhWCJAB"}}

“Add REST API support for get me a network” https://review.openstack.org/#/c/316398/27

Page 21: OpenStack Project Update Neutron Update · OpenStack Days Tokyo 2016 1. neutron -db-manage upgrade --expand • DBのテーブル追加等、server は稼働していても良い

21Copyright©2016 NTT corp. All Rights Reserved.OpenStack Days Tokyo 2016

Get me a Network 自動作成された資源

Neutron “auto-allocated-topology” APIで同様にネットワーク、サブネット、ルータを作成可能

Page 22: OpenStack Project Update Neutron Update · OpenStack Days Tokyo 2016 1. neutron -db-manage upgrade --expand • DBのテーブル追加等、server は稼働していても良い

22Copyright©2016 NTT corp. All Rights Reserved.OpenStack Days Tokyo 2016

OpenStack Client

Page 23: OpenStack Project Update Neutron Update · OpenStack Days Tokyo 2016 1. neutron -db-manage upgrade --expand • DBのテーブル追加等、server は稼働していても良い

23Copyright©2016 NTT corp. All Rights Reserved.OpenStack Days Tokyo 2016

OpenStack Client

nova-client

neutron-client

cinder-client

glance-client

keystone-client

heat-client

・・・*-client

60以上のクライアントが存在

openstack-client

OpenStack Clientへ統一

Page 24: OpenStack Project Update Neutron Update · OpenStack Days Tokyo 2016 1. neutron -db-manage upgrade --expand • DBのテーブル追加等、server は稼働していても良い

24Copyright©2016 NTT corp. All Rights Reserved.OpenStack Days Tokyo 2016

OpenStack Client 実行例

従来のコマンド

新しいコマンド

Page 25: OpenStack Project Update Neutron Update · OpenStack Days Tokyo 2016 1. neutron -db-manage upgrade --expand • DBのテーブル追加等、server は稼働していても良い

25Copyright©2016 NTT corp. All Rights Reserved.OpenStack Days Tokyo 2016

Upgrade

Page 26: OpenStack Project Update Neutron Update · OpenStack Days Tokyo 2016 1. neutron -db-manage upgrade --expand • DBのテーブル追加等、server は稼働していても良い

26Copyright©2016 NTT corp. All Rights Reserved.OpenStack Days Tokyo 2016

1. neutron-db-manage upgrade --expand• DBのテーブル追加等、serverは稼働していても良い

従来のUpgrade

NeutronServer(Run)

NeutronServer(Run)

ユーザ API requestsDB

new tableexpand

Page 27: OpenStack Project Update Neutron Update · OpenStack Days Tokyo 2016 1. neutron -db-manage upgrade --expand • DBのテーブル追加等、server は稼働していても良い

27Copyright©2016 NTT corp. All Rights Reserved.OpenStack Days Tokyo 2016

1. neutron-db-manage upgrade --expand• DBのテーブル追加等、serverは稼働していても良い

2. neutron server stop3. neutron-db-manage upgrade --contract

• DBのテーブル削除等、serverは停止している必要がある

従来のUpgrade

NeutronServer(Stop)

NeutronServer(Stop)

ユーザ API requestsDB

old tablecontract

Page 28: OpenStack Project Update Neutron Update · OpenStack Days Tokyo 2016 1. neutron -db-manage upgrade --expand • DBのテーブル追加等、server は稼働していても良い

28Copyright©2016 NTT corp. All Rights Reserved.OpenStack Days Tokyo 2016

1. neutron-db-manage upgrade --expand• DBのテーブル追加等、serverは稼働していても良い

2. neutron server stop3. neutron-db-manage upgrade --contract

• DBのテーブル削除等、serverは停止している必要がある4. neutron server update & start

従来のUpgrade

NeutronServer(Run)

NeutronServer(Run)

ユーザ API requestsDB

Page 29: OpenStack Project Update Neutron Update · OpenStack Days Tokyo 2016 1. neutron -db-manage upgrade --expand • DBのテーブル追加等、server は稼働していても良い

29Copyright©2016 NTT corp. All Rights Reserved.OpenStack Days Tokyo 2016

• Oslo VersionedObject(OVO)によってリソースのバージョンが厳密に管理される

•新旧バージョンのNeutron Serverが混在可能なため、rolling upgradeが容易になる

Newton以降のUpgrade

NeutronServer(Run)

ユーザ API requestsDB

NeutronServer(Run)

Page 30: OpenStack Project Update Neutron Update · OpenStack Days Tokyo 2016 1. neutron -db-manage upgrade --expand • DBのテーブル追加等、server は稼働していても良い

30Copyright©2016 NTT corp. All Rights Reserved.OpenStack Days Tokyo 2016

Neutron Stadium

Page 31: OpenStack Project Update Neutron Update · OpenStack Days Tokyo 2016 1. neutron -db-manage upgrade --expand • DBのテーブル追加等、server は稼働していても良い

31Copyright©2016 NTT corp. All Rights Reserved.OpenStack Days Tokyo 2016

Neutron内部のコアリソースを管理するコアプラグイン、その他のリソースを管理するサービスプラグインをNeutronから外出しする活動が行われていた

Neutron Stadium 歴史的経緯

ML2

NEC

VMware

Juniper

Arista

Brocade

Cisco

A10

vArmour

HAproxy

Arista

Brocade Cisco

コアプラグインサービスプラグイン

Neutron

ロードバランサ

L2スイッチ

ルータ

VMware NSXでルータとL2スイッチを提供

HAproxyでロードバランサを提供

Neutron

A10

EmbranceHAproxy

NetScaler

ロードバランサ

Cisco OpenSwan

VPN

iptables vArmour

ファイアウォール

NEC

VMware Juniper

Aristabrocade

Cisco …

Arista

Cisco

Brocade

ルータ

コアプラグイン

ML2 L3Router

ソースコードの半分以上がベンダプラグイン

Page 32: OpenStack Project Update Neutron Update · OpenStack Days Tokyo 2016 1. neutron -db-manage upgrade --expand • DBのテーブル追加等、server は稼働していても良い

32Copyright©2016 NTT corp. All Rights Reserved.OpenStack Days Tokyo 2016

Mitakaのプロジェクト構成

Core pluginService plugin

bgpvpn

dragonflow

kuryr

ale-omniswitch

arista

bagpipe

cisco

calico

brocade

bigswitch

Neutron Stadium

Neutron

edge-vpn

fujitsu

hyperv

infoblox

midonet

mlnx

nec

nuageodl

ofagent

onos

ovn

ovs-dpdk

plumgrid

powervm

vsphere

vmware-nsx

octavia

client

lbaasvpnaas

fwaas

l2gwdynamic-routing

sfc

pd-driver

lib

Page 33: OpenStack Project Update Neutron Update · OpenStack Days Tokyo 2016 1. neutron -db-manage upgrade --expand • DBのテーブル追加等、server は稼働していても良い

33Copyright©2016 NTT corp. All Rights Reserved.OpenStack Days Tokyo 2016

最新のプロジェクト構成

Core pluginService plugin

bgpvpn

dragonflow

kuryr

ale-omniswitch

arista

bagpipe

cisco

calico

brocade

bigswitch

Neutron

edge-vpn

fujitsu

hyperv

infoblox

midonet

mlnx

nec

nuageodl

ofagent

onos

ovn

ovs-dpdk

plumgrid

powervm

vsphere

vmware-nsx

octavia

client

lbaasvpnaas

fwaas

l2gwdynamic-routing

sfc

pd-driver

lib

Neutron Stadium

Page 34: OpenStack Project Update Neutron Update · OpenStack Days Tokyo 2016 1. neutron -db-manage upgrade --expand • DBのテーブル追加等、server は稼働していても良い

34Copyright©2016 NTT corp. All Rights Reserved.OpenStack Days Tokyo 2016

• BGP• Neutron本体から独立してneutron-dynamic-routingプロジェクトとしてNeutron Stadiumに加えられた

• Routed Network• Neutron側のコードは順調に取り込まれているが、Nova側の動き次第

• VLAN aware VM• Blueprintは承認され、現在はAPI部分のパッチのレビュー中

• FWaaS/VPNaaS• 人員不足によりコードの品質を保つことが難しい状態で、

FWaaS API v2の議論もなかなか進んでいない

その他のトピック