Najlepsze praktyki ZFS ze sprzętowym RAID

30

Jeśli zdarzy się, że dysponujemy sprzętem klasy serwerowej, czy kiedykolwiek zaleca się uruchamianie ZFS na sprzęcie RAID1 lub jakimś innym? Czy należy wyłączyć sprzętową macierz RAID i uruchomić ZFS na a mirrorlub raidz zpoola?

Czy po wyłączeniu funkcji sprzętowej macierzy RAID kontrolery SATA2 i SAS oparte na macierzy RAID mogą ukrywać błędy odczytu i zapisu w mniejszym stopniu niż kontrolery RAID inne niż sprzętowe?

Jeśli chodzi o serwery, których nie można dostosowywać, jeśli występuje sytuacja, w której sprzętowy kontroler RAID jest efektywnie neutralny pod względem kosztów (lub nawet obniża koszty oferty wstępnie zbudowanych serwerów, ponieważ jego obecność zwiększa prawdopodobieństwo, że firma hostingowa zapewni komplementarne IPMI dostęp), czy w ogóle należy tego unikać? Ale czy należy tego szukać?

cnst
źródło
2
@ShaneMadden, pytania są podobne, jednak moje pytanie już pochodzi z perspektywy raidu sprzętowego, który jest zły pod względem ZFS, i pytam, jak źle jest; należy również wziąć pod uwagę, że zaakceptowana odpowiedź na powiązane pytanie w ogóle nie dotyczy mojego pytania; moje pytanie bardziej przypomina pytanie uzupełniające do pytania, które połączyłeś.
cnst 10.10.13
„ZFS na wierzchu sprzętowego tworzenia kopii lustrzanych, czy po prostu tworzenie kopii lustrzanych w ZFS?” a to pytanie to dwa różne tematy. Ten inny temat ma bardziej zawężony zakres niż ten temat.
Stefan Lasiewski,
@ewwhite, nie pytałeś już o to?
2015
@ cnst Cóż, nie ma wyraźnej odpowiedzi, a ludzie wciąż głosują na moją odpowiedź. Byłoby więc dobrze, gdyby było pewne zamknięcie postawionego pytania. ( to odpowiedzialna rzecz do zrobienia )
ewwhite

Odpowiedzi:

17

Pomysł ZFS polega na tym, aby w jak największym stopniu wiedzieć, jak zachowują się dyski. Następnie, od najgorszego do lepszego:

  • Raid sprzętowy (ZFS absolutnie nie ma pojęcia o prawdziwym sprzęcie),
  • Tryb JBOD (Problem dotyczy bardziej każdego potencjalnego ekspandera: mniejsza przepustowość),
  • Tryb HBA jest idealny (ZFS wie wszystko o dyskach)

Ponieważ ZFS jest dość paranoiczny w kwestii sprzętu, im mniej jest ukrywania, tym bardziej może poradzić sobie z wszelkimi problemami sprzętowymi. Jak wskazał Sammitch , konfiguracje kontrolera RAID i ZFS mogą być bardzo trudne do przywrócenia lub ponownej konfiguracji, gdy zawiedzie (np. Awaria sprzętu).

Jeśli chodzi o problem ze znormalizowanym sprzętem z jakimś sprzętowym kontrolerem RAID, należy uważać, aby kontroler sprzętowy miał prawdziwy tryb tranzytu lub JBOD.

