電力源を2つにして停電などの障害に強いシステムを構築できる「ATS」を導入してみた
インターネットを支えるサーバーが集まっているデータセンターには、ルーターやハブなど多数の機器が設置されています。そうした機器は通常、突然の停電や電源ケーブルの断線にも対応できるよう、電力系統が複数あり冗長性を持っていますが、中には電力系統が1つしかない機器も存在します。そうした機器でも電力源を冗長化できる「ATS」という機器が存在するので、障害に強いサーバーを構築するため、実際に使ってみました。
◆ATSの選定
サーバーラックに収納できるATSの選定にあたり、候補が4つほどありました。
ラックATS、100V、20A、L5-20イン、(8) 5-15Rアウト | APC Japan
https://www.apc.com/shop/jp/ja/products/-ATS-100V-20A-L5-20-8-5-15R-/P-AP4452J?isCurrentSite=true
ラックトランスファースイッチ | Raritan
https://www.raritan.com/jp/products/power/power-distribution/rack-transfer-switches
NPS-8H20-ATS-1 ネットワークパワースイッチ+ ATS 120V 8 アウトレット | WTI
https://www.wti.com/p-241-nps-8h20-ats-1-network-power-switch-pdu-ats-20a-120v-8nema-5-15.aspx
PDU15M10AT - Metered ATS PDU Series - Product Details, Specs, Downloads | CyberPower
https://www.cyberpowersystems.com/product/pdu/metered-ats/pdu15m10at/
今回ATSを購入する際に重視するポイントは「故障時のリードタイムを考え、日本からの入手が容易」「電源ケーブルが日本でも使える」「低価格」の3つ。4つの候補を検討したところ、WTIとCyberPowerのATSは入手性に難があること、RaritanのATSは高性能であるものの価格が高いことがわかりました。APCのATSは日本からでも容易に入手でき、変換ケーブルを購入すれば日本でも使用可能で、Raritanの製品に比べれば低価格ということで、APC AP4452Jをe-TRENDで購入することにしました。
e-TREND|APC AP4452J [Rack ATS 100V 20A L5-20 in (8) 5-15R out]
https://www.e-trend.co.jp/items/1165868
◆実際に使ってみた
これが購入したAPC AP4452Jで、現在稼働中です。
正面には液晶ディスプレイとボタンが3つついていて、ボタンで表示を切り替えることが可能。
ATSにかかっている負荷の確認や……
電圧・周波数の状況を確認できます。
優先して使用する電力系統もここで確認可能。
現在どちらの電力系統を使用しているかは、左側のLEDランプで確認できます。LEDランプが「Out」に伸びている方が現在使用している電力系統で、下の画像では「B」が使用されていることを表しています。
片方の電力系統がダウンした場合は自動でもう片方の電力系統に切り替わりますが、「A/B」と書かれたボタンを押すと、電力系統を手動で切り替えることができます。
電源の入力側には2つのUPSを接続しており、片方のUPSがダウンしても問題ない構成です。出力側にはタップを接続し、そのタップにONUなどを接続しています。ONUは家庭用と同じものを使用しており、電力系統が1つしかなかったので、ATSを導入することで電力源の冗長化ができました。
外部用の端子はLAN、シリアル、USBとなっており、LANやシリアルからコマンド操作が可能。USBはファームウェアのアップデートやログの取得に使用します。
今回購入したAP4452Jはネットワーク経由でGUI操作が可能なので、実際に使用してみます。AP4452JをLANに接続し、シリアル経由で設定しておいたIPアドレスをブラウザに入力すると、ログイン画面が表示されます。
シリアル経由で設定したIDとパスワードを入力し、「Log On」をクリックすると……
ホーム画面が表示されました。ホーム画面ではアラーム状況、現在使用している電力系統、ATSにかかっている負荷状況、デバイス情報を確認できます。
「Configuration」では、切り替え時の動作やネットワークなどの各種設定を行うことができます。
ATSの状況をホーム画面で常に監視するわけにはいかないので、SNMPトラップを使ってATSに異常が生じた場合は別のサーバーに通知するよう設定します。ホーム画面から「Configuration」→「Network」→「SNMPv3」→「User Profiles」と進みます。
すでにサンプルのユーザーが複数設定されているので、ユーザー名だけ変更します。一番上のサンプルユーザーをクリック。
ユーザー名を変更し、「Apply」をクリック。今回は認証などは設定しません。
続いて「Configuration」→「Network」→「SNMPv3」→「Access Control」と進み、先ほど設定したユーザー名をクリックします。
「Enable」にチェックを入れ、「User Name」にユーザー名、「NMS IP/Host Name」に送信先のサーバーのIPアドレスを入力して「Apply」をクリック。これでATS側の設定は完了です。
今度はサーバー側で通知を受信できるように設定します。今回使用するサーバーはArmbianをインストールしたTinker Boardです。
下記コマンドを実行し、必要なソフトウェアをインストール。
sudo apt-get install snmpd snmptrapd
続いて「/etc/default/snmpd」の最下行に下記の記述を追加します。
TRAPDRUN=yes
SNMPトラップを受信するためには、送信側のEngineIDが必要なのですが、どこを探してもEngineIDが記載されていません。仕方がないのでATSが送信するSNMPパケットを解析し、EngineIDを調べてみることに。まずはサーバー側でtcpdumpを起動しておきます。
ブラウザのGUIにて「Notification」→「SNMP Traps」→「Test」と進み、「Apply」をクリック。
サーバー側にパケットの解析結果が表示されました。「E=」のあとに続く文字列のアンダーバーを除き、先頭に「0x」をつけるとEngineIDになります。
EngineIDがわかったので、サーバー側の設定を進めます。「/etc/snmp/snmptrapd.conf」の中身を下記のように編集します。
traphandle default /usr/bin/logger snmpTrapdAddr udp:162 #先ほど取得したEngineIDを指定 createUser -e 0x80000XXXXXXXXXXXXXXXXX 設定したユーザー名 authCommunity log,execute,net 設定したユーザー名 authUser log,execute,net 設定したユーザー名 noauth
サービスを再起動したら設定は完了です。
sudo systemctl restart snmptrapd
もう一度ブラウザのGUIにて「Notification」→「SNMP Traps」→「Test」でテストを実行し、サーバーのログを確認すると、きちんと通知が受信できているのが確認できました。
ATSを導入してから電源関連のトラブルは発生していませんが、サーバーの生命線である電源を冗長化してくれる、頼りになる存在です。
ラックATS、100V、20A、L5-20イン、(8) 5-15Rアウト - APC Japan
https://www.apc.com/shop/jp/ja/products/-ATS-100V-20A-L5-20-8-5-15R-/P-AP4452J?isCurrentSite=true
・関連記事
サイバー攻撃に備えて電力インフラの制御を「手動」に切り替える法案がアメリカで可決される - GIGAZINE
大阪の私鉄がテスラの蓄電設備「Powerpack」を42台導入、停電時や夏場での活躍に期待 - GIGAZINE
もしもの災害や停電に備えて「発電機」を実際に購入・維持してみてわかった注意点まとめ - GIGAZINE
Amazonのクラウドサービスで日本に続きアメリカで障害が発生し顧客データが全損する事態が発生 - GIGAZINE
・関連コンテンツ
in レビュー, ハードウェア, Posted by darkhorse_log
You can read the machine translated English article I introduced `` ATS '' that can ….