gmirror の再構築のアルゴリズム2008年04月06日 12時14分13秒

gmirror をバックアップに用いられないかと思って実験をしてみた。携帯用のハードディスクをバックアップしたいので、本来の様に複数のディスクを常に付けられない。そこで予備のディスクを付けたり外したりを繰り返せればと思った次第だ。

man gmirror を見ると、deactivate && activate をした時に、同期の必要がなければ、何も行なわれないとあった。もしかしたら、賢い同期のアルゴリズムでもあり、同期が必要なときでも、最小限に抑えてくれたらと淡い期待を抱いてのものだ。

実験とソースコードを読んだ結果だと、残念ながらこの様な用途には使えなかった。 gmirror は複数のディスクが既に同期されている場合には、deactive なディスクを有効にしても何も起こらない。しかし、手動で rebuild を指定したり、自動で再構築が始まると、全てのデータをコピーする事になる。

再構築のアルゴリズムは単純で、有効になっているディスクを先頭から順次再構築の対象にコピーしていく。その為、 ほとんど一緒の内容だろうが、まっさらだろうが関係ない。rsync などの様に差分を順次コピーしていくような形のバックアップには使えない。

ファイルシステムを介したバックアップだと、結構時間が掛かるので、デバイスレベルで出来ればと思ったが無理だったようだ。