Jak działa pamięć podręczna odczytu NFS na Debianie?

12

Planuję użyć NFS do obsługi wielu małych plików. Będą czytane bardzo często, więc buforowanie po stronie klienta ma kluczowe znaczenie. Czy NFS to obsługuje? Czy istnieje sposób na zwiększenie buforowania po stronie klienta?

... czy powinienem spojrzeć na inne rozwiązanie? Okresowa synchronizacja przy użyciu rsync lub unison nie jest możliwa, ponieważ pliki są od czasu do czasu modyfikowane po stronie klienta.

Ztyx
źródło

Odpowiedzi:

6

Po pierwsze, NFS nie zapewnia spójności pamięci podręcznej, więc jeśli potrzebujesz, musisz szukać gdzie indziej.

NFS określa słabszy model zwany spójnością zbliżoną do otwartej. Oznacza to, że gdy plik jest zamknięty, wszelkie brudne dane są opróżniane na serwer. I odwrotnie, po otwarciu pliku przeprowadzana jest kontrola atrybutów, co oznacza, że ​​jeśli klient ma buforowane strony z tego pliku, sprawdza, czy strony te są nadal prawidłowe.

Chociaż nie jest to specyfikacją, większość klientów NFS ma coś, co nazywa się limitem czasu pamięci podręcznej atrybutów, tj. Ile lat mogą mieć atrybuty katalogu lub otwartego pliku, zanim klient skontaktuje się z serwerem w celu ich ponownej walidacji. W systemie Linux zobacz opcje montowania actimeo = itp. Wyższe wartości umożliwiają bardziej agresywne buforowanie, ale zwiększają ryzyko użycia nieaktualnych danych, jeśli w międzyczasie jakiś klient zaktualizuje plik.

janneb
źródło
Dziękuję za odpowiedź. Tak więc, aby dobrze to zrozumieć, „pamięć podręczna atrybutów” po stronie klienta zawiera tylko pamięć podręczną dla atrybutów file / dir, tj. pamięć podręczna nie zawiera żadnej zawartości pliku?
Ztyx
Tak, klient buforuje zawartość pliku w pamięci podręcznej strony, podobnie jak w przypadku lokalnego systemu plików. Atrybuty służą do decydowania, czy i kiedy zawartość buforowanego pliku zostanie unieważniona.
janneb
Ach Dziękuję bardzo za udzielenie odpowiedzi. Miłego dnia.
Ztyx
Kiedy mówisz „strona”, oznacza to, że części pliku mogą być buforowane, a części pliku mogą nie być? To nie jest pamięć podręczna plików, prawda? To podziały pliku, które można buforować.
CMCDragonkai
@CMCDragonkai: Jądro śledzi zawartość pliku w pamięci podręcznej z ziarnistością strony (zazwyczaj 4KB), więc tak, może buforować część pliku. Nie jestem pewien, jak dokładnie działa unieważnienie pamięci podręcznej dla NFS, domyślam się, że po przekroczeniu limitu czasu pamięci podręcznej atrybutu, gdy skontaktuje się on z serwerem w celu ponownej walidacji, a jeśli ponowna walidacja się nie powiedzie, spowoduje to usunięcie wszystkich stron z pamięci podręcznej należących do tego pliku.
janneb