You need to enable JavaScript to run this app.
文档中心
容器服务

容器服务

复制全文
下载 pdf
云盘存储(EBS)
静态扩容云盘数据卷
复制全文
下载 pdf
静态扩容云盘数据卷
随着业务发展和应用数据增长,当云盘使用空间不足时,您可以通过云盘扩容来解决磁盘容量不足的问题。本文针对云盘静态存储卷场景,为您介绍扩容云盘的详细操作。​
前提条件​
  • 已经将 csi-ebs 组件升级为最新版本。​
  • 已经通过 Pod 对应 PV Yaml 文件中volumeHandle的值,获取目标扩容云盘 ID。例如:volumeHandle: vol-k10sii****。​
  • 为了避免扩容失败导致数据丢失,建议在扩容前备份数据,详细介绍参见:使用云盘快照。​
操作步骤​
本文提供不暂停应用实现在线扩容、暂停应用实现手动扩容两种方式,请根据实际业务场景按需选择。详细介绍和操作步骤如下:​
方式一:不暂停应用实现在线扩容​
此方式在扩容过程中不重启应用,可以保证业务的连续性,但若文件系统在线扩容的 IO 流量比较高,文件系统可能存在 IO 报错的风险。​
步骤一:云盘数据卷扩容​
  1. 登录 云服务器控制台,在左侧导航栏选择 存储 > 云盘,并在顶部菜单栏选择目标云盘所属地域。​
  1. 在云盘管理页面,单击目标云盘右侧操作列中的 扩容,跳转到扩容云盘页面,按照引导依次配置。​
  1. 在调整容量步骤,配置 新容量,完成后单击 提交订单。​
说明​
配置的新容量不允许小于当前容量。​
本场景将数据云盘vol-k10sii****从 100 GiB 扩容到 120 GiB。​
​alt​​
  1. 在挂载到实例步骤,将云盘挂载到实例,完成后单击 下一步。​
  1. 跳过扩展分区和文件系统步骤,直接单击 返回云盘列表,可在目标云盘概览页查看扩容后的云盘容量。​
步骤二:文件系统扩容​
  1. 登录目标云盘所在云服务器,详细介绍参见:登录 Linux 实例。​
  1. (可选)以 root 用户权限执行lsblk -f命令,查看目标扩容云盘是否已经创建文件系统并挂载文件夹。如下图所示,vdb已经获取文件系统和和挂载目录等信息;vdc信息为空,表示还没有文件系统。​
​alt​​
若目标扩容云盘已经拥有文件系统,可跳过此步骤;若目标扩容云盘并未创建创建文件系统,可依次执行以下命令,为云盘创建文件系统并挂载到文件夹。​
​
mkfs.ext4 /dev/vdc # 为云盘创建创建 ext4 类型的文件系统,/dev/vdc 表示云盘设备符。​
mkdir /mnt/vdc # 创建挂载点。​
mount /dev/vdc /mnt/vdc/ # 将云盘 /dev/vdc 挂载到文件夹 /mnt/vdc/。​
​
  1. 以 root 用户权限执行以下命令,查看云盘设备符情况。​
​
fdisk -l # /dev/vda 表示系统盘,/dev/vdb 或 /dev/vdc 等表示数据盘,本场景的扩容目标是数据盘。​
​
如下图所示,步骤一中扩容到 120 GiB 的云盘设备符为/dev/vdb。此时,可执行df -Th命令查看文件系统依然是 100 GiB。​
​alt​​
  1. 以 ext4 文件系统的vdb为例,执行以下命令,扩容文件系统。​
​
resize2fs /dev/vdb # /dev/vdb 表示上步骤中获取到的目标数据盘设备符。​
​
如下图所示,回显符合预期并未报错,表示文件系统扩容成功。​
​alt​​
  1. 执行以下命令,查看文件系统扩容结果。​
​
df -Th ​
​
如下图所示,/dev/vdb文件系统已经扩容到 120 GiB。至此,云盘和文件系统扩容完成,可以正常使用。​
​alt​​
方式二:暂停应用实现手动扩容​
此方式将暂停磁盘 IO,文件系统扩容数据更安全,但随着应用的停止,业务也会暂停一段时间。因此,请确保不会影响正常运作的前提下使用此方式进行云盘扩容。​
步骤一:删除应用 Pod​
  1. 通过删除 StatefulSet 或者将 Replica 配置为 0 的方式暂停应用。本场景以 mysql 应用为例,可执行以下命令,将 Pod 缩容为 0 个副本。​
