萌えハッカーニュースリーダー

2025/10/29 23:06 Matrix: Post-mortem of the September 2 outage

出典: https://matrix.org/blog/2025/10/post-mortem/
hakase
博士

ロボ子、大変なのじゃ!matrix.orgのホームサーバーが24時間も停止したらしいぞ!

roboko
ロボ子

それは大変ですね、博士。原因は何だったんですか?

hakase
博士

ディスク容量を増やすための定期メンテナンス中に、プライマリデータベースが故障したらしいのじゃ。それでセカンダリに切り替えたまでは良かったんだけど…

roboko
ロボ子

そのあと、何か問題が?

hakase
博士

元のプライマリを復元しようとしたら、セカンダリまで失って、完全に利用不能になったらしいのじゃ!

roboko
ロボ子

それは、かなり深刻な状況ですね…。

hakase
博士

S3ストレージから復元する必要があったみたいだけど、データセットのサイズが51TBもあったから、復元に時間がかかったみたいだぞ。

roboko
ロボ子

51TB…!想像を絶する大きさですね。データ損失はなかったのでしょうか?

hakase
博士

そこは不幸中の幸いじゃな。データ損失はなかったみたいじゃ。

roboko
ロボ子

データベースの構成はどうなっていたんですか?

hakase
博士

数百のワーカーを持つメインのSynapseインスタンスと、2台のマシンで構成される単一の論理Postgresクラスタでバックアップされていたらしいぞ。プライマリデータベースは、ストリーミングレプリケーションを介してセカンダリの読み取り専用インスタンスに複製される仕組みじゃ。

roboko
ロボ子

なるほど。RAID構成はどうなっていたんでしょう?

hakase
博士

Postgresデータベースサーバーは、独自の論理RAID 10アレイを使用していたみたいじゃな。

roboko
ロボ子

バックアップ体制は万全だったんですね。週ごとの完全バックアップ、日ごとの増分バックアップ、WALの継続的なアーカイブを実施していたと。

hakase
博士

そうみたいじゃな。でも、データベースサイズが約51TB(ディスク容量の90%)に達していたから、ディスクを追加することになったのが、今回の騒動の発端じゃ。

roboko
ロボ子

ディスク追加作業中に、プライマリデータベースサーバーのRAIDアレイから既存のドライブが1つ消失したんですね。

hakase
博士

そうなんじゃ。RAID 10を使用していたから機能は維持されたけど、劣化モードで実行されることになったみたいじゃ。

roboko
ロボ子

それで、セカンダリデータベースへのフェイルオーバーを決断したんですね。

hakase
博士

ところが、新しいプライマリは、アーカイブスクリプトの問題で、WALをS3にアーカイブしなかったらしいのじゃ!

roboko
ロボ子

それは痛いですね…。

hakase
博士

さらに悪いことに、db-02の真新しい空のセカンダリでPostgresを最新のパッチバージョンにアップグレードした後、データ復元を試みた際に、コマンドの実行場所を誤って、プライマリdb-01のデータディレクトリを誤って削除してしまったらしいのじゃ!

roboko
ロボ子

ええっ!?それは…。

hakase
博士

db-01とdb-02が両方とも停止したから、オフサイトバックアップから復元するしかなかったみたいじゃ。

roboko
ロボ子

原因をまとめると、大規模なデータベース、不十分なセーフガード、不十分なツール、そして人的ミスが重なったということですね。

hakase
博士

その通りじゃ。データベースサーバーの名前が混乱の原因となっていたことも、見逃せない点じゃな。

roboko
ロボ子

今回の件から、私たちは何を学ぶべきでしょうか?

hakase
博士

バックアップ体制の重要性は言うまでもないけど、フェイルオーバーの手順や、復旧ツールの使い方を、もっとしっかり確認しておくべきじゃな。あと、サーバーの名前は分かりやすく統一することも重要じゃぞ。

roboko
ロボ子

そうですね。今回の教訓を活かして、より堅牢なシステムを構築していきたいです。

hakase
博士

しかし、データディレクトリを誤って削除してしまうとは… 私も気をつけないと、うっかり研究室を爆破してしまうかもしれん…!

roboko
ロボ子

博士、それは笑い事じゃありませんよ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search