今回サーバのHDDが死にかけて移行してみて、やっぱりバックアップが必要だと思い立つ。
こう言うときにまず読むのはFreeBSDハンドブック
ここを読むと、伝統的なdumpを使えと書いてある。
うちで実現可能(そう)なバックアップの手段と、評価を書いてみる。
  • FastTrakを使ったRAID
    RAID1とかRAID5を組めば、ハード的な障害には対応できる。
    OS側は何も気にしなくて良いと言うのがメリット。
    ただし、ケース内に複数のHDDを入れる余裕が必要だが、うちのマシンはスペース不足。さらに、同時期に買った同じHDDは壊れる時期も似たようなもんだろうと言う問題がある。
    また、誤ってファイルを消した等の場合には役に立たない。
  • dump/restore
    死んだ時に前と同じ状態に復元するには一番簡単そうな方法。
    復元するのに前と同じサイズ以上の領域が必要だったり、一部だけ取り出すとかの用途には向かない。
    一応差分バックアップも取れる。
  • tar
    一部だけのファイルを復元したいときには便利だが、HDDが死んでしまったときの復元には使いづらい。
  • rsync
    差分バックアップが取りやすい(?)。全部死んだ時に使えないのはtarと同じ。
バックアップは、用途に合わせて複数取るのが理想なので、dumpでフルバックアップと差分バックアップ、tar/rsyncでライブバックアップなんて言うのが良さそうだけど、それだけのバックアップ先を用意するのは大変だ。
うちの場合、余っているのはNASの250G程度。今回買ったHDDは500Gなので、使い切ったらフルバックアップすら取れない計算だ。

まあ、うだうだ言ってやらないよりは、どれか一つでもやっておいた方が良いに決まっているので、世代管理なしのdumpフルバックアップを月1で取ることにする。
  1. サーバ上で、rootのsshの鍵を作る。
    # ssh-keygen -t dsa
    
    cronで実行したいので、パスフレーズはつけない。
  2. でき上がった .ssh/id_dsa.pub を NASの ~root/.ssh/authorized_keys にコピー。サーバからNASに対してパスワードなしでsshログインできることを確認しておく。
  3. 以下のバックアップスクリプトを、サーバの /usr/local/etc/periodic/monthly に置く。
    #!/bin/sh
    
    /sbin/dump -L0uan -f - / | /usr/bin/gzip -2 | /usr/bin/ssh ts-tgld4c dd of=/mnt/array1/backup/root.dump.gz
    /sbin/dump -L0uan -f - /usr | /usr/bin/gzip -2 | /usr/bin/ssh ts-tgld4c dd of=/mnt/array1/backup/usr.dump.gz
    /sbin/dump -L0uan -f - /var | /usr/bin/gzip -2 | /usr/bin/ssh ts-tgld4c dd of=/mnt/array1/backup/var.dump.gz
    
    ts-tgld4c は NASのホスト名。
これで、月に1回NASに /, /usr, /var の内容がフルバックアップされる。一度手動で動作させて確認しておくこと。
世代管理がしたければ、固定のファイル名にしないで日付か何かをつけて、rotateさせるようにすれば良い。
Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/ad4s1a    496M    295M    161M    65%    /
devfs          1.0K    1.0K      0B   100%    /dev
/dev/ad4s1d    124G    4.7G    109G     4%    /usr
/dev/ad4s1e    325G     85G    214G    28%    /var
devfs          1.0K    1.0K      0B   100%    /var/named/dev
をバックアップするのに、約19時間かかり、コピー先の使用量は46GBだった。
periodic monthly が動くのは毎月1日の朝の5時半なので、このままだとバックアップが利用時間にかかってしまうな。crontabをいじった方が良いだろうか。(って、19時間じゃあいつにしても駄目か)

そうそう、リモートとのやりとりに上記の方法でsshを使う場合、サーバの~root/.ssh/id_dsa を別にバックアップしておかないと、fixitで起動したOSからNASにファイルが取りにいけないことを忘れてはいけない。(っつーか忘れてた)
と思ったけど、新しくssh-keygenして、またNASの.ssh/authorized_keysに入れれば問題ないか。

カテゴリ

トラックバック(0)

このブログ記事を参照しているブログ一覧: backup

このブログ記事に対するトラックバックURL: https://www.wizard-limit.net/cgi-bin/mt/mt-tb.cgi/1908

コメントする

このブログ記事について

このページは、falseが2009年3月30日 12:53に書いたブログ記事です。

ひとつ前のブログ記事は「サーバHDD逝く」です。

次のブログ記事は「プリンタ」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

広告

Powered by Movable Type 6.1.1