ZFS: Mirror vs. RAID-Z

14

Planuję zbudować serwer plików przy użyciu OpenSolaris i ZFS, który zapewni dwie podstawowe usługi - będzie celem iSCSI dla maszyn wirtualnych XenServer i będzie ogólnym domowym serwerem plików. Sprzęt, na który patrzę, obejmuje 2x 4-portowe kontrolery SATA, 2x małe dyski rozruchowe (po jednym na każdym kontrolerze) i 4x duże dyski do przechowywania. Umożliwia to jeden wolny port na kontroler do aktualizacji tablicy w dół drogi.

Jestem trochę zdezorientowany, jak skonfigurować dyski pamięci. Pod względem wydajności lustro wydaje się być królem. Trudno mi zrozumieć, jaka byłaby korzyść z zastosowania RAIDZ w porównaniu z tworzeniem kopii lustrzanych. Dzięki tej konfiguracji widzę dwie opcje - dwie lustrzane pule w jednym pasku lub RAIDZ2. Obie powinny chronić przed awariami dysków, 2 i / lub jeden awarii kontrolera ... jedyną zaletą RAIDZ2 byłoby to jakieś 2 dyski może zawodzić. W obu przypadkach pojemność powinna wynosić 50% pojemności, ale pierwsza powinna mieć znacznie lepszą wydajność, prawda?

Inną rzeczą, którą staram się ogarnąć, jest korzyść z lustrzanych tablic z więcej niż dwoma urządzeniami. Jeśli chodzi o integralność danych, jaka ewentualna korzyść miałaby RAIDZ nad lustrem trójstronnym? Ponieważ ZFS utrzymuje integralność plików, co RAIDZ wnosi do tabeli ... czy kontrole integralności ZFS nie negują wartości parzystości RAIDZ?

John Clayton
źródło

Odpowiedzi:

14

Prosta odpowiedź jest taka, że ​​wykonanie kopii lustrzanej czegoś nie wymaga prawie żadnej mocy obliczeniowej - po prostu zapisuje się na dysku po raz drugi. W przypadku macierzy RAID-Z2 musisz obliczyć zupełnie nowy blok parzystości, który mimo że niewielka CAN zapycha procesor, gdy trzeba szybko zapisywać duże ilości danych.

Odbicie lustrzane jest zawsze preferowanym rozwiązaniem dla szybkich danych, jeśli jest to po prostu pamięć masowa bez dużych prędkości zapisu, RAID-Z2 jest dobrą alternatywą, która pozwala umrzeć dowolnemu dwóm dyskom, tak jak się nazywasz.

Inną zaletą jest to, że pule lustrzane można rozszerzyć o więcej urządzeń dublowanych - podczas gdy RAID-Z2 nie można rozszerzyć - chociaż do puli można dodać więcej pamięci RAID-Z2, będą to dwie połączone pule pamięci RAID-Z2 (w efekt), a nie równomiernie podzielone między całe miejsce przechowywania i paski.

dotwaffle
źródło
Ale co w ZFS daje blok parzystości RAIDZ? Czy zapewnia to dodatkową integralność danych poza tym, co już zapewnia ZFS? A może po prostu potrzeba śmierci dwóch dysków? Jeśli to jedyna korzyść niż w scenariuszu trójstronnym, nie ma przewagi RAIDZ nad lustrem, prawda?
John Clayton
1
RAID-Z pozwala umrzeć jednemu dyskowi - jeśli masz 10 dysków, otrzymujesz dane o wartości 9 dysków. Dzięki RAID-Z2 możesz mieć dowolne dwa dyski i umieść dane o wartości 8 dysków. Z lustrem możesz umrzeć w połowie dysków, ale tylko jeden z każdego zestawu dwóch. Podejrzewam, że już o tym wiesz, ale ta niewielka obudowa z 4 dyskami daje dwa rozwiązania awarii dwóch dysków - RAID-Z2 i tryb Mirror. Nie ma żadnych dodatkowych limitów integralności danych, które byłyby „przydatne” w normalnym scenariuszu.
dotwaffle,
Tak więc, aby być jasnym, przewaga RAIDZ nad lustrem jest nieco większa ochrona przed awariami sprzętu? RAIDZ1 i dublowanie z dyskami X są w zasadzie równoważne?
John Clayton,
5
Parzystość RAID-Z jest nadzbiorem wbudowanego sumowania kontrolnego ZFS. Wszystko, co robi suma kontrolna, zapewnia, że ​​dane odczytywane z dysków są poprawne. Został zaprojektowany z myślą o szybkim sprawdzeniu przy niewielkim obciążeniu. Parzystość RAID-Z zapewnia możliwość odbudowywania uszkodzonych danych w przypadku utraty dysku (lub 2 w przypadku RAID-Z2). Ale obliczenia w celu wygenerowania tych danych parzystości wymagają znacznie więcej procesora niż zwykłej sumy kontrolnej bloku i muszą być obliczone na całym pasku, nawet jeśli piszesz tylko blok 4KB.
afrazier
4
@John Clayton: poziom redundancji zależy od konfiguracji pamięci. Możesz utworzyć lustro typu N-way, co oznacza, że ​​twoja pojemność danych jest wielkości jednego dysku, ale możesz stracić dyski N-1 bez utraty danych. Na przykład, jeśli masz lustro trójdrożne, wszystkie 3 dyski zawierają te same dane i możesz stracić 2 dyski bez utraty danych. Różnica polega na tym, że dodanie dysków do lustra N-way zwiększa redundancję (ale twoja pojemność jest zawsze wielkości 1 dysku), a dodanie dysków do raidz2 zwiększa pojemność (ale twoja redundancja to zawsze 2 dyski).
rob
18

RAID-Z eliminuje większość kar za zapis i problemy z integralnością danych, na które narażone są woluminy RAID 5/6, kosztem pewnego czasu procesora. Zazwyczaj systemy mają wolne cykle procesora, więc poświęcenie czasu procesora na poprawę wydajności IO i integralności danych jest dobrym kompromisem w porównaniu do kopii lustrzanej.

Oto szczegółowe wyjaśnienie RAID-Z, które może odpowiedzieć na inne pytania.

Pamiętaj również, że RAID jest rozwiązaniem odpornym na uszkodzenia . Nie wdrażasz RAID-Z2 w celu ochrony przed utratą danych - wykonujesz kopie zapasowe lub replikujesz, aby to zrobić. Wybierz implementację RAID-Z2 vs. RAID-Z lub RAID-10 vs RAID-6 vs. RAID-5, aby utrzymać funkcjonowanie systemu w przypadku awarii sprzętu.

duffbeer703
źródło
1
Muszę udzielić odpowiedzi dotwaffle, ponieważ pomógł mi zrozumieć różnicę techniczną. Świetna rada na temat zamierzonego użytkowania ... to naprawdę sprawiło, że przestałem myśleć.
John Clayton,
1
Ważną rzeczą do zapamiętania jest to, że chociaż RAIDZ eliminuje problemy z karą za zapis , wprowadza problemy z karą za odczyt ze względu na zwiększoną współbieżność dla każdej operacji odczytu
the-wabbit