Ustawienia pamięci podręcznej kontrolera RAID i dysków twardych
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:
- 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.
- 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
- ↑ 3ware® SAS/SATA RAID Controller CLI Guide Version 9.5.1 Table 9: StorSave Profile Definitions (Seite 124)
- ↑ Technical Brief StorSave with BBU
- ↑ AMCC Demonstrates New SATA RAID StorSave Platform for High Performance Computing Environments at SC2004