由于目前云服务器 ECS 不支持系统盘或者数据盘缩容,如果您有磁盘缩容的需求,可用通过 阿里云迁云工具 达成目的。

迁云工具的研发初衷是为了平衡阿里云用户的云上及线下业务负载,但是您可以利用其工作原理,绕道实现云服务器 ECS 磁盘缩容。

迁云工具可以根据您的 ECS 实例重新制作一份自定义镜像,在制作过程中通过重新指定磁盘大小,以达到缩容的目的。除了将目标对象换成了 ECS 实例之外,磁盘缩容和迁云这两种场景的工具 使用方法和使用限制 完全一致。甚至因为使用对象为已经虚拟化的 ECS 实例,会更加方便,报错机率更低。

然而,这种缩容方式,会引起原有 ECS 实例的部分属性发生变化,例如,实例 IDInstanceId)和 公网 IP。如果您的实例为 专有网络(VPC) 实例,可以将 公网IP转换为弹性公网IP 以保留该公网 IP。因此,建议使用 弹性公网 IP(EIP) 或者对公网 IP 依赖程度较轻的用户使用该方式缩容。

前提条件

  • 当磁盘挂载的是 Linux 实例时,您需要预先在实例内安装远程数据同步工具 rsync。
    • CentOS 实例:运行 yum install rsync –y
    • Ubuntu 实例:运行 apt-get install rsync –y
    • Debian 实例:运行 apt-get install rsync –y
    • 其他发行版:参考发行版官网安装相关的文档
  • 您需要预先在控制台 创建 AccessKey, 用于输出到配置文件 user_config.json 里。
    说明 由于 AccessKey 权限过大,为防止数据泄露,建议您 创建 RAM 用户子账号,并使用 RAM 用户子账号 创建 AccessKey
  • 其他更多前提条件和限制条件,请参阅 使用迁云工具迁移服务器至阿里云

操作步骤

  1. 使用管理员/root 账号 远程连接 到目标 ECS 实例。
  2. 下载 阿里云迁云工具 ZIP 压缩包。
  3. 解压迁云工具,并进入对应操作系统及版本的客户端文件目录找到配置文件 user_config.json。
  4. 参阅段落 步骤 2:编辑 user_config.json 文件 完成配置。

    该配置文件 Linux Shell 显示效果如下图所示。



    在磁盘缩容的场景中,您需要重点关注的参数有:

    • system_disk_size:该参数可以置为缩容系统盘的预期数值,单位为 GB,该值不能小于系统盘实际使用空间大小。
    • data_disks:该参数可以置为缩容数据盘的预期数值,单位为 GB,该值不能小于数据盘实际使用空间大小。
    说明
    • 当 Linux 实例自带数据盘时,即使您不考虑缩容数据盘,也需要配置参数 data_disks,否则迁云工具默认将数据盘的数据拷贝到系统盘中。
    • 当 Windows 实例自带数据盘时,如果没有缩容数据盘的需求,可以不配置参数 data_disks
  5. 执行客户端主程序 go2aliyun_client.exe:
    • Windows 实例:右击 go2aliyun_client.exe,选择 以管理员身份运行
    • Linux 实例:
      1. 运行 chmod +x go2aliyun_client 赋予客户端可执行权限。
      2. 运行 ./ go2aliyun_client 运行客户端。
  6. 等待运行结果:
    • 当出现 Goto Aliyun Finished! 提示时,前往 ECS 控制台镜像详情页 查看经过缩容后的自定义镜像。如果自定义镜像已生成,您可以释放原实例,然后使用生成的自定义镜像 创建 ECS 实例,创建完成后,磁盘缩容工作已完成。
    • 当出现 Goto Aliyun Not Finished! 提示时,检查同一目录下 Logs 文件夹下的日志文件 排查故障 。修复问题后,重新运行迁云工具即可恢复缩容工作,迁云工具会从上一次执行的进度中继续迁云,无需重头开始。

参考链接