如何缩减 EBS 卷容量以降低存储成本
Amazon EBS提供了块级存储卷以用于 EC2 实例,EBS具备弹性的特点,可以动态的增加容量、更改卷类型以及修改预配置的IOPS值。但是EBS不能动态的减少容量,如果用户在初始创建EC2或者创建EBS时选择了大于实际需求的容量,当EBS数量很多时,则每个月在EBS上因容量浪费的花费相当可观。
建议用户在初始创建EC2或者创建EBS时选择较小的EBS容量,在需要扩容的时候动态的增加容量。在实际用户场景中,对于Linux 系统卷,通常会选择几十GB的大小,而对于数据卷,很多用户在初始创建时会设置几百GB以上的容量。为了减少AWS上运行的成本,用户可能会希望减少数据卷的容量,在AWS文档中并没有提供如何减少EBS容量的步骤。以下举例说明如何通过rsync工具将大容量的EBS数据卷替换成小容量EBS卷:
- $ rsync –help测试rsync工具是否已安装。如果未安装,可以通过命令 “sudo apt-get install rsync”(Ubuntu) 或者“yum install rsync”(RedHat)来安装。
- 查看数据卷的设备名:
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 10G 0 disk
└─xvda1 202:1 0 10G 0 part /
xvdb 202:16 0 10G 0 disk /source
- 查看磁盘文件系统的空间占用,新的EBS卷应不小于数据所占用的空间,此处为7920MB:
$ df -m
Filesystem 1M-blocks Used Available Use% Mounted on
/dev/xvda1 10229 971 9258 10% /
devtmpfs 473 0 473 0% /dev
tmpfs 495 0 495 0% /dev/shm
tmpfs 495 13 482 3% /run
tmpfs 495 0 495 0% /sys/fs/cgroup
tmpfs 99 0 99 0% /run/user/1000
tmpfs 99 0 99 0% /run/user/0
/dev/xvdb 9952 7920 1525 84% /source
- 创建一个9GB的EBS,在AWS Console上将此卷连接到EC2。
- 查看EC2已识别到新卷:
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 10G 0 disk
└─xvda1 202:1 0 10G 0 part /
xvdb 202:16 0 10G 0 disk /source
xvdf 202:80 0 9G 0 disk
- 对新卷创建文件系统:
$ sudo mkfs.ext4 /dev/xvdf
- 创建目录/target,并将新卷mount到/target上:
$ sudo mount /dev/xvdf /target
- 查看新文件系统:
$ df -m
Filesystem 1M-blocks Used Available Use% Mounted on
/dev/xvda1 10229 972 9258 10% /
devtmpfs 473 0 473 0% /dev
tmpfs 495 0 495 0% /dev/shm
tmpfs 495 13 482 3% /run
tmpfs 495 0 495 0% /sys/fs/cgroup
tmpfs 99 0 99 0% /run/user/1000
tmpfs 99 0 99 0% /run/user/0
/dev/xvdb 9952 7920 1525 84% /source
/dev/xvdf 8944 37 8431 1% /target
- 复制文件系统:
$ sudo rsync -ax /source/ /target(注意/source后面有/)
- 查看两个文件系统,所有数据文件应该完全相同:
$ ls -l /source
$ ls -l /target
$ df -m
Filesystem 1M-blocks Used Available Use% Mounted on
/dev/xvda1 10229 972 9258 10% /
devtmpfs 473 0 473 0% /dev
tmpfs 495 0 495 0% /dev/shm
tmpfs 495 13 482 3% /run
tmpfs 495 0 495 0% /sys/fs/cgroup
tmpfs 99 0 99 0% /run/user/1000
tmpfs 99 0 99 0% /run/user/0
/dev/xvdb 9952 7920 1525 84% /source
/dev/xvdf 8944 7920 548 94% /target
- umount 两个文件系统:
$ sudo umount /source
$ sudo umount /target
- 在AWS Console上将两个EBS卷从EC2 分离。
- 在AWS Console上将9GB EBS新卷连接到EC2,设备名选项中输入 /dev/xvdb。
- 查看新卷在EC2上挂载为/dev/xvdb:
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 10G 0 disk
└─xvda1 202:1 0 10G 0 part /
xvdb 202:16 0 9G 0 disk
- $ sudo mount /dev/xvdb /source
- 检查新卷上的文件系统
$ df -m
Filesystem 1M-blocks Used Available Use% Mounted on
/dev/xvda1 10229 972 9258 10% /
devtmpfs 473 0 473 0% /dev
tmpfs 495 0 495 0% /dev/shm
tmpfs 495 13 482 3% /run
tmpfs 495 0 495 0% /sys/fs/cgroup
tmpfs 99 0 99 0% /run/user/1000
/dev/xvdb 8944 7920 548 94% /source
- 启动应用,缩容操作完成。
在这篇博客中,我演示了如何通过rsync工具将大容量的EBS数据卷替换成小容量EBS卷。以下是一些注意点:
- 此操作仅适用于文件系统的数据卷,不适用于作为裸设备使用的数据卷。
- 在时间充裕的情况下,可以在关闭应用之后对原数据卷做一个快照,以预防出现误操作导致数据丢失。
- 为避免在detach volume操作时选错卷,建议在AWS console上通过修改Name对数据卷做标记,例如old data。
本篇作者
相关文章
- Jgit的使用笔记
- 利用Github Action实现Tornadofx/JavaFx打包
- 叹息!GitHub Trending 即将成为历史!
- 微软软了?开源社区讨论炸锅,GitHub CEO 亲自来答
- GitHub Trending 列表频现重复项,前后端都没去重?
- Photoshop Elements 2021版本软件安装教程(mac+windows全版本都有)
- (ps全版本)Photoshop 2020的安装与破解教程(mac+windows全版本都有)
- (ps全版本)Photoshop cc2018的安装与破解教程(mac+windows全版本,包括2023
- 环境搭建:Oracle GoldenGate 大数据迁移到 Redshift/Flat file/Flume/Kafka测试流程
- 每个开发人员都要掌握的:最小 Linux 基础课
- 来撸羊毛了!Windows 环境下 Hexo 博客搭建,并部署到 GitHub Pages
- 超实用!手把手入门 MongoDB:这些坑点请一定远离
- 【GitHub日报】22-10-09 zustand、neovim、webtorrent、express 等4款App今日上新
- 【GitHub日报】22-10-10 brew、minio、vite、seaweedfs、dbeaver 等8款App今日上新
- 【GitHub日报】22-10-11 cobra、grafana、vue、ToolJet、redwood 等13款App今日上新
- Photoshop 2018 下载及安装教程(mac+windows全版本都有,包括最新的2023)
- Photoshop 2017 下载及安装教程(mac+windows全版本都有,包括最新的2023)
- Photoshop 2020 下载及安装教程(mac+windows全版本都有,包括最新的2023)
- Photoshop 2023 资源免费下载(mac+windows全版本都有,包括最新的2023)
- 最新版本Photoshop CC2018软件安装教程(mac+windows全版本都有,包括2023