2009年07月19日 可用性向上

By | 2009年12月15日

自宅サーバの可用性を向上させる方法として、バックアップがあります。
どのような事態を想定して、バックアップを取得すれば良いかを考えてみます。

バックアップの取得対象としては、以下の2つに大別できる。
1.config(apache,tomcat,postfix等の設定)
2.content(jsp,html,img,DB等)

[configのリカバリ]
■障害1.誤ったconfigを保存してしまった場合。
変更前にバックアップを取得してから設定する。
[障害前]
config修正前にバックアップを取得。
cp -ip httpd.conf httpd.conf.`date +%Y%m%d`
[障害後]
バックアップより戻し、MWの再起動等。
cp -ip httpd.conf.`date +%Y%m%d` httpd.conf

■障害2.configディレクトリを削除してしまった場合。
バックアップサーバから戻す。
[障害前]
稼動サーバにてバックアップを取得。
rsync -avz –delete -e ssh /usr/local/apache Backupサーバホスト名:/backup/usr/local/
[障害後]
バックアップサーバから戻す。
rsync -avz –delete -e ssh /backup/usr/local/apache 稼動サーバホスト名:/usr/local/

[contentのリカバリ]
■障害3.オペミスでcontentを削除してしまった場合。
バックアップサーバから戻す。
[障害前]
稼動サーバにてバックアップを取得。
rsync -avz –delete -e ssh /xxx ホスト名:/backup/xxx
[障害後]
バックアップサーバから戻す。
rsync -avz –delete -e ssh /backup/xxx ホスト名:/xxx

[HDDのリカバリ]
■障害4.HDDが故障した場合。(ミラーリングしている場合)
[障害前]
特に対応なし。
[障害後]
新規HDDに交換。自動でリビルド開始。

■障害5.HDDが故障した場合(ミラーリングしていない or ミラーディスクも故障)
[障害前]
サーバ構築時、CDにHDDのバックアップを取得
[障害後]
新規HDDに交換。CDにて起動
バックアップサーバからcontent,configを戻す。

■参考
1.rsyncを用いてバックアップ
「rsync」は差分だけを転送するので、最初に1回実行しておけば、以降のバックアップは高速。
rsync -avz –delete -e ssh /etc ホスト名:/backup/etc

-r:再帰的にコピー。
-l:シンボリックリンクはそのままコピー。
-p:パーミッションを保持してコピー。
-t:タイムスタンプを保持してコピー。
-g:グループ属性を保持してコピー。
-o:所有者属性を保持してコピー。
-D:デバイスファイルをたもったままコピー。
-a:上記7つを同時に指定したのと同じ意味。
-v:詳細を表示。
-z:データを圧縮して転送。
–delete:コピー元で削除されたファイルは、コピー先でも削除。
-e ssh 暗号化してファイル転送。