OpenStack運用実践によるエンタープライズ適用に向けた課題と今後

OpenStack運用実践による
エンタープライズ適用に向けた課題と
今後について
~ベアメタルサービスの現状と
Design Summitでの討議状況~
2015年7月13日
富士通株式会社
椎名宏徳
0
Copyright 2015 FUJITSU LIMITED
本日のアジェンダ
Ironicの概要説明
ベアメタルサービスの現状と
Design Summitでの討議状況
1
Copyright 2015 FUJITSU LIMITED
Ironicの概要
2
Copyright 2015 FUJITSU LIMITED
ベアメタルサービス
 エンタープライズ適用に向けて必要な機能
 仮想化に適さないワークロードへの対応
• I/O負荷が高く、性能要求の厳しいシステム(データベースなど)
→ベアメタルが必要
 仮想マシンとベアメタルの共通管理
 OpenStackのベアメタルサービス:Ironic
 OpenStack Kiloで正式にリリース
 Kiloでの修正規模
• 機能追加数:24件
• バグ修正数:170件
• ソース追加:約27,000行
3
Copyright 2015 FUJITSU LIMITED
OpenStack Ironic
 ベアメタルサービスを提供するコンポーネント
 利用者は、VM配備と共通の操作でベアメタル配備可能
Request VM
Request baremetal
Nova
Nova
Hypervisor
Ironic
deploy
VM
VM
deploy
VM
Baremetal
4
Baremetal
Copyright 2015 FUJITSU LIMITED
Ironicの構成
Nova
ベアメタル配備の要求
Ironic
Ironic API
ネットワーク制御
Ironic Conductor
Neutron
Driver
Glance
ベアメタルの制御
イメージ取得
Baremetal
Baremetal
Baremetal
5
Copyright 2015 FUJITSU LIMITED
ドライバ
 Ironic Conductorに、ベアメタルを制御するインタフェースを提供
 標準のドライバはIPMIを利用
 ハードベンダも固有のドライバを開発
(性能向上や追加機能のため)
 iRMC driver (富士通)
 iLO driver (HP)
 DRAC driver (Dell)
 etc...
 ベアメタル配備の方式(ドライバで実装)
 PXEブート
 Ironic Python Agent
 Virtual media機能による配備
6
Copyright 2015 FUJITSU LIMITED
システムの全体像
コントローラノード
Nova
ノード = 物理サーバ
Neutron
Glance
管理ネットワーク
ネットワークノード
Neutron Agents
DHCP
L3
コンピュートノード
Nova
利用者の通信用
Ironic
データネットワーク
外部
ネットワーク
ベアメタル
ベアメタル
BMC
BMC
OOBネットワーク
BMC: Baseboard Management Controller
7
BMCでの電源制御
Copyright 2015 FUJITSU LIMITED
Ironicのセットアップ
 ベアメタルをIronicに登録
 使用するドライバ、BMCの認証情報
 ベアメタルのスペック情報 (CPU数、メモリ量など)
 MACアドレス
 ベアメタル用のフレーバを作成
(利用者はフレーバを選択して、ベアメタルの配備を要求)
 ベアメタル用のイメージを作成
 デプロイ用イメージ (配備時のみ利用)
• bm-deploy-kernel, bm-deploy-ramdisk
 ユーザ用イメージ
• user-image, user-image-vmlinuz, user-image-initrd
8
Copyright 2015 FUJITSU LIMITED
ベアメタル配備の流れ
1. Ironicがベアメタルの電源を入れる
2. ベアメタルがデプロイ用イメージを取得してブート
3. デプロイ用イメージにより、iSCSIをセットアップ
4. Ironicがユーザ用イメージをベアメタルにコピー
5. Ironicがベアメタルを再起動
6. ベアメタルがユーザ用イメージで起動
user OS image
deployment image
Ironic
tftp
Compute node
dhcp
IP address
Network node
iSCSI target
Baremetal
Power management
9
Copyright 2015 FUJITSU LIMITED
ベアメタルサービスの現状と
Design Summitでの討議状況
10
Copyright 2015 FUJITSU LIMITED
Design Summitについて
 普段からIRCミーティングで貢献を積んでいる開発者が
次のリリースの大方針、デザインなどを決定する場
 10以上のセッションが並列開催
 1セッションから5名~50名の参加者
 座談会方式で、自由に発言
 最前列の開発者が中心になって議論
 人気セッションでは、PTLやコア開発者を捕まえられない
 セッションでのアジェンダ登録は、
事前にIRCミーティングで議論して、EtherPadに登録
11
Copyright 2015 FUJITSU LIMITED
Ironic-Neutron integration sessionの様子
12
Copyright 2015 FUJITSU LIMITED
ベアメタルの要件とIronicの対応状況
要件
可否 課題
仮想マシンと同一APIでの配備
○
OSプロビジョニング
○
SAN Boot構成
×
サーバ故障時の復旧
×
ボリューム割り当て
×
マルチテナント対応
×
Cinderとの連携
Neutronとの連携
仮想マシンとのネットワーク接続 ×
今回の発表の範囲
13
Copyright 2015 FUJITSU LIMITED
Design Summitでの討議結果
 Design Summitの目玉テーマの一つ
 マルチテナント対応
 仮想マシンとのネットワーク接続
