亚马逊AWS官方博客
推出 Amazon EBS Volume Clones:创建 EBS 卷的即时副本
作为曾在 ZFS 发源地 Sun Microsystems 工作过的人,我一直钟爱能为开发和测试需求提供即时卷副本的存储系统。
今天,我很高兴地与大家分享,AWS 推出 f Amazon EBS Volume Clone,为 Amazon Elastic Block Store (Amazon EBS) 带来了类似的功能。这是一项新功能,可让您在同一个可用区内创建 EBS 卷的即时时间点副本。
许多客户需要创建其生产数据的副本,以便在独立的非生产环境中支持开发和测试活动。此前,这一流程需要先创建 EBS 快照(存储于 Amazon Simple Storage Service (Amazon S3)),再基于快照生成新卷。尽管这种方法行之有效,但多步骤操作会带来额外运营开销。
借助 Amazon EBS Volume Clones,您现在只需一次 API 调用或单击控制台即可创建 EBS 卷副本。复制卷能在数秒内就绪,并以个位数毫秒延迟提供即时数据访问。这使得 Volume Clones 特别适合快速设置含生产数据的测试环境,或为开发目的创建临时数据库副本。
让我来演示 Volume Clones 的工作原理
在本博文中,我创建了一个附带卷的小型 Amazon Elastic Compute Cloud (Amazon EC2) 实例。我使用 echo "Hello CopyVolumes" > hello.txt 命令在根文件系统上创建了一个文件。
要启动复制,我在 AWS 管理控制台上打开浏览器,然后导航到 EC2、Elastic Block Store、Volumes。选择要复制的卷。
请注意,在本博文发布时仅支持加密卷复制。
在操作菜单中,我选择复制卷选项。
接下来,我选择目标卷的详细信息。我可以更改卷类型并调整大小、IOPS 和吞吐量参数。我选择复制卷来启动 Volume Clone 操作。
复制卷立即进入创建中状态,并在几秒钟内变为可用。然后我可以将其连接到 EC2 实例并立即使用。
数据块从源卷复制,并在后台写入卷副本。该流程完成之前,卷将保持初始化状态。我可以使用 describe-volume-status API 监控其进度。初始化操作不会影响源卷的性能。在复制期间,我可以继续正常使用源卷。
我最欣赏的是复制卷立即可用的特性。我不需要等待初始化完成。在初始化阶段,复制卷性能将取以下三者中的最低值:3,000 IOPS 和 125 MIB/s 的基准性能、源卷预置性能或复制卷预置性能。
初始化完成后,复制的卷将完全独立于源卷并提供其全部预置性能。
我也可以使用 AWS 命令行界面(AWS CLI) 来启动复制:
aws ec2 copy-volumes \
--source-volume-id vol-1234567890abcdef0 \
--size 500 \
--volume-type gp3
创建卷副本后,我将其连接到 EC2 实例并挂载操作。我可以检查初始创建的文件是否存在。
首先,我使用 attach-volume 命令连接笔记本电脑上的卷:
aws ec2 attach-volume \
--volume-id 'vol-09b700e3a23a9b4ad' \
--instance-id 'i-079e6504ad25b029e' \
--device '/dev/sdb'
然后,我连接到实例,键入以下命令:
$ sudo lsblk -f
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
nvme0n1
├─nvme0n1p1 xfs / 49e26d9d-0a9d-4667-b93e-a23d1de8eacd 6.2G 22% /
└─nvme0n1p128 vfat FAT16 3105-2F44 8.6M 14% /boot/efi
nvme1n1
├─nvme1n1p1 xfs / 49e26d9d-0a9d-4667-b93e-a23d1de8eacd
└─nvme1n1p128 vfat FAT16 3105-2F44
$ sudo mount -t xfs /dev/nvme1n1p1 /data
$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 924M 0 924M 0% /dev/shm
tmpfs 370M 476K 369M 1% /run
/dev/nvme0n1p1 8.0G 1.8G 6.2G 22% /
tmpfs 924M 0 924M 0% /tmp
/dev/nvme0n1p128 10M 1.4M 8.7M 14% /boot/efi
tmpfs 185M 0 185M 0% /run/user/1000
/dev/nvme1n1p1 8.0G 1.8G 6.2G 22% /data
$ cat /data/home/ec2-user/hello.txt
Hello CopyVolumes
注意事项
Volume Clones 在与源卷相同的可用区内创建副本。您只能从加密卷创建副本,并且副本大小必须等于或大于源卷。
Availability Zone 创建的是与快照相同的崩溃一致性副本。为了保持应用程序一致性,您需要在创建副本之前暂停应用程序 I/O 操作。例如,在 PostgreSQL 数据库中,您可以使用 pg_start_backup() 和 pg_stop_backup() 函数来暂停写入并创建一致的副本。在使用 XFS 的 Linux 的操作系统层面上,您可以使用 xfs_freeze 命令暂时暂停和恢复对文件系统的访问,并确保所有缓存的更新都写入磁盘。
尽管 Volume Clones 可以创建时间点副本,但用于备份时它是对 EBS 快照的补充而非替代。EBS 快照仍然是数据备份和保护 AZ 级别和卷故障的推荐解决方案。与保持 EBS 卷耐用性的 Volume Clones 相比(io2 为 99.999%,其他卷类型为 99.9%),快照为 Amazon S3 提供增量备份,具有 11 个 9 的耐用性。在需要即时访问卷副本的测试和开发环境场景中,可以考虑专门使用 Volume Clones。
复制卷独立于其源卷存在,在删除之前,会继续产生标准 EBS 卷费用。为有效管理成本,应实施监管规则,识别和删除开发或测试活动不再需要的复制卷。
定价和可用性
Volume Clones 支持所有 EBS 卷类型,适用于同一 AWS 账户和可用区中的卷。这项新功能适用于所有 AWS 商业区域、选定的本地区域和 AWS GovCloud(美国)。
在定价方面,源卷在启动时按每 GB 数据收取一次性费用,新卷按 EBS 标准定价。
我认为 Volume Clones 对于数据库工作负载和持续集成 (CI) 场景特别有价值。例如,您可以快速创建生产数据库副本,用于测试新特征或解决问题,既不影响影响生产环境,也无需等待 Amazon S3 数据恢复。
要开始使用 Amazon EBS Volume Clones,请访问控制台上的 Amazon EBS 部分或查看 EBS 文档。我很期待了解您如何运用此功能优化开发工作流。
AWS 架构师中心: 云端创新的引领者探索 AWS 架构师中心,获取经实战验证的最佳实践与架构指南,助您高效构建安全、可靠的云上应用 |
![]() |



