Punkt zwrotny programowego RAID

W czerwcu 2001 roku wydarzyło się coś niesamowitego w świecie IT: Intel wypuścił procesor Pentium IIIS 1.0 GHz oparty na rdzeniu Tualatin. Był to jeden z pierwszych procesorów Intel (architektura IA32), który przekroczył barierę 1 GHz i pierwszy o naprawdę istotnym znaczeniu. Wyróżniał się też obsługą dwóch procesorów i podwójnym rozmiarem pamięci cache w porównaniu z poprzednikami opartymi na rdzeniu Coppermine lub swoim następcą Tualatin bez oznaczenia „S” (który pojawił się zaledwie miesiąc później). Płyty główne dla systemu PIIIS cieszyły się w tamtej epoce ogromną popularnością i stanowiły kręgosłup wydajnych serwerów klasy commodity, takich jak Proliant i PowerEdge, w 2001 roku i przez kilka kolejnych lat, kulminując w systemach z dwoma procesorami Pentium IIIS 1.4 GHz – na tyle ważnych, że dały początek słynnej konwencji nazewnictwa HP Proliant „G”. Serwery z Pentium III były „G1”.
Co to ma wspólnego z RAID? Musimy cofnąć się i spojrzeć na to, gdzie RAID znajdował się do maja 2001 roku. Od lat 90. aż do maja 2001 roku sprzętowy RAID był standardem w świecie serwerów IA32, który obejmował przede wszystkim systemy takie jak Novell Netware, Windows NT 4, Windows 2000 i pewne wdrożenia Linux. Programowy RAID istniał dla niektórych z tych systemów (nie dla Netware), ale serwery zawsze zmagały się z ograniczeniami CPU i pamięci RAM, a przeznaczanie tych cennych zasobów na funkcje RAID było kosztowne – aplikacje konkurowały z RAID o dostęp i systemy często się dławiły. Sprzętowy RAID rozwiązał ten problem, dodając dedykowany CPU i RAM wyłącznie dla tych funkcji.
RAID pod koniec lat 90. i na początku 2000. opierał się w dużej mierze na parityowym striping w RAID 5, a w mniejszym stopniu RAID 6, ponieważ dyski były małe i niezwykle drogie w przeliczeniu na pojemność. Maksymalne wykorzystanie dostępnych dysków było priorytetem, a ryzyka takie jak URE były minimalne ze względu na małe rozmiary dysków, dzięki czemu parityowy RAID był całkiem niezawodny. Czynniki były zupełnie inne niż w 2009 roku. W 2001 roku wciąż powszechne było stosowanie dysków twardych 2,1 GB, 4,3 GB i 9 GB w serwerach klasy enterprise!
Ponieważ parityowy RAID był normą dnia, a na każdym serwerze używano zazwyczaj wielu dysków, RAID generował średnio wyższe obciążenie CPU w 2000 roku niż w 2010 roku. Wpływ RAID na zasoby systemowe był więc bardzo znaczący.
Taki był kontekst. Ale w czerwcu 2001 roku osoby kupujące dotychczas słabe systemy IA32 nagle uzyskały dostęp do procesorów Tualatin Pentium IIIS o znacznie wyższych taktowaniach, efektywną obsługą dwóch procesorów i podwójnymi cache'ami na chipie – co z dnia na dzień przyniosło zdumiewający skok wydajności. Przy całej tej nowej mocy i braku odpowiadającego wzrostu wymagań oprogramowania, systemy tradycyjnie głodujące na CPU i RAM nagle dysponowały zasobami, których nie wiedziały jak wykorzystać, szczególnie że dostępne były dodatkowe wątki, a większość ówczesnych aplikacji była jednowątkowa.
Procesory systemowe, nawet w erze Pentium III, były dramatycznie mocniejsze od małych CPU – często budżetowych chipów PowerPC lub MIPS – na kontrolerach sprzętowego RAID. Dostępna pamięć systemowa była często znacznie większa niż sprzętowe pamięci cache na kartach RAID, a inwestowanie w dodatkową pamięć systemową było generalnie bardziej efektywne. Wraz z dostępnością wolnych zasobów na głównym systemie, funkcje RAID można było przeciętnie przenieść z kart sprzętowych do centralnego systemu i uzyskać lepszą wydajność, nawet rezygnując z dodatkowego CPU i RAM kart sprzętowych. Nie dotyczyło to systemów przeciążonych ani systemów parityowych – tu największe korzyści osiągał RAID 6, a najmniejsze RAID 1 i 0.
Czerwiec 2001 roku był słynnym punktem zwrotnym – przed tą datą przeciętny system IA32 był szybszy przy sprzętowym RAID. Po czerwcu 2001 roku nowo kupowane systemy były przeciętnie szybsze z programowym RAID. Z każdym rokiem przewaga przesuwała się coraz bardziej na korzyść programowego RAID, wraz z obfitością niedostatecznie wykorzystywanych rdzeni CPU i wolnych wątków oraz szybko rosnącą ilością wolnej pamięci RAM. Jedyną zaletą sprzętowego RAID pozostał zanik parityowego RAID, gdy mirroring przejął rolę standardu wraz z dramatycznym wzrostem pojemności dysków i spadkiem kosztów.
Dziś minęło ponad piętnaście lat od czasu, gdy porzucono przekonanie o wyższości sprzętowego RAID pod względem wydajności. Przekonanie to utrzymuje się głównie z powodu tzw. efektu “Klasy 1998”. Jednak od dawna jest to mit powielany przez osoby, które nie zadały sobie trudu zrozumienia pierwotnych źródeł. Sprzętowy RAID nadal ma zalety, ale wydajność nie należy do nich przez większość czasu istnienia technologii RAID i nie oczekuje się, by kiedykolwiek znów stała się jego atutem.