Mam 36 * 4 TB HDD SAN Rack. Kontroler RAID nie obsługiwał RAID60 i nie więcej niż 16 dysków twardych w jednej grupie RAID. Postanowiłem więc utworzyć 2 grupy RAID6 z 16 dyskami twardymi lub 4 z 8 dysków twardych. Chcę uzyskać całą pamięć jako jedną partycję.
Co więc może pójść nie tak, jeśli użyję puli ZFS na sprzętowym RAID6? Tak, wiem, że zdecydowanie zaleca się używanie natywnych dysków twardych lub trybu tranzytowego. Ale nie mam tej opcji.
Czy powinienem trzymać się z daleka od ZFS i nalotów na oprogramowanie w tej sytuacji? (Najbardziej interesuje mnie kompresja i migawki)
storage
zfs
storage-area-network
hardware-raid
Severgun
źródło
źródło
Odpowiedzi:
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.
źródło
Dobra, ugryzę ...
To niewłaściwy sprzęt dla aplikacji. Konfiguracja DotHill ma takie same ograniczenia jak HP StorageWorks MSA2000 / P2000, ponieważ tylko 16 dysków może być używanych w jednej grupie macierzy.
ZFS na sprzętowej macierzy RAID lub wyeksportowanej jednostce SAN LUN niekoniecznie stanowi problem.
Jednak rozłożenie jednostek ZFS LUN na nieznane interkonekty w różnych obudowach rozszerzeń może powodować pewne ryzyko.
Poważnie, warto ocenić, czy potrzebujesz całej pamięci w jednym obszarze nazw ...
Jeśli potrzebujesz tego typu pojemności w jednym uchwycie, powinieneś używać dedykowanej obudowy JBOD dołączonej do HBA i ewentualnie wielu jednostek głównych z elastycznym okablowaniem i inteligentniejszym układem.
źródło
Powinieneś BEZPOŚREDNIO podłączyć wszystkie dyski do urządzenia z systemem ZFS. Zdobądź SAS HBA i podłącz dyski do urządzenia obsługującego ZFS (np. Z systemem OmniOS lub SmartOS). Następnie możesz udostępnić przestrzeń za pośrednictwem NFS, SMB, iScsi ...
źródło
Przyczyną ZFS nad woluminami logicznymi HW RAID jest BARDZO ZŁA idea, ponieważ ZFS wymaga dostępu na poziomie bloku, aby właściwie funkcjonować. Tak, będzie można go używać, ale funkcjonalność nie będzie kompletna, dopóki dyski nie zostaną podłączone bezpośrednio do systemu operacyjnego za pośrednictwem karty HBA lub bezpośrednich połączeń SATA. Jednym z przykładów jest to, że w konfiguracji, którą proponujesz, ZFS nie może w rozsądny sposób chronić twoich danych przed zmianami poniższych danych (po drugiej stronie kontrolera HW RAID) i jako taki nie może zagwarantować bezpieczeństwa twoich danych . Jest to jeden z PIERWSZYCH powodów, dla których używany jest ZFS, a ponadto jest on bardzo szybki.
ZFS jest niesamowitą technologią i bardzo ją polecam. Ale musisz ponownie zajrzeć tutaj do swojej struktury, aby móc poprawnie z niej korzystać. Mianowicie ZFS tworzy bezpośrednio woluminy logiczne (vdevs) z dysków.
Wygląda na to, że musisz dokładnie przeczytać, jak działa ZFS, zanim dokładnie zrozumiesz, co zaproponowałeś, w przeciwieństwie do tego, co naprawdę należy zrobić.
źródło