Ustawienia pamięci podręcznej kontrolera RAID i dysków twardych

Z Thomas-Krenn-Wiki
Przejdź do nawigacji Przejdź do wyszukiwania

Ten artykuł opisuje różne możliwości ustawień pamięci podręcznej (tzw. cache) kontrolerów RAID i dysków twardych. Poniższy opis zawiera informacje, które ustawienia są niezbędne do zabezpieczenia danych przed utratą w razie braku zasilania (co również wiąże się z ryzykiem uszkodzenia systemu plików).

Zaangażowanie pamięci podręcznej podczas dostępu do danych

Podczas uzyskiwania dostępu do danych, cache jest zaangażowany na różnych poziomach, które są krótko opisane poniżej.

Cache systemu operacyjnego

Nowoczesne systemy operacyjne używają tak zwanego page cache/buffer cache. Podczas zapisu danych trafiają one najpierw do tego cache’u, którego zawartość jest regularnie (lub w przypadku skorzystania z systemowych poleceń sync albo fsync) zapisywana na nośnikach danych, którymi może być zarówno macierz RAID jak i bezpośrenio dysk twardy. Dalsze informacje (w języku niemieckim i angielskim) na ten temat znajdują się w artykule o buffer cache pod Linuksem na WebProNews oraz w gólnym artykule o page cache w wikipedii.

W systemie Linuks istnieje polecenie free -m, które podaje obecną ilość pamięci RAM wykorzystywaną przez page cache:

[root@testserver ~]# free -m
             total       used       free     shared    buffers     cached
Mem:         15976      15195        781          0        167       9153
-/+ buffers/cache:       5874      10102
Swap:         2000          0       1999
[root@testserver ~]# 

W przypadku zaniku zasilania zawartość page cache’u ulega utracie.

Cache kontrolera RAID

Cache kontrolera RAID może znacząco zwiększyć wydajność podczas zapisu danych. Obecnie kontrolery są często wyposażone w conajmniej 256 MB pamięci podręcznej. W przypadku zaniku zasilania zawartość cache’u zostaje utracona – chyba, że jest on (cache) chroniony przez podtrzymanie bateryjne BBU/BBM (Battery Backup Unit, Battery Backup Module), które dzięki zintegrowanemu akumulatorowi umożliwiają zapis danych do 72 godz. od zaniku zasilania.

Uwaga: Stan akumulatora powinien być regularnie kontrolowany. Jego pojemność z upływem czasu maleje. Z reguły po upływie 2 - 3 lat należy go wymienić. Szczegółowe informacje o konserwacji BBU znajdują się w artykule Konserwacja battery backup unit (BBU/BBM) kontrolera RAID.

Uwaga: W przypadku kontrolerów RAID, które do ochrony pamięci cache zamiast podtrzymania bateryjnego BBU wykorzystują pamięć flash, na którą kopiowane są dane w przypadku zaniku zasilania, nie wymagany jest żaden specjalny nadzór. Taki sposób zabezpieczenia przed utratą danych oferują nowe kontrolery Adapteca z serii 5Z z technologią Zero Maintenance Cache Protection (ZMCP).

Cache dysku twardego

Dyski twarde posiadają również zintegrowany cache, obecnie od 16 do 64 MB. Zawartość tej pamięci podręcznej zwykle nie jest chroniona przez BBU. Nowe kontrolery 3ware chronią znajdujące się w nim dane poprzez zastosownie tzw. write journal (parametr konfiguracji Storsave). W przypadku zaniku zasilania zawartość pamięci cache ulega utracie.

Zagrożenia związane z utratą zawartości pamięci cache

W przypadku gdy kontroler lub dysk przekaże informację systemowi operacyjnemu, że dane - które w rzeczywistości znajdują się w pamięci podręcznej – zostały zapisane, może w przypadku awarii zasilania w najgorszym przypadku dojść do ich całkowitej utraty. Sytuacja taka może wystapić np. w przypadku licznych aktualizacji systemu plików - metadane, aktualizacje te zostaną jedynie częściowo zapisane (pozostałe dane znajdujące sie w pamięci podręcznej ulegną utracie). W takich przypadkach jedynym ratunkiem jest aktualny backup. Ustawienia cache’a dla bezpiecznej eksploatacji (patrz poniżej) mogą te zagrożenia złagodzić, co oczywiście ma negatywny wpływ na wydajność.

