アヒルのある日

株式会社AHIRUの社員ブログです。毎週更新!社員が自由に思いついたことを書きます。

🚨サーバーが壊れた!🚨

こんにちは、みえないプログラマです。

最近ようやく涼しくなってきた気がします。

 

先日、弊社の社内で運用されているサーバーの一台がメインのHDDが壊れたことでお亡くなりになってしまいました。

重要なデータなどは日々のバックアップによって無事でよかったのですが、サーバー上で動いているいろいろなアプリケーションがあったため、復旧しないと業務に支障がでてしまうので、復旧作業を行いました。

 

ただ、数年前に一度環境を入れ替えた際に、壊れた際の備えをしていたために素早くミスなく行うことができました。その時の知見を共有します。

 

1. OSをインストールして、必要なセットアップをした状態でイメージを取っておこう

OSや必要なミドルウェア(DBとか、ほげほげサーバーとか…)を個別にインストールして設定し直すのは大変なものです。なので、一度環境を整えたら何らかの方法でイメージを取っておき、安全な場所に保管しておきましょう。

(これは同じ環境のサーバーを複数台用意したい場合にも便利かもしれませんね)

 

原始的な方法だとddコマンドを使う方法や、Clonezillaといったソフトウェアを使用する方法もあります。

今回はClonezillaでイメージを用意しておきました。これを新しいHDDに対して復旧してやることで、OSなどは一発で戻せます。

 

2. データは個別にバックアップするようにしておこう

当たり前なので特別何かを言うことはありませんが、定期的にバックアップは取るようにしておきましょう。

HDDなどはいつ壊れるかわかりませんから…

 

3. 1や2の復旧の予行演習をしておこう & 手順書として残しておこう

実はこれがいちばん大切かもしれません。迅速にサーバーを復旧できたのはこれをしていたからと行っても過言ではないです。

この手順が大切な理由は2つあります。

1つ目は、「取ってあったはずのバックアップが復旧できないことがある」ためです。データベースなどでこのような話は往々にして聞きます。実際にやってみて、ちゃんと復旧できるか試しておきましょう。

2つ目は、「ミスなく作業を完遂できるようにする」ためです。このような場合には焦ってミスを犯してしまいがちです。ミスをしないように予行演習しておき、コマンドなどはコピペで済むレベルまで手順書として記載しておきましょう。こうすることで、ミスの可能性を落とすことができます。

 

よくよく考えてみればどれも当たり前のことなのですが、ちゃんとやっておくのは大事だな…と実感した事例でした。

以上、金曜日上映のジョン・ウィックが早く見たいみえないプログラマでした。(これを書いているときは公開前)