Amazon Elastic Block Store
Amazon EBS 是专门为 Amazon EC2 虚拟机设计的弹性块存储服务。 Amazon EBS 可以为 Amazon EC2 的虚拟机创建卷 volumes , Amazon EBS 卷类似没有格式化的外部卷设备。卷有设备名称,同时也提供了块设备接口。你可以在 Amazon EBS 卷上驻留自己的文件系统,或者直接作为卷设备使用。 EBS 定价为每月每 GB 容量 10 美分,或者每向卷发出 100 万次请求 10 美分。据 Amazon 称,用户还可以将虚拟机的数据以快照的方式存储到 Amazon 的 S3 存储服务。
一般的,你可以创建多达 20 个 Amazon EBS 卷,卷的大小可从 1G 到 1T 。在相同 Avaliablity Zone 中,每个 Amazon EBS 卷可以被任何 Amazon EC2 虚拟机使用。如果你需要超过 20 个卷,则需要提出申请。
同时, Amazon EBS 提供了快照功能。可以将快照 snapshot 保存了 Amazon EBS 卷到 Amazon S3 中,其中第一个快照是全量快照,随后的快照都是增量快照。你可以使用快照作为新的 Amazon EBS 卷的起始点,这样当虚拟机数据受到破坏时你可以选择回滚到某个快照来恢复你的数据,从而提高了数据的安全性与可用性。
下面介绍下 Amazon EBS 容错处理和使用快照加载新的卷
Amazon EBS 可以将任何的实例(即运行中的虚拟机)关联到卷。当一个实例失效, Amazon EBS 卷可以自动的解除与失效节点的关联,从而可以将该卷关联到新的实例。如下图所示。步骤如下:
1. 运行中的 Amazon EC2 实例被关联到 Amazon EBS 卷,而这个实例突然失效或者出现异常;
2. 为了恢复该实例,你解除 Amazon EBS 卷和实例的关系(如果没有自动解除),加载一个新的 Amazon EC2 实例,将其关联到 Amazon EBS 卷;
3. 在 Amazon EBS 卷失效的情况下(几率极低),你可以根据快照创建一个新的 Amazon EBS 卷。
下面介绍快照的使用:
我们可以使用 Amazon EBS 快照作为一个起点来加载若干个新卷。加载过程如下:
1. 你现在有个大数据量的 Web Service 服务正在运行;
2. 当数据都正常的时候,你可以为你的卷创建快照,并将这些快照存储在 Amazon S3 上;
3. 当服务数据剧增时,你需要根据快照加载新的卷,然后再启动新的实例,在将新的实例关联到新的卷;
4. 当服务下降时,你可以关闭一个或多个 Amazon EC2 实例,并删除相关的 EBS 卷。
虽然 Amazon 没有详细说明 EBS 的实现细节,从上面的快照功能以及 EBS 的官方文档可以略知一二:
l 快照需要上传到 S3 中,当需要恢复到某个快照则需要将快照从 S3 下载下来;
l EBS 官方文档指出, EBS 为了提高可靠性, EBS 卷会有一个后台任务将其数据备份到同一个 zone 的另一台硬件上;
l EBS 官方文档同时指出,即时 EBS 有了卷的备份,还不是足够的高可靠,为此引入了快照功能,将快照存储到 S3 上,且第一个快照是全备份,随后的快照是增量备份,同时不同 zone 间可以从 S3 上下载快照;
l EC2 与 EBS 必须处于同一个 zone ,即 EC2 实例只能挂在处于同一个 zone 的 EBS 卷,且同一个 EBS 卷不能同时被挂载两次,即只能挂载给一个 EC2 实例。