Ouki
źródło
10
Warto również zauważyć, że jeśli używasz HW RAID, a kontroler umiera [dzieje się więcej, niż mogłoby się wydawać], jeśli nie możesz uzyskać zamiennika, który jest identyczny lub w pełni kompatybilny, jesteś obręcz. Z drugiej strony, jeśli oddałeś dyski surowe do ZFS, możesz podłączyć je z powrotem do dowolnego kontrolera na dowolnym komputerze, a ZFS może zrekonstruować tablicę i kontynuować tak, jakby nic się nie wydarzyło.
Sammitch,
1
Serwery wysokiej klasy zazwyczaj mają wbudowane kontrolery RAID. Np. Nigdy nie musiałem wymieniać kontrolera w systemie HP lub Dell.
ewwhite 10.10.2013
2
Ta odpowiedź nic nie odpowiada. Wyraża tylko stronniczą opinię, że dostawca sprzętu serwerowego i programista ZFS wykonali lepszą robotę niż dostawca kontrolera RAID i programator oprogramowania RAID. Społeczność FreeNAS jest pełna facetów, którzy zabili swoje Zpooly z powodu nieprawidłowej pamięci serwera lub nieodpowiednich zasilaczy. Szansa, że ​​coś wielkiego zawiedzie, jest większa niż coś małego.
ceving
14

P: Jeśli zdarzy się, że dysponujemy sprzętem klasy serwerowej, czy kiedykolwiek zaleca się uruchamianie ZFS na sprzęcie RAID1 lub jakimś innym?

Odp .: Zdecydowanie lepiej jest uruchamiać ZFS bezpośrednio na dysku i nie korzystać z żadnej formy RAID pomiędzy nimi. To, czy system, który wymaga efektywnego korzystania z karty RAID, wyklucza korzystanie z ZFS, ma więcej wspólnego z INNYMI korzyściami ZFS niż z odpornością danych. Zupełnie rzecz biorąc, jeśli istnieje podstawowa karta RAID odpowiedzialna za zapewnienie pojedynczej jednostki LUN dla ZFS, ZFS nie poprawi odporności danych. Jeśli jedynym powodem, dla którego zdecydujesz się na ZFS, jest poprawa odporności danych, to po prostu straciłeś wszelki powód do korzystania z niego. Jednak ZFS zapewnia również ARC / L2ARC, kompresję, migawki, klony i różne inne ulepszenia, których możesz również chcieć, i w takim przypadku być może nadal jest to twój wybrany system plików.

P: Czy należy wyłączyć sprzętową macierz RAID i zamiast tego uruchomić ZFS na serwerze lustrzanym lub na podwyższeniu zpool?

A. Tak, jeśli to w ogóle możliwe. Niektóre karty RAID umożliwiają tryb tranzytowy. Jeśli tak, to najlepiej to zrobić.

P: Przy wyłączonej sprzętowej funkcji RAID, czy kontrolery SATA2 i SAS oparte na RAID mają większe lub mniejsze prawdopodobieństwo ukrycia błędów odczytu i zapisu niż kontrolery inne niż RAID?

A. Jest to całkowicie zależne od danej karty RAID. Musisz się zastanowić nad instrukcją lub skontaktować się z producentem / sprzedawcą karty RAID, aby się dowiedzieć. Niektóre z nich tak robią, szczególnie jeśli „wyłączenie” funkcji RAID nie wyłącza jej całkowicie.

P: Jeśli chodzi o serwery, których nie można dostosowywać, jeśli występuje sytuacja, w której sprzętowy kontroler RAID jest efektywnie neutralny pod względem kosztów (lub nawet obniża koszty oferty wstępnie zbudowanych serwerów, ponieważ jego obecność zwiększa prawdopodobieństwo dostarczenia przez firmę hostingową uzupełniający dostęp IPMI), czy należy go w ogóle unikać? Ale czy należy tego szukać?

A. To jest to samo pytanie, co twoje pierwsze. Ponownie - jeśli jedynym pragnieniem korzystania z ZFS jest poprawa odporności danych, a wybrana platforma sprzętowa wymaga karty RAID zapewniającej pojedynczą jednostkę LUN do ZFS (lub wielu jednostek LUN, ale masz na nich pasek ZFS), to robisz to nic, co poprawiłoby odporność danych, dlatego wybór ZFS może być niewłaściwy. Jeśli jednak uznasz, że którakolwiek z pozostałych funkcji ZFS jest przydatna, może być nadal przydatna.

