我在 Google Compute Cloud 上使用虚拟机。我将磁盘从 10G 扩展到了 200G。
我按照这里的具体步骤进行操作: https://cloud.google.com/compute/docs/disks#repartitionrootpd
总结一下:
- 我运行了 fdisk,删除了唯一的分区,创建了一个全尺寸的新分区,相同的开始/新结束,相同的设备 ID
- 我重启了实例
- 我使用以下方法调整了文件系统的大小
sudo xfs_growfs /
(我运行的是 CentOS 7)
此后,我untar
在子目录中创建了一个 3.5G 的档案/opt
,几分钟后,它以以下内容结束:
Cannot mkdir: No space left on device
我可以检查空间是否在这里,并且(至少对我来说)它应该在任何地方都可用
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 200G 13G 188G 7% /
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 8.3M 1.8G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
现在,通过这个精确的配置,对 50Mb 目录执行简单的 cp 命令也会返回:
cp: cannot create regular file ‘toto/conf/server.xml’: No space left on device
我的 tar 中有很多小文件,因此我考虑了 inode 限制,但是:
# df -ih
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda1 200M 100K 200M 1% /
devtmpfs 462K 285 462K 1% /dev
tmpfs 463K 1 463K 1% /dev/shm
tmpfs 463K 309 463K 1% /run
tmpfs 463K 13 463K 1% /sys/fs/cgroup
就好像我的新磁盘空间不可用一样。因为我感觉它大约停在了我之前的 10G 磁盘限制上。
我不知道现在该怎么办。
答案1
我设法通过以下命令使其工作:
mount -o remount,inode64 /
显然,这是 CentOS 内核 3.7 到 3.17 的回归,而我使用的是 3.10。
相关链接如下: http://xfs.org/index.php/XFS_FAQ#Q:为什么xfs_growfs之后设备上没有剩余空间.3F
答案2
更改挂载选项以使用 inode64。
这个问题看起来像是 XFS FAQ 中的一个
http://xfs.org/index.php/XFS_FAQ#Q:为什么xfs_growfs之后设备上没有剩余空间.3F