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?
scrub
i replace
wsparcie 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ę.
dev stats
, która może być kolejnym cronjob .