AWS实验-EBS

1 EBS

AmazonElastic Block Store(Amazon EBS)卷是一种耐用的数据块级存储设备,可以附加到单个EC2实例。EBS卷可以动态增加大小、修改预配置IOPS容量以及更改实际生产卷上的卷类型。

参考文档

https://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/EBSVolumes.html

1.1 任务目标

实验目标:

    熟悉EBS卷与基于EBS卷的实例的一般用法与功能,例如EBS卷的挂载与卸载,EBS卷的扩容等。

实验操作步骤:

    (1)创建并启动两个实例-Xincao_EBS_Test01和Xincao_EBS_Test02

       实例参数:Amazon Linux AMI,64bit,cn-north-1,8GBEBS类型的root盘,关闭02实例

    (2)SSH登录01实例并下载图片文件至本地

       关闭01实例并卸载root卷,删除02实例的root卷

    (3)将01实例的root卷挂载给02实例

       SSH登录02实例,确认是否可以登录

    (4)为02实例添加一块2GB的新卷

    (5)重新设置两块卷大小为10GB

       确认登录后查看到全部空间

    (6)备份02实例的root卷至新卷

    (7)关闭02实例并分离卷

       将新盘作为02实例的root盘,启动02实例,SSH登录验证是否存在图片文件

    (8)从02实例创建实例存储AMI

结果展示:

(1) 验证EBS卷的优势和备份功能

(2) 提供AMI ID

1.2 实验

1.    实例创建与设置

使用控制台进行实例创建:

选择AMI

AWS实验-EBS

选择实例类型

AWS实验-EBS

选择默认VPC,启动数量为2

AWS实验-EBS

添加存储,默认gp2

AWS实验-EBS

选择安全组和**对,并启动实例

AWS实验-EBS

SSH登录

AWS实验-EBS

下载图片至01实例的目录下,图片路径:
https://s3-us-west-2.amazonaws.com/stuffsandstuffs/Golden+Farting+Bulling.jpg
https://s3-us-west-2.amazonaws.com/stuffsandstuffs/Tooth+Dolls.png

AWS实验-EBS

2. EBS卷的卸载与重新挂载(实例无关性)
a. 查看01与02实例的实例ID
aws ec2 describe-instances --filter Name=tag-key,Values="Name" Name=tag-value,Values="Xincao*" --query 'Reservations[*].Instances[*].{ID:InstanceId,Tag:Tags}'

AWS实验-EBS

实例ID分别为:

01:i-066e0442c5e812b03

02:i-0b8990a15d2aeed4a

a.    获取需分离的ebs卷信息

aws ec2 describe-volumes --filters Name=attachment.instance-id,Values=i-066e0442c5e812b03--query 'Volumes[*].{ID:VolumeId}'

AWS实验-EBS

因此ebs卷id分别为:

01:vol-039618e7da73d41bd

02:vol-07af972792d3eba8c

a.    关闭正在运行的01与02实例

aws ec2 stop-instances --instance-ids i-066e0442c5e812b03 i-0b8990a15d2aeed4a

AWS实验-EBS

d. 分离01与02实例的root ebs卷,并删除02实例的root ebs卷
aws ec2 detach-volume --volume-id vol-039618e7da73d41bd

AWS实验-EBS

aws ec2 detach-volume --volume-id vol-07af972792d3eba8c

AWS实验-EBS

aws ec2 delete-volume --volume-id vol-07af972792d3eba8c

AWS实验-EBS

a.    将01实例的ebs卷重新挂载至02实例

aws ec2 attach-volume --volume-id vol-039618e7da73d41bd --instance-idi-0b8990a15d2aeed4a --device /dev/xvda

AWS实验-EBS

启动02实例:

aws ec2 start-instances --instance-ids i-0b8990a15d2aeed4a

AWS实验-EBS

a.    SSH登录02实例查看文件信息

ssh -i xincao-dev-key.pem [email protected]

AWS实验-EBS

01实例的root ebs卷成功挂载至02实例

1.    EBS卷扩容

