亚马逊云科技-如何缩容/减小您的AWS EC2根卷大小-简明教程

一、背景

Amazon EBS提供了块级存储卷以用于 EC2 实例,EBS具备弹性的特点,可以动态的增加容量、更改卷类型以及修改预配置的IOPS值。但是EBS不能动态的减少容量,在实际使用中,用户也许会存在此类场景:

  • 在创建AWS EC2实例时,直接指定了较大的根卷大小,在实际使用场景中,根卷的使用量并未达到预期利用率,使得超出预期的EBS容量产生额外费用

本文基于上述情况进行如下案例设定,并成功将Amazon EC2实例的EBS根卷缩容,具体操作步骤如下。

二、动手实践

实验前,请对您的服务器拍摄快照,以备错误情况下快速恢复到正常状态

2.1 实验配置

实例 系统 规格 根卷
origin-server Amazon Linux 2 c5.large 50GiB
shrink-ebs-server Amazon Linux 2 t3.large 20GiB

2.2 实验步骤

2.3 origin-server概览

模拟用户真实使用环境,在此origin-server上安装一些服务且存放一份实例信息

  1. Docker同时启用一个always restart 的nginx容器,暴露主机端口10080,
  2. nginx,暴露主机端口tcp 80
  3. 在/root目录下存放一份origin-server-info的信息



2.4 创建shrink-ebs-server并操作

2.4.1 创建并停止实例

在和origin-server同一可用区 创建的shrink-ebs-server需要和origin-server保持一致的AMI (系统镜像),创建并成功运行后,停止实例

2.4.2 分离shrink-ebs-server根卷



2.5 origin-server挂载shrink-ebs-server根卷并复制数据

2.5.1 挂载shrink-ebs-server根卷


2.5.2 origin-server查看并复制磁盘数据

2.5.2.1 查看fstab中文件系统挂载信息,同时修改uuid为具体的磁盘设备名称
bash 复制代码
cat /etc/fstab
blkid /dev/nvme0n1p1
sed -i 's/UUID=nvme0n1p1的UUID/\/dev\/nvme0n1p1/' /etc/fstab
2.5.2.2 查看所有磁盘及其uuid

可以看到新挂载的磁盘和当前磁盘有同样的UUID

bash 复制代码
# 使用blkid命令 可查看磁盘uuid
lsblk
blkid


2.5.2.3 挂载shrink-ebs-server根卷到/mnt目录
bash 复制代码
mount -t xfs -o nouuid /dev/nvme1n1p1 /mnt
df -Th
2.5.2.4 使用rsync复制当前根卷数据到shrink-ebs-server根卷

使用exclude参数排除不必要的目录,请勿在--exclude={}参数 中{}使用空格

bash 复制代码
# 使用rsync进行复制
rsync -aAXv --exclude={"/home/","/home","/dev/","/proc/","/sys/","/tmp/","/run/","/mnt/","/media/*","/lost+found","/","/mnt"} / /mnt


2.6 使用缩容磁盘启动实例

2.6.1 停止origin-server并分离所有EBS卷

经过上述操作后,我们得到已经从origin-server根卷复制数据的shrink-ebs-server根卷,现在我们需要将origin-server关机,并取消掉所有挂载的EBS卷


2.6.2 挂载shrink-ebs-server根卷到origin-server

需要注意挂载的设备名称为 2.6.2中提到的 xvda


2.6.3 启动origin实例

2.6.3.1 查看origin-server之前创建的文件
2.6.3.2 查看origin-server之前的服务是否正常


2.6.4 删除shrink-ebs-server及origin-server源磁盘

确保您的数据无误后,请手动删除shrink-ebs-server及其origin-server的源磁盘,避免不必要的费用产生!

三、总结

通过上述步骤操作,您已经成功将Amazon EC2实例的EBS根卷从50GiB缩容至20GiB。同时您也可以通过该方案将非EBS根卷进行缩容,例如宝塔所挂载的数据卷。
如果您只是参照文章进行实验,请注意在试验后应释放所有创建的资源以避免不必要的费用产生!

相关推荐
MicroTech20255 小时前
微算法科技(NASDAQ MLGO):DPoS驱动区块链治理与DAO机制融合,共筑Web3.0坚实基石
科技·web3·区块链
Heavydrink7 小时前
阿里云龙蜥8系统安装Docker详细教程
阿里云·docker·云计算
后端小张9 小时前
【案例实战】初探鸿蒙开放能力:从好奇到实战的技术发现之旅
分布式·华为·云计算·harmonyos·鸿蒙·鸿蒙系统·万物互联
weixin_3077791310 小时前
应对不规则负载的异步ML模型服务AWS架构设计
人工智能·深度学习·机器学习·云计算·aws
pp-周子晗(努力赶上课程进度版)11 小时前
Docker、Kubernetes与AWS中控机是什么?
docker·容器·kubernetes·aws
AWS官方合作商11 小时前
AWS云计算入门指南:从零到一,详解核心服务与免费套餐
云计算·aws
王道长服务器 | 亚马逊云11 小时前
AWS + 飞天CMS:高性能内容站的云端搭建方案
服务器·搜索引擎·aws
星释11 小时前
阿里云Windows数据2T以上磁盘扩容方案
阿里云·云计算
云资源服务商11 小时前
深度解析阿里云通用算力型U1与U2i实例性能差异:架构、算力、场景选型全对比
服务器·阿里云·云计算
灵途科技18 小时前
灵途科技亮相NEPCON ASIA 2025 以光电感知点亮具身智能未来
人工智能·科技·机器人