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ů:
- 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.
- 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.
- 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
-
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).
-
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.
-
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í
-
Č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ářů.
-
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.
-
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.
-
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.