Ustawienia zapewniające bezpieczną pracę

Celem bezpiecznej eksploatacji jest miedzy innymi zapewnienie bezpieczeństwa danym zawartym w cache’u kontrolera lub dysku twardego w przypadku zaniku zasilania.

W celu zapewnienia bezpiecznej pracy mogą miedzy innymi zostać uwzględnione nastepujące podstawowe reguły:

  1. Podczas korzystania z cache’a kontrolera RAID, ochrona jego zawartości poprzez zastosowanie BBU/BBM. Stan akumulatora powinien być regularnie kontrolowany, w razie konieczności należy go wymienić (z reguły co 2-3 lata). Następnie nie należy zapominać, że zawartość pamięci podręcznej może być chroniona przez BBU/BBM nie dłużej niż 72 godz.
  2. Cache dysków twardych w normalnym przypadku nie jest chroniony przez BBU/BBM, dlatego należy go deaktywować.
    • Uwaga: nowe kontrolery 3ware oferuja opcję write journal, która chroni zawartość pamięci podręcznej – opcja Protection lub Balanced w ustawieniach Storsave kontrolera (w ostatniej opcji jedynie w połączeniu z BBU) [1]. Więcej informacji na ten temat znajduje się w dokumentach 3ware [2][3]. Dokładny sposób działania nie jest udokumentowany, ale w przeprowadzonych przez nas testach dane są chronione.

Przykładowe testy

Za pomocą skryptu w języku Perl przeprowadziliśmy testy pod Linuksem, czy w przypadku zaniku zasilania dane ulegną utracie. Informacje do skryptu można znaleźć tutaj: http://brad.livejournal.com/2116715.html

W poniższej tabeli zawarte są wyniki testów przeprowadzonych z różnymi kontrolerami w różnych ustawieniach. Wszystkie kontrolery w testach wyposażone były w BBU/BBM.

Test# Kontroler Firmware Ustawienia cache Wynik
1 Adaptec 5405 5.2-0 (15726) HDD cache włączony Maks. wydajność - możliwa utrata danych
2 Adaptec 5405 5.2-0 (15726) HDD Cache wyłączony (przez arcconf CLI) Test OK (brak utraty danych)
3 Areca 1210 1.43 HDD cache wyłączony (Disk Write Cache Mode = Disabled) Test OK (brak utraty danych)
4 Areca 1210 1.43 HDD cache włączony (Disk Write Cache Mode = Enabled) Maks. wydajność - możliwa utrata danych
5 onboard SATA - HDD cache włączony Maks. wydajność - możliwa utrata danych
6 onboard SATA - HDD cache wyłączony (przez hdparm -W0 /dev/sda) Test OK (brak utraty danych)
7 3ware 9550SX FE9X 3.02.00.016 HDD cache prawdopodobnie włączony (Storsave Perform) Maks. wydajność - możliwa utrata danych
8 3ware 9550SX FE9X 3.02.00.016 HDD cache prawdopodobnie włączony (Storsave Balanced) Test OK (brak utraty danych)
9 3ware 9550SX FE9X 3.02.00.016 HDD cache prawdopodobnie włączony (Storsave Protection) Test OK (brak utraty danych)

Wskazówka: W celu uzyskania 100% pewności sugerujemy przeprowadzenie własnoręcznych testów.

Dalsze komentarze:

  • przy kontrolerze Adaptec 5405 cache poszczególnego dysku może zostać w nastepujący sposób deaktywowany (przykład dla pierwszego dysku): arcconf SETCACHE 1 DEVICE 0 0 wt
  • przy kontrolerze on-board SATA deaktywowaliśmy cache w następujący sposób: hdparm -W0 /dev/sda. W większości twardych dysków ustawienie to, po restarcie musi ponownie zostac aktywowane. Więcej informajci na ten temat w bazie wiedzy Microsoft.

Odniesienia

Dalsze informacje

Powiązane artykuły

Instalacja systemu Windows na kontrolerze RAID firmy LSI w trybie UEFI
Manualne uruchomienie funkcji Verify / Consistency Check
Tworzenie logów diagnostycznych kontrolerów RAID i serwera Intel Modular Server