Poprosiłem podobne pytanie 2 lata temu.
Jednak w moim przypadku planowałem skopiować tylko jedno urządzenie na raid0.
W końcu znalazłem rozwiązanie . W tym czasie nie można było przekonwertować z raid0 na raid10, ale tak to wygląda od jądra 3.3, teraz możesz. To rozwiązanie może Ci w końcu zadziałać.
Problem z tym podejściem polega na tym, że kopiuje fsuid. Co oznacza, że nie możesz zamontować zarówno FS, jak i jego kopii na tym samym komputerze. W tym czasie nie było narzędzia do zmiany fsuid
FS, ale mogło się to teraz zmienić.
Chodzi o to, aby dodać warstwę kopiowania przy zapisie na oryginalnym urządzeniu, aby można ją było zapisać, ale każda modyfikacja jest wykonywana w innym miejscu, które można później odrzucić. Oznacza to, że potrzebujesz dodatkowej przestrzeni dyskowej (na przykład na dysku zewnętrznym).
Następnie zamontuj ten COW'd FS zamiast oryginału, dodaj urządzenia do kopii FS i usuń urządzenie COW.
Do kopiowania przy zapisie możesz użyć mapera urządzeń.
Do jednorazowego kopiowania w obszarze zapisu używam tutaj urządzenia pętlowego.
Powiedzmy, że chcesz sklonować /dev/sda
na /dev/sd[bcde]
:
Utwórz sklep COW back:
truncate -s 100G /media/STORE/snap-store
losetup /dev/loop0 /media/STORE/snap-store
Teraz odmontuj FS źródłowy, jeśli jest zainstalowany, i modprobe -r btrfs
upewnij się, że nie będzie przeszkadzał i sprawi, że zapomni o skanowaniu urządzenia.
Następnie wykonaj urządzenie COW'd:
echo "echo 0 $(blockdev --getsize /dev/sda) snapshot /dev/sda /dev/loop0 N 8 | dmsetup create cowed
Teraz /dev/mapper/cowed
jest tak, /dev/sda
że wszystko, co do niej napisane, skończy się /dev/loop0
i /dev/sda
pozostanie nietknięte.
Teraz możesz go zamontować:
mount /dev/mapper/cowed /mnt
Dodaj inne urządzenia:
btrfs dev add /dev/sd[bcde] /mnt
I usuń stary:
btrfs dev del /dev/mapper/cowed /mnt
Kiedy to się skończy, możesz chcieć zamknąć i odłączyć wtyczkę lub zrobić /dev/sda
tylko do odczytu, ponieważ ponieważ ma ten sam fsuid jak inne, btrfs
nadal może z tym popsuć.
Teraz, jeśli dobrze rozumiem, zakładając, że masz najnowszą wersję btrfs-prog, powinieneś być w stanie wykonać:
btrfs balance start -d convert=raid10 /mnt
Aby przekonwertować na raid10. Teoretycznie powinno to zapewnić, że każdy fragment danych zostanie skopiowany na co najmniej 2 dyskach.
Zdecydowanie zaleciłbym, aby najpierw wykonać testy na atrapie btrfs na urządzeniach pętlowych, ponieważ wszystko pochodzi z pamięci i mogłem się pomylić (patrz na przykład moja pierwsza odpowiedź przed edycją).
Zauważ, że ponieważ jądro 3.6, btrfs implementuje wysyłanie / odbieranie trochę jak w ZFS. To może być dla ciebie opcja.
Pomysł Stephane mogą być wykonywane przez btrfs wbudowanych narzędzi (dlatego jest chłodno): make stare btrfs urządzenie ziarno poprzez
btrfstune -S 1 /dev/device
dodaj urządzeń, wyjąć urządzenie z nasion, zrobićbtrfs balance start
. Urządzenie inicjujące to urządzenie tylko do odczytu, które może być częścią systemu plików do odczytu.źródło
Próbowałem zastosować się do sugestii @ ignis, by użyć seedowania, ale miałem z tym problemy; system zgłosił błąd podczas próby usunięcia urządzenia nasiennego i nie mogłem tego rozwiązać. Potem odkryłem, że istnieje (teraz - btrfs-progs v3.19-64-g19a806f, może nie wcześniej) polecenie:
co sprawiło, że klonowanie mojego istniejącego systemu plików btrfs (znajdującego się w woluminie logicznym LVM) na nowej partycji było unikalne. Pamiętaj, że w maju 2015 r. Nie działa w przypadku profili RAID5 / 6 - sprawdź stronę podręcznika, aby uzyskać pełne informacje.
źródło
btrfs replace start
do tworzenia kopii zapasowych !! To psuje drzewo urządzeń i czyni dysk niemożliwym do zamontowania! Nie mogłem odzyskać od błędów, więc przywróciłem kopię obrazu z innego urządzenia blokowego za pomocą narzędzia dd- tool. Używaj tylkobtrfs replace
do migracji dysku końcowego.Opcja 1 - Kopiowanie danych, a następnie zmiana UUID
Upewnij się, że partycja źródłowa jest odmontowana i nie zostanie automatycznie zamontowana.
Użyj albo
dd
(wolno, głupio) lubpartclone.btrfs -b -s /dev/src -o /dev/target
Służy
btrfstune -u
do zmiany UUID po kopiowaniu i przed montażem.Ostrzeżenie utrata danych : Do NIE próbować (auto) zamontować albo oryginał lub kopia aż UUID zmieniła
Opcja 2 -
btrfs-clone
Nie próbowałem osobiście
btrfs-clone
, ale ma to na celu sklonowanie istniejącego systemu plików BTRFS do nowego, klonując kolejno każdą podobjętość.źródło