Chcę dodać dodatkową troskę - powyższe odpowiedzi opierają się na pomyśle, że użycie sprzętowej karty RAID pod ZFS nic nie szkodzi ZFS poza usunięciem jego zdolności do poprawy odporności danych. Prawda jest taka, że ​​to bardziej szara strefa. Istnieje wiele możliwości dostrajania i założeń w ZFS, które niekoniecznie działają tak dobrze, gdy podaje się wielodyskowe jednostki LUN zamiast surowych dysków. Większości tego można zaprzeczyć przy odpowiednim strojeniu, ale po wyjęciu z pudełka nie będziesz tak wydajny w ZFS na dużych RAID LUN, jak na pojedynczych wrzecionach.

Co więcej, istnieją pewne dowody sugerujące, że zupełnie inny sposób, w jaki ZFS komunikuje się z jednostkami LUN, w przeciwieństwie do bardziej tradycyjnych systemów plików, często wywołuje ścieżki kodu w kontrolerze RAID i obciążenia, do których nie są przyzwyczajeni, co może prowadzić do dziwności. Przede wszystkim zapewne wyświadczysz sobie przysługę, wyłączając całkowicie funkcję ZIL w dowolnej puli umieszczonej na pojedynczej jednostce LUN, jeśli nie zapewniasz również oddzielnego urządzenia rejestrującego, choć oczywiście bardzo polecam DOSTARCZYĆ do puli oddzielne urządzenie do rejestrowania danych surowych (jeśli nie jest to jednostka LUN z karty RAID, jeśli to możliwe).

Nex7
źródło
9

ZFS korzystam z konfiguracji HP ProLiant Smart Array RAID dość często.

Czemu?

  • Ponieważ lubię ZFS do partycji danych, a nie partycji rozruchowych.
  • Ponieważ Linux i bootowanie ZFS prawdopodobnie nie są teraz dla mnie wystarczająco niezawodne.
  • Ponieważ kontrolery RAID HP nie zezwalają na przekazywanie urządzeń RAW . Konfigurowanie wielu woluminów RAID 0 to nie to samo, co dyski RAW.
  • Ponieważ backplany serwera zwykle nie są wystarczająco elastyczne, aby dedykować wnęki napędów konkretnemu kontrolerowi lub podzielić obowiązki między dwa kontrolery. Obecnie najczęściej widzisz konfiguracje z 8 i 16 zatokami. Nie zawsze wystarcza, aby segmentować tak, jak powinno być.
  • Ale nadal lubię możliwości zarządzania woluminami w ZFS. Zpool pozwala mi dynamicznie rzeźbić i maksymalnie wykorzystywać dostępną przestrzeń dyskową.
  • Kompresja, ARC i L2ARC są zabójczymi funkcjami!
  • Prawidłowo zaprojektowana konfiguracja ZFS na sprzętowej macierzy RAID nadal zapewnia dobre ostrzeżenia i alerty o awariach, ale przewyższa rozwiązanie tylko sprzętowe.

Przykład:

Konfiguracja kontrolera RAID.

[root@Hapco ~]# hpacucli ctrl all show config

Smart Array P410i in Slot 0 (Embedded)    (sn: 50014380233859A0)

   array B (Solid State SATA, Unused Space: 250016  MB)
      logicaldrive 3 (325.0 GB, RAID 1+0, OK)

      physicaldrive 1I:1:3 (port 1I:box 1:bay 3, Solid State SATA, 240.0 GB, OK)
      physicaldrive 1I:1:4 (port 1I:box 1:bay 4, Solid State SATA, 240.0 GB, OK)
      physicaldrive 2I:1:7 (port 2I:box 1:bay 7, Solid State SATA, 240.0 GB, OK)
      physicaldrive 2I:1:8 (port 2I:box 1:bay 8, Solid State SATA, 240.0 GB, OK)