→新しいクロスプロジェクト“Ironic-Neutron integration”の立ち上げ
 実装方法の大枠について合意
14
Copyright 2015 FUJITSU LIMITED
実現する機能
 マルチテナント対応のためには、ネットワークの分離が必要
 ベアメタルの場合、物理スイッチの設定が必要
 物理スイッチ設定の自動化を行う
マルチ
テナント
スイッチ設定の
自動化
VLAN100
VLAN200
スイッチ
Tenant1
Baremetal
Tenant2
Baremetal
Baremetal
15
Baremetal
Copyright 2015 FUJITSU LIMITED
解決方法
 2種類のVLANを利用
 配備用VLAN
• 管理者が作成するNeutronネットワーク
• Ironicを接続するVLAN
• ベアメタルは配備時のみこのVLANに接続
 テナント用VLAN
• テナント利用者が作成するNeutronネットワーク
• ベアメタルは配備後にこのVLANに接続
 配備の前後で2種類のVLANを切り替える
16
Copyright 2015 FUJITSU LIMITED
物理スイッチの制御方法
 Neutronのドライバで物理スイッチを制御
 スイッチポートのVLAN設定を実施
 NeutronのML2メカニズムドライバを実装する方針
Ironic
Neutron
VLAN設定をリクエスト
Ironic Conductor
Neutron Server
VLANを設定
Neutron plugin
(ML2 mechanism driver)
17
物理スイッチ
Copyright 2015 FUJITSU LIMITED
検討の過程(案1)
 単純にVLANでネットワークを分割
 配備するときに、どのベアメタルもIronicから
OSイメージの取得が必要
VLAN100
スイッチ
VLAN200
Ironic
Baremetal
Ironicへの
接続が必要
Baremetal
Baremetal
18
Tenant1
Tenant2
Copyright 2015 FUJITSU LIMITED
検討の過程(案2)
 テナントごとにIronicを配置
VLAN100
VLAN200
Ironic
Tenant2
Baremetal
Ironic
Baremetal
Baremetal
19
スイッチ
Tenant1
Baremetal
Copyright 2015 FUJITSU LIMITED
検討の過程(案2)
 テナントごとにIronic用のノードを用意するのは非現実的
Ironic
Baremetal
Baremetal
Ironic
Baremetal
Baremetal
Ironic
Baremetal
Baremetal
・
・
・
20
Copyright 2015 FUJITSU LIMITED
解決方式の概要 (1/4)
 ベアメタルを配備するときは、配備用VLANを利用
配備用VLAN
Switch
Untagged
VLAN 100
Untagged
VLAN 100
Untagged
VLAN 200
Tenant 1
Ironic
OSイメージの
コピー
Baremetal
(配備済み)
Baremetal
(配備中)
VLAN ID
100:Deployment
200:Tenant1
21
Copyright 2015 FUJITSU LIMITED
解決方式の概要 (2/4)
 配備完了後に、IronicがベアメタルのVLAN設定を変更
(配備用VLANからテナント用VLANへ)
テナント用VLAN
VLAN IDを変更
Switch
Untagged
VLAN 100
Untagged
VLAN 200
Untagged
VLAN 200
Neutron
ドライバ
Ironic
Tenant 1
Baremetal
(配備済み)
Baremetal
(配備済み)
VLAN ID
100:Deployment
200:Tenant1
22
Copyright 2015 FUJITSU LIMITED
解決方式の概要 (3/4)
 別のテナントも配備用VLANを使ってベアメタルを配備可能
Switch
Untagged
VLAN 100
Untagged
VLAN 100
Untagged
VLAN 200
Untagged
VLAN 200
Tenant 1
Baremetal
(配備済み)
Baremetal
(配備済み)
Ironic
OSイメージの
コピー
VLAN ID
Tenant 2
100:Deployment
200:Tenant1
Baremetal
(配備中)
300:Tenant2
23
Copyright 2015 FUJITSU LIMITED
解決方式の概要 (4/4)
 VLANを切り替えることで、
Ironicが全テナントのベアメタルを配備可能
Switch
Untagged
VLAN 100
Untagged
VLAN 300
Untagged
VLAN 200
Untagged
VLAN 300
Untagged
VLAN 200
Tenant 1
Baremetal
(配備済み)
Ironic
テナント内で
通信可能
Baremetal
(配備済み)
VLAN ID
Tenant 2
100:Deployment
200:Tenant1
Baremetal
(配備済み)
テナント内で
通信可能
Baremetal
(配備済み)
マルチ
テナント
300:Tenant2
24
Copyright 2015 FUJITSU LIMITED
配備の詳細 (準備)
 管理者のオペレーション
