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