zablokuj listę urządzeń

[root@Hapco ~]# fdisk  -l /dev/sdc

Disk /dev/sdc: 349.0 GB, 348967140864 bytes
256 heads, 63 sectors/track, 42260 cylinders
Units = cylinders of 16128 * 512 = 8257536 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1       42261   340788223   ee  GPT

konfiguracja zpool

[root@Hapco ~]# zpool  list
NAME   SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
vol1   324G  84.8G   239G    26%  1.00x  ONLINE  -

szczegół zpool

  pool: vol1
 state: ONLINE
  scan: scrub repaired 0 in 0h4m with 0 errors on Sun May 19 08:47:46 2013
config:

        NAME                                      STATE     READ WRITE CKSUM
        vol1                                      ONLINE       0     0     0
          wwn-0x600508b1001cc25fb5d48e3e7c918950  ONLINE       0     0     0

lista systemów plików zfs

[root@Hapco ~]# zfs list
NAME             USED  AVAIL  REFER  MOUNTPOINT
vol1            84.8G   234G    30K  /vol1
vol1/pprovol    84.5G   234G  84.5G  -
ewwhite
źródło
Czy w związku z zamkniętym pytaniem, z którym się łączysz, chcę powiedzieć, że jeśli chcę korzystać z ZFS, lepiej unikać na przykład Dell PERC H200 i HP P410? Czy nadal nie mają możliwości wyłączenia sprzętowego trybu RAID, czy to RAID0 czy RAID1?
cnst 10.10.13
Wygląda więc na to, że dell.com/learn/us/en/04/campaigns/dell-raid-controllers twierdzi, że H200 „obsługuje non-RAID”, chociaż h18004.www1.hp.com/products/servers/proliantstorage/ … Nie jest do końca jasne, czy funkcja rajdowa P410 może zostać wyłączona, czy nie.
cnst 10.10.13
@cnst Nie można wyłączyć funkcji RAID w HP Smart Array P410.
ewwhite
Czy to nadal poprawne? Mówisz, że nie ma niebezpiecznego działania ZFS na raidie sprzętowym?
rzadkie
Poprawny. To nie jest niebezpieczne.
ewwhite
5

Zazwyczaj nigdy nie należy uruchamiać ZFS na dyskach skonfigurowanych w macierzy RAID. Zauważ, że ZFS nie musi działać w trybie RAID. Możesz po prostu używać pojedynczych dysków. Jednak prawie 99% ludzi korzysta z ZFS dla części RAID. Możesz po prostu uruchomić dyski w trybie rozłożonym, ale jest to słabe wykorzystanie ZFS. Jak powiedzieli inni plakaty, ZFS chce dużo wiedzieć o sprzęcie. ZFS powinien być podłączony tylko do karty RAID, którą można ustawić w trybie JBOD lub najlepiej do HBA. Skocz na kanał IRC Freenode #openindiana; każdy z ekspertów ZFS na kanale powie ci to samo. Poproś dostawcę usług hostingowych o podanie trybu JBOD, jeśli nie poda karty HBA.

Chris
źródło
1
Tak! Zgadzam się. Ale to także kwestia tego, co jest dostępne w magazynie w konfiguracji, która pasuje do rachunku i specyfikacji. Jeśli serwer ma świetny procesor, dużo pamięci ECC RAM, dużą przepustowość i mnóstwo, ale musi być wyposażony w sprzętową macierz RAID, szukanie alternatyw, które mogą być kilkakrotnie droższe, może nie być opłacalne, z powodu przynależności do innej kategorii lub braku niektórych funkcji korporacyjnych, takich jak pamięć RAM ECC itp.
cnst
2

W skrócie: używanie RAID poniżej ZFS po prostu zabija pomysł używania ZFS. Czemu? - Ponieważ został zaprojektowany do pracy na czystych dyskach, a nie na macierzach RAID.

