WebRelease のストレージのバックアップとリストアの手順
バックアップの重要性
WebRelease をお使いいただく場合には、管理しているコンテンツの喪失を防ぐために、必ず定期的なバックアップを行ってください。
- サーバのストレージシステムが無停止(RAID)であっても、必ず定期的なバックアップを行ってください。コンテンツデータの破損は、ディスク障害だけでなく、アプリケーションや稼働プラットフォームの不具合によって発生することがあります。また、誤って大量にコンテンツを削除してしまった場合や、何者かの侵入を受けてコンテンツが故意に破壊されたような場合への対応も準備しておく必要があります。このような状況に対しては RAID ディスクは無力です。
- バックアップは、必ず複数世代に渡って保管してください。コンテンツの異常に気がつくのに時間がかかった場合など、直近のバックアップではコンテンツを復旧できない可能性があります。
- バックアップは、WebRelease が稼働しているサーバ上には保管しないでください。必ず他のコンピュータか、または、メディアに保管してください。WebRelease が稼働しているサーバ自体が壊れた場合に、バックアップが同じサーバ上に保管されていたのではバックアップを取り出すこともできなくなります。一般的には、メディアに保管しておく方が安全でしょう。機器からイジェクトしたメディア上のデータはハードウェア障害や停電などの影響を受けませんし、ネットワーク経由での攻撃の影響を受けることもありません。
例えば、以下のようなバックアップスケジュールが考えられます。
- 毎日バックアップを作成します。
- 金曜日に作成したバックアップは、1 ヶ月程度以上保管し、古くなったら削除します。
- 毎月 1 日に作成したバックアップは、長期保存します。保存コストとの兼ね合いを考えた上で、適当な保存期間を決めて保管します。
- それ以外のバックアップは 7日間以上程度保管し、古くなったら削除します。
バックアップの作成
WebRelease は下記のディレクトリに全データを保存しています。
~wr2/WebRelease2.storage
このディレクトリのコピーを定期的にとってください。このディレクトリをバックアップすることで、すべてのサイトのコンテンツデータをバックアップできます。また、ユーザ登録情報や、各種設定情報、操作履歴、FTP記録などもバックアップされます。
ごく簡単なバックアップの手順は下記のとおりです。実際には、オペレーティングシステムから cron などで起動されるスクリプトを作成してバックアップしていただくのが良いでしょう。
# su - wr2 wr2% cd ~wr2 wr2% tar cvzf - WebRelease2.storage > /tmp/WebRelease2.storage.backup.tgz
この例では、/tmp/WebRelease2.storage.backup.tgz というファイルにバックアップを作成しています。
完璧なバックアップを確保したい場合には WebRelease を止めた状態でバックアップを作成してください。稼働状態でバックアップを作成すると、極々稀にですが、多少の不整合のあるファイルをバックアップしてしまう可能性があります。
WebRelease の停止・起動の方法につきましては下記を参照してください。
コンテンツ量がさほど大きくはない、例えば、10,000 ページ程度以下のサイトであれば、WebRelease の停止/再起動は、さほど運用上のデメリットにはならないでしょう。そのような場合であれば、毎回 WebRelease を停止してバックアップを作成する運用も良いでしょう。
一方で、コンテンツ量が多い場合には、CPU やディスクの性能に依存することになりますが、一旦停止した WebRelease の再起動にはいくらか時間がかかります。また、再起動後からしばらくは、処理に必要なデータをディスクから読み出さなければならなくなる確率が高くなるので(メモリ上のキャッシュにヒットする確率が下がるので)WebRelease のレスポンスが少し下がります。再起動に伴うこのようなデメリットを避ける必要があれば、下記の要素を勘案の上、WebRelease を稼働させた状態でバックアップをとることについてご判断ください。
- WebRelease の利用者がいない、コンテンツの更新や FTP の実行が発生していない可能性の高い時間帯、例えば、深夜や早朝にバックアップを作成してください。そうすれば WebRelease を止めてバックアップする場合と同様に確実なバックアップを作成することができます。
- バックアップを複数世代管理していただければ、複数の世代に跨がって連続して不整合のあるバックアップが作成されていしまう確率は十分に低いと考えられます。もし、不運にも、ある時刻に作成したバックアップに不整合があっても、その前後のバックアップは正常に利用できると考えて良さそうです。
- 普段は WebRelease を稼働させた状態でバックアップをとりながら1週間に1回程度の割合で、停止した状態でバックアップを作成する、といったレベルの運用が良いのかもしれません。
バックアップからの復旧
バックアップからの復旧は以下の手順で行ってください。
1. WebRelease を止めます
WebRelease のデータを以前のバックアップの状態に戻す場合には、必ず WebRelease を停止した状態でデータの復旧作業を行ってください。
停止まで1 分程かかる場合があります。上記コマンドを実行した後でブラウザから WebRelease2 にアクセスして停止していることを確認してください。
2. 不要になったデータを片付けます
~wr2/WebRelease2.storage をディレクトリごと消します。ひとまずはリネームして保存しておく方がよいでしょう。
# cd ~wr2 # mv WebRelease2.storage WebRelease2.storage.save
3. バックアップしておいたデータを所定の場所に置きます
バックアップしておいたデータを下記の場所に置きます。
~wr2/WebRelease2.storage
例えば、下記のコマンドで、作成しておいたバックアップデータをリストアします。ファイルのパーミッションやオーナを保全するために su - wr2 でユーザ wr2 になり代わった状態で作業すると良いでしょう。
# su - wr2 wr2% cd ~wr2 wr2% tar xvzpf /tmp/WebRelease2.storage.backup.tgz
この例では、/tmp/WebRelease2.storage.backup.tgz に置かれているバックアップからデータを復旧しています。
ディレクトリ WebRelease2.storage 以下のすべてのファイルの所有者は wr2 になっていなければなりません。もし他のユーザが所有者になっていたら、所有者を wr2 に変更してください。chown コマンドで変更できます。同様に、すべてのファイルに対して、wr2 が書き込みができる設定になっている必要があります。ファイルのモードの変更は chmod コマンドで行うことができます。
4. WebRelease を再起動します
システムをリスタート(reboot)して WebRelease を再起動します。または、下記の記述を参考に WebRelease を再起動してください。
WebRelease はバックアップからリストアしたデータで稼働開始します。
サイトのエキスポートによるバックアップ
WebRelease2.storage を OS コマンドでコピーすることでバックアップを作成する以外にも、サイトのエキスポート機能を使用することでも効果的にバックアップを作成できます。
- バックアップファイルを操作した手元の PC のディスク上に取り出すことができます。
- バックアップの単位はサイトになります。従って、リストアもサイト単位で行なえます。
- エキスポートされたファイルは圧縮されています。
- エキスポート時に暗号化を指定することができます。
サイトのエキスポートによりバックアップを作成する場合には、必須ではありませんが、エキスポート時に下記のオプションを指定すると良いでしょう。
- 「サイトアーカイブファイルにサイトスタッフのユーザ登録情報を含める」を ON にします。
- 「サイトアーカイブファイルには「FTP記録」は含めない」は OFF にします。
- 「サイトアーカイブファイルには FTP 先ホストへの接続情報は含めない」を OFF にします。
サイトのエキスポートでバックアップを行なう場合には、サイトのスタッフになっていないユーザのユーザ登録情報がバックアップされない点に注意してください。また、サーバの各種設定、例えば SMTP サーバの設定や proxy サーバの設定など、WebRelease の「システム管理」画面で行なう設定項目がバックアップできません。
エキスポートにより作成したバックアップからの復旧はサイトのインポートで行なってください。