Dużo czytałem o kontrolerach / konfiguracjach RAID, a jedną rzeczą, która często się pojawia, jest to, jak kontrolery sprzętowe bez pamięci podręcznej oferują taką samą wydajność jak programowa macierz RAID. Czy tak jest naprawdę?
Zawsze myślałem, że sprzętowe karty RAID oferują lepszą wydajność nawet bez pamięci podręcznej. Mam na myśli, że masz dedykowany sprzęt do wykonywania zadań. Jeśli tak jest, jaka jest korzyść z posiadania karty RAID bez pamięci podręcznej, coś w stylu LSI 9341-4i, który nie jest do końca tani.
Również jeśli wzrost wydajności jest możliwy tylko z pamięcią podręczną, czy istnieje konfiguracja pamięci podręcznej, która od razu zapisuje na dysk, ale przechowuje dane w pamięci podręcznej do operacji odczytu, co sprawia, że BBU nie jest priorytetem?
źródło
Odpowiedzi:
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:
źródło
fsync()
. Zobacz ten artykuł , który pokazuje, że dysk SSD Samsung NVMe bez kondensatora wykonuje tylko ~ 250 fsyncs na sekundę (ja też to zmierzyłem). Dyski SSD z kondensatorem dają ~ 30x więcej fsyncs / s, sprzętowy kontroler RAID z baterią 100x więcej.Będziesz potrzebował rozwiązania w postaci pamięci podręcznej baterii lub pamięci flash dla dowolnego zakupionego kontrolera sprzętowego. Większość żałuje, że tego nie robi .
Ale odpowiedzi na swoje pytanie, większość kontrolerów mają konfigurowalne wskaźniki cache ... więc 100% odczytu pamięci podręcznej i 0% write cache neguje potrzebę ochrony BBU. Twoje wyniki pisania będą po prostu do bani.
Nie mogę odpowiedzieć na pytanie dotyczące oprogramowania RAID, ponieważ to zależy. Linux MD RAID różni się od Windows Software RAID, który jest inny niż ZFS . Rozwiązania takie jak ZFS mogą działać lepiej niż sprzęt, ponieważ wykorzystują zasoby pamięci RAM i procesora serwera.
źródło
Kontroler RAID, który masz w oku, jest tani i jest w zasadzie fakeraid. Zapewnienie niektórych funkcji, takich jak pamięć, zależy nawet od płyty głównej. Niewiele płyt głównych obsługuje tę funkcję, co powoduje, że nie można załadować sterownika.
O HW vs samej SW-RAID. Nie używam już HW-RAID, chyba że jest to na przykład pudełko z logo EMC. Mimo wszystko po prostu ponownie wróciłem do SW-RAID wiele księżyców z kilku bardzo prostych powodów.
Potrzebujesz dodatkowego sprzętu i musisz je dopasować. Musisz także dopasować oprogramowanie wewnętrzne i zachować synchronizację. Wiele dysków nie będzie działać poprawnie i bez wyraźnego powodu zwiększysz opóźnienie we / wy.
Dodatkowy sprzęt jest drogi, więc możesz lepiej wykorzystać dodatkowe 1000 USD (przyzwoity kontroler z dwoma / trzema dyskami). Zainwestuj w więcej dysków i standardowych kontrolerów, pamięć ECC, szybszy procesor. A zapasowy dysk na miejscu może być, jeśli planujesz go uruchomić dłużej niż okres gwarancji lub nie chcesz płacić opłat ekspresowych za przesyłkę z dnia na dzień.
Aktualizacja jest trudna, ponieważ musisz śledzić łatki systemu operacyjnego i oprogramowania układowego zarówno dysku, jak i kontrolera. Może to spowodować sytuację, w której aktualizacja / aktualizacja nie będzie już możliwa.
W formatach dyskowych. Wystarczająca liczba dostawców korzysta z własnego wewnętrznego układu do przechowywania danych związanych z poprawką kombinacji sprzętu i oprogramowania układowego. Może to spowodować sytuację, w której część zamienna uniemożliwi dostęp do danych.
Jest to SPOF i wąskie gardło. Posiadanie tylko jednego kontrolera za jednym mostkiem PCI nie zapewnia wydajności i nadmiarowości, których naprawdę potrzebujesz. Dzięki temu nie ma również ścieżki migracji do migracji danych na inny zestaw dysków poza zasięgiem kontrolerów.
Większość z tych kwestii została załatwiona dzięki nowszej generacji oprogramowaniu SW-RAID lub rozwiązaniom takim jak ZFS i BtrFS. Pamiętaj, że ostatecznie chcesz chronić swoje dane i nie są one szybko dostępne, ale są zbędne.
źródło
Spędziłem ostatni rok (od i do 2014-2015) testując kilka równoległych konfiguracji CentOS 6.6 RAID 1 (dublowanych) przy użyciu 2 kontrolerów LBA 9300 HBA 2 kontrolerów RAID LSI 9361-8i z systemami zbudowanymi na: 2U Supermicro CSE- Obudowa 826BAC4-R920LPB, płyta główna ASUS Z9PE-D16, 2 procesory Intel Xeon E5-2687W v2 ośmiordzeniowy 3,4 GHz, dublowany Seagate ST6000NM0014 6 TB SAS 12 Gb, 512 GB RAM. Uwaga: jest to konfiguracja w pełni zgodna z SAS3 (12 Gb / s).
Przeszukałem artykuły napisane o oprogramowaniu tuningowym i korzystam z RAID oprogramowania Linux od ponad 10 lat. Podczas uruchamiania podstawowych testów we / wy (dd-oflag = bezpośrednie pliki od 5k do 100G, hdparam -t itp.), Programowa macierz RAID wydaje się układać korzystnie w stos do raidu sprzętowego. Oprogramowanie RAID dublowane przez oddzielne karty HBA. Poszedłem do testowania ze standardowymi konfiguracjami jądra CentOS 6, jądra-lt i jądra-ml. Próbowałem także różnych tuningów mdadm, systemu plików, podsystemu dyskowego i systemów operacyjnych sugerowanych w różnych artykułach online na temat RAID oprogramowania Linux. Pomimo dostrajania, testowania, dostrajania i testowania, kiedy działam w czytanym świecie, systemie przetwarzania transakcji (posiadającym bazę danych MySQL lub Oracle), zauważyłem, że uruchomienie sprzętowego kontrolera RAID powoduje 50-krotny wzrost wydajności.
Przez wiele, wielu miesięcy nie byłem przekonany, że sprzętowa macierz RAID mogłaby być o wiele lepsza, jednak po dogłębnych badaniach oprogramowania RAID w Linuksie, testowaniu i dostrajaniu, były to moje wyniki.
źródło
Większość pisarzy tutaj nie ma pojęcia o „ dziurce ”. Jest to podstawa, która pozwala wykrzyczeć bateryjne jednostki tworzenia kopii zapasowych sprzętowych macierzy RAID w porównaniu do ich braku w przypadku programowych macierzy RAID. Cóż, na przykład, implementacja oprogramowania RAID w systemie Linux albo obsługuje bitmapy operacji zapisu, albo wykonuje pełne ponowne obliczanie „parzystości” w przypadku nieoczyszczonego zamknięcia. ZFS zawsze dąży do zapisywania pełnych pasów, aby uniknąć tej niespójności lub odkładania ponownego sprawdzania. Podsumowując, obecnie wystarczająco inteligentne oprogramowanie RAID jest obecnie wystarczająco dobre, aby go używać zamiast „kto wie, co jest w środku”, tak zwanego „sprzętowego RAID”.
Jeśli chodzi o część pytania dotyczącą pamięci podręcznej, tak naprawdę nie ma to większego znaczenia, ponieważ sama pamięć podręczna zapisu systemu operacyjnego może być znacznie większa niż adapter „sprzętowy”.
źródło
Cały czas to pracuję. Zależy to w dużej mierze od tego, co robisz i poziom nalotu, który wspierasz. Kontroler SW z systemem RAID 0 lub 1 dla systemu operacyjnego i nic specjalnego nie jest w porządku. Uruchomienie kontrolera SW z Raidem 5 w bazie danych wymaga problemów! NIEKTÓRE kontrolery sprzętowe dają lepszą wydajność, ale zależy to od tego, czy może buforować i mikroukład procesora karty rajdowej. Nie wszystkie kontrolery oprogramowania są obsługiwane przez wszystkie systemy operacyjne. Czasami więc może być konieczne zakupienie sprzętu, aby uruchomić ESXi ... Chyba że używasz połączeń sata.
źródło