W skrócie: jeśli używasz niskiej klasy karty RAID (bez pamięci podręcznej), zrób sobie przysługę i przełącz się na oprogramowanie RAID. Jeśli używasz karty klasy średniej lub wyższej (z BBU lub NVRAM), sprzęt jest często (ale nie zawsze! Patrz poniżej) dobrym wyborem.
Długa odpowiedź: gdy moc obliczeniowa była ograniczona, sprzętowe karty RAID miały znaczącą przewagę w obliczaniu parzystości / obliczania syndromu dla schematów RAID z nimi związanych (RAID 3/4/5, RAID6, ecc).
Jednak wraz ze stale rosnącą wydajnością procesora ta korzyść zasadniczo zniknęła: nawet starożytny procesor mojego laptopa (Core i5 M 520, generacja Westmere) ma wydajność XOR ponad 4 GB / si wydajność zespołu RAID-6 ponad 3 GB / s w ciągu pojedynczy rdzeń wykonawczy .
Zaletą, jaką utrzymuje dziś sprzętowa macierz RAID, jest obecność pamięci podręcznej DRAM chronionej przed utratą zasilania, w postaci BBU lub NVRAM. Ta chroniona pamięć podręczna zapewnia bardzo małe opóźnienie w dostępie do zapisu losowego (i odczytuje trafiony) i zasadniczo przekształca zapisy losowe w zapisy sekwencyjne. Kontroler RAID bez takiej pamięci podręcznej jest prawie bezużyteczny . Co więcej, niektóre tańsze kontrolery RAID nie tylko są dostarczane bez pamięci podręcznej, ale wymuszają wyłączenie prywatnej pamięci podręcznej DRAM dysku, co prowadzi do niższej wydajności niż bez karty RAID. Przykładem są karty PERC H200 i H300 firmy DELL: jeśli nowsze oprogramowanie sprzętowe tego nie zmieniło, całkowicie wyłączają prywatną pamięć podręczną dysku (i nie można jej ponownie włączyć, gdy dyski są podłączone do kontrolera RAID). Zrób sobie przysługę i zrób tonigdy, nigdy, nigdy nie kupuj takich kontrolerów. Chociaż nawet wyższej klasy kontroler często wyłącza prywatną pamięć podręczną dysku, to przynajmniej ma swoją własną chronioną pamięć podręczną - co powoduje, że prywatna pamięć podręczna HDD (ale nie SSD!) Jest nieco zbędna.
To jednak nie koniec. Nawet zdolne kontrolery (ten z pamięcią podręczną BBU lub NVRAM) mogą dawać niespójne wyniki, gdy są używane z dyskiem SSD, po prostu dlatego, że dyski SSD naprawdę potrzebują szybkiej prywatnej pamięci podręcznej do wydajnego programowania / usuwania stron FLASH. I chociaż niektóre (większość?) Kontrolerów pozwalają ponownie włączyć prywatną pamięć podręczną dysku (np .: PERC H700 / 710 / 710P pozwól, aby użytkownik ją ponownie włączył), jeśli ta prywatna pamięć podręczna nie jest chroniona przed zapisem, ryzykujesz utratę danych w przypadku utraty mocy. Dokładne zachowanie naprawdę jest sterownik i firmware zależne (np: na DELL S6 / I z 256 MB pamięci podręcznej i WB cache włączona dysku to miałem żadnych strat podczas wielokrotnych, planowane badania strat mocy), co daje dużo niepewności i obawy.
Z drugiej strony oprogramowanie RAID typu open source jest znacznie bardziej kontrolowanym zwierzęciem - ich oprogramowanie nie jest zamknięte w zastrzeżonym oprogramowaniu i ma dobrze zdefiniowane wzorce i zachowania metadanych. Programowa macierz RAID przyjmuje (właściwe) założenie, że prywatna pamięć podręczna DRAM dysku nie jest chroniona, ale jednocześnie ma krytyczne znaczenie dla akceptowalnej wydajności - więc zazwyczaj nie wyłączają jej, a raczej używają poleceń ATA FLUSH / FUA, aby mieć pewność, że jest to krytyczne dane lądują na stabilnym miejscu do przechowywania. Ponieważ często działają z portów SATA podłączonych do chipsetu SB, ich przepustowość jest bardzo dobra, a obsługa sterowników jest doskonała.
Jednak w przypadku użycia z mechanicznymi dyskami twardymi, zsynchronizowany losowy wzorzec dostępu do zapisu (np .: bazy danych, maszyny wirtualne) znacznie ucierpi w porównaniu ze sprzętowym kontrolerem RAID z pamięcią podręczną WB. Z drugiej strony, w przypadku użycia z dyskami SSD dla przedsiębiorstw (tj. Z pamięcią podręczną zapisu chronioną przed utratą zasilania), programowa macierz RAID często przoduje i daje wyniki nawet wyższe niż w przypadku sprzętowych kart RAID. To powiedziawszy, musisz pamiętać, że dyski SSD dla konsumentów (odczyt: z niechronioną pamięcią podręczną zapisu zwrotnego), chociaż bardzo dobre w czytaniu i zapisywaniu asynchronicznym, zapewniają bardzo niskie IOPS w obciążeniach zsynchronizowanego zapisu.
Należy również wziąć pod uwagę, że programowe macierze RAID nie są równe. Oprogramowanie systemu Windows RAID ma złą reputację, pod względem wydajności, a nawet przestrzeń dyskowa nie wydaje się zbyt inna. Linux MD Raid jest wyjątkowo szybki i wszechstronny, ale stos we / wy systemu Linux składa się z wielu niezależnych elementów, które należy dokładnie zrozumieć, aby uzyskać maksymalną wydajność. RAID parzystości ZFS (ZRAID) jest bardzo zaawansowany, ale jeśli nie jest poprawnie skonfigurowany, może dawać bardzo słabe IOP; natomiast mirroring + striping działa całkiem dobrze. W każdym razie potrzebuje szybkiego urządzenia SLOG do obsługi zapisu synchronicznego (ZIL).
Dolna linia:
- jeśli twoje obciążenia nie są zsynchronizowane na losowe zapisywanie, nie potrzebujesz karty RAID
- jeśli potrzebujesz karty RAID, nie kupuj kontrolera RAID bez pamięci podręcznej WB
- jeśli planujesz korzystać z oprogramowania SSD, preferowana jest macierz RAID, ale pamiętaj, że w przypadku zsynchronizowanych losowych zapisów potrzebujesz dysku SSD chronionego przed utratą zasilania (np .: Intel S4600, Samsung PM / SM863 itp.). Dla czystej wydajności najlepszym wyborem jest prawdopodobnie Linux MD Raid, ale obecnie zwykle używam rozłożonych lusterek ZFS. Jeśli nie możesz sobie pozwolić na utratę połowy miejsca z powodu kopii lustrzanych i potrzebujesz zaawansowanych funkcji ZFS, skorzystaj z ZRAID, ale dokładnie przemyśl konfigurację VDEV.
- nawet jeśli używasz SSD, naprawdę potrzebujesz sprzętowej karty RAID, użyj dysków SSD z pamięcią podręczną chronioną przed zapisem (Micron M500 / 550/600 ma częściową ochronę - naprawdę niewystarczającą, ale lepszą niż nic - podczas gdy Intel DC i S mają pełną utratę mocy ochrona, to samo można powiedzieć o korporacyjnych dyskach SSD Samsung)
- jeśli potrzebujesz RAID6 i będziesz korzystać z normalnych, mechanicznych dysków twardych, rozważ zakup szybkiej karty RAID z 512 MB (lub więcej) pamięci podręcznej WB. RAID6 ma wysoką wydajność zapisu, a odpowiednio dobrana pamięć podręczna WB może przynajmniej zapewnić szybką pamięć pośrednią dla małych zapisów synchronicznych (np. Dziennik systemu plików).
- jeśli potrzebujesz RAID6 z dyskami twardymi, ale nie możesz / nie chcesz kupować sprzętowej karty RAID, zastanów się dobrze nad konfiguracją oprogramowania RAID. Na przykład, możliwym rozwiązaniem z Linux MD Raid jest użycie dwóch tablic: małej macierzy RAID10 do zapisu dziennika / dzienników DB oraz macierzy RAID6 do przechowywania surowego (jako serwer plików). Z drugiej strony oprogramowanie RAID5 / 6 z dyskami SSD jest bardzo szybkie, więc prawdopodobnie nie potrzebujesz karty RAID do instalacji wszystkich dysków SSD.