什么是 Amazon Elastic Block Store?
Amazon Elastic Block Store (AmazonEBS) 提供可扩展、高性能的块存储资源,可用于亚马逊弹性计算云 (AmazonEC2) 实例。使用 Amazon Elastic Block Store 时,您可以创建和管理以下数据块存储资源:
-
Amazon EBS 卷 — 这些是您附加到亚马逊EC2实例的存储卷。将卷挂载到实例后,您可以像使用挂载到计算机上的本地硬盘一样使用卷,例如用于存储文件或安装应用程序。
-
Amazon EBS 快照 — 这些是 Amazon EBS 卷的 point-in-time 备份,它们独立于卷本身而持续存在。您可以创建快照来备份 Amazon EBS 卷上的数据。而后可以随时从这些快照还原新卷。
Amazon EBS 的特点
Amazon EBS 提供以下功能和优势:
-
多种卷类型 — Amazon EBS 提供多种卷类型,允许您优化各种应用程序的存储性能和成本。卷类型分为两大类:用于事务性工作负载的SSD支持存储和用于吞吐量密集型工作负载的HDD支持存储。
-
可扩展性 — 您可以创建容EBS量和性能规格满足您需求的 Amazon 卷。随着需求的变化,您可以在不必停机的情况下使用弹性卷操作来动态增加容量或调整性能。
-
备份和恢复 — 使用 Amazon EBS 快照备份存储在您的卷上的数据。然后,您可以使用这些快照立即恢复卷或跨 AWS 账户、 AWS 区域或可用区迁移数据。
-
数据保护-使用亚马逊EBS加密来加密您的亚马逊EBS卷和亚马逊EBS快照。加密操作发生在托管 Amazon EC2 实例的服务器上,从而确保两者的安全, data-at-rest 以及实例 data-in-transit 与其附加卷和后续快照之间的安全。
-
数据可用性和持久性 – io2 Block Express 卷持久性为 99.999%,年故障率为 0.001%。其他卷类型持久性为 99.8% 到 99.9%,年故障率为 0.1% 到 0.2%。另外,卷的数据可在可用区内多个服务器间进行自动复制,以防任何单个组件故障导致数据丢失。
-
数据存档 — S EBS napshots Archive 提供了一个低成本的存储层,用于存档完整EBS快照 point-in-time 副本,出于监管和合规原因或将来的项目发布必须保留 90 天或更长时间。
我们为什么要使用 EBS 卷呢?
Amazon Elastic Block Store (Amazon EBS) 为 Amazon Elastic Compute Cloud (Amazon EC2) 实例提供持久存储。EBS 卷是网络附加的,独立于实例的生命周期而存在。EBS 卷具有高可用性和高可靠性,可以作为 EC2 实例的启动分区,或作为标准块设备附加到正在运行的 EC2 实例上。
当用作启动分区时,EC2 实例可以被停止并随后重新启动,从而使我们仅需为配置的存储资源付费,同时保持实例的状态。与本地 EC2 实例存储相比,EBS 卷提供了显著更高的耐用性,因为 EBS 卷会在可用区内自动复制,以防止因单个硬件故障导致的数据丢失。
Amazon EBS 提供创建卷的时间点一致快照的功能,这些快照会存储在 Amazon Simple Storage Service (Amazon S3) 中,并在多个可用区之间自动复制。这些快照可以作为新 EBS 卷的起点,并可以保护我们的数据以确保长期耐用性。还可以和团队的其他人共享这些快照。
那么我们就开始使用 EBS,来体会一下 EBS 的作用。
创建 EBS 卷并将其附加到 EC2 实例
创建 EBS volumes
在创建 volume 时,可以看到以下参数:
- 卷类型指定EBS卷类型。
- 大小(GiB)显示所选卷类型的最小和最大卷大小。
- IOPS定义磁盘可以支持的每秒预配置I/O操作数(IOPS)。IOPS选项仅适用于某些卷类型。
- 吞吐量(MB/s)定义了以MB/s为单位的预配吞吐量的带宽。吞吐量(MB/s)选项仅适用于某些卷类型。
- 可用区标识创建卷的位置,该卷应与将使用该卷的EC2实例位于同一可用区中。
- 快照ID指定可以从中创建新卷的快照名称。
- 加密选择卷的内容存储在磁盘上时是否自动加密。
根据需要进行创建,KMS 密钥可以使用自己创建的,如图:
将EBS卷连接到EC2实例
在 Volumes 选择创建的卷,然后在 Actions 点击 Attach volume
点击 Attach volume 后,我们可以配置将这个 EBS 卷附加到哪个实例,对于 Device name 可以分配的设备名称取决于所选实例的虚拟化类型。
在连接的 EBS 卷上创建和配置文件系统
这一步我们需要连接到实例,可以使用 EC2 Instance Connect、Session Manager 或者是 SSH client
运行以下命令以查看实例上的可用存储:
df -h
可以看到以下结果,结果的文件系统和使用量什么的可能是不一样的
运行以下命令在 EBS 卷上创建 ext 3 Linux 文件系统(按照自己的 Device name 修改 /dev/sdf):
sudo mkfs -t ext3 /dev/sdf
输出如图:
使用以下命令创建一个目录来挂载 EBS 存储卷
sudo mkdir /mnt/data-store
使用以下命令挂载 EBS 存储卷
sudo mount /dev/sdf /mnt/data-store
运行以下命令,将下面一行添加到/etc/fstab文件的末尾:
echo "/dev/sdf /mnt/data-store ext3 defaults,noatime 1 2" | sudo tee -a /etc/fstab
fstab是Linux文件系统表的缩写。Linux中的所有配置文件通常都位于/etc目录中。fstab文件包含有关文件系统、其挂载点和设备名称的信息。每个文件系统都在此文件的单独一行中定义。运行mount命令时,它会读取/etc/fstab文件,以确定在挂载指定设备时应使用哪些选项。
然后再查看配置文件和可用存储
cat /etc/fstab
df -h
结果如图:
修改 EBS 卷大小并扩展卷上的文件系统
修改现有 EBS 卷的大小
我们将刚创建的卷添加到50G,进入到刚创建的卷的详情页,然后点击 Modify
将 Size 改为 50,其他的可以按照自己需要进行修改
扩展文件系统的卷
运行以下命令以显示有关连接到实例的块设备的信息,查看我们修改后的卷大小是否为50G:
lsblk
运行以下命令以验证每个卷的文件系统大小:
df -h
可以看到运行命令后,结果还是20G,这个时候就要扩展文件系统以利用增加的卷大小。
运行以下命令扩展文件系统以使用卷的额外可用容量(注意将 /dev/nvme1n1 替换为自己的文件系统):
sudo resize2fs /dev/nvme1n1
fsinresize2fs命令是文件系统的缩写。resize2fs命令将调整ext2、ext3或ext4文件系统的大小。它可用于增加或减少位于设备上的已卸载文件系统的大小。对于已挂载的文件系统,如果底层操作系统支持NTFS,则可以使用它来增加文件系统的大小。
然后运行以下命令以验证每个卷的文件系统大小:
df -h
文件系统的大小现在就是50 G
修改 EBS 卷类型并为现有应用程序调配性能
修改 EBS 卷类型,将调配的 IOPS 从默认值3000修改为6000,并将调配的吞吐量值从125 MB/s修改为250 MB/s。
为现有 EBS 卷配置快照
创建快照
从现有快照恢复 EBS 卷
我们可以从快照创建 Amazon EBS 卷以克隆或恢复卷。当您基于快照创建 Amazon EBS 卷时,新卷将作为用于创建快照的原始卷的精确副本开始。复制的卷在后台加载数据,以便您可以开始立即使用它。Amazon EBS 快照还可以在 AWS 用户之间轻松共享或跨 AWS 区域复制。
创建后,按照 EBS 卷连接到 EC2 实例的步骤将 EBS 挂载到 EC2 上面