Czy btrfs nadaje się jako system plików kopii zapasowych?

9

W tej chwili mam dość tradycyjną strukturę systemu plików kopii zapasowych na ext4. Za każdym razem, gdy tworzona jest kopia zapasowa, tworzony jest nowy folder, backup-DATEdo którego pliki są rsync'owane (z linkami utworzonymi przy użyciu --link-destopcji rsync ).

Ponieważ czytałem o bitrotie, chciałbym mieć sumę kontrolną dla wszystkich plików, w sposób przezroczysty. Najwyraźniej ext4 nie może tego zrobić, ale btrfs oferuje obsługę sum kontrolnych danych (a nawet wbudowanego trybu RAID1). Na początek chciałbym użyć btrfsjako „głupi” system plików, który obsługuje sumy kontrolne danych bez korzystania z jego zaawansowanych funkcji, takich jak RAID, migawki podwoluminowe, wysyłanie / odbieranie itp.

Jednak ich wiki tak naprawdę nie budzą zaufania do systemu plików do celów tworzenia kopii zapasowych:

„Chociaż wiele osób korzysta z niego niezawodnie, nadal występują problemy. Powinieneś przechowywać i testować kopie zapasowe swoich danych oraz być przygotowanym na ich użycie”. - Pierwsze kroki

„Czy btrfs jest stabilny? Długa odpowiedź: […] Cokolwiek robisz, zalecamy utrzymywanie dobrych, przetestowanych kopii zapasowych poza systemem (i poza witryną).” - FAQ .

Moim przypadkiem użycia jest utworzenie kopii zapasowej offline. Z tego powodu dysk będzie bardzo mało używany (jak w godzinach) i będzie często podłączony / odłączany (eSATA lub USB 3.0). Niezawodny system plików jest koniecznością. Nie może być gorszy niż ext4 wrt. awarie zasilania, nieczyste wyłączenia itp.

Czy faktycznie zaleca się używanie btrfs jako systemu plików do tworzenia kopii zapasowych? Czy istnieją inne właściwości btrfs, które mogą sprawić, że będzie mniej (lub więcej) odpowiedni?

Lekensteyn
źródło
3
Zobacz unix.stackexchange.com/questions/140360/… . Dzięki BTRFS możesz używać migawek podwieszanych zamiast twardych dowiązań.
StrongBad
1
Dobry artykuł na temat korzystania z btrfs możesz przeczytać tutaj, ale do tworzenia kopii zapasowych poleciłbym ZFS (który znajduje się w systemach BSD i Solaris). Możesz go również użyć na wiki
Kirill-a
@StrongBad niezawodny wskaźnik wolnego miejsca jest zdecydowanie czymś, w czym btrfs tak naprawdę nie przoduje. Pytanie nie dotyczy jednak zastąpienia dowiązań twardych migawkami podwoluminów, ale raczej niezawodności btrfs jako systemu plików dla dysku z kopią zapasową.
Lekensteyn,
@ Kirill-a Zastanawiałem się nad ZFS, ale ponieważ nie jest to główne, jestem niezdecydowany, aby go użyć.
Lekensteyn,
@Lekensteyn Myślę, że migawki podwieszane kwalifikują się jako „Czy istnieją inne właściwości btrfs, które mogą sprawić, że będzie mniej (lub bardziej) odpowiedni jako system plików kopii zapasowych?”
StrongBad

Odpowiedzi:

3

Podam tylko krótką odpowiedź, ponieważ uważam, że jest to przemyślane.

Jeśli przeczytasz główne jądro wiki o komendach btrfs (pod-) , przekonasz się, że istnieją dwie komendy dla:

  1. tworzenie „kopii zapasowej” :btrfs-send
  2. i przywróć :btrfs-restore

Na wszelki wypadek oznacza to, że nie jest to (zaprojektowana) kopia zapasowa, ale system plików migawek, z myślą o wycofaniu w razie potrzeby, nie jako kopii zapasowej, ale jako „elastycznej”.

Dlatego - nie, nie używaj go jako kopii zapasowej - używaj go jako wersji systemu plików, w którym możesz testować rzeczy i wrócić. Nie polegaj na tym.

txomon
źródło
1

Ostatnio miałem problemy z systemem plików btrfs na aktualnym jądrze 4.10.0. System plików został zniszczony w maszynie wirtualnej Virtualbox, ponieważ TRIM nie wydaje się być gdzieś poprawnie zaimplementowany, a AFAIK miał coś wspólnego z indeksami liczb podrzędnych. Po przejściu na VMware system plików był nadal uszkodzony i, co zaskakujące, btrfs checknie był w stanie znaleźć i naprawić błędu. W końcu wróciłem do ext4.

Dobra rzecz: nie straciłem danych. btrfs wydaje się być zawsze spójny przynajmniej do czytania, ale pokazał mi, że wciąż jest daleko od gotowości do produkcji.

W każdym razie na serwerze nadal używam go jako woluminu kopii zapasowej, ponieważ potrzebuję funkcji kopiowania krów do deduplikacji (dokładnie twojego przypadku użycia). Rozmiar danych jest po prostu zbyt duży jak na tradycyjny system plików.

Aktualizacja

Nadal mam system plików na moim serwerze (patrz wyżej), ale zepsuł się zaraz po opublikowaniu go tutaj. Teraz mam duży wolumin kopii zapasowej tylko do odczytu 700G, który powiększyłby się do ~ 7 TB na ext4, jeśli spróbuję skopiować wszystko za pomocą tar|tar. Z powodu braku czasu nie sprawdziłem jeszcze, czy nowsze wersje jądra mogą to obsłużyć. Rzeczywistym problemem jest „przerwanie transakcji”, które pojawia się ~ 2 sekundy po zamontowaniu zapisywalnego i które ponownie instaluje wolumin tylko do odczytu. Pierwotną przyczyną jest prawdopodobnie zepsuta wersja, z btrfs-convertktórej korzystałem wiele lat temu, kiedy tworzyłem ten wolumin, i wciąż ograniczony zestaw funkcji prądu, btrfs checkktóry przynajmniej powinien być w stanie znaleźć wszystkie szkody na woluminie, które w sposób powtarzalny prowadzą do przerwania transakcji lub jakiekolwiek inne problemy, zamiast po prostu powiedzieć, że mój system plików jest zdrowy.

Daniel Alder
źródło