云服务器 创建文件报错 no space left on device

在 Linux 云服务器中创建新文件时,出现 no space left on device 报错。

相关产品
云服务器 产品页,含版本规格、价格与购买入口。

一、可能原因

可能原因 处理措施
硬盘空间处于已满状态 检查硬盘空间是否已满
文件系统 inode 满 检查文件系统是否 inode 满
df du 处于不一致状态 检查 df du 是否不一致

二、检查硬盘空间是否已满

1. 登录云服务器,详情请参见 使用标准登录方式登录 Linux 实例。

2. 执行以下命令,查看硬盘使用率。

df -h

3. 定位硬盘使用率较高的挂载点,并执行以下命令进入该挂载点。

cd 对应挂载点

例如,如需 cd 系统盘挂载点,则执行 cd /。

4. 执行以下命令,查找占用空间较大的目录。

du -x –max-depth=1 | sort -n

根据定位到占用空间最大的目录容量情况,执行以下步骤:

·如果目录容量远低于硬盘总空间,请 检查 df du 是否不一致 步骤继续排查问题。

·如果目录容量较大,请再次从 步骤3 开始执行,注意此时是执行 cd 进入到占用空间较大的文件夹。最后可定位到占用空间较大的文件,综合业务情况评估是否可删除。若无法删除,请通过 扩容云硬盘 扩大硬盘存储空间。

三、检查文件系统是否 inode 满

1. 登录云服务器,详情请参见 使用标准登录方式登录 Linux 实例。

2. 执行以下命令,查看硬盘使用率。

df -i

3. 定位硬盘使用率较高的挂载点,并执行以下命令进入该挂载点。

cd 对应挂载点

例如,如需 cd 系统盘挂载点,则执行 cd /。

4. 执行以下命令,查找文件个数最多的目录,解决该问题。该命令较耗时,请耐心等待。

find / -type f | awk -F / -v OFS=/ '{$NF="";dir[$0]++}END{for(i in dir)print dir[i]" "i}' | sort -k1 -nr | head

四、解决进程占用文件句柄问题

1. 登录云服务器,详情请参见 使用标准登录方式登录 Linux 实例。

2. 执行以下命令,查看占用文件的进程。

lsof | grep delete

3. 若返回结果有输出,则应如下:

上图输出中第二列为进程对应的 pid,请使用此列 pid 执行如下命令。

systemctl status 由上图所示的进程pid

4. 请根据上述命令的输出情况执行相应的步骤。

·若输出如下所示,说明此进程不是 systemd 服务管理的进程。

请执行如下步骤 kill 对应进程。请使用此进程 pid 执行如下命令。

kill -9 进程pid

·若输出如下所示,说明此进程是 systemd 服务管理的进程。

请执行如下命令重启服务。

systemctl restart 服务名

·若较多进程占用文件句柄,可重启服务器。

五、解决 mount 挂载嵌套问题

1. 执行 mount 命令,mount 占用空间大的磁盘到 /mnt。例如:

mount /dev/vda1 /mnt

2. 执行以下命令,进入 /mnt。

cd /mnt

3. 执行以下命令,查找占用空间较大的目录。

du -x –max-depth=1 | sort -n

根据返回结果,综合业务情况评估是否可删除目录或文件。

4. 执行 umount 命令,umount 磁盘。例如:

umount /mnt

赞 (0)
上一篇 5天前
下一篇 5天前