ルーズなミラーリング

私のマシンはノートパソコンなどを除けば、HDDはほとんどの場合、二重化している。個人の環境とはいえ、HDDに保存されているファイルの多くは消えては困る、もしくは消えてもらいたくないものである。家族の写真なども、その一つだろう(昔の写真も全部スキャナで取り込んだのでジイさんの大正時代の写真から全てHDDに入っている)。今ではHDDも安くなったので、HDDのバックアップを取るのにテープ装置など追加するよりHDDをもう一台買ってしまった方が安上がりだ。基本的には同じモデルのHDDを2台、場合によっては3台まとめて購入する。(重要なデータを保存しているHDDは3台購入して、2台は常時運用のため、1台は半年毎にフルバックアップをとって貸金庫に保管している。)
例えば、現在サーバとして使っているマシンは以下の様なパーティション構造をしている。

/dev/sda と /dev/sdb は全く同じモデルのでHDDで各パーティションも全く同じ大きさにしてある。sdaは通常使っているHDDで/、SWAP、/home、/bootにマウントしている。sdbは普段はマウントしていない。必要に応じて/secondary/の下のサブディレクトリにマウントして利用する。基本的にsdaの各パーティションをsdbの各パーティションへddコマンドでイメージーコピーする。つまりミラーディスクになっている。ただし、RAIDミラーでなく、ソフトウェア的に適宜バックアップを行なうルーズなミラーリング(loosed mirroring)にしている。
ちなみに、sda1、sda2、sdb1、sdb2は全く同じブロック数のパーティションであり、相互にddコマンドでイメージバックアップが取れるようになっている。sda1(ルートファイルシステム)は適宜sdb1やsdb2にバックアップもしくは"退避"できる(ddコマンドで約4分弱である)ので、カーネルのバージョンアップなどで一時的に試してみたい時には重宝する。
これが私の使っている環境である。ルートファイルシステムは容量も小さいのでddでイメージバックアップとれば良いが、問題は/homeファイルシステムである。470MBあるのでddを使ったパーティション全体のイメージバックアップでは約4時間掛かってしまう。既に150GBは使っているのでファイル単位でフルバックアップでも1時間以上かかってしまう。そこで、増分バックバックアップが必要になる。しかも、頻繁にファイルの削除やリネームがあるので、単なる増分バックアップではなく同期バックアップが必要になってくる。