Algorytmy RAID zostały zaprezentowane publicznie w odległym 1987 roku. Do dziś pozostają najbardziej poszukiwaną technologią ochrony i przyspieszania dostępu do danych w obszarze przechowywania informacji. Jednak wiek technologii IT, która przekroczyła 30 lat, to raczej nie dojrzałość, a już starość. Przyczyną jest postęp, nieubłaganie niosący nowe możliwości. W czasach, gdy właściwie nie istniały inne nośniki oprócz HDD, algorytmy RAID pozwalały na najefektywniejsze wykorzystanie dostępnych zasobów przechowywania. Jednak wraz z pojawieniem się SSD sytuacja uległa zasadniczej zmianie. Obecnie RAID w pracy z dyskami półprzewodnikowymi jest już „duszącą” przeszkodą dla ich wydajności. Dlatego, aby wydobyć pełny potencjał prędkości SSD, konieczne jest zupełnie inne podejście do pracy z nimi.

Oprócz oczywistych różnic między HDD a SSD w zasadach działania, te rodzaje nośników mają jeszcze jedną ważną cechę: każdy dysk twardy może nadpisywać dowolne dane z granularnością jednego bloku (obecnie najczęściej 4 KB). Dla SSD proces nadpisywania jest znacznie bardziej skomplikowaną procedurą:
- Zmodyfikowane dane są kopiowane w nowe miejsce. W tym przypadku granularność jest taka sama – to ten sam blok, ale składający się z kilku stron i mający rozmiar od 256 KB do 4 MB. Tzn. przy zmianie tych samych 4 KB konieczne jest skopiowanie także wszystkich sąsiednich stron, które tworzą jednostkowy blok.
- „Stare” bloki są oznaczane jako nieużywane, aby później mogły zostać usunięte przez zbieracza „śmieci” (Garbage Collector).

Sekwencyjne zapisywanie/nadpisywanie na SSD
W przypadku sekwencyjnego zapisywania/nadpisywania ta cecha działania SSD ma niewielkie znaczenie z punktu widzenia jego wydajności, ponieważ bloki są blisko siebie, a zbieracz „śmieci” radzi sobie z pracą w tle. Ale w rzeczywistości, a zwłaszcza w segmencie Enterprise, dla SSD najczęściej stosuje się losowy dostęp do danych. I te dane są zapisywane w losowych miejscach na nośnikach.
Im więcej danych zapisuje się na SSD, tym trudniej pracować zbieraczowi „śmieci”, ponieważ fragmentacja wzrasta. W efekcie nadchodzi moment, kiedy proces czyszczenia nośnika przestaje być „w tle”: wydajność SSD znacznie spada, ponieważ znaczną część zajmuje Garbage Collector.

Rzeczywiste rozmieszczenie danych na SSD podczas codziennego użytkowania
Aby zilustrować wpływ pracy zbieracza „śmieci” w zależności od trybu zapisu na nośniku, można przeprowadzić proste testy: sekwencyjny i losowy zapis blokami 4KB na nośnik o pojemności 100GB. (Źródło – firma )

Wydajność przy sekwencyjnym zapisie

Wydajność przy losowym zapisie
Jak pokazują testy, spadek wydajności może przekraczać dwukrotność. I to tylko pojedynczy nośnik. W przypadku używania SSD w grupie RAID liczba operacji zapisu wzrasta znacznie dzięki pracy z parzystością.
Ogólnie rzecz biorąc, dzięki tym cechom działania SSD, istnieje taki parametr jak współczynnik zapisu (write amplification). To stosunek objętości danych zapisanych na nośniku do objętości danych, które faktycznie wysłał host. Dla najpopularniejszego RAID5 ten współczynnik wynosi ~3,5.
W rezultacie systemy z klasycznym RAID w swojej podstawie utylizują SSD tylko w około ~10% ich rzeczywistej prędkości i słabo skalują się pod względem wydajności przy zwiększeniu liczby nośników powyżej dziesięciu.
Należy również zauważyć, że nadmiarowe operacje zapisu nie tylko zmniejszają wydajność SSD, ale także zmniejszają jego nieograniczony zasób, tym samym skracając żywotność nośnika.
, będąca rdzeniem wszystkich produktów AccelStor, została opracowana jako alternatywa dla klasycznych algorytmów RAID przy pracy z SSD. Innowacyjność technologii została doceniona zarówno różnymi patentami i nagrodami (w tym na Flash Memory Summit 2016), jak i wynikami niezależnych testów (np. SPC1).
Esencja polega na przekształceniu wszystkich przychodzących zapytań zapisu, a w szczególności typu random, w zestaw bloków, maksymalnie przypominających tryb zapisu sekwencyjnego z punktu widzenia nośnika. W rezultacie zapis na SSD odbywa się w maksymalnie komfortowy dla nich sposób, a ostateczna wydajność przewyższa wszelkie systemy z klasycznym RAID.
Wszystkie SSD w systemach AccelStor dzielą się na dwie symetryczne grupy FlexiRemap®. Rozmiar grupy zależy od modelu i wynosi od 5 do 11 nośników. Dla zapewnienia odporności na awarie wewnątrz grupy stosuje się parzystość podobną do RAID5. Obie grupy są używane wspólnie, tworząc wspólną przestrzeń przechowywania. Dlatego ostateczna odporność na awarie będzie analogiczna do macierzy RAID50, składającej się z dwóch grup: system jest w stanie wytrzymać awarię do dwóch SSD, ale nie więcej niż jednego w każdej grupie FlexiRemap®.

