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