​
kubectl scale sts mysql --replicas=0​
​
预期输出:​
​
statefulset.apps/mysql scaled​
​
  1. 执行以下命令,查看 Pod 是否删除。无任何输出表示已删除 MySQL 应用。​
​
kubectl get pod | grep mysql​
​
步骤二:云盘数据卷扩容​
  1. 登录 云服务器控制台,在左侧导航栏选择 存储 > 云盘,并在顶部菜单栏选择目标云盘所属地域。​
  1. 在云盘管理页面,单击目标云盘右侧操作列中的 扩容,跳转到扩容云盘页面,按照引导依次配置。​
  1. 在调整容量步骤,配置 新容量,完成后单击 提交订单。​
说明​
配置的新容量不允许小于当前容量。​
本场景将数据云盘vol-k10sii****从 100 GiB 扩容到 120 GiB。​
​alt​​
  1. 在挂载到实例步骤,将云盘挂载到实例,完成后单击 下一步。​
  1. 跳过扩展分区和文件系统步骤,直接单击 返回云盘列表,可在目标云盘概览页查看扩容后的云盘容量。​
步骤三:文件系统扩容​
  1. 登录目标云盘所在云服务器,详细介绍参见:登录 Linux 实例。​
  1. (可选)以 root 用户权限执行lsblk -f命令,查看目标扩容云盘是否已经创建文件系统并挂载文件夹。如下图所示,vdb已经获取文件系统和和挂载目录等信息;vdc信息为空,表示还没有文件系统。​
​alt​​
若目标扩容云盘已经拥有文件系统,可跳过此步骤;若目标扩容云盘并未创建创建文件系统,可依次执行以下命令,为云盘创建文件系统并挂载到文件夹。​
​
mkfs.ext4 /dev/vdc # 为云盘创建创建 ext4 类型的文件系统,/dev/vdc 表示云盘设备符。​
mkdir /mnt/vdc # 创建挂载点。​
mount /dev/vdc /mnt/vdc/ # 将云盘 /dev/vdc 挂载到文件夹 /mnt/vdc/。​
​
  1. 以 root 用户权限执行以下命令,查看云盘设备符情况。​
​
fdisk -l # /dev/vda 表示系统盘,/dev/vdb 或 /dev/vdc 等表示数据盘,本场景的扩容目标是数据盘。​
​
如下图所示,步骤一中扩容到 120 GiB 的云盘设备符为/dev/vdb。此时,可执行df -Th命令查看文件系统依然是 100 GiB。​
​alt​​
  1. 以 ext4 文件系统的vdb为例,执行以下命令,扩容文件系统。​
​
resize2fs /dev/vdb # /dev/vdb 表示上步骤中获取到的目标数据盘设备符。​
​
如下图所示,回显符合预期并未报错,表示文件系统扩容成功。​
​alt​​
  1. 执行以下命令,查看文件系统扩容结果。​
​
df -Th ​
​
如下图所示,/dev/vdb文件系统已经扩容到 120 GiB。至此,云盘和文件系统扩容完成,可以正常使用。​
​alt​​
步骤四:重启应用​
  1. 执行以下命令,将 Pod 扩容为 2 个副本。​
​
kubectl scale sts mysql --replicas=2​
​
预期输出:​
​
statefulset.apps/mysql scaled​
​
  1. 执行以下命令,查看 Pod 是否恢复。从以下预期输出可知,mysql 应用已经恢复。​
​
kubectl get pod | grep mysql​
​
预期输出:​
​
NAME READY STATUS RESTARTS AGE​
mysql-0 1/1 Running 0 74s​
mysql-1 1/1 Running 0 42s​
​
  1. 执行以下命令,查看文件系统大小。从以下预期输出可知,/dev/vdb文件系统存储空间为 120 GiB。​
​
kubectl exec mysql-0 -- df /data​
​
预期输出:​
​
Filesystem 1K-blocks Used Available Use% Mounted on​
/dev/vdb 12330192 180114 123084512 1% /data​
​
相关文档​
更多云盘扩容相关详细介绍,可参见:扩容云盘。​
​
最近更新时间:2025.08.15 17:29:12
这个页面对您有帮助吗?
有用
有用
无用
无用