System plików BtrFS. Jak odzyskać dane z macierzy RAID BtrFS
W naszym artykule dowiedziecie się, jak odzyskać dane z btrfs RAID pod Linuksem. Jak go utworzyć, zastąpić uszkodzony dysk i odzyskać utracone dane z uszkodzonej macierzy.
- System plików btrfs
- Utwórzcie punkt montowania
- Jak stworzyć RAID5
- Jak zamontować dysk RAID
- Jak wymienić lub dodać napęd
- Jak naprawić uszkodzony wolumin
- Odzyskiwanie danych z macierzy RAID5 btrfs
- Właściwości systemu plików Btrfs
- Podsumowanie
- Pytania i odpowiedzi
- Komentarze
W systemie Linux, mdadm i lvm są powszechnie używane do tworzenia macierzy RAID, zobaczcie jedne z naszych wideo, aby uzyskać więcej informacji o tych systemach.
Poza narzędziami przedstawionymi w filmie, system plików Btrfs posiada wbudowane wsparcie dla RAID. Posiada on własne narzędzia do budowania i manipulowania macierzami dyskowymi, a wszystkie jego możliwości poznamy bardziej szczegółowo poniżej.
System plików btrfs
Btrfs jest nowym systemem plików, który posiada Copy on Write z wbudowaną obsługą RAID. Istotą tej wspaniałej funkcji jest nie nadpisywanie starych danych podczas kopiowania. Jest to ogromny plus i znacznie ułatwia odzyskiwanie usuniętych plików po awariach. Ponieważ jakiekolwiek niepowodzenie lub błąd w procesie nadpisywania nie będzie miało wpływu na poprzedni stan plików.
Cechy | Opis |
---|---|
Typ systemu plików | Kopiowanie przy zapisie (COW) |
Obsługa migawek | Możliwość tworzenia migawek danych (snapshots) do szybkiego odzyskiwania |
Obsługa RAID | Wbudowana obsługa konfiguracji RAID (RAID 0, 1, 5, 6, 10) |
Kompresja danych | Obsługuje transparentną kompresję danych, aby oszczędzać miejsce |
Integralność danych | Sprawdzanie integralności danych za pomocą hashowania i automatyczne odzyskiwanie |
Defragmentacja | Automatyczna i ręczna defragmentacja danych |
Rozszerzalność | Możliwość dynamicznego rozszerzania rozmiarów systemu plików bez odłączania |
Klonowanie plików | Możliwość szybkiego klonowania plików bez powielania danych |
SP przechowuje metadane oddzielnie od danych systemu plików, i możecie używać różnych poziomów RAID dla tych informacji w tym samym czasie – to jest jego główna zaleta. Celem tego systemu dziennikowania jest również zapewnienie lepszego zarządzania pamięcią masową i zwiększenie bezpieczeństwa integralności danych w systemie Linux.
Zanim zaczniemy używać btrfs, będziemy musieli zainstalować wymagane narzędzia do zarządzania FS, wykonując następujące polecenie:
sudo apt install btrfs-tools
Utwórzcie punkt montowania
A zanim zbudujecie RAID musicie stworzyć katalog z punktem montowania.
Stwórzcie katalog punktu montowania:
Sudo mkdir -v /data
Gdzie "data" jest jego nazwą.
Teraz przejdźmy do tworzenia tablicy.
Jak stworzyć RAID5
Budowanie macierzy nie wymaga koniecznie partycjonowania nośników, SP tego nie wymaga. Można łączyć całe dyski w macierz lub poszczególne partycje, a nawet scalać nośniki z istniejącymi partycjami. Na przykład pokażę, jak utworzyć RAID 5 z 5 dysków.
Aby nie musieć wpisywać cały czas hasła root, użyjcie sudo -i, to spowoduje, że wszystkie polecenia będą wykonywane jako administrator.
Aby zbudować tablicę, wpiszcie w terminalu następujące polecenie:
sudo mkfs.btrfs -L data -m raid5 -d raid5 -f /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf
Gdzie:
L - etykieta lub nazwa systemu plików
Parametr:
d - ustawienie typu RAID5 dla danych.
m - ustawienie typu RAID5 dla metadanych.
f - wymusza utworzenie btrfs nawet jeśli któryś z dysków jest sformatowany w innym FS.
Teraz możecie zamontować dowolny z dołączonych napędów.
Jak zamontować dysk RAID
Użyłam 5 dysków do stworzenia RAID: sdb, sdc, sdd, sde, i sdf. Więc mogę zamontować dane FS w katalogu data używając dysku sdb. Otwórzcie Zarządzanie dyskami i zamontujcie nasz dysk, po czym będzie on dostępny.
Albo możecie zamontować dysk w terminalu.
sudo mount /dev/sdb1 /data
Aby sprawdzić, wpiszcie sudo df -h
sudo df -h
Jak widać, nasza tablica jest zamontowana w katalogu /data
Aby zobaczyć informacje o zajętym i wolnym miejscu w tablicy, wpiszcie:
sudo btrfs filesystem usage /data
A żeby odmontować tablicę, wystarczy wpisać:
sudo umount /data
Jak wymienić lub dodać napęd
Aby wymienić dysk, musicie wpisać btrfs replace w terminalu. Działa on asynchronicznie, co oznacza, że jest wykonywany przyrostowo:
- .
- start do startu,
- cancel - zatrzymać,
- status - i aby wyświetlić status.
Pierwszą rzeczą, którą należy zrobić, jest określenie numeru uszkodzonego dysku:
sudo btrfs filesystem show
Następnie zastąpicie go nowym:
btrfs replace start <urządzenie do usunięcia lub jego ID> <urządzenie do dodania> <ścieżka gdzie btrfs jest zamontowany>
W moim przypadku należy wpisać:
btrfs replace start 3 /dev/sdg
gdzie: 3 to numer brakującego dysku, a sdg to kod nowego dysku.
Jak naprawić uszkodzony wolumin
Aby odzyskać macierz Btrfs, należy użyć wbudowanej opcji montowania - recovery:
sudo mount -o recovery /dev/sdb /mnt
Zacznie się proces odbudowy.
Odzyskiwanie danych z macierzy RAID5 btrfs
Nawet najbardziej solidny i niezawodny system może zawieść. Awaria systemu, awaria dysku lub sprzętu, uszkodzenie metadanych, przypadkowe usunięcie danych i błędna konfiguracja mogą spowodować awarię RAID i utratę cennych danych. Jeśli napotkacie to, użyjcie Hetman RAID Recovery. Jest w stanie przywrócić wszelkie informacje z niedziałających macierzy lub nośników, które były częścią macierzy. Narzędzie odtworzy zniszczony RAID poprzez odczytanie wszystkich znanych informacji krok po kroku, a następnie można skopiować wszystkie znalezione dane.
Podłączcie nośnik do komputera z systemem Windows, użyjcie maszyny wirtualnej lub zainstalujcie jako drugi system.
Program automatycznie przeskanuje przestrzeń dyskową i wyświetli wszystkie możliwe informacje o macierzy.
Jak widać, w naszym przypadku z btrfs RAID, program nie składa nośników w macierz, wynika to ze specyfiki jego budowy, przy czym wszystkie informacje przechowywane są zgodnie z typem RAID.
Aby rozpocząć proces odzyskiwania, należy otworzyć Menedżera dysków, kliknąć prawym przyciskiem myszy dowolny dysk w macierzy i uruchomić szybkie skanowanie.
Każdy z dysków w macierzy zostanie przeskanowany identycznie, ponieważ wszystkie są częścią tej samej macierzy.
Gdy oprogramowanie zakończy analizę, wyświetli pliki, które znajdzie i zapewni podgląd, aby pomóc Wam znaleźć obrazy lub filmy, których szukacie.
Wybierzcie pliki, które chcecie przywrócić i kliknijcie "Przywróć", określcie ścieżkę, gdzie je zapisać i kliknijcie "Przywróć" ponownie. Po zakończeniu, wszystkie pliki zostaną umieszczone w określonym folderze.
Jeśli nie jesteście w stanie znaleźć potrzebnych plików w wyniku szybkiego skanowania, uruchomcie "Pełną analizę". Ten typ analizy trwa dłużej, ale znajdzie wszystkie dane, które pozostają na dysku, nawet dawno usunięte pliki.
Ponieważ jest to piąty RAID, wszystkie informacje pozostaną nienaruszone w przypadku braku jednego dysku, ale w przypadku awarii dwóch dysków niektóre informacje zostaną uszkodzone.
Właściwości systemu plików Btrfs
Btrfs wspiera kompresję danych. Oznacza to, że wszystkie informacje istniejące na nośniku zostaną automatycznie skompresowane. A kiedy dane są dostępne, każdy pojedynczy plik jest automatycznie dekompresowany.
Ta funkcja umożliwia znaczną oszczędność miejsca na dysku, a także oszczędza czas potrzebny na znalezienie oprogramowania do kompresji innych firm. SP obsługuje 3 podstawowe metody kompresji plików - są to zlib, lzo i zstd. Ich główną różnicą jest stopień i szybkość kompresji.
Nasze oprogramowanie obsługuje przywracanie skompresowanych plików przy użyciu dowolnej z tych trzech metod. W interfejsie naszego programu, skompresowane woluminy i pliki są wyświetlane w następujący sposób, i jak widać są one podświetlone na inny kolor.
Kolejną ważną zaletą jest tworzenie subwoluminów (podwoluminów). Mówiąc prościej, na jednym dysku można utworzyć 3 różne dyski (subwolumeny). Te podwolumeny są zdolne do samorozszerzania się w wolnej przestrzeni innego wolumenu. Funkcja ta umożliwia rozszerzenie jednego dysku kosztem drugiego bez kompresji i przenoszenia danych w razie potrzeby. Sposób wyświetlania tych podzespołów w oprogramowaniu jest następujący: są to dyski znajdujące się wewnątrz dysku głównego.
Tak samo oprogramowanie pokazuje foldery z zrzutami migawkowymi.
Aby utworzyć podtematy należy użyć polecenia:
btrfs subvolume create /mnt/btrfs/my-subvolume
Aby wyświetlić listę podzbiorów na tym dysku, wykonajcie:
btrfs subvolume list /mnt/btrfs
Aby zamontować subtom:
mount -o subvol=my-subvolume /dev/sdd2 /mnt/btrfs2
gdzie sdb1 jest kodem dysku.
Podsumowanie
Istnieje niewielka liczba narzędzi do odzyskiwania danych, które mogą odczytać btrfs RAID. Wybierając jeden z nich, należy pamiętać, że informacje mogą zostać utracone po drodze, więc należy rozważyć stworzenie obrazu tablicy i skanowanie z obrazu. Jednak najlepszym rozwiązaniem, aby uchronić się przed utratą ważnych danych, jest regularne tworzenie ich kopii zapasowych.
Możecie sprawdzić, czy tak jest, używając polecenia: # btrfs subvolume list -a /mountpoint
Aby usunąć subwolumin, należy wykonać polecenie # btrfs subvolume delete emptydir
Najpierw zaktualizujcie swoje jądro do najnowszej dostępnej wersji i spróbujcie ponownie zamontować. Jeśli macie jądro w systemie plików btrfs, być może będziecie musiały znaleźć dysk odzyskiwania z najnowszym jądrem.
Po drugie, spróbujcie zamontować z -o recovery lub -o ro lub -o recovery,ro (używając nowego kernela). Jedna z nich może z powodzeniem działać.
Wreszcie, gdy w logach jądra pojawia się coś takiego,
? replay_one_dir_item+0xb5/0xb5 [btrfs]
? walk_log_tree+0x9c/0x19d [btrfs]
? btrfs_read_fs_root_no_radix+0x169/0x1a1 [btrfs]
? btrfs_recover_log_trees+0x195/0x29c [btrfs]
? replay_one_dir_item+0xb5/0xb5 [btrfs]
? btree_read_extent_buffer_pages+0x76/0xbc [btrfs]
? open_ctree+0xff6/0x132c [btrfs]
to powinieneście spróbować użyć btrfs rescure zero-log
Według projektu. btrfs fi defrag pracuje z pojedynczym obiektem systemu plików przekazanym do niego, takim jak plik. Uruchomiony na katalogu defragmentuje metadane zawarte w podsekcji zawierającej katalog, a nie zawartość katalogu.
Jeśli chcecie zdefragmentować zawartość katalogu, powinniście użyć trybu rekurencyjnego z flagą -r