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-DATE
do którego pliki są rsync'owane (z linkami utworzonymi przy użyciu --link-dest
opcji 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ć btrfs
jako „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?
źródło
Odpowiedzi:
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:
btrfs-send
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.
źródło
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 check
nie 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, zbtrfs-convert
której korzystałem wiele lat temu, kiedy tworzyłem ten wolumin, i wciąż ograniczony zestaw funkcji prądu,btrfs check
któ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.źródło