1. Neutronネットワークを作成(配備用VLAN)
→NeutronがDHCPサーバを作成
2. untagged VLANをIronic用コンピュートノードが接続する
スイッチポートに設定
Data Network
Switch
2
untagged VLAN
(deployment)
NIC
trunk
NIC
NIC
br-eth
Ironic
br-int
tftp
dhcp
(deploy)
Compute node
1
Network node
Baremetal
BMC
OOB Network
25
Copyright 2015 FUJITSU LIMITED
配備の詳細 (1/6)
1. テナント利用者がネットワークを作成(テナント用VLAN)
→NeutronがDHCPサーバを作成
2. テナント利用者がベアメタルの配備をリクエスト
Data Network
Switch
untagged VLAN
(deployment)
NIC
trunk
NIC
NIC
br-eth
Ironic
br-int
tftp
dhcp
(deploy)
Compute node
dhcp
(tenant)
Network node
1
Baremetal
BMC
OOB Network
26
Copyright 2015 FUJITSU LIMITED
配備の詳細 (2/6)
3. Ironicが配備用VLANのVLAN IDをベアメタルが接続しているス
イッチポートに設定
4. Ironicがベアメタルの電源をON
Data Network
Switch
Neutron
Driver
untagged VLAN
(deployment)
NIC
trunk
3
untagged VLAN
(deployment)
NIC
NIC
br-eth
Ironic
br-int
tftp
dhcp
(deploy)
Compute node
OOB Network
dhcp
(tenant)
Baremetal
BMC
Network node
Power on
4
27
Copyright 2015 FUJITSU LIMITED
配備の詳細 (3/6)
5. ベアメタルが配備用VLANのDHCPサーバからIPアドレスを取得
6. ベアメタルがデプロイ用イメージをtftpサーバから取得
Data Network
Switch
untagged VLAN
(deployment)
NIC
dhcp
(deploy)
NIC
br-eth
br-int
tftp
Compute node
untagged VLAN
(deployment)
6
NIC
deployment
image
Ironic
trunk
dhcp
(tenant)
Network node
5
Baremetal
BMC
OOB Network
28
Copyright 2015 FUJITSU LIMITED
配備の詳細 (4/6)
7. ベアメタルが、デプロイ用イメージでブート後、iSCSIターゲットを
用意し、Ironicに通知
8. 通知を受けたIronicがユーザ用OSイメージをベアメタルにコピー
Data Network
Notification
Switch
untagged VLAN
(deployment)
NIC
untagged VLAN
(deployment)
7
NIC
8
Ironic
trunk
NIC
br-eth
br-int
tftp
dhcp
(deploy)
Compute node
dhcp
(tenant)
Network node
iSCSI target
Baremetal
BMC
OOB Network
29
Copyright 2015 FUJITSU LIMITED
配備の詳細 (5/6)
9. Ironicがテナント用VLANのIDを、ベアメタルが接続するスイッチ
ポートに設定
10. Ironicがベアメタルを再起動
9
Data Network
Switch
Neutron
Driver
untagged VLAN
(deployment)
NIC
trunk
untagged VLAN
(tenant)
NIC
NIC
br-eth
Ironic
br-int
tftp
dhcp
(deploy)
Compute node
OOB Network
dhcp
(tenant)
Network node
Reboot
Baremetal
BMC
10
30
Copyright 2015 FUJITSU LIMITED
配備の詳細 (6/6)
11. 再起動後、ベアメタルが、テナント用VLANのDHCPサーバからIP
アドレスを取得
12. テナント利用者がベアメタルを利用可能
Data Network
Switch
untagged VLAN
(deployment)
NIC
trunk
untagged VLAN
(tenant)
NIC
NIC
br-eth
Ironic
br-int
tftp
dhcp
(deploy)
Compute node
dhcp
(tenant)
Network node
11
Baremetal
BMC
OOB Network
31
Copyright 2015 FUJITSU LIMITED
Libertyでの取り組み
 専用IRCで実装の詳細を討議し、Libertyでの実現に貢献
 Ironic-Neutron IRCミーティングで議論
毎週月曜16:00(UTC) / 25:00(JST)
 ドライバ実装のよい前例となることを目指して、
ベンダ固有ドライバを開発中
 NeutronのML2メカニズムドライバを開発中
• neutronにRFE(Request For Enhancement)を発行
https://bugs.launchpad.net/neutron/+bug/1464190
Ironic
実装詳細の議論
Neutron
VLAN設定をリクエスト
Ironic Conductor
ドライバの実装
Neutron Server
VLANを設定
Neutron plugin
(ML2 mechanism driver)
32
物理スイッチ
Copyright 2015 FUJITSU LIMITED
Mシリーズに向けて
 Ironicの機能強化に向けて
Design Summitでの課題の提案、議論に貢献
要件
可否
仮想マシンと同一APIでの配備
○
OSプロビジョニング
○
SAN Boot構成
×
サーバ故障時の復旧
×
ボリューム割り当て
×
マルチテナント対応
×
仮想マシンとのネットワーク接続
×
33
課題
Cinderとの連携
Neutronとの連携
Copyright 2015 FUJITSU LIMITED
Copyright 2015 FUJITSU LIMITED