こんにちは、tahara です。
2つのハードディスクで RAID0 になっている外付けハードディスク2台で バックアップ用の Btrfs のファイルシステムを作っていました。
ある日2台ある外付けハードディスクのうち1台の AC アダプタが外れてしまいました。 そして Btrfs 復旧できませんでした。
Btrfs は全く悪くないのですが、RAID0 をやめて4台のハードディスクで ZFS の RAIDZ2 でファイルシステムを作り直しました。
sudo apt-get install zfs-fuse sudo modprobe fuse
ディスクは /dev/disk/by-id の下の名前で指定するのがいいとのことです。
ls -l /dev/disk/by-id lrwxrwxrwx 1 root root 9 8月 12 15:40 usb-BUFFALO_HD-WLU3_R1_1_000001070C58-0:0 -> ../../sdf lrwxrwxrwx 1 root root 9 8月 12 15:40 usb-BUFFALO_HD-WLU3_R1_1_00000107800D-0:0 -> ../../sdh lrwxrwxrwx 1 root root 9 8月 12 15:40 usb-BUFFALO_HD-WLU3_R1_2_000001070C58-0:1 -> ../../sdg lrwxrwxrwx 1 root root 9 8月 12 15:40 usb-BUFFALO_HD-WLU3_R1_2_00000107800D-0:1 -> ../../sdi
RAIDZ2 を作ります。
sudo zpool create tank raidz2 \ /dev/disk/by-id/usb-BUFFALO_HD-WLU3_R1_1_000001070C58-0:0 \ /dev/disk/by-id/usb-BUFFALO_HD-WLU3_R1_1_00000107800D-0:0 \ /dev/disk/by-id/usb-BUFFALO_HD-WLU3_R1_2_000001070C58-0:1 \ /dev/disk/by-id/usb-BUFFALO_HD-WLU3_R1_2_00000107800D-0:1
gzip 圧縮指定でファイルシステムを作り、マウントします。 /etc/fstab とか書かなくていいんですね。
sudo zfs create -o compress=gzip tank/backup sudo zfs set mountpoint=/backup tank/backup
これで日々 rsync してスナップショットです。
sudo crontab -e
0 8 * * * /sbin/zfs snapshot tank/backup@`date +%Y%m%d`
Zfs 簡単でいいです。