Transakcyjne bazy danych
RAID-5 zapisuje się stosunkowo wolno, ponieważ kontroler musi załadować wystarczającą ilość danych, aby ponownie obliczyć parzystość zapisu. Operacje zapisu pociągną za sobą co najmniej cztery operacje dyskowe:
Odczyt w bloku parzystości
Odczyt w starym bloku (zakładając, że nie jest on już w pamięci podręcznej) w celu XOR wartości z blokiem parzystości.
Zapis nowego bloku parzystości (stary blok parzystości XOR stary blok danych XOR nowy blok danych)
Zapis nowego bloku danych.
Jeśli system nie korzysta z buforowania z zapisem wstecznym, oznacza to, że wszystkie te operacje znajdują się na ścieżce krytycznej dla zakończenia operacji we / wy. Często dzieje się tak w przypadku zapisów do baz danych - w rzeczywistości Microsoft (na przykład) ma program certyfikacji urządzeń SAN do użytku z serwerem SQL, który wymaga od dostawców zagwarantowania takiego zachowania. Czasami starszy sprzęt RAID-5 nie korzystał z tej optymalizacji i musiał ponownie obliczyć parzystość z całego paska.
RAID-10 ma kopię lustrzaną dla każdego dysku i nie musi czytać dodatkowych danych, aby obliczyć parzystość. Oznacza to, że zapisy wymagają znacznie mniej fizycznych operacji we / wy.
RAID-50 znajduje się gdzieś pośrodku, z woluminem podzielonym na wiele woluminów RAID-5, które z kolei są rozłożone. Na macierzy RAID-50 wykonanej z grup rozłożonych w schemacie 3 + 1 zapis generuje co najwyżej trzy dodatkowe żądania We / Wy dysku. Jeśli czujesz się tak skłonny, możesz postrzegać RAID-5 i RAID-10 jako specjalne przypadki RAID-50. RAID-50 służy głównie do udostępniania dużych woluminów na wielu dyskach fizycznych
Istnieją również inne schematy parzystości, takie jak RAID-6 (schemat parzystości z dwoma redundantnymi dyskami na zestaw). Nowoczesne dyski są wystarczająco duże, aby ponowne zestawienie tablicy mogło zająć dość dużo czasu - wystarczająco długo, aby ryzyko awarii drugiego dysku podczas odbudowa jest dość znacząca. RAID-6 zmniejsza to ryzyko, mając drugi dysk parzystości, wymagający trzech awarii dysku, aby spowodować utratę danych. Podobną sztuczkę jak schematy RAID-50 można wykorzystać do tworzenia macierzy RAID-60.
Wreszcie, pojedyncza para kopii lustrzanych (znana jako RAID-1) może zapewnić nadmiarowość i wystarczająco dobrą wydajność do niektórych zadań. W szczególności prawdopodobnie przekonasz się, że RAID-1 zapewnia wystarczającą przepustowość na dość duży ruch w dzienniku bazy danych. Więcej na ten temat poniżej.
Jeśli masz duże obciążenie zapisu, prawdopodobnie uzyskasz wzrost wydajności z woluminu RAID-10. Może to być wygrana, ponieważ prawdopodobnie możesz uzyskać wymaganą przepustowość z mniejszej liczby dysków fizycznych, zakładając, że dyski mają wystarczającą ilość miejsca. Niektóre elementy, takie jak dzienniki lub obszary tymczasowe na serwerze bazy danych, powinny znajdować się na woluminach RAID-1 lub RAID-10, ponieważ powodują one duży ruch zapisu.
Kłody
Woluminy dziennika charakteryzują się głównie sekwencyjnym wzorcem dostępu do danych i są zasadniczo buforem pierścieniowym składającym się z poleceń w stylu „zapisz te dane do tego bloku”. Są one zapisywane jako producent przez podstawowy silnik DBMS i przetwarzane jako konumer przez funkcję czytnika dziennika. Pojedyncza para kopii lustrzanych będzie obsługiwać całkiem duży ruch w dzienniku.
Systemy i serwery plików wymagające dużej ilości odczytu
W systemie wymagającym intensywnego odczytu, takim jak hurtownia danych, możesz użyć jednego lub więcej woluminów RAID-5. Na serwerze plików dostęp do dysku będzie w dużej mierze wykonywany dla całego pliku, więc zapisy prawdopodobnie wypiszą większość bloków, które tworzą blok parzystości. W takim przypadku kara za wydajność dla RAID-5 będzie mniejsza.
W przeszłości oszczędności na dysku mogły być znaczące, ale teraz jest to mniej prawdopodobne.
Zapisywanie w pamięci podręcznej i RAID-5
Na SAN lub wewnętrznym kontrolerze RAID z pamięcią podręczną zasilaną bateryjnie możesz włączyć buforowanie „Write-back”. Ta pamięć podręczna zapisuje i zwraca kontrolę do aplikacji. We / wy jest zgłaszane przez sterownik jako zakończone. Jednak niekoniecznie natychmiast zapisuje dane na dysk. Ta funkcja pozwala znacznie zoptymalizować operacje odczytu / zapisu parzystości RAID-5 i może złagodzić spadek wydajności zapisu dla woluminów RAID-5x.
Nadal jednak wiąże się to z niewielkim ryzykiem problemów z integralnością danych. Systemowi hostowi powiedziano, że ten zapis został zakończony, gdy tak nie jest. Możliwe jest, że awaria sprzętu spowoduje powstanie niespójności danych między (powiedzmy) woluminami dziennika i danych na serwerze bazy danych. Z tego powodu buforowanie z zapisem zwrotnym nie jest zalecane w systemach transakcyjnych, chociaż może to być wzrost wydajności dla czegoś takiego jak proces ETL.
streszczenie
Dysk przestrzeń jest tak tania, że systemy transakcyjne powinny prawdopodobnie użyć RAID-1 lub RAID-10 tomów dzienników i RAID-10 dla ilości danych. Rozmiar fizycznego dysku prawdopodobnie będzie znacznie większy niż baza danych, a RAID-10 pozwoli na większą przepustowość zapisu dla tej samej liczby dysków, potencjalnie zmniejszając liczbę woluminów dyskowych potrzebnych do obsługi systemu.
Na czymś takim jak hurtownia danych nadal możesz przeżuwać przestrzeń za pomocą dużych, mocno indeksowanych tabel faktów, aby uzyskać niewielką wygraną cenową dzięki wolumenom danych RAID-5 lub RAID-50. Jednak dzienniki i tempdb powinny być nadal umieszczane na woluminie RAID-10, ponieważ prawdopodobnie zapewnią dużo pracy podczas przetwarzania ETL. Jednak oszczędność kosztów na dysku może być raczej niewielka.