Co to jest osierocony i-węzeł? [Zamknięte]

16

Rozumiem, co to jest i-węzeł, ale jaka jest dokładna definicja osieroconego i-węzła? Naprawdę nie rozumiem, co to znaczy.

AKTUALIZACJA

Był czas, że na zarządzanym przeze mnie serwerze zabrakło i-węzłów, ale kiedy zrobiłem df -h, pokazało mi to, że na serwerze wykorzystano tylko 60% miejsca. Zgaduję, że dzieje się tak z powodu osieroconych i-węzłów. Jak można wykorzystać wszystkie i-węzły, ale na serwerze pozostało jeszcze „miejsce”? Czy potrafisz rozwiązać ten problem w swoich odpowiedziach?

ninjacoder
źródło
1
Twoja aktualizacja jest naprawdę oddzielnym pytaniem, dotyczącym różnicy między pojemnością systemu plików a liczbą i-węzłów, które może on zawierać; powinieneś zadać to jako osobne pytanie.
Stephen Kitt
Uruchomienie df -ipokaże odpowiednie informacje dla i-węzłów.
Kusalananda
Wolne / zajęte miejsce na dysku jest tylko nieznacznie skorelowane z wolnymi / używanymi i-węzłami. Na dysku z wieloma małymi plikami zabraknie i-węzłów, zanim zabraknie miejsca.
Kusalananda

Odpowiedzi:

17

Osierocony i-węzeł to i-węzeł, który nie jest dołączony do pozycji katalogu w systemie plików, co oznacza, że ​​nie można do niego dotrzeć.

Osierocone i-węzły mogą pojawić się z wielu powodów:

  • pliki tymczasowe, które są usuwane, ale pozostają otwarte (powszechna praktyka) zajmują i-węzły w systemie plików; jeśli system uruchomi się ponownie bez odpowiedniego zamknięcia, i-węzły pozostaną i zostaną osierocone
  • uszkodzenie systemu plików może uszkodzić katalog bez wpływu na i-węzły plików w nim zawartych; te i-węzły są następnie osierocone

fscktworzy nowe wpisy katalogu dla osieroconych i-węzłów w lost+found.

Stephen Kitt
źródło
Dzięki za odpowiedź @ Stephen-Kitt. Był czas, gdy na zarządzanym df -hprzeze mnie serwerze zabrakło i-węzłów, ale kiedy to zrobiłem , pokazało mi, że na serwerze wykorzystano tylko 60% miejsca. Zgaduję, że dzieje się tak z powodu osieroconych i-węzłów. Jak można wykorzystać wszystkie i-węzły, ale na serwerze pozostało jeszcze „miejsce”?
ninjacoder
3

Osierocony i-węzeł to plik, który jest „częściowo usunięty”: nie ma już pozycji w katalogu, ale nadal jest otwarty w pewnym procesie, więc dane są nadal obecne na dysku. Gdy ostatni proces, w którym ten plik jest otwarty, zostanie zamknięty, plik zostanie całkowicie usunięty, a osierocony i-węzeł zniknie.

Osieroconego iwęzłów zastosowania zarówno iwęzłów i przestrzeni na dysku, aby zapisać plik, tak jak dfi df -iliczyć je jako używane. Zatem jeśli dysk jest zgłaszany jako pełny, ale dfpokazuje trochę wolnego miejsca, nie można tego powiązać z osieroconymi i-węzłami. Osierocone i-węzły są jednym z powodów, dla których zgłaszane użycie systemu plików dfi całkowity rozmiar pliku zgłaszany przez dumogą się różnić; zobacz Dlaczego istnieje tak wiele różnych sposobów pomiaru zużycia dysku? po więcej szczegółów na ten temat.

Wiele systemów plików zarezerwowało stałą liczbę i-węzłów podczas tworzenia systemu plików, co oznacza, że ​​możesz mieć maksymalnie tyle plików w systemie plików. Liczba i-węzłów stanowi kompromis między przestrzenią zajmowaną przez i-węzły a możliwością tworzenia wielu plików. Jeśli w systemie plików nie ma już miejsca, nie możesz powiększać istniejących plików ani tworzyć nowych plików (być może nadal możesz tworzyć puste pliki w istniejących katalogach, o ile wypełniają one tylko częściowo używane bloki, a nie wymagające przydzielenia nowego bloku). Jeśli nie ma już wolnego i-węzła, możesz powiększać istniejące pliki, ale nie możesz utworzyć nowego pliku.

Jądro zgłasza ten sam błąd aplikacjom, czy system plików jest pełny z powodu braku miejsca na dane lub z powodu braku i-węzłów. Możesz więc otrzymać błąd „dysk pełny”, nawet jeśli pozostało trochę miejsca na dane, jeśli operacja wymagała nowego i-węzła, a tabela i-węzłów jest pełna. Uruchom, df -iaby dowiedzieć się, ile użytych i-węzłów jest używanych.

Gilles „SO- przestań być zły”
źródło
1
  • Osierocony i-węzeł to taki, który został odłączony, ale nadal jest otwarty w innym procesie. Na przykład działa tail -f {file}w jednej powłoce, a następnie rm {file}w innej. System plików śledzi je, aby można je było wyczyścić po zakończeniu procesu.

  • Jest to całkowicie normalne, gdy masz nieczystego zsiada. Są to po prostu pliki, które zostały usunięte, ale nadal były otwarte, gdy fs został ponownie zamontowany tylko do odczytu. Nie są przyczyną, a jedynie objawami.


W przypadku problemu z i-węzłem uruchom to zapytanie, aby uzyskać listę ilości i-węzłów używanych we wszystkich katalogach

for i in `find . -type d `; do echo `ls -a $i | wc -l` $i; done | sort -n

Więcej informacji na ten temat można znaleźć w tym i tym .

Rahul
źródło
@ ninjacoder możesz sprawdzić moją zaktualizowaną odpowiedź na problem z i-węzłem
Rahul