Dlaczego rm przez NFS nie natychmiast zwalnia miejsce?

1

Jestem na serwerze SUSE Enterprise, który zamontował dysk za pośrednictwem montażu NFS. Utworzyłem plik 34 GB, dd if=/dev/Zero of=test_file bs=8k Count=4194304aby przetestować szybkość zapisu udziału NFS. Następnie usunąłem plik za pomocą, rm test_filea następnie natychmiast go wykorzystałem df.

Wartość w usedkolumnie wyniku dfzaczyna się zmniejszać. Aktualizuję, dzwoniąc dfco ~ 10 sekund i za każdym razem, gdy widzę, że usedwartość spadła o ~ 2 GB.

Wygląda więc na to, że rm test_filepolecenie nie wydaje się, że zakończyło swoją pracę, chociaż mam ponownie wiersz polecenia (więc rm musiał zwrócić „0”, prawda?). Co tu się dzieje w tle?

Robert
źródło
Próbowałeś sync?
choroba
1
Chociaż mówisz, że system plików jest podłączony przez NFS, to jak jest sformatowane podłączenie NFS? Wszystko, co robi NFS, to podłączenie do sieci.
JakeGould,

Odpowiedzi:

2

System plików w węźle zdalnym, który zapewnia pamięć zaplecza dla udziału NFS, nie zwalnia natychmiast miejsca.

Ściśle mówiąc, semantyka POSIX nie wymagają usuwania pliku natychmiast uwolnić przestrzeń została użyciu (faktycznie nie wymagają go uwolnić żadnego miejsca na wszystko , co jest raczej ważne dla niektórych przypadków użycia). Z tego powodu oraz z faktu, że zwolnienie miejsca może zająć dużo czasu, niektóre systemy plików nie czekają na dezalokację i po prostu wracają, gdy upewnią się, że pozycja pliku nie pojawi się na listach katalogów ( to wszystko, czego wymaga POSIX).

Możliwe przyczyny zwolnienia miejsca to:

  • System plików może szorować puste miejsce, ponieważ jest zwolnione, aby zapobiec ujawnieniu informacji. Jest to prawie zawsze kosztowna operacja.
  • System plików może znajdować się na dysku SSD lub w słabo wyposażonej pamięci i jest skonfigurowany tak, aby informować niższe warstwy, że miejsce nie jest obecnie używane. Ta operacja może również potrwać dość długo.
  • System plików może wymagać aktualizacji struktur danych do wewnętrznych celów księgowych. To może, ale nie musi, zająć dużo czasu, ale zwykle nie jest banalne.
  • System plików może wymagać aktualizacji wewnętrznych struktur danych, aby poprawnie obsługiwać wszelkie odnośniki lub inne współdzielone regiony w pliku.
Austin Hemmelgarn
źródło