OCPJ Proof of Concept WG
Engineering Workshop
Zabbixを用いた
OCPベアメタル監視環境の自動構築
2015年1月28日
TIS株式会社 松井 暢之
2
松井 暢之(まつい のぶゆき)
TIS株式会社
コーポレート本部
戦略技術センター
~2003
2003~2008
2009
2010~2012
2013~
現場PJでアーキテクト兼モデラー兼プログラマ兼…を歴任
基盤技術センター(現戦略技術センター)で不芳PJの火消しに奔走
全社生産性向上の企画策定に従事
オープンでエッジな技術を活用した事業企画に従事
Cloud Orchestrator “CloudConductor®” の企画開発とOSS化開始
http://cloudconductor.org
nbyk.matsui
nmatsui
nbyk.matsui
@n_matsui
本日の内容
1. 活動の背景と目的
2. ベアメタル監視環境の自動構築検証
3
活動の背景
 プライベートクラウド市場の拡大†
 2013年度のクラウド市場は6,257億円であり、2018年度には
2.9倍の1兆8,000億円まで拡大
 そのうちプライベートクラウドの比率は2013年度で70.1%を占
めるが、2018年度には73.0%と緩やかにシェアを高める
4
† MM総研, "国内クラウドサービス需要動向(2014年版)“,
2014-11, http://www.m2ri.jp/newsreleases/main.php?id=010120141104500
活動の背景
 OpenStackに代表されるOSSのクラウドOSの隆盛†
 実際に利用しているプライベートクラウド環境はVMWare
vSphere/vCloudが最も多く31%だが、検証中・計画中もあわせ
るとOpenStackはVMWare vSphere/vCloudに比肩する
 OpenStackの利用企業は2013年と比べてほぼ倍増
5
† RightScale, "Cloud Computing Trends: 2014 State of the Cloud Survey“,
2014-04, http://assets.rightscale.com/uploads/pdfs/RightScale-2014-State-of-the-Cloud-Report.pdf
活動の背景
 電気料金の高騰†
 震災前に比べ、一般家庭部門(電灯料金)の平均単価は約2割上昇
 工場、オフィス等の産業用(電力料金)の平均単価は約3割上昇
6
電気料金の推移
† 経済産業省 資源エネルギー庁, “平成25年度エネルギーに関する年次報告(エネルギー白書2014)",
2014-06, http://www.enecho.meti.go.jp/about/whitepaper/2014pdf/
活動の背景
 電力効率に優れたオープンなデータセンター・ハードウェア
 一般的なDCの電力効率(PUE)は1.5~2.0と言われている†
(日本でもPUE1.1台の高効率なDCが作られてきているが、
まだ主流にはなっていない)
 FacebookのDCはPUE1.0台を達成しており‡、その高効率な
DC・H/Wの仕様をOpen Compute Projectというコミュニティ
で公開している
7
† Datacenter Knowledge, "Survey: Industry Average Data Center PUE Stays Nearly Flat Over Four Years “, 2014-06,
http://www.datacenterknowledge.com/archives/2014/06/02/survey-industry-average-data-center-pue-stays-nearly-flat-four-years/
‡ Facebook, "Prineville - Facebook Power“, 2015-01,
https://www.fbpuewue.com/prineville
活動の目的
 目的
 クラウドを構成する各種リソースの統合監視環境の構築を可能な
限りスケールするように自動化・自律化する技術を確立する
 ソフトウェアからハードウェアまで、特定クラウド・特定ベン
ダーに依存しない全てオープンなプロダクトで構成する
 ポイント
 監視対象のベアメタルをネットワークに接続し電源をONにすれば、
H/WとOSの監視を自動的に開始する
 監視負荷を分散させるために、適切な統合監視サーバへ監視対象
ノードを自律的に振り分ける
 今回はベアメタルサーバの監視に着目
8
 クラウドを構成する各種リソースの監視環境を自動構築
