Košík je prázdný

V systémech Linux, včetně distribuce CentOS 7, může uživatelé potkat varování o plném disku, i když výstup příkazu df naznačuje, že na disku je dostatek volného místa. Tento jev může být matoucí a vyžaduje specifický přístup k diagnostice a řešení. Tento článek vám poskytne ucelený návod, jak tento problém řešit.

Příčiny problému

Problém může nastat z několika důvodů:

  1. Spotřebované i-nody: Linuxové souborové systémy používají i-nody k identifikaci souborů. Pokud je všechny spotřebujete, systém už nebude moci vytvářet nové soubory, i když je na disku dostatek volného místa.
  2. Soubory držené otevřené: Vymazání souboru, který je stále používán nějakým procesem, neuvolní místo na disku, dokud tento proces není ukončen nebo se soubor explicitně neuzavře.
  3. Rezervované místo pro root: Ext4 a některé další souborové systémy implicitně rezervují určité procento úložného prostoru pro superuživatele (root), což může vést k situaci, kdy obyčejní uživatelé vidí disk jako plný, zatímco root ještě má dostupné místo.

Diagnostika problému

  1. Zkontrolujte využití i-nodů: Použijte příkaz df -i pro zobrazení využití i-nodů. Pokud je sloupec IUse% blízko 100%, budete muset smazat některé soubory nebo zvětšit počet i-nodů (což obvykle vyžaduje reformátování disku).

  2. Najděte otevřené soubory: Pro zjištění souborů, které byly vymazány, ale jsou stále otevřené, můžete použít příkaz lsof | grep deleted. Tím identifikujete procesy, které tyto soubory drží otevřené, a můžete je restartovat nebo ukončit.

  3. Zkontrolujte rezervované místo: Rezervované místo pro root uživatele můžete zkontrolovat a upravit pomocí příkazu tune2fs. Například, tune2fs -l /dev/sda1 | grep 'Reserved block count' ukáže počet bloků rezervovaných pro roota. Pro změnu tohoto nastavení použijte tune2fs -m 1 /dev/sda1, kde 1 je procento místa rezervovaného na disku.

Řešení

  1. Čištění: Odstraňte nepotřebné soubory a aplikace. Použijte nástroje jako du a ncdu pro identifikaci velkých souborů a adresářů.

  2. Změna velikosti i-nodů: Pokud je problém v i-nodech a nemůžete odstranit žádné další soubory, možná budete muset přemýšlet o změně velikosti souborového systému nebo přidání nového oddílu.

  3. Restartujte služby nebo systém: Pokud držení otevřených souborů způsobuje problémy, restartování dotčených služeb nebo celého systému může pomoci.

  4. Upravte rezervované místo: Pokud je problém v rezervovaném místě, snížení procenta místa rezervovaného pro roota může uvolnit místo pro ostatní uživatele.

V závěru, i když může být problém "disk full" zmatečný, zejména když nástroje ukazují dostatek dostupného místa, obvykle je možné jej vyřešit pečlivou diagnostikou a využitím správných nástrojů pro řešení konkrétní příčiny.