Postanowiłem więc utworzyć 2 grupy RAID6 z 16 dyskami twardymi lub 4 z 8 dysków twardych.
To nie jest najlepszy sposób na robienie rzeczy. Może działać wystarczająco dobrze, ale w zależności od wymagań dotyczących wydajności może nie działać.
Idealny rozmiar macierzy RAID5 / 6 będzie taki, że dokładna wielokrotność ilości danych „obejmujących” macierz odpowiada rozmiarowi bloku systemu plików zbudowanego na niej.
Macierze RAID5 / 6 działają jako urządzenia blokowe - pojedynczy blok danych obejmuje dyski w macierzy, a ten blok zawiera również dane parzystości. Większość kontrolerów RAID zapisuje porcję danych o wielkości dwóch wielkości na każdym dysku w macierzy - której dokładną wartość można skonfigurować w lepszych systemach RAID - a twoja jednostka Dot Hill jest jednym z tych „lepszych systemów RAID”. To jest ważne.
Tak więc potrzeba N x (ilość danych przechowywanych na porcję dysku), aby objąć macierz, gdzie N jest liczbą dysków z danymi. 5-dyskowa macierz RAID5 ma 4 dyski „z danymi”, a 10-dyskowa macierz RAID6 ma 8 dysków z danymi.
Ponieważ gdy dane są zapisywane w macierzy RAID5 / 6, jeśli blok danych jest taki, że jest wystarczająco duży, aby objąć całą tablicę, parzystość jest obliczana dla tych danych - zwykle w pamięci kontrolera - wtedy cały pasek jest zapisywany w dysk. Prosty i szybki.
Ale jeśli część zapisywanych danych nie jest wystarczająco duża, aby objąć całą tablicę, co kontroler RAID musi zrobić, aby obliczyć nowe dane parzystości? Pomyśl o tym - potrzebuje wszystkich danych w całym pasku, aby ponownie obliczyć nowe dane parzystości.
Jeśli więc utworzysz macierz RAID6 z 16 dyskami i domyślną porcją 512 kb na dysk, oznacza to, że potrzeba 7 MB, aby „rozszerzyć” macierz.
ZFS działa ogólnie w blokach 128kb.
Zatem ZFS zapisuje blok 128 kB - do 16-dyskowej macierzy RAID6. W proponowanej konfiguracji oznacza to, że kontroler RAID musi odczytać prawie 7 MB z tablicy i ponownie wyliczyć parzystość dla tych 7 MB. Następnie przepisz całe 7 MB z powrotem na dysk.
Jeśli masz szczęście, wszystko jest w pamięci podręcznej i nie bierzesz wielkiego przeboju wydajności. (Jest to jeden z głównych powodów, dla których pozycja „nie używaj RAID5 / 6” ma takie zdanie - RAID1 [0] nie cierpi z tego powodu.)
Jeśli masz pecha i nie wyrównyłeś poprawnie partycji systemu plików, blok 128 kB obejmuje dwa paski RAID, które nie są w pamięci podręcznej, a kontroler musi odczytać 14 MB, ponownie wyliczyć parzystość, a następnie zapisać 14 MB. Wszystko, aby napisać jeden blok 128kB.
To właśnie musi się wydarzyć logicznie . Istnieje wiele optymalizacji, które mogą podjąć dobre kontrolery RAID w celu zmniejszenia IO i obciążenia obliczeniowego takich wzorców IO, więc może nie być tak źle.
Ale przy dużym obciążeniu zapisywaniem bloków 128 kB w losowych lokalizacjach istnieje naprawdę duża szansa, że wydajność 16-dyskowej macierzy RAID6 z paskiem o wielkości 7 MB będzie absolutnie straszna.
W przypadku ZFS „idealna” podstawowa jednostka LUN RAID5 / 6 dla systemu plików ogólnego przeznaczenia, w którym większość dostępów jest faktycznie losowa, miałaby rozmiar paska równy nawet dzielnikowi 128 kB, taki jak 32 kB, 64 kB lub 128 kB. W takim przypadku ogranicza to liczbę dysków z danymi w macierzy RAID5 / 6 do 1 (co jest nonsensowne - nawet jeśli jest to możliwe do skonfigurowania, lepiej jest po prostu użyć RAID1 [0]), 2, 4 lub 8. Najlepsza wydajność w najlepszym przypadku byłoby użycie paska 128 kB dla macierzy RAID5 / 6, ale najlepszy przypadek nie zdarza się często w systemach plików ogólnego przeznaczenia - często dlatego, że systemy plików nie przechowują metadanych tak samo jak przechowuj dane pliku.
Zalecam skonfigurowanie macierzy RAID5 z 5 dyskami lub macierzy RAID6 z 10 dyskami, przy czym wielkość porcji na dysk jest wystarczająco mała, aby ilość danych obejmująca cały pasek macierzy wynosiła 64 kB (tak, zrobiłem to wcześniej dla ZFS - wiele razy). Oznacza to, że w przypadku macierzy RAID z 4 dyskami danych wielkość porcji na dysk powinna wynosić 16 kB, natomiast w przypadku macierzy RAID z 8 dyskami wielkość porcji na dysk powinna wynosić 8 kB.
Następnie pozwól ZFS korzystać z całej tablicy - nie dziel jej na partycje. ZFS dopasuje się odpowiednio do całego dysku, niezależnie od tego, czy jest to zwykły pojedynczy dysk, czy macierz RAID prezentowana przez kontroler RAID.
W takim przypadku, nie znając dokładnych wymagań dotyczących miejsca i wydajności, zaleciłbym ustawienie trzech 10-dyskowych macierzy RAID6 lub sześciu 5-dyskowych macierzy RAID5 o rozmiarze paska 64 kB, skonfigurowanie kilku gorących części zapasowych i zapisanie czterech dyski do wszystkiego, co pojawi się w przyszłości. Ponieważ coś będzie.
Z pewnością nie używałbym tego systemu dyskowego w trybie JBOD - jest to urządzenie w pełni zgodne z poziomem NEBS 3, które zapewnia znaczną ochronę niezawodności i dostępności wbudowaną w sprzęt. Nie wyrzucaj tego tylko dlatego, że „ZFS !!!!”. Jeśli jest to tani towar, który składa się z części? Tak, tryb JBOD z ZFS obsługujący RAID jest najlepszy - ale to NIE jest sprzęt, który masz. UŻYWAJ funkcji zapewnianych przez sprzęt.