Supermicro(スーパーマイクロ)BMC・IPMIと呼ばれる管理チップが搭載されたシステムでは、SELと呼ばれるログ機能が備わっています。この機能を利用することで、OSから独立してハードウェアトラブルの原因を特定することができる場合がございます。ここではSELの確認方法をご紹介し、原因特定がお客様の現場レベルで実施できるようになることを目的としています。BMC/IPMIとは?Xeonを搭載するサーバー・ワークステーションなど、コンシューマー向けではない信頼性を求められる製品にはBMC、あるいはIPMIと呼ばれる管理・監視用のマイコンが搭載されています。このマイコンがシステムを自分で監視してくれるため、OS側に何のソフトも必要なくBIOSの画面や電源断の状態も含めACケーブルが接続されていれば常に監視できるという、エージェントレスな仕組みであることが大きなメリットです。従来型の監視ツール(エージェントタイプ)自作PC向けマザーボードも含め、エージェントタイプの監視用ユーティリティは多く存在します。これはOSを入れたあとで監視用ユーティリティをインストールするタイプです。したソフトをエージェントと呼称します。エージェントが存在するからエージェントタイプという訳です。SuperDoctor5などで、OS起動後、OSにインストール・常駐させるアプリケーションです。したエージェントタイプの監視ツールは、OS依存で動作しているユーティリティの一つのなのでOSが動作しない危機的な状況では全く役に立たないという重大な欠点があります。エージェントレスの監視が出来るBMCそこで、パソコンとしてのシステムとは全く独立したマイコンを別立てで設け、このマイコンに電源のON/OFF制御やセンサーの値の取得、異常があった時のログの記録、などの機能を持たせて常時監視できるような仕組みができました。OS側に監視のためのソフト、つまりエージェントが存在しないのでエージェントレスという訳です。このエージェントレスの管理・監視方法がBMC/IPMIです。Interface)はこうした仕組み自体を指します。実態としてはBMCがワンチップで全ての機能を賄うため、両者は一体の用語として区別なく用いられることが多いようです。BMC/IPMIの利点BNC/IPMIの利点は、独立性が高く、パフォーマンスも劣化しないことです。ここで言うパフォーマンスには2つの意味があります。1つ目は、CPUパワーを全く消費しないことです。エージェントソフトウェアは、動作させるためにCPUやメモリーを必要とします。どんなに軽くてもソフトウェアですから、これは仕方ありませんが、BMCならBMCチップのマイコンが処理してくれるので、リソースは消費されません。2つ目は、ネットワーク帯域です。OOB(Out-of-Band)と言いますが、例えば1Gb/sのNICが2つ実装されているサーバーだとして、そのサーバーの遠隔からの管理・監視をしようとすると、そのためのデータ量(パケット)が発生します。WindowsなどはGUIしかありませんから、リモート制御のためには画面を転送する必要があります。画面をまるまる転送するのはネットワーク帯域を非常に多く必要とする作業です(100Mbps程度使うケースが多いようです)。本来1Gb/sの帯域で通信ができるシステムなのに、管理のためにその帯域をフルに発揮できないのは問題です。BMCはこうしたネットワーク通信をシステムとは独立したNICで実施できるため、管理・監視のためのネットワーク帯域が不要(別立てで用意されている)なので、ネットワークパフォーマンスに影響を与えません。電源管理ができるため、リモートから電源をON/OFFすることができる、停電の際なども現地に赴かずに電源をONにすることができます。画面転送が出来るこうした独立したネットワーク帯域を用いて画面やキーボード・マウスの転送ができます。ネットワーク的に接続されていれば、どこからでも完全に遠隔からのシステム操作ができるということです。BIOSの画面すら転送して操作できるので、リモートでできない作業はありません。この機能を実現するため、BMCにはビデオ機能が内蔵されています。BMC自身のビデオ機能なので、ビデオメモリー、すなわち現在の画面情報をまるまる取得でき、ビデオメモリーの内容をネットワーク経由でリモートに送ることで、画面転送を実現しています。併せて以下のメリットとデメリットが発生します。メリット:ビデオカードが無くてもBMCが搭載されていれば画面出力が可能デメリット:別途ディスクリートのビデオカード(例えばGeForceとかQuadroとか)を搭載した場合にはKVMができない(画面の内容がBMCでは取得できないため)画面の描画能力はBMCのスペック依存になる。BMCの描画能力が極めて低いため、3D表示などは困難。2Dであっても通常はFHDまでで、4K出力などは不可。サーバー向けの機能のため、VGA出力しかもっておらず、HDMIやDisplayPortでの出力は不可。BMC搭載機種がおススメ!トラブルが発生した際に、そのトラブルの原因を特定するのは大変です。ユーザーのスキルレベルが高くない場合にはなおさらです。BMCがあれば、異常時にログが生成されるため、原因の早期特定が可能で、双方にメリットがあります。高額のサーバー・ワークステーションであれば、BMC付きのシステム導入をご検討ください。今やどのご家庭にでもあるブロードバンドルーターですが、その管理画面は(例えば192.168.1.1などのIPで)ブラウザーで設定します。BMCも同様に、設定や画面の転送などは全てネットワーク経由で行う関係で、ブラウザーでアクセスします。IPさえわかっていればどこからでもアクセスできます。機能はシリアルの表示から画面転送、センサーの値の取得、ログの記録、BIOSのUpdateなど様々です。インテル®QuantaSupermicroサーバーメーカーや機種によって詳細は異なるため、具体的な機能はメーカー毎の製品資料をご確認ください。IPMIの使い方マニュアルメーカー毎に異なります。各機種のTPSを参照ください。こちらの資料も参考になります。BMChttps://www.intel.com/content/www/us/en/support/articles/000006023/server-products.htmlASUS機種毎に異なりますが、最新版のASMB8-iKVM搭載機種であれば以下になります。http://dlcdnet.asus.com/pub/ASUS/server/accessory/ASMB8/E10970_ASMB8-iKVM_UM_V2_WEB.pdfIPMI自体の規格書http://www.intel.com/content/dam/www/public/us/en/documents/specification-updates/ipmi-intelligent-platform-mgt-interface-spec-2nd-gen-v2-0-spec-update.pdfBMC/IPMIのメーカー別の言い方インテル®は規格を作った側です。Supermicroは標準サーバーを提供する会社で、Quantaも同様です。弊社が取り扱っているサーバーメーカーは全てチップはBMC、機能はIPMIという呼称になります。導入後の問い合わせで一番多いサーバーのトラブルに対して、SELは大きな力を発揮します。ハードウェアの問題であれば、何が発生したのか、メモリーエラーなのか、HDDなのか、それ以外なのか、基本的には全てSELに記録されているからです。Toolなどのオープンソースツールとの親和性もありますが、各社ともに他社との差別化のため自社固有の管理機能を追加して独自に拡張しているため、クリティカルな事象の厳密な確認となると、事実上各ベンダー固有のソフトウェアを使う必要がでてきます。ToolからSELを取得することができます。ToolはLinuxの各ディストリビューションでパッケージ化されており、コマンドで導入できるような一般的なツールです。Toolを使ってSELを取得すると、標準化されている内容まではデコードできますが、メーカー独自の内容まではデコードできません。すると、バイナリの意味不明な文字列が出力されてしまい、誰にも読めなくなってしまいます。そこで、デコードできないイベントが発生した場合は、WebからアクセスしてSELの内容を確認するほうが良いでしょう。BMCトラブルシューティング今まではBMCを使った本体のトラブルシュートの方法をご紹介してきましたが、ここではBMC自体が健全かどうかの確認方法をご紹介します。BMCは本体から半ば独立しているマイコンです。このため本体が正常に動作しなくなってしまった場合でもBMC側は健全に動作し、不具合のログを記録し続けることができます。逆に言えば、本体が正常に動作していてもBMCの動作に懸念が生じる場合があり得るという事です。いえ、BMCはBMCのマイコンチップ・VRAMも兼ねたDRAMチップ、もしdedicatedのRJ45がある場合はそのためのPhyチップと、この2~3点だけで動作する仕組みの、ごく極小規模な組み込みマイコンです。可動部品も無く、部品点数も極めて少ないため、故障することはまずありません。BMCはブラウザー経由でアクセスする関係上、ユーザー側のブラウザーに起因する問題や、設定の問題などの関係で、故障が疑われやすい部分でもあります。ここではBMCが健全であるかどうかの確認をするための一般的な手順をご紹介します。1.BMCにブラウザーでアクセスできない場合BMCは画面出力がありません。いわゆるブロードバンドルーターの設定と同じで、BMCに割り当てられたIPにブラウザーでアクセスすることで、ブラウザー経由の確認や設定ができるという仕組みになっています。ブラウザーでアクセスできないケースは多くあります。そもそもアクセスできない場合には根本的な部分での確認が必要になります。1.1.正しいポートにLANケーブルが接続されているか確認するBMC/IPMIは、本体とは独立したLANポート経由で接続される場合が多いです。理由は、BMCがそもそも監視系のマイコンである以上、本体側のLANポートを利用すると、本体側のLANポートの帯域を圧迫したりします。(KVMという画面転送機能は、1Gb/sの1/10にあたる100Mb/sを使ってしまいます)。本体側のLANポート・コントローラーの故障でBMCも疎通不可になるなど、本体側の障害に動作が左右されてしまうため、信頼性の観点からも独立させたほうが都合がいいです。一方で監視のために別系統のLANケーブル・HUBを追加するほどでもない、というケースも往々にして存在します。この場合はBMCと通常のLANの通信が混在しているほうが都合が良いことになります。したBMCへ接続するためのLANポートの設定はBIOSで実施するため、BIOSの現在の設定値の確認は必須となります。Portが必ず存在します。Portの機能はドングルなしでも利用できます。この場合、Shared、つまり本体側NICと共用なのか、Dedicated(専用ポートを使う設定)なのかはBIOSの設定依存になります。BIOSのBMCの設定は以下になります。Configuration、つまり、Sharedの設定は無効化できないので、StaticにしてIPを0にします。これが無効化されているという意味になります。Baseboardが0.0.0.0になっており、DedicatedにIPが付与されていれば、それはDedicatedになります。BaseboardにIPが振られており、Dedicatedが0.0.0.0ならSharedの設定という事になります。安価なモデルを除き、BMC/IPMIが設定されているマザーボード搭載の製品は、Dedicatedポートが用意されています。した製品はデフォルトでFailover動作をするように設定されており、DedicatedポートにLANケーブルが接続されている場合にはDedicated設定となり、DedicatedポートにLANケーブルが接続されていないか、正しくLINKしていない場合にはShared設定となります。具体的な画面は以下になります。BIOSの設定に対応する正しいポートにLANケーブルが接続されているかご確認ください。1.2.IPが間違っていないか確認する正しくIPは割り当てられているでしょうか?DHCPの場合には思わぬIPになっている場合があります(169.254.100.100など)。逆に、DHCPサーバーが動作していない結果、IPが正しく付与されていない可能性もあります。1.2.1.インテル®の場合BIOSに入ってIPを確認します。1.2.2.Supermicroの場合BIOSの起動時、画面上にIPが表示されるので、このIPに対してブラウザーでアクセスします。アクセスできない場合には、アクセス元の端末のIPが同一セグメントになっているか、サーバーのBIOS設定画面から、1.1.2で挙げた設定を確認してIPが正しいか、ポートが正しいかの確認をします。LANケーブルで直結して確認してみるのも良い方法です。1.3.BMCを再起動してみるサーバーの電源を引き抜き、コールドスタートさせてみるということです。BMCは上記のように、SELというログを記録し続けるためのサーバーの監視機構なので、サーバーのリセットや電源のOFF/ONでは再起動しません。BMCの設定画面にはBMCの再起動をするための設定も存在しますが、アクセスできない場合にはこれもできません。この場合には、サーバーの電源を物理的に引き抜くことでBMC側の電源も落とし、結果としてBMCの再起動をさせることで、正常に起動してくることを期待します。これは稀にBMCを極めて長時間稼働させた際にBMCが応答しなくなるという事例が存在しているので、その場合の対応となります。COLDして再起動させたほうが良いでしょう。2.ログイン画面でログインできない場合ブラウザーでアクセスすると、ログイン画面が出てきます。IDとパスワードを入れてログインすることになりますが、ユーザー名とパスワードは各社、様々ですのでご注意ください。2.1.デフォルトユーザーSupermicroとQuantaはデフォルトユーザーが用意されています。(大文字)インテル®はデフォルトユーザーが設定されていないので、デフォルトでは誰もログインできません。BIOSからユーザーを設定する必要があります。2.2.BIOSからユーザーが無効になっていないか確認するBMCはリモートから様々な作業を行う権限を持つため、セキュリティ上、デフォルトユーザーのパスワードは変更すべきです。変更、あるいは無効化されていないかをBIOSから確認する必要があります。3.KVMが動作しない場合KVMはサーバーの画面をBMC経由で転送する機能です。KVMの名前通り、キーボードやマウスも転送してくれるので、BMCがあれば、まるで目の前にサーバーがあるかのようにリモートから作業することができます。この画面転送アプリケーションはBMCから起動するJavaのアプリケーションなのですが、PCのJavaのセキュリティの関係で、アプリケーションがダウンロードできなかったり、できてもセキュリティの設定で起動できなかったりします。Java関係はトラブルが非常に多いので、Supermicroでは今後の製品に対してJavaに依存しない仕組みにすべく、html5でブラウザーに描画される方式を採用した機種も存在します。3.1.httpでアクセスしてみるBMCはhttpsとhttpの両方のアクセスに対応します。httpよりもhttpsの方がセキュアなのですが、httpsは正しい証明書でなければ意味がありません。BMCのSSL証明書は自己証明書なのでhttpsで暗号化する意味があまりありません。(平文でパスワードが流れないだけでも良いという話はあるかもしれませんが)httpsの場合、最近のブラウザは十分なセキュリティを確保するため、自己証明書の場合は厳しく判断し、セキュリティ例外として登録しないと許さないなど、動作がより厳しくなってしまいます。これが原因でダウンロードに失敗する場合もあるため、httpでアクセスしてみることをお勧めします。3.1.1.httpでアクセスできないSupermicroの場合、例外的にhttpでアクセスした場合に、自動的にhttpsにリダイレクトしてhttpsアクセスに戻してしまうという機能があります。通常は問題ありませんが、クライアントの環境の問題からKVMがダウンロードできず、httpアクセスを試したい場合、この動作は不都合です。このリダイレクト動作は以下の方法で無効化できるのでお試しください。この後、BMCのターゲットのIPに対してブラウザーでhttpアクセスすれば、SSL証明書やSSL特有のブラウザーの問題に引っ張られることなくKVMの確認ができます。3.2.Javaのセキュリティ証明書Javaのプログラムのダウンロード後、実際に起動することになりますが、このJavaのプログラムは、規定の動作では証明書で署名していなければ危険と見なされ、起動できません。このため、署名なしでも起動できるよう、Javaのセキュリティ例外を追加する必要があります。手順は以下の様に行います。ここで登録するIPはBMCのIPになります。同一IPでもhttpとhttpsの2種類の登録が必要である点に注意してください。セキュリティ例外を追加したら、今度は起動できるようになるはずです。4.Linkもしない場合BMCは監視用マイコンなので、関係する部品点数も少なく故障することはほとんどありませんが、異なるfirmwareを書き込むなど、ユーザー側の操作ミスでリカバリができなくなることはあり得ます。したBMC自体の動作不良の場合、BMCの専用ポートは機能せず、LAN自体がLinkしてこない事があります。(Intel)を確認してください。マザーボード上には1Hz程度で点滅するLEDがBMCチップの近くの設置されていることが大半で、このLEDがBMCの死活を判断する材料となります。緑のみ緑とオレンジ上記のLEDが1個や2個といったバリエーションがあるので、製品毎のマニュアルを確認してください。このLEDが異常、もしくは常に消灯の場合にはBMCチップ自体の故障も懸念されます。この場合は通常RMAが必要です。softdiagとは?NMIを発行します。Toolで消費電力を確認したい機種やベンダーにより方法が異なります。UIを使わずにBMC設定をデフォルトに戻したい機種やベンダーにより方法が異なります。インテル®の場合BMCのUpdateツールであるfwpiaupdを使います。EFI版の場合は以下です。-setdeffwpiaupd.efiのhelpは-hで確認できます。コントローラーがASTになる前のRMM4の時代でも同じ方法が使えるはずです。BIOSと違い、BMCの設定は簡単には省略することができません。UIへのアクセスを無効にする(例えばHTTP/HTTPSを無効にする)と宝箱の中に鍵を入れた状態になります。OOB上の操作のみでは回復できないので注意しましょう。デフォルトに戻すとユーザー情報も空になるので注意しましょう。SupermiroやQuantaのように、デフォルトユーザーが設定されていれば良いのですが、インテル®の場合はデフォルトユーザーが存在しないので、ユーザーを作成しないとアクセスできなくなります。CFGのダウンロード先URLは以下です。https://www.supermicro.com/SwDownload/SwSelect_Free.aspxツールの全般的な使用方法のご紹介は趣旨から外れるのでダウンロードしたZIPファイルにPDFマニュアルがあるので見ていただくとして、ここでは初期化コマンドのみご紹介します。CFGは各種OS用のバイナリが入っているので、unzipコマンドで展開後、Linux用のフォルダーから以下のように実行します。completed.#これで即座に設定がデフォルトに戻り、BMC自体のresetが発効されます。(OSではなくBMCのreset)このときBMCのKVMなど、リモートで接続している場合にはresetと同時に接続が切れるので十分注意してください。CFGがリモート先の設定を行う機能が無い)ので、一般には変更したいマシンのOSにリモートで接続し、デフォルト後にそのままBMCのIPも再設定するなどしてBMCへの接続性をリモートから復旧させるのが良いでしょう。Shell上の操作など、テキストベースで済む操作であればSOLが使えます。activateただし事前にSOLを有効にしておく必要があるので注意しましょう。設定後、システム側(BMC側ではなく)をリセットすると、以降有効になります。SOLから抜ける~.を押下すると抜けることができます。(ちなみにhelpは「~?」)ただし、BIOS設定画面のような、キー入力を全て吸収してしまう場合には抜けられません。Shellを起動するなどして抜けましょう。UIに接続したいのに、BMCのIPにアクセスしてもTLSハンドシェイクに時間がかかって接続できないhttpsで接続しているのが原因です。要因は様々ですが、https通信は暗号化される関係で暗号化通信前の証明書のチェックなどに時間を要することがあります。通常ならそれでもそれほど時間はかからないのですが、BMCの場合、証明書としては不正(自己証明書)なので、自前で正しい証明書を入れない限り、証明書のチェックは100%失敗するからだと思われますが、異様に時間がかかってタイムアウトすることが多いです。この場合、ローカルの通信で、暗号化するまでの必要が無い場合にはhttpでの通信が手っ取り早いです。ところが、http通信は推奨されていない関係で、出荷時にhttpからhttpsへ自動リダイレクトするように設定されていて、httpでの通信自体が行えません。この場合はredirectをしない設定に変更する必要があります。した設定をしなくとも、実装が異なるせいか、IEであれば問題なく接続できるようです。