2. Agenda
• Kilo リリースの概要
• Liberty リリースでの注目ポイント
• M リリースについて考えてみる
自分が関わっているプロジェクトの都合上、
Neutron に偏っている点はご了承を。
3. Who am I?
• 元木 顕弘 (@ritchey98)
– 以前はIPルータ、広域Ethernet装置、迷惑メールフィルタなどを
開発していました。
– ここ数年は、ネットワーク仮想化、OpenStack, OpenFlow 周りで
活動しています。
• OpenStack Developer
– Neutron Core Developer (+ Neutron Spec Review team)
– Horizon Core Developer
– I18N (国際化) Project member
• Linux JM (日本語マニュアル) Project Maintainer
– 最近やめました。もうLinuxの日本語マニュアルなんていりませ
んよね?
4. Kilo リリースの概要
• “Big Tent”
• Nova
• Neutron
• Cinder
• Keystone
• Horizon
• Swift
• Sahara
カバーしているプロジェクトは完全に主観 (^^;
5. “Big Tent”
• これまでの “Integrated projects” の仕組みでは要件
が多くなってきた。スケールしない。
• “Big Tent” という考え方に移行
• 柔軟に OpenStack Official プロジェクトとして認めてい
く方向に変化。
– OpenStack の Mission にあっていれば認めていく方向
• The OpenStack Mission: to produce the ubiquitous
Open Source Cloud Computing platform that will meet
the needs of public and private clouds regardless of
size, by being simple to implement and massively
scalable.
7. New projects under “Big Tent”
• Murano
• Congress
• Rally
• Barbican
• Designate
• Manilla
• Magnum
• Zaqar
• MagnetoDB
• Puppet OpenStack
• Mistral
OpenStack Official になったといっても
これまでの “Integrated” とは異なる点に注意。
ステータスはそれぞれチェックする必要あり
8. “Big Tent”
• プロジェクトとして認められる条件
– OpenStack Mission にあっているか
– 他のプロジェクトとの相互運用性
– プロジェクト参加者が継続的かつ複数の組織からか
– Four *Open*
• Open Source, Open Community, Open Design, Open Development
• Tags
– プロジェクトのリリース、運営方針などの状態を “tag” という形で表現。
– http://governance.openstack.org/reference/projects/index.html
• DefCore (OpenStack “Powered”)
– http://www.openstack.org/brand/interop/
– 商用として “OpenStack” と名乗るための要件
– 対象となるプロジェクト、満たすべきテストが DefCore Committee で定
義されており、このテストをパスする必要あり。
9. Nova
• Nova v2.1 API
– v2.1 = v2.0 compatibility
+ validations + microsversion
– Strong parameter validation framework
– Microversions : 実際には Kilo には 3つのバージョンあり
– v2.1 : v2.0 compat API
– v2.2 : new parameter to keypair API response
+ response code change for keypair create/delete
(following API guideline from API-WG)
– v2.3 : new parameter to “show server” API for EC2
• NUMA (non-uniform memory access) サポートが完了
– NUMA 対応スケジューリング
– 仮想CPUのPinning対応、メモリのコアへの対応付け
– Large page 対応
10. Nova v2.1 API
$ nova version-list
+------+-----------+----------------------+-------------+---------+
| Id | Status | Updated | Min Version | Version |
+------+-----------+----------------------+-------------+---------+
| v2.0 | SUPPORTED | 2011-01-21T11:33:21Z | | |
| v2.1 | CURRENT | 2013-07-23T11:33:21Z | 2.1 | 2.3 |
+------+-----------+----------------------+-------------+---------+
$ nova --debug --service-type computev21 list
[...]
DEBUG (connectionpool:383) "GET
/v2.1/74bf6cda8e3946f6869ac76684e09b2c/servers/detail HTTP/1.1" 200 15
DEBUG (session:224) RESP: [200] content-length: 15 x-compute-request-id: req-
30495e36-5c14-4028-b119-e9522b3cdbee vary: X-OpenStack-Nova-API-Version connection:
keep-alive x-openstack-nova-api-version: 2.1 date: Sun, 12 Jul 2015 16:22:33 GMT
content-type: application/json
+----+------+--------+------------+-------------+----------+
| ID | Name | Status | Task State | Power State | Networks |
+----+------+--------+------------+-------------+----------+
+----+------+--------+------------+-------------+----------+
12. Neutron
• Subnet allocation
• VLAN support in DVR
• ML2 plugin hierarchical port binding
• Restructure of L2 agent / L3 agent
• Port Security for OVS ML2 mechanism driver
• MTU advertisement
• Transparent VLAN support for VM
(note that not supported in OVS driver)
13. ML2 hierarchical port binding
SW SW SW SW
VXLAN
VM VM VM VM
OVS OVS
VM VM
OVS
VM VM
OVS
VLAN VLAN VLAN VLAN
Assign VXLAN
VNI when creating
a network
Different VLAN-ID can be
used per compute node
OVS
mech
driver
HW-SW
mech driver
• VXLAN encapsulation requires
CPU power.
• Hierarchical port binding
allows operators to combine
VXLAN and VLAN.
• Most NICs has VLAN offloading
feature.
• Can leverage VXLAN encap of
hardware switches
14. Neutron
• IPv6 improvement
– IPv6 router: to allow tenants to use global IPv6 addresses
– Multiple prefixes for IPv6 (multiple IPv6 addresses for guest
interface)
• process monitoring for subprocess (such as dnsmasq,
metadata-proxy)
• Rootwrap daemon to improve performance of root-priv
commands
• LBaaS v2 API
• http://specs.openstack.org/openstack/neutron-specs/index.html#kilo-approved-specs
15. Cinder
• Rolling Upgrade に向けた対応
– Versioned object 対応により、データ構造が違うモジュー
ルが混在可能に。
– DB schema アップグレード時に、サービス再起動が不要
に。
• Incremental Backup (差分バックアップ)
• Encrypted Backup
• Consistency Group の改良
– Consistency Group = そのグループ内の複数のボリューム
のスナップショットで、データ一貫性が保証
– 追加、削除のサポート。
– 既存スナップショットからのグループ作成。
地道な変更が多いが使い勝手順調に向上
23. Nova
• 重要な開発項目は Liberty Priorities の形でま
とめられている。
– http://specs.openstack.org/openstack/nova-
specs/priorities/liberty-priorities.html
• Cells v2
• API v2.1
• Scheduler
• Upgrades
• Developer Document Update
24. Neutron
• API versioning (extension vs micro-versioning)
– API framework refactoring
• Nova-network migration
– Linux Bridge の本格サポートの復活
– “Get me a network” (VM 起動時に Neutron Network
を自動作成する)
• QoS sub team
• Availability zone support
• VLAN aware VMs
• RBAC for network
26. Ironic Neutron Integration
• Ironic (Baremetal) 使用時の Tenant Network Isolation を実
現する。
• IronicからNeutronへの物理情報を渡すAPIの定義
– Ironic Port Table の拡張、物理情報の収集方法など
• IronicのProvisioning NetworkからTenant Networkへの切替
Bare
Metal
Server
Bare
Metal
Server
Bare
Metal
Server VM VM
vSwitch
Physical Switch Physical Switch
Neutron NW1
Neutron NW2
Switch ID
Port ID
(more info)
Tenant Network
Provisioning
Network
Cleaning
Network
システム共通
テナント単位
BM
Server
BM
Server
BM
Server
テナント利用中
利用終了後利用開始時