Czytałem ostatnio o buforowaniu zapisu, NCQ, błędach oprogramowania, barierach itp. Dotyczących napędów SATA i nie jestem pewien, jakie jest najlepsze ustawienie, które zapewniłoby bezpieczeństwo moich danych w przypadku awarii zasilania.
Z tego, co rozumiem, NCQ pozwala napędowi na zmianę kolejności zapisów w celu zoptymalizowania wydajności, przy jednoczesnym informowaniu jądra o tym, które żądania zostały fizycznie zapisane.
Pamięć podręczna zapisu powoduje, że dysk obsługuje żądanie znacznie szybciej, ponieważ nie czeka na zapisanie danych na dysku fizycznym.
Nie jestem pewien, jak mieszają się tutaj pamięć podręczna NCQ i Write ...
Systemy plików, zwłaszcza rejestrowane w dziennikach, muszą mieć pewność, kiedy określone żądanie zostało zapisane. Ponadto proces przestrzeni użytkownika używa fsync () do wymuszenia opróżnienia określonego pliku. To wywołanie fsync () nie powinno wrócić, dopóki system plików nie upewni się, że dane są zapisane na dysku.
Istnieje funkcja (FUA, Force Unit Access), którą widziałem tylko na dyskach SAS, która zmusza dysk do obejścia pamięci podręcznej i zapisu bezpośrednio na dysk. Poza tym istnieją bariery zapisu, które są mechanizmem zapewnianym przez jądro, które mogą wyzwalać opróżnianie pamięci podręcznej na dysku. Wymusza to zapisanie całej pamięci podręcznej, a nie tylko krytycznych danych, co spowalnia cały system w przypadku nadużycia, na przykład za pomocą fsync ().
Następnie są dyski z błędami oprogramowania układowego lub umyślnie kłamią na temat fizycznego zapisu danych.
Powiedziawszy to ... istnieje kilka sposobów konfiguracji napędów / systemów plików: A) NCQ i pamięć podręczna zapisu wyłączona B) Właśnie włączona obsługa NCQ C) Tylko pamięć podręczna zapisu włączona D) Zarówno NCQ, jak i pamięć podręczna zapisu
Zakładam, że bariery są włączone. BTW, jak sprawdzić, czy faktycznie są włączone?
W przypadku utraty zasilania, podczas aktywnego zapisu na dysk, domyślam się, że opcja B (NCQ, brak pamięci podręcznej) jest bezpieczna, zarówno dla dziennika systemu plików, jak i danych. Może wystąpić kara za wyniki.
Opcja D (pamięć podręczna NCQ +), jeśli używa się barier lub FUA, byłaby bezpieczna dla dziennika systemu plików i aplikacji korzystających z fsync (). Byłoby źle dla danych, które czekały w pamięci podręcznej, a system plików musi je wykryć (suma kontrolna), a przynajmniej system plików nie będzie (mam nadzieję) w niestabilnym stanie. Pod względem wydajności powinno być lepiej.
Moje pytanie brzmi jednak ... Czy coś mi brakuje? Czy jest jakaś inna zmienna, którą należy wziąć pod uwagę? Czy jest jakieś narzędzie, które mogłoby to potwierdzić i że moje dyski zachowują się tak, jak powinny?