Btrfs: RAID 1 na urządzeniach 3+

10

Obecnie mam partycję Btrfs z czterema urządzeniami: trzema dyskami 3 TB i 4 TB. Dane i metadane to RAID 10, więc mam 6 TB przestrzeni użytkowej, która jest prawie pełna. Spodziewałem się, że obsługa RAID 5 w Btrfs będzie dojrzała do momentu zapełnienia pamięci, ale najwyraźniej nie jest to priorytet.

Moje pytanie brzmi: czy istnieje powód, aby preferować RAID 10 niż RAID 1 ? Wiem, że prawdziwy RAID 1 na moim obecnym sprzęcie powinien dać mi 3 TB przestrzeni użytkowej z 4 kopiami każdego bloku, ale Btrfs najwyraźniej nie zachowuje się w ten sposób. Z Btrfs FAQ :

btrfs najpierw łączy wszystkie urządzenia w pulę pamięci, a następnie kopiuje porcje podczas tworzenia danych pliku. RAID-1 jest obecnie definiowany jako „2 kopie wszystkich danych na różnych urządzeniach”. Różni się to od MD-RAID i dmraid tym, że wykonują dokładnie n kopii dla n urządzeń. W btrfs RAID-1 na trzech urządzeniach 1 TB otrzymujemy 1,5 TB użytecznych danych. Ponieważ każdy blok jest kopiowany tylko na 2 urządzeniach, napisanie danego bloku wymaga zapisania dokładnie 2 urządzeń; czytanie może być wykonane tylko z jednego.

I od Jensa Erata na temat przepełnienia stosu :

Btrfs dystrybuuje dane (i jego kopie RAID 1) blokowo, dzięki czemu bardzo dobrze radzi sobie z dyskami twardymi o różnych rozmiarach. Otrzymasz sumę wszystkich dysków twardych podzieloną przez dwa - i nie musisz zastanawiać się, jak je połączyć w pary o podobnych rozmiarach.

Jeśli więcej niż jeden dysk ulegnie awarii, zawsze istnieje ryzyko utraty danych: RAID 1 nie może poradzić sobie z utratą dwóch dysków jednocześnie. W powyższym przykładzie, jeśli zginą niewłaściwe dwa dyski, zawsze tracisz dane.

Czy to oznacza, że ​​ponowne zrównoważenie z RAID 10 na RAID 1 da mi dodatkowe 500 GB danych (6,5 TB zamiast 6 TB) z powodu napędu 4 TB? Czy jest jakiś powód, dla którego mam trzymać się RAID 10?

Mikkel
źródło
1
BTRFS RAID-5 jest (choć nadal eksperymentalny) właściwie dość stabilny, a nawet wiele typowych scenariuszy odzyskiwania danych działa w bieżącej wersji (bez awarii). Prawdopodobnie powinieneś od czasu do czasu szorować, aby upewnić się, że Twoje dane są nadal poprawne, ale warto spróbować. Istnieje możliwość konwersji z RAID-1 (0) na RAID-5.
basic6,
@ basic6 Dobrze wiedzieć, dziękuję. Szukałem, że nie tak dawno temu i zobaczyłem, że scrubi replacewsparcie zostało dodane jako 3,19, ale ludzie wciąż narzekają na brak alertów awarii urządzenia. Mam skonfigurowane crony do cotygodniowych operacji scrub i cotygodniowych / miesięcznych autotestów SMART, więc powinienem być w stanie wychwycić te problemy. Dam temu szansę.
Mikkel,
Okresowe (cotygodniowe lub miesięczne) operacje czyszczenia są ważne, jeśli program wykryje błąd i wystąpi błąd, ponieważ nie może odczytać danych z dysku, zwiększy liczbę błędów. Sprawdź liczbę błędów za pomocą dev stats, która może być kolejnym cronjob .
basic6

Odpowiedzi:

5

Tak, dostajesz dodatkowe 500 GB. Zauważ, że określenie dostępnej przestrzeni w btrfs pozostaje nieuchwytne. Ponadto: spójrz na kalkulator zużycia dysku btrfs .

