W przypadku HDD IOPS są na ogół zdominowane przez czas dostępu do dysku, który jest sumą opóźnienia wyszukiwania + opóźnienia obrotowego + opóźnienia transferu. Ponieważ zmienne te silnie zależą od wzorców dostępu i mają nieoczywiste interakcje z konkretnym układem RAID (tj. Rozmiar paska) i kontrolerem (tj: strojenie odczytu z wyprzedzeniem), każda prosta odpowiedź BĘDZIE NIEPRAWIDŁOWA.
Spróbujmy jednak mieć figurę do gry w piłkę. Przy pierwszym przybliżeniu IOPS gwarantowany przez macierz n-dyskową powinien być n-krotnością IOPS pojedynczego dysku. Jednak zarówno poziom RAID, jak i wzorzec dostępu do danych , poprzez zmianę ciężaru między opóźnieniem wyszukiwania / rotacji / transferu, dramatycznie zmienia to przybliżenie pierwszego rzędu.
Zróbmy kilka przykładów, zakładając 100 IOPS na pojedyncze dyski (typowa wartość dla dysków 7200 RPM) i tablice 4-dyskowe (z wyjątkiem RAID1, często ograniczone tylko do 2-kierunkowego):
- pojedynczy dysk ma 100 IOPS, zarówno do odczytu, jak i zapisu (uwaga: z powodu koalescencji zapisu, IOPS zapisu są na ogół wyższe niż IOPS odczytu, ale dla uproszczenia zignorujmy to)
- RAID0 (4-kierunkowe paski) ma do 4x losowych IOPS i do 4x sekwencyjnych IOPS. Kluczowym słowem jest tutaj „do”: ze względu na charakter rozkładania i wyrównywania danych, jeśli sektory o dostępie losowym przeważnie znajdują się na jednym dysku, zakończy się to znacznie niższym IOPS.
- RAID1 (dublowanie dwukierunkowe) jest bardziej skomplikowany w profilowaniu. Ponieważ różne dyski mogą wyszukiwać na różnych danych, ma do 2x losowy odczyt IOPS, ale ten sam 1x (lub nieco niższy, z powodu narzutu) losowy zapis IOPS. Jeśli wszystko dobrze się wyrówna (np. Duże, ale nie w 100% sekwencyjne odczyty, kontroler RAID wykorzystujący koncepcję / obsługę fragmentów / pasków nawet w trybie dublowania, poprawne działanie odczytu z wyprzedzeniem itp.) Sekwencyjne odczyty mogą czasami być nawet dwukrotnie większe wartość dysku, podczas gdy sekwencyjne zapisy pozostają ograniczone do 1x pojedynczego dysku (tj .: brak przyspieszenia)
- RAID10 (4-way mirroring) pod względem wydajności znajduje się w połowie drogi między 4-way RAID0 a 2-way mirroring. Ma do 4x losowego odczytu IOPS i do 2x losowego zapisu IOPS. W przypadku transferów sekwencyjnych obowiązuje zastrzeżenie RAID1: czasami ma do 4x IOPS odczytu sekwencyjnego, ale tylko 2x IOPS zapisu sekwencyjnego. Należy pamiętać, że niektóre implementacje RAID10 (a mianowicie Linux MDRAID) zapewniają różne układy macierzy RAID10 o innym profilu wydajności .
- RAID5 (parzystość w paski) ma do 4x losowy odczyt IOPS, podczas gdy losowy zapis IOPS, w zależności od wielu czynników, takich jak wielkość zapisu w odniesieniu do rozmiaru paska, dostępność dużej pamięci podręcznej paska, algorytm rekonstrukcji paska sam (odczyt-rekonstrukcja-zapis vs. odczyt-modyfikacja-zapis) itp. może znajdować się gdziekolwiek między 0,5x (lub mniej) a 2x IOPS pojedynczego dysku. Obciążenia sekwencyjne są bardziej przewidywalne, z 3-krotnością IOPS pojedynczego dysku (zarówno do odczytu, jak i zapisu)
- RAID6 (podwójna parzystość w paski) zachowuje się bardzo podobnie do swojego brata RAID5, ale z mniejszą wydajnością zapisu. Ma nawet 4x losowy odczyt IOPS pojedynczego dysku, ale jego wydajność zapisu losowego jest nawet niższa niż RAID5, przy tych samych wartościach bezwzględnych (0,5x - 2x), ale z niższą średnią rzeczywistych słów. Sekwencyjne odczyty i zapisy są ograniczone do 2X IOPS pojedynczego dysku.
Powtórzę: powyższe są prostymi i prawie zepsutymi przybliżeniami. W każdym razie, jeśli chcesz grać z (poważnie niekompletnym) kalkulatorem RAID IOPS, spójrz tutaj .
Teraz wróć do prawdziwego świata. W rzeczywistych obciążeniach RAID10 jest często szybszym i preferowanym wyborem , zachowując wysoką wydajność nawet w obliczu zdegradowanej macierzy . RAID5 i RAID6 nie powinny być używane w przypadku obciążeń wrażliwych na wydajność, chyba że mają charakter koncentrujący się na odczycie lub sekwencyjny. Warto zauważyć, że poważne kontrolery RAID mają dużą pamięć podręczną zapisu chronionego przed utratą zasilania, głównie w celu przezwyciężenia (przez buforowanie z dużą ilością pasków) niskiej wydajności losowego zapisu RAID5 / 6. Nigdy nie używaj RAID5 / 6 z kontrolerami RAID bez pamięci podręcznej , chyba że naprawdę nie zależy ci na szybkości macierzy.
SSD to różne bestie, pomyślał. Ponieważ mają one technicznie znacznie niższy średni czas dostępu, macierze RAID oparte na parzystości wiążą się ze znacznie niższym kosztem wydajności i są znacznie bardziej opłacalną opcją niż na dyskach twardych. Jednak przy niewielkim obciążeniu centralnym losowego zapisu i tak użyłbym konfiguracji RAID10.