うーむ。2019年11月23日、そっと楽天カード(あと、楽天Payも)が使えなくなっていた。楽天カードがお知らせを出していたのだが、その中にQTnetのデータセンターにおける電源障害である旨が書かれていたのが印象的だった。

野次馬根性で、お知らせされている内容を元に調べものをしつつ、なんとなく今回の障害について何が起きたのかを妄想してみようと思う。

まず、QTnetって

QTnetは電力系の通信事業者で、九州電力の子会社。まぁ、関西電力なら株式会社オプテージだし、四国電力ならSTnetって感じで各地の電力会社の子会社が通信事業者をやっている。まぁ、ユーザーの感覚としては電力系の会社なんだから、電源の確実性は高いんだろうなと勝手に期待してしまう部分はありそうな気がするが…。

そんなQTnetだが、データセンター事業は同じく九州電力の子会社の株式会社キューデンインフォコム(どうやら、略してQicだったらしい)って会社が営んでいたのだが、2019年6月にQTnetがQICを吸収合併していたようだ。余談だが、関西電力系のオプテージも今年になって関西電力のIT系子会社を統合してできた会社だし、電力系の皆さんはそろって何かをやるのが流行っているんだろうか。

…もとい。そういうわけなので、QTnetのデータセンター事業のデータセンタ紹介ページでは「Qicデータセンター」ってブランドになっているようだ。(Qicについて、どこかに説明ないとわかんないよなぁ)

発生した障害

端的にはデータセンターの電源供給が止まって(数秒間だったらしいけど、数秒止まれば普通に落ちるよなぁ)サーバやネットワーク機器が軒並みダウンしたってことのようで、楽天カードだけでなく福岡県や九州電力もユーザーだったようで障害の影響を受けたらしい。

QTnetの障害報告の第3報には障害原因が記載されていた。

電源設備の取替作業時に、受電用屋内設備の分電盤において、何らかの理由により過電流検知機能が動作し、受電系が常用から予備に切り替わり、切替時間(数秒以内と推定)の間にお客さまのサーバ類が電源を失って停止致しました。

受電系の切替で瞬断

原因不明な過電流を検知したということも気にはなるけれど、障害が起きた場合には切替を実施することになるわけだから、原因はともあれ、受電系を切り替える際に電源が瞬断するんだってことの方がインパクトが大きそうな気がする。

まぁ、もし、受電系の切替で電源の瞬断が想定されていたとすると、QTnetのデータセンターのユーザーはラック内にUPSを設置する(ラック単位でUPSを付けなきゃいけないデータセンターってないような気がするけど)だろうから、データセンターのユーザーまるごと落ちるみたいなことは起きないはず故に、受電系の系切替が起きたとしてもQTnetのインフラにて瞬断なしに電力供給が続けられる想定であったことは確かなのではないかと思う。

確かに、日経BPの記事を眺めてみると、UPSなどの機器のメーカーであるAPCの人が書いている記事の中で

電源をA系統とB系統で二重化してあっても,システムには電源が1系統からしか取れない機器が含まれていることが多い。すべての機器が冗長電源を持っているとは限らない。

 そのため,せっかくA系統とB系統に分けても,どちらかの系統からしか電源を取れない機器は,その系統が停電になれば停止してしまう

という記載があった。なので、ATS(Automatic Transfer Switch)と呼ばれる、電源系統を自動的に切り替える装置を設置せよとのことだった。ラック内に設置するATSのラインナップもあるようだったけれど、もっと大型のATSもあるようだったのでラックに引き込んでいる電源の上流で切り替えることもできそうだった。

上記のように、受電系の切替はQTnetのインフラで頑張ることになっていただろうから、QTnetのデータセンターには、ラックの上流にATSが設置されていた可能性が高い。そして、過電流の検知によってATSが受電系を切り替えたけど、本来、想定されていたよりも時間がかかってしまい、下流のサーバやネットワークへの電力供給で瞬断が発生してしまったというのが今回の障害ではないだろうか。

データセンターの電源は難しい

ぱっと思い出せる範囲でも、さくらインターネットの西新宿データセンターで変圧器の発煙と電源障害があったし、AzureやAWSも落雷の影響でで電源供給が途絶えてデータセンターごとダウンすることがあった。サーバやネットワーク機器を動かすには電力が不可欠ではあるけれど、配電盤や変圧器、落雷、さらには高圧線の切断など、様々な原因でで電力供給はあっさりと絶たれてしまうというのが現実で、データセンターの重要性が高まり続けているにも関わらずなかなか解消されづらい問題でもあるということだろうか。

データセンタの冗長化

今回の楽天カード、楽天Payの障害に関しては、QTnetのデータセンターがダウンしたことがサービス停止に繋がったことからして、複数のデータセンターにまたがるような(つまり、データセンターごと使えなくなるような事象を想定した)運用がなされていないこともはっきりしたように思う。

QTnetのデータセンターにシステム群が設置されているのは楽天カードの出自(楽天が福岡県に本社があった国内信販を買収した)による部分が大きそうな気がするが、楽天カードのユーザー規模を鑑みると、BCPとして複数のデータセンターでシステムを運用することが求められる気がしないでもないけれども、はてさて。

追記:
QTnetの障害情報の第6報を見てみると、

(現在約260社中110社復旧を確認できています。11/24 9時現在)

って記載があって、なかなかぐっとくるなぁ。電源の瞬断は機器の電源ケーブルをいきなり引っこ抜いたのと同じ訳だから、ストレージにおけるデータの破損や、機器の部品の故障も起きるリスクがありそうで、電源が復旧してサーバやネットワーク機器の電源ボタンをポチッと押し直しただけで復旧するものばかりでもなさそうだ。休日返上で呼び出されたエンジニアの皆さん、お疲れさまです。

追記2:
QTnetの報告によると、上記のATSのような電力系統を自動的に切り替える装置を外しての作業だったようで、まさに最悪の事態が起きたって感じ。でも、無停止での電源設備の更新作業自体は他のデータセンターでの実績ありそうな気がするだけに、何か特別な事故要因があったのか、本当に運が悪かったのか…。

受電用屋内設備分電盤の過電流継電器の整定不具合により、常用受電が自動遮断しました。
遮断時は、常用受電から予備受電に無停電で切り替わる機能を有しておりますが、今回の電源設備更新作業にあたってこの機能を外して行う工程(10分間を予定)中に事故が発生したため、電源停止(7秒間)となりました。