Na twoje drugie pytanie: Możesz stracić trochę wydajności na swojej tablicy. Oczywiście Twoje dane są równie bezpieczne w obu konfiguracjach RAID. Rozważając wydajność, możesz rzucić okiem na następujące testy: kernel.org , phoronix.com .

Czy może próbowałeś już dokonać konwersji na RAID 1? Jeśli tak: jakie są twoje ustalenia?

Laura
źródło
1
To nie daje odpowiedzi na pytanie. Aby skrytykować lub poprosić autora o wyjaśnienie, zostaw komentarz pod jego postem - zawsze możesz komentować własne posty, a gdy będziesz mieć wystarczającą reputację , będziesz mógł komentować każdy post .
DavidPostill
Jednak, aby odpowiedzieć na twoje pytanie, przekonwertowałem i wynik wydaje się zgodny z moimi oczekiwaniami. Btrfs robi złą robotę wskazujący rzeczywistą dostępnego miejsca na dysku, ale widać na wyjściu z btrfs fi shże dodatkowa przestrzeń na dysku 4 TB jest wykorzystał, a (2,83 + 1,93 + 1,93 + 1,95) /2~=4.30 zgodnie z oczekiwaniami. Niedawno miałem awarię dysku i pomyślnie przebudowałem bez utraty danych, więc mogę z pierwszej ręki potwierdzić, że redundancja jest nienaruszona.
Mikkel
Przepraszam, moja odpowiedź była niejasna @david. Próbowałem odpowiedzieć na dwa pytania w dwóch ostatnich wierszach oryginalnego postu. Dodatkowo wskazałem zakres niepewności (który wydaje się nieodłączny dla btrfs) i podałem moje źródła w celach informacyjnych. Rzeczywiście zadałem też pytanie autorowi, aby inni mogli się uczyć na podstawie jego ustaleń. Zrobiłem to w ramach odpowiedzi z powodów, które już wyjaśniłeś. Rozważę twoje komentarze następnym razem, gdy odpowiem na pytanie dotyczące wymiany stosów.
Laura
Być może nie jest to najbardziej pewna odpowiedź, ale moje wyniki wskazują, że twoje założenia są prawidłowe, więc akceptuję to. Nie jestem jednak pewien co do twojego komentarza na temat różnic w wydajności. Z pewnością dotyczy to sprzętowej macierzy RAID 1 vs 10, ale nie jestem pewien, czy Btrfs widzi wzrost wydajności z macierzy RAID 10. Co więcej, to, co nazywa RAID 1, nadal jest rozłożone na wiele urządzeń, więc jest bardziej zbliżone do RAID 10 niż prawdziwa RAID 1. Gdybym przeczytał twoją odpowiedź przed konwersją, zrobiłbym to przed i po testach porównawczych, ale nie spędzam kolejnego tygodnia na konwersji tablicy na RAID 10 i wstecz.
Mikkel
Cóż, jest ta strona , która pokazuje marginalne korzyści dla RAID 10 w porównaniu z RAID 1, niosąc zastrzeżenie na górze, że testy porównawcze mają 7 lat.
Mikkel
0

Nie używaj btrfs raid 5 lub 6, implementacja jest pełna błędów, uruchom zfs, jeśli chcesz.

Dzięki raid10 zyskasz prędkość.

Optymalną rzeczą do zrobienia jest utworzenie partycji 3 TB na dysku 4 TB (upewnij się, że wszystkie 3 są dokładnie tego samego rozmiaru), połącz je w RAID10, który będzie miał 6 TB wolnego miejsca. Użyj dodatkowej 1 TB na 4 TB dysku dla / boot (i tak musi to być vat, jeśli chcesz użyć efistub i uniknąć gruba lub innego programu ładującego, który przyspieszy twój rozruch), zamień (możesz użyć całkiem duży, optymalny byłby mały ZRAM Swap (4 GB działa dobrze z ramem 32 GB, 2 GB powinno wystarczyć z 16 GB, jeśli masz mniej niż 16 idk, jeśli warto i prawdopodobnie powinieneś zaktualizować) używane najpierw (ustaw priorytet na najwyższy) przy użyciu zstd i tyle strumieni kompresji, ile masz rdzeni / wątków ...

orange_juice6000
źródło