Jak zmienić nazwę podobjętości BTRFS?

24

Mam system plików BTRFS z zestawem podwoluminów. Jak na razie dobrze. Muszę zmienić nazwę podobjętości, niestety btrfsprogram nie pozwala mi zmienić nazwy podobjętości. Wyszukiwanie w Google przyniosło pewne wyniki, jeden powiedział, że mogę mv, a drugi powiedział, że mogę po prostu zmienić snapshotnazwę i usunąć starą objętość. Przed awarią partycji i ponownym załadowaniem jej z kopii zapasowej (jest dość duża), moje pytanie brzmi:

  • Jaki jest obecnie najlepszy sposób zmiany nazwy podobjętości?
  • Czy to jest w porządku mv, czy może unieważni niektóre struktury wewnętrzne?
  • Czy zrobienie nowej migawki i usunięcie starej podobjętości jest na dobrej drodze, czy ma to jakieś wady?

Wiem, że wszystko jest jeszcze eksperymentalne, ale dla moich celów działa całkiem dobrze (do tej pory mam kopie zapasowe na każdy dzień).

hochl
źródło
1
Cieszę się, że btrfs działa dobrze dla Ciebie. Do tej pory też działa dobrze dla mnie. Bez problemów.
MountainX dla Moniki Cellio

Odpowiedzi:

16

Po prostu mvto. Jest to zalecany sposób w dokumentacji społeczności Ubuntu .

Aby wyjaśnić, dlaczego jest to właściwy sposób, oto cytat z przewodnika sysadmin btrfs:

Migawki

Migawka jest po prostu podobjętością, która dzieli swoje dane (i metadane) z innymi podobjętościami, wykorzystując możliwości COW btrfs. Po utworzeniu migawki [zapisywalnej] nie ma różnicy w stanie między oryginalną podobjętością a nową podobjętością migawki. Aby przywrócić migawkę, odmontuj zmodyfikowane oryginalne podwolumeny i zamontuj migawkę na swoim miejscu. W tym momencie oryginalne podwolumny mogą zostać usunięte, jeśli jest to pożądane. Ponieważ migawka jest podwoluminem, możliwe są również migawki migawek.

MountainX dla Moniki Cellio
źródło
8

jest kilka ważnych rzeczy do odnotowania. Nazwy:

btrfs Subvolume - niezależny insidesystem plików kontenera danych . Jest reprezentowany jako katalog istniejącego FS. Jeśli utworzysz nowe podwolumny, będzie ono puste, gotowe do użycia logicznego bloku danych w systemie plików. Bardzo wygodny w użyciu, gdy dane powinny być logicznie rozdzielone, np. Różne maszyny wirtualne lub różni klienci w różnych podwoluminach. Pozwala to na very fastusunięcie wszystkich logicznych bloków danych za pomocą tylko komendy usuwania objętości podrzędnych.

btrfs Snapshot - kopia existingpodobszaru wraz ze wszystkimi jego danymi w momencie wykonania migawki os. Może być używany jako operacyjna kopia zapasowa do przywracania ustawień lub zmian, np. Wykonaj migawkę podwoluminów, wprowadź zmiany (VM lub dane), sprawdź, czy wszystko jest w porządku, po pewnym okresie karencji usuń migawkę. Ważne, aby pamiętać: migawki mogą być tylko do odczytu ( -rprzełącznik), a zatem mogą być używane jako bloki przyrostowe zmian FS i ewentualnie przenoszone do absolutnie innego BTRFS!

Bieżące ograniczenia BTRFS (30.12.2016):

Kopiowanie lub przenoszenie danych między podobjętościami, np. mv dir1/dataset1 dir_subvolume1/Produkuje wszystkie rzeczywiste io, aby skopiować dane do innego podobjętości, aw przypadku przeniesienia usunąć z pierwotnego. I bardzo wydajne kopiowanie ton danych po prostu przez tworzenie odniesień, a tym samym korzystanie z funkcji COW w BTRFS:

cp -a --reflink=always dir1/dataset1 dir_subvolume1/

i w razie potrzeby:

rm -rf dir1/dataset1

Tylko do odczytu Migawka Subvolume może zostać zmieniona (przeniesiona mv) na istniejącym poziomie katalogu, ale nie może zostać zmieniona / przeniesiona na inny poziom podkatalogu. na przykład mv /btrfs/subvol_snap1 /btrfs/.snaphotsnie jest możliwe, produkuje niewiele wyjaśnił błąd: mv: cannot move 'subvol_snap1' to '.snapshots/subvol_snap1': Read-only file system. Aby móc przenieść taką migawkę, musisz utworzyć nową migawkę tylko do odczytu istniejącej migawki tylko do odczytu w nowej preferowanej lokalizacji, a następnie usunąć starą:

btrfs sub snap -r /btrfs/subvol_snap1 /btrfs/.snaphots/subvol_snap1
btrfs sub del /btrfs/subvol_snap1

Dla łatwiejszego grania na żywo:

btrfs sub list /btrfs

Mam nadzieję, że pozwoli to zaoszczędzić mnóstwo czasu wszystkim nowym fanom btrfs :)

Arunas Bartisius
źródło
4

Jeśli chcesz zmienić nazwę woluminu głównego na zagnieżdżoną podobjętość, musisz zrobić jej migawkę, a następnie zrobić a, find $ROOT_VOL -xdev -deleteaby usunąć poprzednią zawartość woluminu głównego. Odwrotna manipulacja (zmiana nazwy objętości podrzędnej na wolumin główny) nie wydaje się możliwa.

Tobu
źródło