最終的なイメージ
99
Proxy Node Networking Node
Compute Node
VM VM VM
Controller Node
Object Storage
Node
Block Storage
Node
Monitoring
Server
Monitoring
Server
スケールする監視環境
自身の自動構築
監視ノードの
自動振り分け
起動時にベアメタルの
H/Wを自動登録
BareMetal Node
各ベアメタルを
自動で監視
構築されたVMを
自動で監視
物理・仮想NWを
自動で監視
物理・仮想ストレージを
自動で監視
本日の内容
1. 活動の背景と目的
2. OCPベアメタル監視環境の自動構築検証
10
オープンなハードウェア
 Open Compute Project準拠のベアメタル:Quanta F03A, F03C
 Quanta社製のOCP準拠サーバ
 F03Cは1筐体に3ノード、F03Aは1筐体に4ノード格納されるが、
今回はF03Cを1ノード、F03Aを1ノード用いる
11
F03C F03A
オープンなソフトウェア
 ベアメタルプロビジョニング:Cobbler
 http://www.cobblerd.org/
 ベアメタルへOSやミドルウェアを遠隔から自動プロビジョニング
するためのPython製のツール群
 PXEブート時にベアメタルにインストールするOSイメージの管理
 kickstartのテンプレート管理
 yumやaptのリポジトリミラー
 等
12
オープンなソフトウェア
 OSS統合監視ツール:Zabbix
 http://www.zabbix.com/
 マルチプラットフォームに対応した、OSSの統合監視ツール
 「監視」→「監視結果の視覚化」→「監視結果に応じたアクション
(メール通知・コマンド実行)」が統合的に管理可能
13
検証①
 OCPベアメタルへのZabbix Server & Zabbix Proxy自動構築
 ESXi上のCobblerを用いて、OCPベアメタルへZabbix Serverや
Zabbix Proxyを自動構築
14
LOM
F03A
LOM
F03C
Cobbler
VMWare vSphere ESXi
10.10.10.0/24
DHCPd
TFTPd
HTTPd
PXEBoot
OS Image
Repository
Mirror
kickstart
template
・Zabbix Package
・Zabbix Install Script
LOM LOM
Cobbler
VMWare vSphere ESXi
IPMI:.12IPMI:.15
DHCPd
TFTPd
HTTPd
PXEBoot
OS Image
Repository
Mirror
kickstart
template
OS:.XX OS:.YY
PXEBootされたOSのIPアドレスは
DHCPで動的に払い出し
Zabbix
Server
Zabbix
Proxy
ベアメタル上にCentOS6.6を自動インストールし、
Zabbix Server(Zabbix Proxy)をプロビジョニング
IPMI:.12IPMI:.15
・CentOS6.6イメージ
構築前 構築後
検証②
 Zabbixを用いたベアメタル自動監視
 ZabbixへベアメタルのH/W監視を自動登録
 プロビジョニングされたOSの監視を、H/Wと対応付けて自動登録
 設定したルールに従い、適切なZabbix Proxyを自動選択
Cobbler
VMWare vSphere ESXi
PXEBoot
OS Image
Repository
Mirror
kickstart
template
Zabbix
Server
Zabbix
Proxy
・HW登録用ミニOSイメージ
・実OSイメージ
LOM
Cobbler
VMWare vSphere ESXi
PXEBoot
OS Image
Repository
Mirror
kickstart
template
Zabbix
Server
LOM
Zabbix
Proxy
Cobbler
VMWare vSphere ESXi
PXEBoot
OS Image
Repository
Mirror
kickstart
template
Zabbix
Server
Zabbix
Proxy
ミニOS ミニOS
検証用のベアメタルが足りなかったため、
Zabbix ServerとProxyは仮想環境に構築
登録された監視対象ノードをルールに
従って適切なProxyへ振り分け
LOM LOM
F03A F03C
LOM LOM
実OS 実OS
監視登録前 Pahse1(NWと電源へ接続)
プロビジョニング時に、IPMIと
対応付けてOSやM/Wを監視登録
HW登録用のミニOSを自動起動し
IPMI情報をZabbixへ登録
Pahse2(実OSプロビジョニング)
実OSが起動していなくても
IPMI経由でH/W監視は実行される
15
適切なZabbix Proxyを
自動選択
検証②:Zabbixを用いたベアメタル自動監視
 Phase1:H/W接続時に対象ノードのIPMI情報をZabbixへ自動登録
