概要
Open Rack Version 3(ORV3) は、Open ComputeProject(OCP)がデータ・センター向け製品の設計について定めた仕様です。本連載では、同仕様に準拠するバッテリ・バックアップ・ユニット(BBU:Battery Backup Unit)について解説しています。今回は、BBUシェルフを主題として取り上げ、アナログ・デバイセズが開発したリファレンス設計(ハードウェア/ソフトウェア)について詳細に解説することにします。BBUシェルフの主要な役割の1つは、BBUモジュールとの通信を確立することです。また、BBU向けに入念に構築されたGUI(Graphical User Interface)により、ユーザに対して可視化したデータ/情報を提示する役割も果たします。
はじめに
BBUシェルフは、ORV3のアーキテクチャやデータ・センター・アプリケーションのパワー・マネージメント・システムに関連する重要な要素です。特に、無停電電源装置(UPS:Uninterruptible Power Supply)に関連して重要な役割を担います。BBUシェルフは、バックアップ用のバッテリの収容と調整という目的に適合するよう精密に設計されます。監視という重要な役割を担うことで、停電や電圧変動が生じても重要な機器が円滑に動作を継続できるように機能します。
現在のアプリケーションの多くは、洗練された技術によって支えられています。なかでも、信頼性の高い電源用のバックアップ・システムが極めて重要であることは明らかです。例えば、企業のオペレーションには、安定性に優れるデータ・センターや通信ハブ、サーバ・ルームが不可欠です。その安定性を実現するためには、電源向けの強力なバックアップ・システムが必要になります。そうしたシステムの基盤になるものがBBUシェルフです。BBUシェルフは、効率的なストレージ・システムを格納する基本的なハブとして機能します。また、重要な予備電力を即座に利用できるようにするための強力なリンクとしての機能も提供します。本稿で紹介するBBUシェルフは、最大6つのBBUモジュールを収容/管理することを目標としています。整列した状態で配置される各BBUモジュールには、リチウム・イオン・バッテリとパワー・コンバータを組み合わせたシステムが収容されています。BBUシェルフのアーキテクチャは、細心の注意を払って調整されています。特に、スペースの利用効率を高めつつ、容易なアクセスを実現できるように設計されています。そのため、メンテナンスを効率的に実施したり、交換作業を簡単に行ったりすることが可能です。
BBUシェルフは、すべてのBBUモジュールを集中的に管理/調整することを可能にします。ストレージ・システムが明確に定義されているので、BBUモジュールの追跡、ラベリング、メンテナンスを容易に実施できます。特に、重要な状況/環境において、配置ミスや混乱が生じる可能性を低減することが可能になります。また、その集中管理型のハブにより、バッテリの状態監視に対して真のメリットがもたらされることが明らかになっています。その構造がもたらす効果により、定期的な検査、テスト、交換を容易に実施できます。
BBUシェルフは、様々な業界や施設の個々の要件に応じ、様々なサイズ/構成で提供されます。モジュール式の設計を採用したBBUシェルフであれば、電力に関する要件の変化に柔軟に対応できます。また、BBUシェルフには統合監視システムが搭載されています。それにより、バッテリの状態に関する情報がリアルタイムに提供されます。電圧レベル、温度、モジュールの動作状況、残容量といった詳細な情報が、一目で認識できるように表示されるということです。それにより、予防保全を適用することが可能になります。更に、バッテリを常に(重要な瞬間に)給電できる状態に保つことができます。
BBUシェルフの概要
OCPのORV3では、新たなアーキテクチャとしてオープン・ラック・パワー・アーキテクチャ(Open Rack Power Architecture)が定義されています。このアーキテクチャは、スケーラブルな集中管理型のパワー・シェルフと、共通のバス・バーを介してペイロード・デバイス(IT機器)に電力を分配するBBUシェルフによって構成されています。それにより、ORV3に適合するBBUシェルフが定義されていることになります。BBUシェルフには、6つのBBUモジュールが5 + 1の冗長構成で収容されます。それらにより、ラック内のすべてのペイロードにDC電力が供給されます。AC電源に停電が生じた場合、BBUシェルフは、パワー・シェルフの最大定格値を上限とするバックアップ電力を、定められたバックアップ時間にわたって供給することができます。そのバックアップ時間の間に、IT機器の動作を中断することなくラックの電源を切り替えたり、電力が失われる前にアプリケーションを終了/移動したりといった対応を図ることになります。
マイクロコントローラ用のファームウェア
アナログ・デバイセズが開発したリファレンス設計では、BBUシェルフで使用するマイクロコントローラ(シェルフ・マイクロコントローラ)として「MAX32625」を採用しています(図2)。MAX32625は、Arm® Cortex®-M4をベースとする超低消費電力の製品です。このシェルフ・マイクロコントローラは、以下のような処理を実行します。
- Modbus®のプロトコルを介したホスト・コンピュータとの通信
- Modbusのプロトコルを介したモジュールとの通信
- モジュールの定期的な充電処理
- システム制御の処理
以下、それぞれの処理について詳しく説明します。
Modbusのプロトコルを介したホスト・コンピュータとの通信
図2において、シェルフ・マイクロコントローラは、Modbusに対応する優れたサーバとして機能します。すなわち、堅牢なRS-485のインターフェースを介してホスト・コンピュータとのシームレスな通信を確立するという重要な役割を果たします。同マイクロコントローラの主要な機能は、多数のモジュールからのデータをリアルタイムに収集するというものです。同マイクロコントローラは、この処理を休むことなく実行します。蓄積されたデータは、その後、ホスト・コンピュータに送信されます。ホスト・コンピュータは、それらのデータをGUIアプリケーションの入力として使用し、わかりやすく視覚化した形で表示します。ホスト・コンピュータから情報を受信した場合、シェルフ・マイクロコントローラはゲートキーパーとして動作します。つまり、各メッセージの正当性と完全性についての認証を実施します。メッセージの真正性を確認したら、レジスタに格納された多くの情報に基づいて、直ちに回答を作成します。入念に生成された応答には、ホスト・コンピュータが必要とする回答が構造化された形で含まれています。
受信したメッセージが何らかの異常によって破損しているケースもあり得るでしょう。そのような場合でも、シェルフ・マイクロコントローラが適切に対処してくれます。具体的には、直ちに有能なコミュニケータの役割を担い、Modbusのプロトコルに基づくエラー・メッセージで応答します。このエラーの通知により、ホスト・コンピュータに対して、異常が発生したという警告が行われたことになります。それを受けて、適切な是正措置が講じられます。
このように、シェルフ・マイクロコントローラは多角的な役割を果たします。データの伝送路、データ品質の監視、迅速な情報提供者といった重要な機能を提供するということです。それらは、Modbusに基づく相互作用の範囲内で、堅牢性と信頼性に優れる通信用のフレームワークを構築することに寄与します。
Modbusのプロトコルを介したモジュールとの通信
図2を見ると、シェルフ・マイクロコントローラにはもう1つの重要な役割があることがわかります。それは、ModbusのクライアントとModbusのサーバの役割をシームレスに行き来し、通信エコシステムの複雑な調整を効率的に行うというものです。多数のBBUモジュールとの相互作用において、シェルフ・マイクロコントローラはModbusのクライアントとして機能します。そして、個々のモジュールとの通信を開始し、それを維持します。BBUモジュールは、Modbusのサーバとして動作し、最新の情報によってそれぞれのレジスタを連続的に更新します。シェルフ・マイクロコントローラは状況に同調して動作しながら、周期的な処理を実行します。つまり、BBUモジュールの環境を走査し、各モジュールからテレメトリ・データを周期的に取得するということです。それらのデータからは、有用な知見が得られます。そのため、ホスト・コンピュータから問い合わせがあった場合に直ちに回答できるように、それらのデータはマイクロコントローラのメモリ上に格納されます。
シェルフ・マイクロコントローラは、BBUシステム内でクライアント/サーバの相互作用のためだけに使用されるわけではありません。同マイクロコントローラは、ホスト・コンピュータからの要求を受け取ると、Modbusのサーバとして機能するよう動作を切り替えます。それにより、収集したデータを提供し、ホスト・コンピュータと多数のBBUモジュールの間の橋渡しをします。同時に、Modbusのクライアントとしての機能も続行し、BBUモジュールとの相互作用を調整しつつ、情報を最新かつ正確な状態に維持します。
このように、シェルフ・マイクロコントローラは、多くの用途に対応する能力と適応性を備えています。クライアントとサーバの役割を巧みに演じ分け、ホスト・コンピュータとBBUモジュールの間の相互作用を支援します。この相互接続は、堅固な通信構造を維持し、システム全体の効率と信頼性を高める能力によって実現されます。
モジュールの定期的な充電処理
BBUモジュールは、OCPの要件に基づいて定期的に充電しなければなりません。バッテリ・パックは、スタンバイ状態においても電流を消費するからです。BBUモジュールは10日に1回しか充電できないので、シェルフ・マイクロコントローラはBBUモジュールを監視し、どれを充電するのかを決定します。つまり、定期的な充電はシェルフ・マイクロコントローラによって開始されます。同マイクロコントローラは、Modbusのプロトコルをベースとする独自のコマンドを使用することで、どのBBUモジュールに対して定期的な充電を行う必要があるのかを判断します。このシステムのアーキテクチャにおいて、BBUモジュールの基本的な要件はOCPによって詳細が定められた規格に基づいています。繰り返しになりますが、その主要な構成要素であるBBUモジュールは定期的に充電する必要があります。なぜなら、バッテリ・パックはスタンバイ状態においても電流を消費するからです。最適な性能と信頼性の高い運用を維持するためには、定期的な充電が必要です。
システム制御の処理
OCPは、BBUモジュールの動作をオーバーライドするユーザ用の制御機能を追加することを促しています。ユーザは、Modbusを介して1台のBBUの動作を調整することにより、充電または放電が必要か否かを見極めることができます。
BBUシェルフのGUI
BBUモジュールを管理するためのGUIは、ユーザに対して重要な情報を提示するための複数のセクションに分割されています(図3)。その主要な表示内容としては以下のようなものがあります。
- モジュールの動作状態の情報
- モジュール内部の温度の測定値
- モジュールの障害情報を表示するテーブル
- パワー・コンバータのメトリクス情報
- セルの情報(電圧と温度)
- ファンの速度(単位はrpm)
以下では、これらの表示や主要な機能について説明します。
モジュールの動作状態の情報
GUI上には、少なくとも4つのインジケータ(LEDを模したもの)が用意されます。それぞれの概要は以下のようになります。
- 青色のインジケータ:BBUモジュールが充電モードで動作していることを表します。
- 1つ目の琥珀色インジケータ:BBUモジュールが放電モードにあり、バックアップ電力をデータ・センターのバックプレーンに供給していることを表します。
- 2つ目の琥珀色インジケータ:BBUモジュールがEOL(End of Life)の状態にあり、交換が必要であることを表します。
- 赤色インジケータ:BBUモジュールに障害が発生していることをユーザに通知します。
モジュール内部の温度の測定値
GUIには、BBUの動作状態に加えて、モジュール内部の温度の情報も表示されます。バッテリ・スタックとパワー・ボードの中には、少なくとも9個の温度センサーが配置されています。リファレンス設計では、温度の測定値(デジタル値)をメインのマイクロコントローラに提供するために、温度センサー機能を備える監視IC「LTC2991」を使用しています。また、バッテリ・パック用の監視システム「ADBMS6948」を使用することで、バッテリ・スタックの温度の測定値(アナログ値)を取得します。
モジュールの障害情報を表示するテーブル
GUIには、モジュールの動作中に発生した様々な障害の情報を提供するためのテーブルが用意されています。以下に示す障害/保護機能を対象とした情報が提供されます。
- 過電圧保護(OVP)
- 過電流保護(OCP)
- 過熱保護(OTP)
- 過充電/過放電保護
- ファンの停止
パワー・コンバータのメトリクス情報
GUIは、モジュールが動作している際の重要な情報源です。実際、バッテリ・スタックとバックプレーンに関する重要なメトリクスもGUI上に表示されます。メトリクスの対象範囲は広く、入出力の電圧と電流をはじめとする重要なデータを網羅しています。動作中のモジュールとGUIの間の動的な相互作用により、ユーザはシステムの性能とエネルギーの動きについて、完全かつリアルタイムに把握することができます。
セルの情報
GUIには、バッテリ・スタックのセルの電圧と温度も表示されます。これらのデータは、バッテリ・スタックのSOH(State of Health)とSOC(State of Charge)の判定に不可欠です。
BBUモジュール用のGUIには、簡単なサマリ情報とユーザ用の制御機能に関する情報で構成されるウィンドウが設けられています。そのタブを使用することにより、6つのBBUモジュールを監視しつつ、特定のBBUモジュールを個別に制御できます。GUI上では、以下のような表示/機能/設定を利用できます。
- アドレス・セレクタ
- シェルフのシステムの制御
- シェルフのシステムのパラメータ
- シェルフの障害と電流の分担
例えば、運用に関する決断に対応する処理を強制的に実行するといったことが可能です。GUIの表示については、図4をご覧ください。
アドレス・セレクタ
ユーザは、BBUシェルフのスロットのアドレスを戦略的に選択することにより、指定したBBUモジュールにスムーズにアクセスすることができます。戦略的な選択を行うというのは、無作為ではないということを意味します。つまり、Modbusによる通信がクラッシュするのを防ぐための予防策につながるということです。これは、BBUシェルフのスロットのアドレスを事前に定義することによって実現されます。
シェルフのシステムの制御
ユーザには、BBUの動作を変更する権限が与えられます。特定のBBUモジュールの動作期間において、ユーザはそのモジュールの充電/放電を強制的に開始することができます。強制的な放電モードを開始すると、電圧を48Vに昇圧するのではなく51Vまで昇圧されるようになります。そして、データ・センター内の電源装置(PSU:Power Supply Unit)の動作が乱れないように維持しつつ、バックプレーンへの電力供給が促進されます。このような細かい制御により、BBUの機能と大規模なインフラのシームレスな運用との間で最適なバランスが確保されます。
シェルフの障害と電流の分担
サマリのテーブルは、ユーザに対し、6つのBBUモジュールで検出されたすべての障害の情報を提示します。これは、BBUシェルフに発生した問題を最も素早く見いだす手段になります。また、BBUモジュールが並列構成または冗長構成で動作する場合、電流を分担するバスを対象としたインジケータにバスの電圧が表示されます。その値は、バックプレーンの負荷が最大の場合は7V、実質的にピークの負荷で動作している場合には10.5Vになります。
まとめ
BBUシェルフは、信頼性の高いパワー・マネージメント・システムを提供するための重要なコンポーネントです。セキュアな相互接続を確立し、バッテリ・バックアップ・システムのための安定した環境を提供して、効率的な管理を行うための中央ハブとして機能します。その結果、停電や電圧の変動に対する保護機能が得られます。つまり、そのような問題が発生しても、重要なシステムの動作を継続できるということです。BBUシェルフは、データ・センターや通信ネットワークなど、UPSが不可欠な任意の環境に対して重要な保護機能を提供します。それにより、運用の連続性を保証し、信頼性を高めて、電源インフラの堅牢性を維持することが可能になります。本連載の次回の記事では、BBU向けの補助回路で用いるコンポーネントの選定方法について説明します。その方法に従って、重要なデバイスへの給電に用いるコンポーネントを選定することで、設計上の課題を軽減することができます。
参考資料
1 David Sun「Open Compute Project Open Rack V3 BBU Shelf Rev 1.1(Open Compute Project Open Rack V3 BBUシェルフ Rev 1.1)」Open Compute Project、2022年9月