現象描述
在 Linux 云服務器中創建新文件時,出現 no space left on device 報錯
可能原因
- 硬盤空間處于已滿狀態
- 文件系統 inode 滿
- df du 處于不一致狀態
故障處理
硬盤空間處于已滿狀態
- 執行以下命令,查看硬盤使用率
df -h
- 定位硬盤使用率較高的掛載點,并執行以下命令進入該掛載點。
cd 對應掛載點
例如,如需 cd 系統盤掛載點,則執行 cd /
- 執行以下命令,查找占用空間較大的目錄。
du -x –max-depth=1 | sort -n
根據定位到占用空間最大的目錄容量情況,執行以下步驟:
如果目錄容量遠低于硬盤總空間,請 檢查 df du 是否不一致步驟繼續排查問題。
如果目錄容量較大,若定位到占用空間較大的文件,綜合業務情況評估是否可刪除。若無法刪除,請通過擴容云硬盤擴大硬盤存儲空間。
檢查文件系統是否 inode 滿
- 執行以下命令,查看硬盤使用率。
df -i
- 定位硬盤使用率較高的掛載點,并執行以下命令進入該掛載點。
cd 對應掛載點
find / -type f | awk -F / -v OFS=/ ‘{$NF=””;dir[$0]++}END{for(i in dir)print dir[i]” “i}’ | sort -k1 -nr | head
檢查 df du 是否不一致
解決進程占用文件句柄問題
執行以下命令,查看占用文件的進程
lsof | grep delete
請根據返回結果,執行以下步驟:
kill 對應進程。
重啟服務。
若較多進程占用文件句柄,可重啟服務器。
解決 mount 掛載嵌套問題
- 執行 mount 命令,mount 占用空間大的磁盤到 /mnt。例如:
mount /dev/vda1 /mnt
- 執行以下命令,進入 /mnt。
cd /mnt
- 執行以下命令,查找占用空間較大的目錄。
du -x –max-depth=1 | sort -n
根據返回結果,綜合業務情況評估是否可刪除目錄或文件。
- 執行 umount 命令,umount 磁盤。例如:
umount /mnt