Wszystkie przychodzące zapytania zapisu są dzielone na bloki o rozmiarze 4KB, które w trybie round robin są zapisywane na obu grupach FlexiRemap®. Przy tym system stale śledzi zapotrzebowanie na zapisane bloki, starając się przy ich zmianie zapisywać podobne bloki maksymalnie blisko siebie. Powstaje wirtualny odpowiednik tieringu, mówiąc terminologią systemów pamięci masowej. W takim przypadku znacznie ułatwia to pracę zbieracza "śmieci": bowiem nieużywane bloki będą stale znajdować się obok siebie.
Warto zauważyć, że w przeciwieństwie do produktów konkurencji nie wykorzystują funkcji buforowania przychodzących zapytań w pamięci operacyjnej kontrolera. Wszystkie przychodzące bloki danych są natychmiast zapisywane na SSD. Host otrzymuje potwierdzenie o pomyślnym zapisie dopiero po fizycznym umiejscowieniu danych na nośnikach. W pamięci RAM przechowywane są jedynie tabele umiejscowienia bloków na SSD w celu przyspieszenia dostępu i określenia, gdzie zapisać kolejny blok danych. Oczywiście, dla niezawodności kopie tych tabel znajdują się również na samych nośnikach. W rezultacie systemy AccelStor nie wymagają żadnej ochrony pamięci podręcznej w postaci akumulatora/kondensatora (niemniej jednak istnieje możliwość podłączenia zasilacza UPS – dla "łagodnego" wyłączenia w przypadku problemów z zasilaniem).
Dzięki temu podejściu do organizacji zapisu, zbieracz „śmieci” rzeczywiście może działać w tle, nie wywierając znaczącego wpływu na prędkość nośników, co pozwala w systemie na utylizację do 90% wydajności SSD. To właśnie w tym tkwią wysokie wskaźniki IOPS w systemach AccelStor w porównaniu do All Flash, oparte na algorytmach RAID.
Kolejną ważną cechą technologii FlexiRemap® jest znaczne ograniczenie nadmiarowych operacji zapisu na SSD. Tak więc współczynnik zapisu (write amplification) dla systemów AccelStor wynosi zaledwie 1.3, co w przyjęty sposób oznacza, że żywotność nośników w porównaniu do RAID5 wzrasta ponad 2.5 razy!

Dzięki ciągłemu monitorowaniu polityki rozmieszczania danych na SSD przez system, wszystkie nośniki zużywają się równomiernie. Takie podejście pozwala przewidzieć ich żywotność i z wyprzedzeniem sygnalizować administratorowi o wyczerpaniu zasobów zapisu.
Oczywiście, że SSD mogą ulec awarii. W takim przypadku system natychmiast rozpocznie odbudowę na jednym z dysków hot spare. Przy tym grupa FlexiRemap®, znajdująca się w stanie degraded, przechodzi w tryb „tylko do odczytu”, a wszystkie żądania zapisu są kierowane do drugiej grupy. Taki mechanizm ochrony został zaprojektowany, aby przyspieszyć operację odbudowy i zredukować prawdopodobieństwo awarii kolejnego nośnika w tej samej grupie. Nie jest tajemnicą, że podczas odbudowy wszystkie nośniki w grupie są obciążone zwiększonym ruchem w wyniku interferencji operacji odczytu, zapisu i przywracania na hot spare. W ten sposób rośnie prawdopodobieństwo awarii kolejnego dysku. A im więcej operacji zapisu, tym dłużej będzie trwała odbudowa.

Po zakończeniu procesu przywracania i powrocie grupy FlexiRemap® do normalnego stanu, wystąpi niewielki rozkład zasobów zapisu między dwiema grupami. Dlatego aby go wyrównać, kolejne operacje zapisu będą częściej kierowane do przywróconej grupy (oczywiście z uwzględnieniem tego, aby ostateczna wydajność systemu nie ucierpiała znacząco).
Zwiększenie wydajności systemów All Flash opartych na algorytmach RAID powyżej pewnych wartości (~280K IOPS@4K losowe zapisy) nie jest możliwe, nawet przy użyciu zaawansowanych systemów buforowania. Technologia FlexiRemap®, dzięki zupełnie innemu podejściu do organizacji przestrzeni magazynowej, nie tylko bez trudu pokonuje ten barrier, ale także wielokrotnie wydłuża żywotność SSD. Tak więc systemy mają poważne zalety wśród macierzy All Flash na wielu polach (IOPS/$, GB/$, TCO, ROI), co czyni je idealnymi kandydatami na kluczowe pozycje w centrach danych klientów do rozwiązywania zasobożernych zadań.
Źródło: habr.com
