当Linux实例无法启动时,实例健康诊断工具诊断出实例云盘的inode使用率或者空间使用率过高。此时,您可以通过实例健康诊断工具进行问题修复。
前提条件
ECS实例已通过实例健康诊断工具诊断出云盘的inode使用率或空间使用率过高的问题。
ECS实例资源需要符合以下条件。
资源
限制条件
实例
实例为I/O优化实例。
不支持以下实例规格:ecs.ebmc4.8xlarge、ecs.ebmhfg5.2xlarge、ecs.ebmg5.24xlarge。
云盘
云盘状态为使用中(In Use)。
云盘类型为ESSD云盘、SSD云盘或高效云盘。
包年包月ECS实例续费降配后,当前计费周期的剩余时间内,不支持扩容实例的包年包月云盘。
云盘扩容后的容量不能超过云盘最高容量,具体请参见块存储使用限制。
重要一个已有分区采用了MBR分区格式,则不支持扩容到2 TiB及以上。如果您的MBR分区容量需要扩容到2 TiB以上,建议您先创建一块大于2 TiB的云盘并格式化为GPT分区,再将MBR分区中的数据拷贝到GPT分区中。格式化GPT分区操作,请参见分区格式化大于2 TiB数据盘。
背景信息
问题描述:Linux实例中云盘的inode使用率或者空间使用率过高,导致实例无法启动。
问题原因:Linux实例的云盘容量不足,您需要对云盘进行扩容。
您可以通过df -Th
命令查看云盘的空间使用率,通过df -i
命令查看云盘的inode使用率。
您可以通过实例健康诊断工具的修复盘进行扩容云盘,或者通过中转实例进行扩容云盘。具体操作,请参见通过修复盘扩容云盘或通过中转实例扩容云盘。
通过修复盘扩容云盘
您可以在实例健康诊断工具中通过修复盘扩容云盘。
在控制台为目标云盘创建快照。具体操作,请参见创建快照。
在控制台扩容目标云盘。具体操作,请参见扩展云盘容量。
- 远程连接问题实例。当ECS实例处于正在挂载修复盘的模式下时,只能通过VNC远程连接。具体操作,请参见通过VNC连接实例。
运行以下命令查看实例的云盘情况。
fdisk -lu
在查询结果中找到/dev/vd*(例如/dev/vda、/vdb和/vdc),这些块存储设备为故障实例的云盘。
示例以系统盘(/dev/vda1)和数据盘(/dev/vdb1、/dev/vdc1)的三个分区为例,执行结果如下所示。
序号
分区
说明
①
/dev/vda1
系统盘,System取值Linux表示为MBR分区。
②
/dev/vdb1
数据盘,System取值Linux表示为MBR分区。
③
/dev/vdc1
数据盘,System取值GPT表示为GPT分区。
说明如果您的查询结果中云盘容量还是40 GiB(
Disk /dev/vda: 42.9 GB
),表示扩容不成功,建议您在控制台重启下本实例。运行以下命令确认已有分区的文件系统类型。
df -Th
运行以下命令扩容分区。
growpart /dev/vda 1
此示例以扩容系统盘为例,
/dev/vda
和1
之间需要空格分隔。如果需要扩容其他分区,请根据实际情况修改命令。执行结果如下所示。在ECS实例内部,根据查询的文件系统类型,扩容文件系统。
扩容ext*(例如ext4)文件系统:运行以下命令扩容文件系统。
扩容系统盘/dev/vda1的文件系统。
resize2fs /dev/vda1
扩容数据盘/dev/vdb1的文件系统。
resize2fs /dev/vdb1
说明/dev/vda1
和/dev/vdb1
都是分区名称,您需要根据实际情况修改。扩容xfs文件系统:运行以下命令扩容数据盘/dev/vdc1的文件系统。
xfs_growfs /media/vdc
说明/media/vdc
为/dev/vdc1
的挂载点,您需要根据实际情况修改。扩容btrfs文件系统:如果您的数据盘文件系统为btrfs,则需要运行以下命令扩容文件系统。
btrfs filesystem resize max /mountpoint
说明/mountpoint
为数据盘对应的挂载点,您需要根据实际情况修改。
运行以下命令检查扩容后结果。
df -Th
执行结果如下所示。
扩容完成后,您需要根据实际情况检查数据是否正常。
如果扩容成功,ECS实例中的业务程序能够正常运行,则完成操作。
如果扩容失败,则通过备份的快照回滚数据。
修复完成后,退出修复环境,然后检查问题实例的当前状态。
在ECS控制台的实例健康诊断页面,卸载修复盘并恢复问题实例至正常模式。
远程连接已修复的ECS实例,检查云盘容量。
通过中转实例扩容云盘
您也可以将问题云盘卸载,然后挂载到中转实例(同地域的其他Linux实例),再进行扩容云盘操作。