私はbtrfs raid機能を試してみることにしました。 btrfsを設定しました
sudo mkfs.btrfs -m raid10 -d raid10 /dev/sda9 /dev/sdb9 /dev/sdc9 /dev/sdd9
これで、既存のbtrfsパーティション(linux-raidの上)を複製したいと思います。cp -a
スナップショットベースのバックアップが40を超え(保存したい)、複数回空にできるストレージスペースがすべて埋められるため、シンプルは使用できません。
これまでに2つのオプションを見ることができます。
partclone.btrfs -s /path/to/original/fs -o /dev/sda9 -b
まだ必要だと思います。btrfs balance start /dev/sda9
そして
すべきこと:cp -a
できるだけ多くのコンテンツをストレージに増分コピーして使用します。bedup
ファイルの重複を削除して繰り返します。
好ましい(例:ベストプラクティス)アプローチは何ですか?私は最初のものを好む。時間がかかりません。あるいは、その過程で邪悪な「問題」が隠れている可能性があります(もちろん、btrfsが実験的であるという事実を除く)。
最初の問題は間違いありません。ツールがどれほど優れていても、明らかにpartclone.btrfs
マルチデバイスファイルシステムをサポートしていません。 :-(
ベストアンサー1
私は尋ねたエマルジョン2年前。
しかし、私の場合は、1つのデバイスだけをraid0にコピーします。
結局は知りました。離れた。当時はraid0からraid10に変換できませんでしたが、今ではカーネル3.3から変換できます。したがって、このソリューションはついにあなたに役立ちます。
このアプローチの1つの問題は、fsuidをコピーすることです。これは、FSとそのコピーを同じコンピュータにインストールできないことを意味します。fsuid
当時、FSのプロパティを変更するツールはありませんでしたが、今は変更されている可能性があります。
アイデアは、記録できるようにRAWデバイスに書き込み時にコピーレイヤーを追加することです。ただし、編集は他の場所で行われているため、後で削除できます。これは、追加のストレージスペース(外付けドライブなど)が必要であることを意味します。
次に、元のファイルシステムの代わりにCOWのFSをマウントし、FSコピーデバイスを追加してからCOWデバイスを削除します。
書き込み中のコピーには、デバイスマッパーを使用できます。
書き込み領域のワンタイムコピーの場合、ここではループデバイスを使用します。
/dev/sda
次の場所に複製したいとします/dev/sd[bcde]
。
COWバックエンドストレージの作成:
truncate -s 100G /media/STORE/snap-store
losetup /dev/loop0 /media/STORE/snap-store
これで、元のFS(インストールされている場合)を削除し、modprobe -r btrfs
邪魔にならないことを確認し、デバイスの検索を忘れてしまいます。
次に COW デバイスを作成します。
echo "echo 0 $(blockdev --getsize /dev/sda) snapshot /dev/sda /dev/loop0 N 8 | dmsetup create cowed
今は記録された内容を除いて、結局保存され、/dev/mapper/cowed
影響を受けません。/dev/sda
/dev/loop0
/dev/sda
これでインストールできます。
mount /dev/mapper/cowed /mnt
追加デバイスを追加:
btrfs dev add /dev/sd[bcde] /mnt
古いものを削除します。
btrfs dev del /dev/mapper/cowed /mnt
これがすべて終わったら、それを終了してプラグを抜くか、/dev/sda
他のデバイスと同じfsuidを持っていて、それでもbtrfs
混乱する可能性があるので、読み取り専用にすることができます。
もし私が正しく理解したら、最近btrfs-progがあると仮定すれば、次のことができます。
btrfs balance start -d convert=raid10 /mnt
raid10に変換します。理論的には、すべてのデータブロックが少なくとも2つのディスクにコピーされることを保証する必要があります。
まず、ループデバイスの仮想btrfsでテストすることをお勧めします。これはすべてメモリからのものであるため、間違っている可能性があります(編集する前に元の回答を参照してください)。
カーネル3.6以降、btrfsはzfsと同様に送受信を実装します。これはあなたのためのオプションかもしれません。