16
ベアメタル Cobbler Zabbix Server Zabbix Proxy
ミニOSでPXEブート
ミニOS起動
Zabbix Agent導入
Zabbix Agentが
自動登録情報を送付
ベアメタルを監視対象
ホストとして追加
IPMI IPアドレスの
取得処理起動
ミニOSに同梱された
dcmitoolでIPMI情報取得
IPMIインタフェースの登録
Agent自動登録機能
HostMetadata内に”OCP STARTER”である事のフラグを
埋め込む
SSH Agent機能
適切なProxyを割り当て
IPMI監視情報の送付先
IPアドレス更新
IPMI監視テンプレート割当
トラッパーアクション追加
Agentインタフェース削除
Zabbix Agentでリモートコマンド実行
IPMI監視開始
Agent自動登録時のアクション
により一連の処理を自動化
IPMI経由でH/W情報
を送信
ベアメタル自動監視の処理フロー
 Phase1:H/W接続時に対象ノードのIPMI情報をZabbixへ自動登録
 デモ動画
17
検証②:Zabbixを用いたベアメタル自動監視
 Phase2:プロビジョニングする実OSの監視設定をZabbixへ自動登録
18
ベアメタル Cobbler Zabbix Server Zabbix Proxy
実OSでPXEブート
実OS起動
Zabbix Agent導入
Zabbix Agentが
実OSの情報を送付
zabbix_trapperで
ホスト名とIPを受信
Agentインタフェース登録
監視テンプレート割当
ホスト名から登録済み
H/W情報と対応付け
OS・M/W監視開始
zabbix_sender
自身のホスト名と実OSのIPアドレスをZabbix Serverへ送信
trapper受信時のアクション
により一連の処理を自動化
Zabbix Agentが
OS・M/W情報を送信
割り当てられた
Proxyを確認
Zabbix API呼び出し
OS監視情報の送付先
IPアドレス更新
ベアメタル自動監視の処理フロー
 Phase2:プロビジョニングされたOSの監視情報をZabbixへ自動登録
 デモ動画
19
適切なZabbix Proxyの自動割当
 Zabbix Proxyの割当ルールは切り出されており、柔軟に変更可能
 今回はIPMIのIPアドレスレンジに基づいて静的に割り当てる
ルールを実装した
 各Proxyの負荷状況などを元に、動的に最適なProxyを選択して
割り当てるルールも実装可能
20
適切なZabbix Proxyの自動割当
21
さいごに
 ソースコードの公開(近日公開予定)
 Baremetal AutoDiscovery Tool for Zabbix
https://github.com/tech-sketch/baremetal_ad
 Python 2.6系(CentOS6系のバンドル版)
 Apache License Version2
 謝辞
 本検証を進めるにあたり、Cobblerによる監視環境自動構築の
実現方法について、多くの示唆を頂いたOpen Compute Project
Japan Proof of Concept WG の方々に感謝いたします。
 本検証を進めるにあたり、検証環境をご提供いただいたCTC様に
感謝いたします。
 他関係各位、この場を借りてお礼を申し上げます。
22
[OCPJ PoCWG Engineering Workshop] Zabbixを用いたOCPベアメタル監視環境の自動構築

[OCPJ PoCWG Engineering Workshop] Zabbixを用いたOCPベアメタル監視環境の自動構築