現(xiàn)象描述
在 Linux 云服務(wù)器中創(chuàng)建新文件時,出現(xiàn) no space left on device 報錯
可能原因
- 硬盤空間處于已滿狀態(tài)
- 文件系統(tǒng) inode 滿
- df du 處于不一致狀態(tài)
故障處理
硬盤空間處于已滿狀態(tài)
- 執(zhí)行以下命令,查看硬盤使用率
df -h
- 定位硬盤使用率較高的掛載點,并執(zhí)行以下命令進入該掛載點。
cd 對應(yīng)掛載點
例如,如需 cd 系統(tǒng)盤掛載點,則執(zhí)行 cd /
- 執(zhí)行以下命令,查找占用空間較大的目錄。
du -x --max-depth=1 | sort -n
根據(jù)定位到占用空間最大的目錄容量情況,執(zhí)行以下步驟:
如果目錄容量遠(yuǎn)低于硬盤總空間,請 檢查 df du 是否不一致步驟繼續(xù)排查問題。
如果目錄容量較大,若定位到占用空間較大的文件,綜合業(yè)務(wù)情況評估是否可刪除。若無法刪除,請通過擴容云硬盤擴大硬盤存儲空間。
檢查文件系統(tǒng)是否 inode 滿
- 執(zhí)行以下命令,查看硬盤使用率。
df -i
- 定位硬盤使用率較高的掛載點,并執(zhí)行以下命令進入該掛載點。
cd 對應(yīng)掛載點
- 執(zhí)行以下命令,查找文件個數(shù)最多的目錄,解決該問題。該命令較耗時,請耐心等待。
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 是否不一致
解決進程占用文件句柄問題
執(zhí)行以下命令,查看占用文件的進程
lsof | grep delete
請根據(jù)返回結(jié)果,執(zhí)行以下步驟:
kill 對應(yīng)進程。
重啟服務(wù)。
若較多進程占用文件句柄,可重啟服務(wù)器。
解決 mount 掛載嵌套問題
- 執(zhí)行 mount 命令,mount 占用空間大的磁盤到 /mnt。例如:
mount /dev/vda1 /mnt
- 執(zhí)行以下命令,進入 /mnt。
cd /mnt
- 執(zhí)行以下命令,查找占用空間較大的目錄。
du -x --max-depth=1 | sort -n
根據(jù)返回結(jié)果,綜合業(yè)務(wù)情況評估是否可刪除目錄或文件。
- 執(zhí)行 umount 命令,umount 磁盤。例如:
umount /mnt