poige
źródło
1
Niekoniecznie. Co zrobić, jeśli bardziej zależy mi na elastyczności zarządzania woluminami niż na optymalizacji wokół surowego dostępu do urządzeń fizycznych. ZFS działa całkiem dobrze w moim przypadku użycia.
ewwhite 12.12.13
3
@ biały, cóż, ktoś może prowadzić rower idąc w pobliżu, mówiąc, że lubi spacery i ogólnie kocha rowery, ale prawda jest taka, że ​​rowery są stworzone do jazdy. )
poige
2

Dla was wszystkich ... ZFS nad każdym RAIDem jest całkowitym BÓLEM i jest wykonywany tylko przez ludzi MAD! ... jak używanie ZFS bez pamięci ECC.

Dzięki próbkom zrozumiesz lepiej:

  • ZFS przez Raid1, jeden dysk został nieco zmieniony, gdy nie był wyłączony ... podważ wszystko, co wiesz, ZFS zobaczy pewne uszkodzenia lub nie w zależności od tego, który dysk zostanie odczytany (kontroler RAID nie widział tego bitu zmienionego i myśli, że oba dyski są OK ) ... jeśli błąd znajduje się w części VDEV ... cały ZPOOL na zawsze traci wszystkie swoje dane.
  • ZFS przez Raid0, jeden dysk został nieco zmieniony, gdy nie był wyłączony ... podważ wszystko, co wiesz (kontroler RAID nie widział tego bitu zmienionego i myśli, że oba dyski są w porządku) ... ZFS zobaczy takie uszkodzenie, ale jeśli fail jest w części VDEV ... cała ZPOOL na zawsze traci wszystkie swoje dane.

ZFS jest dobry w wykrywaniu bitów, które zmieniły się, gdy dysk nie ma zasilania (kontrolery RAID nie mogą tego zrobić), a także gdy coś się zmieni bez poproszenia itp.

Jest to ten sam problem, co w przypadku, gdy nieco w module pamięci RAM zmienia się spontanicznie, bez pytania o ... jeśli pamięć to ECC, pamięć samodzielnie ją koryguje; jeśli nie, dane się zmieniły, więc dane zostaną przesłane na zmodyfikowane dyski; módlcie się, że zmiana nie dotyczy części UDEV, jeśli błąd występuje w części VDEV ... cała ZPOOL na zawsze traci wszystkie swoje dane.

Jest to słabość ZFS ... Awarie VDEV oznaczają, że wszystkie dane zostaną utracone na zawsze.

Hardware Raid i Software Raid nie mogą wykryć spontanicznych zmian bitów, nie mają sum kontrolnych, najgorsze na poziomach Raid1 (mirros), czytają nie wszystkie części i porównują je, zakładają, że wszystkie części zawsze będą miały te same dane, ZAWSZE (mówię głośno) Raid zakłada, że ​​dane nie zmieniły się w żaden inny sposób / w inny sposób ... ale dyski (jako pamięć) są podatne na spontaniczne zmiany bitów.

Nigdy nie używaj ZFS na RAMie innym niż ECC i nigdy nie używaj ZFS na napadanych dyskach, pozwól ZFS zobaczyć wszystkie dyski, nie dodawaj warstwy, która może zrujnować VDEV i POOL.

Jak zasymulować taką awarię ... wyłącz komputer, wyjmij jeden dysk tego Raid1 i zmień tylko jeden bit ... powtórz i zobacz, jak kontroler Raid nie wie, że to się zmieniło ... ZFS może, ponieważ wszystkie odczyty są testowane z sumą kontrolną i jeśli nie pasuje, czytaj z innej części ... Raid nigdy nie czyta ponownie, ponieważ błąd (z wyjątkiem niemożliwego odczytu sprzętu niemożliwy) ... jeśli Raid może odczytać, myśli, że dane są w porządku (ale nie w takich przypadkach ) ... Raid próbuje tylko czytać z innego dysku, jeśli w miejscu, w którym się odczytuje, mówi „hej, nie mogę stamtąd czytać, awaria sprzętu” ... ZFS odczytuje z innego dysku, jeśli suma kontrolna nie jest taka sama, jak w przypadku, gdy to czyta mówi „hej, nie mogę stamtąd czytać, awaria sprzętu”.

