Benzer bir soruyu 2 yıl önce sordum .
Ancak benim durumumda, raid0'a sadece tek bir cihaz kopyalamayı planlıyordum.
Sonunda bir çözüm buldum . O zaman raid0'dan raid10'a dönüşemediniz, ancak çekirdek 3.3'ten beri şimdi yapabilirsiniz. Böylece bu çözüm sizin için işe yarayabilir.
Bu yaklaşımla ilgili bir sorun, fsuidi kopyalamasıdır. Bu, hem FS'yi hem de kopyasını aynı makineye monte edemeyeceğiniz anlamına gelir. O zaman, fsuid
bir FS'nin değiştirilmesi için bir araç yoktu , ama şimdi değişmiş olabilir.
Fikir, yazılabilmesi için orijinal cihazın üstüne bir üzerine yazılır kopyalama katmanı eklemektir, ancak herhangi bir değişiklik daha sonra atabileceğiniz başka bir yerde yapılır. Bu, ek depolama alanına ihtiyacınız olduğu anlamına gelir (örneğin harici bir sürücüde).
Ardından, orijinal yerine bu COW'd FS'yi takın, FS kopyası için aygıtları ekleyin ve COW aygıtını çıkarın.
Yazarken kopyalama için aygıt eşleştiriciyi kullanabilirsiniz.
Yazma alanındaki tek kullanımlık kopya için burada bir döngü cihazı kullanıyorum.
En klonlamak istediğiniz diyelim /dev/sda
üzerine /dev/sd[bcde]
:
COW arka mağazasını oluşturun:
truncate -s 100G /media/STORE/snap-store
losetup /dev/loop0 /media/STORE/snap-store
Şimdi monte edilmişse FS kaynağını sökün modprobe -r btrfs
ve cihazın karışmayacağından emin olmayacağından emin olun.
Ardından COW'd cihazını yapın:
echo "echo 0 $(blockdev --getsize /dev/sda) snapshot /dev/sda /dev/loop0 N 8 | dmsetup create cowed
Şimdi /dev/mapper/cowed
, /dev/sda
ona yazılan her şeyin sonuçlanacak /dev/loop0
ve /dev/sda
dokunulmayacağı dışında.
Şimdi monte edebilirsiniz:
mount /dev/mapper/cowed /mnt
Diğer cihazları ekleyin:
btrfs dev add /dev/sd[bcde] /mnt
Ve eskisini kaldırın:
btrfs dev del /dev/mapper/cowed /mnt
Bittiğinde /dev/sda
, diğerleriyle aynı fsuid olduğu için btrfs
hala kapatıp kapatabilir veya fişini çekebilir veya okuyabilirsiniz .
Şimdi, doğru anlarsam, son btrfs-prog'a sahip olduğunuzu varsayarsak, aşağıdakileri yapabilmeniz gerekir:
btrfs balance start -d convert=raid10 /mnt
Baskın'a dönüştürmek için 10. Teorik olarak, bu her veri yığınının en az 2 disk üzerine kopyalandığından emin olmalıdır.
Kesinlikle bellekte olan her şeyden önce döngü cihazlarda bir kukla btrfs üzerinde test yapmanızı ve yanlış aldım (örneğin benim düzenlemeden önce ilk cevap bakın) tavsiye ederim.
Çekirdek 3.6'dan bu yana, btrfs'nin zfs'deki gibi bir gönderme / alma uyguladığını unutmayın. Bu sizin için bir seçenek olabilir.