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
选择实例类型
选择默认VPC,启动数量为2
添加存储,默认gp2
选择安全组和**对,并启动实例
SSH登录
下载图片至01实例的目录下,图片路径:
https://s3-us-west-2.amazonaws.com/stuffsandstuffs/Golden+Farting+Bulling.jpg
https://s3-us-west-2.amazonaws.com/stuffsandstuffs/Tooth+Dolls.png
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}'
实例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}'
因此ebs卷id分别为:
01:vol-039618e7da73d41bd
02:vol-07af972792d3eba8c
a. 关闭正在运行的01与02实例
aws ec2 stop-instances --instance-ids i-066e0442c5e812b03 i-0b8990a15d2aeed4a
d. 分离01与02实例的root ebs卷,并删除02实例的root ebs卷
aws ec2 detach-volume --volume-id vol-039618e7da73d41bd
aws ec2 detach-volume --volume-id vol-07af972792d3eba8c
aws ec2 delete-volume --volume-id vol-07af972792d3eba8c
a. 将01实例的ebs卷重新挂载至02实例
aws ec2 attach-volume --volume-id vol-039618e7da73d41bd --instance-idi-0b8990a15d2aeed4a --device /dev/xvda
启动02实例:
aws ec2 start-instances --instance-ids i-0b8990a15d2aeed4a
a. SSH登录02实例查看文件信息
ssh -i xincao-dev-key.pem [email protected]
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
Id:vol-058c9ef2bdb3f794a
将其挂载至02实例:
aws ec2 attach-volume --volume-id vol-058c9ef2bdb3f794a --instance-idi-0b8990a15d2aeed4a --device /dev/sdf
SSH登录02实例查看:
b. 将02实例的两个卷都扩容至10GB
aws ec2 modify-volume --volume-id vol-039618e7da73d41bd --size 10
aws ec2 modify-volume --volume-id vol-058c9ef2bdb3f794a --size 10
查看修改进度:
aws ec2 describe-volumes-modifications --volume-id vol-039618e7da73d41bd vol-058c9ef2bdb3f794a
c. SSH登录02实例查看并使文件系统识别新增空间
卷大小已调整完毕,扩展Linux文件系统(/dev/xvda1):
sudo growpart /dev/xvda 1
对新盘/dev/xvdf进行分区操作,制作文件系统:
sudo fdisk /dev/xvdf
输入m查看参数说明:
输入n新增一个分区:
创建ext4文件系统:
mkfs.ext4 /dev/xvdf1
挂载到目录下:mount /dev/xvdf1 /mnt
a. root卷扩容方法
关闭02实例,将root卷挂载至其他实例,扩展linux磁盘容量
卸载分区:umount /mnt
使用parted分区工具扩展linux分区:
a) parted /dev/xvdf
b) 更改parted度量单位为扇区
c) print输出分区信息表
d) 删除分区的分区条目 – rm 1
e) 创建扩展到卷末尾的新分区 – mkpart Linux 4096s 100%
f) print输出验证扩展结果
说明:之前已用growpart扩展了分区,因此此处不变
g) 将boot标志添加到分区1 – set 1 boot on
quit退出
扩展分区(ext3或ext4):e2fsck -f /dev/xvdf1
调整为新的卷容量:resize2fs /dev/xvdf1
扩容成功:
将该root卷重新挂载到02实例,登录查看:
修改成功。
1. EBS卷备份
使用Linux下dd命令备份整盘文件:
dd if=/dev/xvda1 of=/dev/xvdf1
备份盘可用性测试:
a. 关闭02实例
aws ec2 stop-instances --instance-ids i-0b8990a15d2aeed4a
b. 分离root卷与备份卷
aws ec2 detach-volume --volume-id vol-039618e7da73d41bd
aws ec2 detach-volume --volume-id vol-058c9ef2bdb3f794a
c. 将备份卷作为root卷挂载至02实例
aws ec2 attach-volume --volume-id vol-058c9ef2bdb3f794a --instance-id i-0b8990a15d2aeed4a --device /dev/xvda
d. 启动02实例
aws ec2 start-instances --instance-ids i-0b8990a15d2aeed4a
e. 备份验证
ssh -i xincao-dev-key.pem [email protected]
备份成功。
2. 创建个人AMI
aws ec2 create-image --instance-id i-0b8990a15d2aeed4a --name "EBS Test"--description "An AMI Test for EBS - xincao"