a.    创建一块2GB大小的EBS卷并挂载到02实例

aws ec2 create-volume --region cn-north-1 --availability-zone cn-north-1a --size 2--volume-type gp2

AWS实验-EBS

Id:vol-058c9ef2bdb3f794a

将其挂载至02实例:

aws ec2 attach-volume --volume-id vol-058c9ef2bdb3f794a --instance-idi-0b8990a15d2aeed4a --device /dev/sdf

AWS实验-EBS

SSH登录02实例查看:

AWS实验-EBS

b. 将02实例的两个卷都扩容至10GB
aws ec2 modify-volume --volume-id vol-039618e7da73d41bd --size 10
aws ec2 modify-volume --volume-id vol-058c9ef2bdb3f794a --size 10

AWS实验-EBS

AWS实验-EBS

查看修改进度:
aws ec2 describe-volumes-modifications --volume-id vol-039618e7da73d41bd vol-058c9ef2bdb3f794a

AWS实验-EBS

c. SSH登录02实例查看并使文件系统识别新增空间

AWS实验-EBS

卷大小已调整完毕,扩展Linux文件系统(/dev/xvda1):
sudo growpart /dev/xvda 1

AWS实验-EBS

对新盘/dev/xvdf进行分区操作,制作文件系统:

sudo fdisk /dev/xvdf

输入m查看参数说明:

AWS实验-EBS

输入n新增一个分区:

AWS实验-EBS

创建ext4文件系统:

mkfs.ext4 /dev/xvdf1

AWS实验-EBS

挂载到目录下:mount /dev/xvdf1 /mnt

AWS实验-EBS

a.    root卷扩容方法

关闭02实例,将root卷挂载至其他实例,扩展linux磁盘容量

AWS实验-EBS

卸载分区:umount /mnt

使用parted分区工具扩展linux分区:

a)   parted /dev/xvdf

AWS实验-EBS

b)   更改parted度量单位为扇区

AWS实验-EBS

c)   print输出分区信息表

AWS实验-EBS

d)   删除分区的分区条目 – rm 1

AWS实验-EBS

e)   创建扩展到卷末尾的新分区 – mkpart Linux 4096s 100%

AWS实验-EBS

f) print输出验证扩展结果

AWS实验-EBS

说明:之前已用growpart扩展了分区,因此此处不变

g)   将boot标志添加到分区1 – set 1 boot on

AWS实验-EBS

quit退出

扩展分区(ext3或ext4):e2fsck -f /dev/xvdf1

AWS实验-EBS

调整为新的卷容量:resize2fs /dev/xvdf1

AWS实验-EBS

扩容成功:

AWS实验-EBS

将该root卷重新挂载到02实例,登录查看:

AWS实验-EBS

修改成功。

1.    EBS卷备份

使用Linux下dd命令备份整盘文件:

dd if=/dev/xvda1 of=/dev/xvdf1

AWS实验-EBS

AWS实验-EBS

AWS实验-EBS

备份盘可用性测试:

a.    关闭02实例

aws ec2 stop-instances --instance-ids i-0b8990a15d2aeed4a
AWS实验-EBS

b.   分离root卷与备份卷

aws ec2 detach-volume --volume-id vol-039618e7da73d41bd
aws ec2 detach-volume --volume-id vol-058c9ef2bdb3f794a

AWS实验-EBS

c.    将备份卷作为root卷挂载至02实例

aws ec2 attach-volume --volume-id vol-058c9ef2bdb3f794a --instance-id i-0b8990a15d2aeed4a --device /dev/xvda

AWS实验-EBS

d.   启动02实例

aws ec2 start-instances --instance-ids i-0b8990a15d2aeed4a

AWS实验-EBS

e.    备份验证

ssh -i xincao-dev-key.pem [email protected]

AWS实验-EBS

备份成功。

2.    创建个人AMI

aws ec2 create-image --instance-id i-0b8990a15d2aeed4a --name "EBS Test"--description "An AMI Test for EBS - xincao"

AWS实验-EBS