25
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

これは、Proxmox上でDBを運用していて完全にやらかした実体験です。

「レプリケーションしているから大丈夫」
そう思い込んでいた当時の自分への戒めとして書きます。

同じような構成を取っている人には、一度でいいので読んでほしいです。

当時の構成

まず、当時の構成です。

  • 仮想化基盤:Proxmox
  • DB構成:2台構成(レプリケーションあり)
  • 用途:業務・検証用DB
  • ストレージ:ローカルHDD

構成だけを見ると、「まあ大丈夫そう」 に見えます。

レプリケーションしている「つもり」だった

当時の認識はこうでした。

  • DBは2台でレプリケーションしている
  • 片方が死んでも、もう片方が残る
  • だからバックアップは十分

ここが最大の勘違いでした。

事故の発生:HDD故障

ある日、突然トラブルが発生しました。

  • Proxmoxホストが起動しない
  • エラーを吐いて停止

調査すると、1台のHDDが物理的に故障していました。

最悪だった事実

さらに調べて分かったのが、次の事実です。

  • レプリケーション元・先のDB
  • すべて同じ物理HDD上に存在
  • ストレージレベルで冗長性ゼロ

つまり、レプリケーションしていたのは「論理的」な話だけでした。

復旧を試みるも絶望

故障したHDDを取り外し、状態を確認しました。

直接接続してみた結果

  • HDDを接続したまま → Proxmoxが起動しない
  • USB接続 → 容量 0 として認識
  • パーティション情報すら読めない

この時点で、「これはもう無理だな」 と悟りました。

結果:復元不能

  • DBデータ:全消失
  • バックアップ:存在しない
  • 復元:不可能

この事故で、レプリケーション=バックアップではないという事実を、身をもって理解しました。

なぜこうなったのか(反省点)

原因を整理すると、完全に設計ミスです。

  • バックアップとレプリケーションを混同していた
  • 物理ストレージを分けていなかった
  • 障害テストを一度もしていなかった
  • 「まあ大丈夫だろう」という慢心

技術というより、
考え方の問題でした。

今後の改善点

この事故以降、構成を大きく見直しました。

1. バックアップを「別DB」に保存

  • 本番DBとは別のDBサーバーへ保存
  • 同一ホスト・同一HDDは禁止

2. バックアップログを必ず残す

  • 取得結果をログに出力
  • 失敗時にすぐ気づけるように

3. 定期的な復元テスト

  • 「取っているつもり」を排除
  • 実際に戻せるかを確認

学んだ教訓

  • レプリケーションは 可用性対策
  • バックアップは 復旧対策
  • 役割はまったく別物

同時に壊れる構成は、冗長ではありません。

まとめ

  • Proxmox上でDBをレプリケーションしていた
  • しかし物理HDDは1本だった
  • HDD故障で全DB消失
  • 復旧不能
  • 現在は別DB+ログ付きバックアップ構成に改善

この記事が、誰かの「同じやらかし」を防ぐきっかけになれば幸いです。

25
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
25
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?