Mam nadzieję, że pozwolę to bardzo jasno wyjaśnić ... ZFS na dowolnym poziomie Raidu to ból toalet i całkowite ryzyko dla twoich danych! a także ZFS w pamięciach innych niż ECC.

Ale nikt nie mówi (oprócz mnie):

  • Nie używaj dysków z wewnętrzną pamięcią podręczną (nie tylko SHDD, także niektóre z pamięcią podręczną od 8 Mb do 32 MB itp.) ... niektóre z nich używają pamięci innej niż ECC do takiej pamięci podręcznej
  • Nie używaj SATA NCQ (sposób na zapisywanie w kolejce), ponieważ może zniszczyć ZFS w przypadku utraty zasilania

Jakich dysków użyć?

  • Każdy dysk z wewnętrzną baterią, który zapewnia, że ​​cała kolejka zostanie zapisana na dysku w przypadku awarii zasilania i wykorzystuje w nim pamięć ECC (przepraszam, jest ich bardzo mało i są drogie).

Ale, hej, większość ludzi nie wie o tym wszystkim i nigdy nie miała problemu ... mówię im: wow, jakie masz szczęście, kup jakieś losy, zanim szczęście zniknie.

Istnieje ryzyko ... takie awarie mogą się zdarzyć ... więc lepszą odpowiedzią jest:

  • Staraj się nie umieszczać żadnej warstwy między ZFS a miejscem, w którym dane są naprawdę przechowywane (RAM, Raid, NCQ, wewnętrzna pamięć podręczna dysku itp.) ... tyle, na ile możesz sobie pozwolić.

Co ja osobiście robię?

  • Dodaj jeszcze kilka warstw ... używam każdego dysku 2,5 "SATA III 7200 obr./min na obudowie USB 3.1 Gen2 typu C, podłączam niektóre obudowy do koncentratora USB 3.1 Gen 2 typu A, który podłączam do komputera; inne do innego koncentratora że podłączam się do innego portu głównego komputera PC itp.
  • W systemie używam wewnętrznych łączników SATA na ZFS (poziom Raid0), ponieważ używam niewymienialnego (jak LiveCD) systemu Linux, każdy rozruch identycznej zawartości na dyskach wewnętrznych ... i mam obraz Clone systemu, który mogę przywrócić (mniej niż system 1GiB) ... również używam sztuczki, aby system znajdował się w pliku i używam dysku zamapowanego w pamięci RAM, gdzie klonowałem go podczas rozruchu, więc po uruchomieniu cały system działa w pamięci RAM ... umieszczając taki plik DVD mogę również uruchomić w ten sam sposób, więc w przypadku awarii dysków wewnętrznych po prostu uruchamiam się z DVD, a system jest ponownie w trybie online ... podobna sztuczka do SystemRescueCD, ale trochę bardziej złożony plik ISO może być na wewnętrzny ZFS lub po prostu prawdziwy DVD i nie chcę dwóch różnych wersji.

Mam nadzieję, że mógłbym rzucić nieco światła na ZFS przeciwko Raidowi, to naprawdę jest ból, gdy coś pójdzie nie tak!

Claudio
źródło
Mówisz więc, że ZFS jest tak zawodny, że jeśli jeden bit się zmieni, możesz stracić cały system plików? W jaki sposób SATA NCQ powoduje utratę danych, gdy dysk nadal powiadamia host tylko wtedy, gdy sektory zostały pomyślnie zapisane (choć w innej kolejności)?
Malvineous