サイトオペレーション本部の藤見です。
今回はIPMIを利用した大規模なサーバー管理の仕組みをご紹介したいと思います。
IPMIについて
IPMI(Intelligent Platform Management Interface)はサーバーベンダやOSに依存する事なくエージェントレスでハードウエアの各種センサ情報の取得や遠隔操作を行うためのインターフェースです。
一般的にIPMIとして動作するチップはマザーボード上に搭載されておりBMCやサーバーベンダ固有のiLO、iDRAC、iRMC等と呼ばれます。
それぞれにチップはサーバーベンダ独自の機能や管理UI等が存在する等の違いはありますがIPMIコマンド(ipmitoolやfreeipmi)を使用して操作できる点は共通しています。
IPMIの代表的な使い方をご紹介します。
電源OFF/ON
リモートからIPMIユーティリティを利用する事で「電源OFF」「電源ON」を実施する事ができます。
OSがハングアップしてログインできずコマンド実行ができないケース等に有効です。
SOL(Serial Over Lan)
SOL(Serial Over Lan)はBIOS、出力設定済みのOSのコンソールリダイレクションデータをLAN経由で送受信する事によりリモートサーバーからコンソール操作を行う機能です。
ネットワーク機器に障害が発生してsshでのログインができない場合等にSOLを利用します。
電力・温度監視
電力値と温度をIPMI経由で収集し蓄積する事でサーバーの消費電力の傾向やDC内における温度変化の傾向を把握する事ができます。
大規模サーバーを管理する仕組み
ここからは、ヤフーの環境ではどのようにIPMIを利用しているかご紹介します。
ヤフーのサーバーインフラ環境は「マルチベンダ」「大規模」が特徴であるといえます。
「マルチベンダ」に対応するためにツールの実装で各ベンダの機能の違いを吸収するようにしています。
また「大規模」なサーバー環境ではサーバーとIPMI設定の管理が煩雑になるためDHCPを利用して自動化しています。
上記の点をふまえてどのようなシステムになっているかご紹介します。
ヤフーのシステム構成
IPアサインとDHCP
IPMIでアクセスするためのIPアドレスは事前にIPMIのmac addressと割り当てるIPを定義しておきDHCPサーバー経由で割り当てます。
IPを割り当てる方式は「Static」と「DHCP」の2通りがあります。
DHCPでIPを割り当てるメリットとしては下記があります。
- 初期構築時にBIOS画面からIPの設定をする必要がない
- HW不良が発生した際にIPを再設定する必要がない
仮にStaticにIPを割り当てる運用方法だと「サーバーの前まで移動してキーボードとモニターを配線してBIOS画面を開いて設定する」という物理作業をサーバー台数分実施する必要があります。
これが1台~数台程度であれば気になりませんが数百台・数千台のボリュームになってくると人件費という点から考えて相当なコストになります。
ヤフーでは納品時にIPMIのmac address情報をあらかじめデータベース化しておきDHCPサーバーの設定に自動的に反映できるようにしています。
IPMIの認証とサーバーベンダごとの違い
IPMI経由でのリモートアクセスにはユーザー・パスワードの組み合わせで認証を行います。
このユーザー・パスワードはサーバーベンダごとにデフォルト値が設定されていてそのまま利用するのはセキュリティ観点から好ましくないため一度書き換えます。
書き換える方法は下記のように何パターンかあります。
- リモートアクセスで認証設定を更新する
- OS上からIPMIユーティリティで書き換える
- BIOS画面(IPMI設定画面)から手動で変更する
ヤフーでは設置されたサーバーをクローラが自動的に検知し、1の方法で認証設定が投入されるようになっています。
一部の機種やチップの組み合わせによってはうまく設定がされない場合は原因を特定して対応できるように改善しています。
定常的な監視
IPのアサインはシステム化していますが不具合や筺体の不良によっては意図したとおりに動作しないケースがあります。
そのためデータベース化してあるデータを元に定常的にIPMIの接続性を確認する仕組みがあります。
ヤフーの環境における注意点
ここまではIPMIの一般的な利用方法について説明してきました。
ヤフーならではの「マルチベンダ」「大規模」な環境において気づいた点をいくつかご紹介します。
BIOSの初期設定を統一する
IPMIを利用するにはBIOS側の「Serial Console Redirection」や「I/O Address」等を設定する必要があります。
この時に関連する項目の初期設定(=出荷時の設定)が何であるか確認しておく事が重要です。
自社に納品された直後にBIOS設定変更が必要だと気づくと一台一台BIOS設定の変更が必要になり大きな作業コストになります。
サーバーベンダが固定されているのであればベンダのデフォルト設定に自社の環境を合わせるようにするとよいでしょう。
IPMI用ポート「Dedicated」「Shared」の選択について
IPMI用のポート設定にはDedicated(専用ポート)とShared(NICと共用)の2種類があります。
NICとIPMI用ポートを共用にすると配線先のスイッチ障害時、NIC障害時どちらの場合でもIPMI経由での疎通がとれなくなるため
基本的にはサービス用NWとIPMI用NWを分離し、ポート設定はDedicatedにする事をお勧めします。
IPMI用の配線タイミングに注意する
一部の機種では「Dedicated」を選択している場合でも通電時に物理的に配線されている状態でないと、
自動的に「Dedicated」=>「Shared」に切り替わってしまう仕様のチップも存在するため配線のタイミングは注意が必要です。
IPMIが応答しない場合の対応方法
IPMIが予期せず応答不能になる場合があります。
下記のようにIPMIチップの再起動やFirmwareの更新をする事で復旧できる場合があります。
- 外部からリモートCLIでIPMIチップのリスタートを試す
- OSにログインできる場合はベンダ提供ツール(CLI)を利用してリスタートを試す
- IPMIに対する通電を遮断する(例:電源ケーブルを外す)
- Firmwareのバージョンが適切でない可能性がある場合はIPMIチップに対してFirmwareアップデートを実施する
上記を実施しても復旧しない場合や応答が不安定な場合は物理不良の疑いがあるので交換を検討した方がよいでしょう。
まとめ
IPMIは標準化されたインターフェースです。
電源OFF/ON実施をIPMI化する事で人手によるオペレーションを削減でき人件費の削減をする事ができます。また人手作業による対象間違いや意図しない配線断を防ぐこともできます。
しかし実際にIPMIを使ってサーバー管理をIPMI化してみようとするとヤフーのようなマルチベンダな環境では課題が多くあります。
サーバーベンダごとの機能・仕様を理解しそれらを吸収できる仕組みを開発する事が大規模なサーバー管理をIPMI化するために必要になります。
こちらの記事のご感想を聞かせください。
- 学びがある
- わかりやすい
- 新しい視点
ご感想ありがとうございました