Działa to tak:
Większość systemów operacyjnych ma wywołanie systemowe, które umożliwia tak zwany „zapis synchroniczny”. Oznacza to, że podczas operacji zapisu, jeśli zapis został zakończony, jest zagwarantowane, że został on zapisany na dysku.
Zapis synchroniczny nie jest zatem buforowany. Blokuje aplikację do momentu jej zakończenia. Ten rodzaj operacji jest oczywiście wolniejszy niż zapis w pamięci podręcznej, który przechowuje dane w pamięci systemu operacyjnego, dopóki dysk nie będzie wystarczająco bezczynny, a następnie zapisuje dane.
Niektóre krytyczne oprogramowanie, takie jak oprogramowanie bazy danych, wykonuje synchroniczne zapisy dla krytycznych danych, ponieważ w połowie zapisana aktualizacja w przypadku utraty zasilania może mieć negatywny wpływ na integralność bazy danych.
Kontrolery RAID są notorycznie powolne w przypadku zapisu RAID-5, więc staje się to problemem, jeśli oprogramowanie aplikacji używa dużej liczby zapisów synchronicznych. Z tego powodu kontrolery RAID-5 są wyposażone we własne pamięci podręczne.
Kontroler RAID zamiast tego zapisuje dane w swojej pamięci podręcznej, a następnie LIES w systemie operacyjnym, mówiąc, że zapisał dane na dysku, podczas gdy dane nadal znajdują się w pamięci podręcznej RAID.
Ale co się stanie, jeśli nastąpi utrata zasilania, gdy dane nadal będą znajdować się w buforze kontrolera RAID? Na twoich dyskach miałbyś do połowy zapisane i prawdopodobnie niespójne dane.
Można powiedzieć, że to zachowanie nie pozwala na cel zapisu synchronicznego ... jeśli zapisywanie w pamięci podręcznej byłoby w porządku, to aplikacja nie poprosiłaby o zapis synchroniczny.
Kompromis jest następujący: kontroler RAID nadal polega na tym, że system operacyjny przesłał dane na dysk, ale aby chronić te krytyczne dane w przypadku awarii zasilania, kontroler RAID ma baterię, która utrzymuje pamięć podręczną przez pewien czas, dopóki nie będzie możliwe zasilanie przywrócone.
Więc po przywróceniu zasilania i uruchomieniu dysków oraz zainicjowaniu, kontroler nadal ma te dane w pamięci podręcznej dzięki baterii i może zakończyć zapisywanie transakcji na dysku.
Wszyscy są szczęśliwi.
Dlatego kontrolery RAID zwykle nie pozwalają włączyć pamięci podręcznej zapisu, chyba że masz funkcjonalną i naładowaną baterię.