Temat: raid 5
Marcin Bojko:
Mariusz Gronczewski:
"Problem" z RAID 5/6 pojawia się przy dużej ilości losowego IO, bo zmiana 1 sektora powoduje odczyt z wszystkich dysków, przeliczenie sumy i zapis sektora + checksumy.
Zapis/odczyt jest blokowy, stąd uniezależnienie zmiany w pliku od zmiany na dysku.
Tak jest blokowy, czyli jak zapiszesz 4 bloki ( zalozmy ze nowiutki dysk z sektorem 4KB, przy starszych jeszcze gorzej) na RAID5/5 dysków ze strip size 64K
to system będzie musiał odczytać 4x4x64/4 = 256 sektorów, po 64 na dysk
potem zmienić ten w którym zapisujemy, policzyć checksumę i następnie zapisać ten blok i checksumę, czyli jeden zapis generuje nam 4(64) operacje odczytu i 2(32) zapisu albo 256/128KB odczytu/zapisu
w rzeczywistości ofc jest dużo lepiej, część odczytów pójdzie z cache kontrolera a request zapisu się zbufuruje ale przy dużych bazach danych gdzie dużo random write po bazie paredziesiąt razy większej od cache zaczyna to mieć znaczenie.
Cache na sprzętowym kontrolerze pomaga ale... cache w końcu się skończy
Cache załatwia całą operację ;)
Ale w końcu się skończy ;]. A jeżeli się nie skończy znaczy że serwer nie jest dociążony a wtedy wybór trybu RAID jest dużo mniej krytyczny
;]. Oraz restore RAID5/6 trwa znacznie dłużej niż RAID1/10 (musi przemielić wszystkie dyski i policzyć sumy a nie proste cp jak to robi RAID1/10) oraz wydajność macierzy będzie dużo gorsza (chyba że damy restore niski priorytet ale wtedy będzie jeszcze dłużej trwał).
Wiesz, w obecnym stanie rzeczy, hw realizuje to z bardzo niskim narzutem, to już nie czasy i960 ;)
Ale IO dysków jest te same niezależnie od tego co jest między nimi a prockiem, mniejszy narzut = wolniejszy restore RAIDu, magiczne pudełka pomiędzy dyskiem a prockiem nic tutaj nie zmienią.
Degraded RAID5/6 dalej będzie wymagał odczytu z wszystkich dysków żeby odtworzyć dane a to jest wolne, nieważne jak dobry kontroler w maszynie siedzi ;]
Ja jak mam wybierać to RAID1/10 (najlepiej) do baz i podobnych (rzeczy wymagających max. wydajności), reszta raid5/6 (mało zmarnowanego miejca)
Przy serwerowym podejściu, 2 lub trzech dyskach, różnice w i/o miałem na poziomie 10% na rzecz raid1 nad raid5.
10% szybciej przy 1 dysku mniej w RAID1, czyli przy 1 dysku więcej mamy wolniejszą matrycę i wolniejszy restore z padu dysku, jeżeżeli porównywać oba to RAID10 vs. RAID5 na np. 4 dyskowej macierzy:
http://www.kendalvandyke.com/2009/02/disk-performance-...