Czy kiedykolwiek zastanawiałeś się dlaczego prawie wszystkie wolumeny w twoich serwerach są skonfigurowane w RAID 5 lub 6? Większość z was pewnie odpowie “Och, mój sprzedawca powiedział, że to będzie dla mnie najlepsze rozwiązanie”

W serwerach pod uwagę powinno się brać sposób odczytu i zapisu danych przez aplikację na nich uruchomionych. Różne aplikacje w różny sposób się zachowują, ale zazwyczaj możemy je przypisać do jednej z dwóch kategorii:

  • Przypadkowy dostęp
  • Ciągły dostęp

Kolejnym czynnikiem jaki powinniśmy brać pod uwagę w obu powyższych przypadkach to współczynnik Odczytu/Zapisu (wyrażony w procentach).

Aplikacje bazodanowe tj. Serwer SQL, Oracle przeważnie szufladkujemy do charakterystyki typu OLTP (online transaction processing), gdzie przypadkowy dostęp do danych jest dominującą metodą. Do OLTP również przypisuje się aplikacje pocztowe takie jak Exchange, Lotus i nawet SMTP. Współczynnik dla charakterystyki OLTP przeważnie kształtuje się na poziomie 2:1 lub 3:1 na korzyść Odczytu. Aplikacje bazodanowe mają jeszcze większy współczynnik na korzyść przypadkowego odczytu.

Jednakże aplikacje OLTP, generują także ruch ciągły, pokazuje to poniższa tabela:

Operacja Przypadkowy czy Ciągły Odczyt/Zapis Intensywność Wielkość Bloku
DB-Logi Przypadkowy (Ciągły jeżeli odzyskujemy logi) Zapis Intensywny chyba, że odzyskujemy logi 1KB – 64KB
DB-Plik danych Przypadkowy Mieszany Odczyt/Zapis w zależności od obciążenia 4KB – 32KB
Batch insert Ciągły Zapis Intensywny 8KB – 128KB
Index scan Ciągły Odczyt Intensywny 8KB – 128KB

Sprawdzimy 4 poziomy RAID dzięki czemu dowiemy się, który z poziomów RAID pasuje do jakiego typu środowiska OLTP. Poziomy RAID, którymi się zajmiemy to RAID-0, RAID-1 (włącznie z 1+0, 0+1), RAID-5 i RAID-6.

RAID-0 jest bazowy, z przetwarzaniem normalnym tzn. 1 x Odczyt i 1 x Zapis.

RAID-1 wymaga 2 x Zapisu i 1 x Odczytu, ponieważ operacja zapisu jest dublowana i właśnie za to otrzymuje od nas 2 punkty karne dla zapisu.

RAID-5 bazuje na bitach parzystości i wymaga 2 x Odczytu (1 do odczytania bloku danych i 1 do odczytania bitu parzystości) i 2 x Zapisu (1 do zapisu bloku i 1 do zapisu bitu parzystości). Dlatego właśnie zdobył 4 karne punkty dla zapisu.

RAID-6 stosuje się jako zamiennik RAID-5 w celu zmniejszenia ryzyka utraty danych w przypadku awarii dysku. Przechowywanie przez RAID 6 podwójnych bitów parzystości powoduje, że ilość karnych punktów dla zapisu wynosi 6.

Poniżej tabela pokazują nasze wyniki.

Poziom RAID Ilość Odczytów I/O
Ilość Zapisów I/O
Karne Punkty Zapisu
0 1 1 1
1 (1+0, 0+1) 1 2 2
5 1 4 4
6 1 6 6

Wszyscy doskonale wiemy, że RAID 0 ma dobre osiągi zarówno przy zapisie jak i odczycie, ale zdajemy sobie też sprawę, że w przypadku awarii jednego z dysków tracimy bezpowrotnie nasze cenne dane. RAID-1 będzie dobry dla przypadkowych odczytów, ale musimy sobie zdawać sprawę z tego, że połowę pojemności tracimy na kopię danych. RAID-5 jest dobry dla aplikacji mających duży współczynnik ciągłego odczytu względem zapisu (2:1, 3:1). RAID-6 powinien być rozpatrywany dla tych samych aplikacji co RAID-5, ale należy sobie zdawać sprawę, że będzie od niego wolniejszy.

Mając to na uwadze administrator serwerów musi zadać sobie pytanie, który poziom RAID będzie najlepszy dla jego aplikacji. Niestety dobór odpowiedniego poziomu RAID nie jest taki prosty jakby się mogło wydawać.

W tym wpisie opisaliśmy bardzo krótko minusy jakie mają najpopularniejsze poziomy RAID przy zapisie danych. Jednak to nie wszystko co powinniśmy brać pod uwagę przy doborze odpowiedniego poziomu RAID, ważne jest również pasmo przepustowości oraz ilość IOPS. Więcej znajdziecie w kolejnym artykule „Jak obliczyć ilość IOPS i przepustowość dla wolumenu RAID?”.

1 Comment

  • spooner, 9 sierpnia 2012 @ 11:11 Reply

    Tekst ma potencjał, ale jest fatalnie zredagowany (konstrukcja zdań, powtórzenia, interpunkcja).
    spn.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *