标签: EBS

AWS EBS缩容指南

多数用户上云是按惯例给EC2配较大磁盘,实际使用率较低。考虑到EBS价格不低、又没有包年优惠,造成的浪费有时比虚机成本还高。AWS支持EBS盘动态扩容,但不支持缩容;上线后的系统重装迁移代价太高。下面给出EBS盘缩容和自动扩容的原理和步骤供您参考。如需进一步协助或服务,请留言,泰岳云业务会提供自动化工具及专业服务。 

一、数据盘缩容:

难度系数***

风险等级*

RTO<1分钟

1、检查数据源盘使用率和分区和文件系统情况

2、新建合适大小EBS盘挂上虚机

3、新盘分区、创建并mount文件系统

4、源盘rsync步到新盘

5、停应用

6、增量同步

7、umont源盘和新盘

8、源盘分区label和UUID克隆到新盘

9、源盘从虚机拆离

10、新盘mount到源盘的挂载点

11、起应用

12、确认应用正常,删除源EBS盘

 

二、系统盘缩容

难度系数*****

风险等级**

RTO<3分钟

1、检查系统源盘使用率、分区和文件系统情况

1-1、检查系统盘bootloader版本、/etc/fstab配置

2、新建合适大小EBS盘挂上虚机

3、新盘分区、创建并mount文件系统

4、源盘rsync步到新盘

4-1、新盘grub-install做成启动盘

5、停应用

6、源盘增量同步到新盘

7、umont新盘

8、源盘分区label和UUID克隆到新盘

9、ec2停机

10、从ec2拆离源盘,挂载新盘为/dev/xvda

11、ec2开机

12、确认应用正常,删除源EBS盘

 

三、EBS自动扩容

磁盘缩容后,用户很容易担心万一磁盘满了、出事故咋办?这里提供自动扩容实现步骤:

难度系数***

风险等级*

RTO 0分钟(不停机)

1、ec2安装cloudwatch agent监控磁盘利用率

2、cloudwatch设置门限告警触发lambda函数

3、lambda调用api,为ec2磁盘扩容

AWS EC2 EBS磁盘扩容实战

文档概述

在我们日常工作中,常常会遇到AWS EC2实例存储卷空间不够用,需要扩容存储卷、在线添加存储卷或由于工作负载变化,需要调整存储卷类型的情况。上述操作会对业务有影响吗?答案是不会的,AWS支持在线存储卷扩容,在线添加存储卷,在线修改存储卷类型且不需要重启EC2实例。 

以下文章描述如何完成上述操作,参考AWS 官方文档。

https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/ebs-modify-volume.html

操作过程:

背景介绍:

环境中有一台AWS Linux EC2实例,根存储卷大小为默认8GB 通用型SSD存储IOPS为100,登录EC2实例,使用df –h命令,查看到存储使用情况,可看到默认8GB存储,已使用空间为16%

  1. 在线添加EBS存储卷

打开AWS 控制台,创建一个2GB 大小的通用型SSD存储卷

将新创建的EBS存储卷附加至测试的linux实例

可在控制台中,看到增加一块EBS存储卷

进入系统,格式化并挂载EBS存储卷,输入lsblk 查看存储卷设备。

创建文件系统,并挂载EBS存储卷,输入file –s /dev/xvda1,可看到xvda1根据的文件系统是XFS,而xvdf为data时,则表示设备上没有文件系统。

使用mkfs –t在空存储卷上创建文件系统,如果要装载已具有数据的存储卷(例如,通过快照还原的存储卷),请勿使用此命令。否则,会格式化存储卷并删除现有数据。

创建挂载点目录/data mkdir /data mount /dev/xvdf /data

重启验证挂载点,是否存在,执行reboot操作,重启之后,发现新挂载点不存在。

那么如何做到,重启后自动挂载附加存储卷,首先创建 /etc/fstab 文件的备份,以便在编辑时误损坏或删除此文件时使用。执行cp /etc/fstab /etc/fstab.orig,使用 blkid命令查找设备的 UUID。

打开sudo vim /etc/fstab文件,添加如下信息

挂载文件系统

  1. 在线调整根存储卷存储卷大小

对于弹性存储卷EBS,可以在不分离 Amazon EBS 存储卷的情况下动态修改存储卷的大小、性能和存储卷类型。在修改包含有用数据的存储卷之前,最佳实践是创建存储卷的快照。

首先修改在线根存储卷大小,从8GB调整为10GB。

在增加 EBS 存储卷的大小后,必须使用特定于文件系统的命令来将文件系统扩展到较大大小。一旦存储卷进入 optimizing 状态,即可调整文件系统的大小。

参考链接:https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/recognize-expanded-volume-linux.html

使用file –s /dev/xvd*查看分区文件系统,下图显示为XFS文件系统。

要在根存储卷上扩展分区,请使用以下 growpart 命令,使用growpart /dev/xvda 1 进行扩展分区。

扩展文件系统,XFS系统 xfs_growfs –d /

  1. 在线调整存储卷存储卷类型

从通用型SSD 2GB修改为4GB预配置IO1

通过lsblk查看,扩展存储卷大小为4GB

增大扩展存储卷文件系统,执行以下命令,查看文件系统格式,格式为XFS

file -s /dev/xvdf

使用xfs_growfs -d /data 增大扩展存储卷文件系统,df –h 查看 从2GB增加到4GB

本文结论

在AWS EBS创建一台Linux EC2实例。

  • AWS EBS可在线增加EBS存储卷
  • 可在线修改EBS存储卷大小、类型、扩容存储卷。数据不会丢失,不需要重启生效。
  • 当修改了存储卷大小后,需要6小时才能修改其他选项。
  • 建议做操作前,拍摄快照进行备份。

陈汉卿

云业务事业部 | 高级系统架构师

神州泰岳软件股份有限公司·AWS战略合作伙伴

AWS Solution Provider | Migration | DevOps | Cloud Management Tools(CMT) ISV Partner

AWS EBS卷RAID0配置与实测

文档概述:

RAID 0 又称为Stripe(条带化),将多个硬盘合并成一个大硬盘,不具有冗余,并行I/O。在存放数据时,将数据按磁盘个数进行分段,然后同时将这些数据写进磁盘中。在所有RAID级别中,RAID 0速度是最快的,为取得比通过单个卷取得的 I/O 性能更高的 I/O 性能,RAID 0 可将多个卷组合在一起。

AWS EBS卷同样也支持RAID 0的配置。本文将介绍AWS EBS卷RAID 0相关配置及实测磁盘吞吐量,仅供参考。

常见RAID配置选项:

比较常见的RAID配置如下表所示:

配置 使用 优点 缺点
RAID0 当 I/O 性能比容错能力更重要时;例如在频繁使用的数据库中 (其中,已单独设置数据复制)。 I/O 在卷内以条带状分布。如果您添加卷,则会直接增加吞吐量。 I/O 在卷内以条带状分布。如果您添加卷,则会直接增加吞吐量。
RAID1 当容错能力比 I/O 性能更重要时;例如在关键应用程序中。 在数据持久性方面更具安全性。 不提供写入性能改进;需要比非 RAID 配置更大的 Amazon EC2 到 Amazon EBS 带宽,因为数据将同时写入多个卷。

背景介绍:

一台AWS Linux EC2实例,根存储卷大小为默认8GB ,还挂载了4块未使用的EBS卷,分别为nvme3n1 33GB、nvme1n1 10GB、nvme2n1 10GB、nvme4n1 13GB。所有卷的IOPS大小均为100.

RAID0配置:

将其中3块盘创建RAID0条带化。

mdadm –create –verbose /dev/md0 –level=0 –name=RAID0 –raid-devices=3 /dev/nvme1n1 /dev/nvme2n1 /dev/nvme4n1

RAID0配置细节信息。mdadm –detail /dev/md0

创建文件系统。mkfs.ext4 -L RAID0 /dev/md0

创建挂载点,并挂载 mkdir -p /mnt/raid0 mount LABEL=RAID0 /mnt/raid0

增加/etc/fstab条目,设置开启自启动后执行mount –a 无报错即可,如下图示。

注:不要注释UUID的行

为卷拍摄快照并测试数据完整性:

创建测试文件,生成一个1GB的文件,吞吐量为215MB/s

快照3块ebs卷,启动一台新ec2,将快照挂载

可看到自动创建raid元设备md127.创建目录挂载即可,数据也可以恢复

测试磁盘吞吐量:

吞吐量测试命令 dd if=/dev/zero of=here bs=1G count=1 oflag=direct
RAID 0 20GB大小 (2块盘) 吞吐量:205MB/s
标准存储

根卷20GB(1块盘)

吞吐量:141MB/s
标准存储

根卷8GB(1块盘)

吞吐量:145MB/s
RAID 0配置

33GB大小 (3块盘)

吞吐量:215MB/s
标准存储

33GB卷(1块盘)

吞吐量:146MB/s

实测结论:

  1. 对于33GB以下的标准EBS存储,IOPS 为100。最大吞吐量实测为140MB/s
  2. 对于将3个卷制作成RAID0方式(大小在33GB以下),吞吐量实测为210MB/s
  3. RAID0配置若坏一块盘,数据则会丢失,应定期拍摄快照
  4. RAID0适合于大规模并发读写,但对数据安全性要求不高场景中