Amazon Elastic Compute Cloud
Linux 实例用户指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

Amazon EC2 根设备卷

当您启动一个实例时,根设备卷 包含用于启动该实例的映像。当我们介绍 Amazon EC2 时,所有 AMI 都由 Amazon EC2 实例存储提供支持,也就是说从该 AMI 启动的实例的根设备是从存储在 Amazon S3 中的模板创建的实例存储卷。介绍完 Amazon EBS 之后,我们将介绍由 Amazon EBS 提供支持的 AMI。这意味着从 AMI 启动的实例的根设备是一个从 Amazon EBS 快照创建的 Amazon EBS 卷。

您可以在 Amazon EC2 实例存储支持的 AMI 和 Amazon EBS 支持的 AMI 之间进行选择。我们建议您使用由 Amazon EBS 提供支持的实例,因为它们启动速度更快,而且采用了持久性存储。

有关用于您的根卷的设备名称Amazon EC2的更多信息,请参阅Linux 实例上的设备命名

根设备存储概念

您可以从实例存储支持 AMI 或Amazon EBS支持 AMI 启动实例。AMI 的说明中包括 AMI 的类型;您会看到根设备在一些地方被称为 ebs(表示由 Amazon EBS 提供支持) 或 instance store (示由实例存储提供支持)。这很重要,因为您可以使用每种 AMI 进行哪些操作有很大区别。有关这些区别的更多信息,请参阅根设备存储

实例存储支持的实例

使用实例存储作为根设备的实例自带可用的一个或多个实例存储卷,其中一个卷充当根设备卷。当一个实例被启动时,用于启动该实例的映像被复制到根卷。请注意,您可以根据实例类型选择使用其他实例存储卷。

只要实例正在运行,实例存储卷上的所有数据便会存在,但是在实例终止时 (实例存储支持的实例不支持 Stop (停止) 操作) 或是实例失败时 (例如底层硬盘有问题时),会删除这些数据。

 由 Amazon EC2 实例存储支持的实例上的根设备

由 Amazon 实例存储支持的实例失败或终止后,该实例不能被恢复。如果您打算使用由 Amazon EC2 实例存储支持的实例,我们强烈建议您将数据跨多个可用区分配到实例存储中。您还应该定期将您的实例存储卷上的关键数据备份至持久性存储。

有关更多信息,请参阅 Amazon EC2 实例存储

由 Amazon EBS 提供支持的实例

使用 Amazon EBS 作为根设备的实例自动附加 Amazon EBS 卷。当您启动由 Amazon EBS 提供支持的实例时,系统会为您使用的 AMI 所参考的每一个 Amazon EBS 快照创建 Amazon EBS 卷。您可以根据实例类型选择使用其他Amazon EBS卷或实例存储卷。

 由 Amazon EBS 提供支持的实例的根设备卷和其他 Amazon EBS 卷

由 Amazon EBS 提供支持的实例可以停止然后再重新启动,附加的卷中存储的数据不会受影响。当由 Amazon EBS 提供支持的实例处于停止状态时,您可以完成各种与该实例和卷有关的任务。例如,您可以修改实例的属性,您可以更改实例的大小或更新实例使用的内核,或者您可以将您的根卷附加到另一个的运行的实例,以进行调试或达到任何其他目的。

如果由 Amazon EBS 提供支持的实例失败,您可以通过以下方法之一恢复您的会话:

  • 停止,然后再次启动 (先尝试此方法)。

  • 自动为相关卷拍摄快照并创建新的 AMI。有关更多信息,请参阅 创建 Amazon EBS 支持的 Linux AMI

  • 通过以下步骤将卷附加到一个新实例:

    1. 创建根卷的快照。

    2. 使用快照注册一个新的 AMI。

    3. 从新的 AMI 启动一个新实例。

    4. 从旧的实例中分离其余 Amazon EBS 卷。

    5. 将 Amazon EBS 卷重新附加到新实例。

有关更多信息,请参阅 Amazon EBS 卷

根据根设备类型选择 AMI

您在启动实例时指定的 AMI 决定着实例的根设备卷类型。

使用控制台选择 Amazon EBS 支持的 AMI

  1. 打开 Amazon EC2 控制台。

  2. 在导航窗格中,选择 AMIs

  3. 从筛选条件列表中,选择映像类型 (例如 Public images (公有映像))。在 搜索栏中选择 Platform 选择操作系统 (例如 Amazon Linux),单击 Root Device Type 选择 EBS images

  4. (可选) 为了获取其他信息以帮助您进行选择,请选择 Show/Hide Columns (显示/隐藏列) 图标,更新要显示的列,然后选择 Close (关闭)

  5. 选择一个 AMI 并写下其 AMI ID。

使用控制台选择实例存储支持的 AMI

  1. 打开 Amazon EC2 控制台。

  2. 在导航窗格中,选择 AMIs

  3. 从筛选条件列表中,选择映像类型 (例如 Public images (公有映像))。在 搜索栏中选择 Platform 选择操作系统 (例如 Amazon Linux),单击 Root Device Type 选择 Instance store

  4. (可选) 为了获取其他信息以帮助您进行选择,请选择 Show/Hide Columns (显示/隐藏列) 图标,更新要显示的列,然后选择 Close (关闭)

  5. 选择一个 AMI 并写下其 AMI ID。

使用命令行验证 AMI 的根设备卷的类型

您可以使用以下任一命令。有关这些命令行界面的更多信息,请参阅 访问 Amazon EC2

确定实例的根设备类型

使用控制台确定实例的根设备类型

  1. 打开 Amazon EC2 控制台。

  2. 在导航窗格中,选择 Instances,然后选择实例。

  3. 检查说明选项卡上根设备类型的值,如下所示:

    • 如果值为 ebs,那么这是一个由 Amazon EBS 支持的实例。

    • 如果值为 instance store,则表示这是由实例存储支持的实例。

使用命令行确定实例的根设备类型

您可以使用以下任一命令。有关这些命令行界面的更多信息,请参阅 访问 Amazon EC2

将根设备卷更改为持久保留

默认情况下,当实例终止时,由 Amazon EBS 提供支持的 AMI 的根设备卷会被删除。要更改默认操作,请使用块储存设备映射将 DeleteOnTermination 属性设置为 false

使用控制台将根卷更改为持久保留

当您启动实例时,可以使用控制台更改 DeleteOnTermination 属性。要对正在运行的实例更改此属性,您必须使用命令行。

使用控制台在启动时将实例的根设备卷更改为持久保留

  1. 打开 Amazon EC2 控制台。

  2. 从 Amazon EC2 控制台控制面板中,选择 Launch Instance

  3. Choose an Amazon Machine Image (AMI) 页面上,选择要使用的 AMI 并选择 Select

  4. 遵循向导完成 Choose an Instance Type (选择一个实例类型)Configure Instance Details (配置实例详细信息) 页面。

  5. Add Storage (添加存储) 页面上,取消选中根卷的 Delete On Termination (终止时删除)

  6. 完成其余向导页面上的操作,然后选择 Launch

您可以通过实例的详细信息窗格查看根设备卷的详细信息以验证设置。在 Block devices (块储存设备) 旁,选择根设备卷的条目。默认情况下,Delete on termination (终止时删除)True。如果您更改默认行为,Delete on termination (终止时删除) 将为 False

使用 AWS CLI 将实例的根卷更改为持久保留

使用 AWS CLI,您可以在启动实例或者在实例正在运行时更改 DeleteOnTermination 属性。

例 在启动时

使用 run-instances 命令并在其中包括将根卷的 DeleteOnTermination 属性设置为 false 的块储存设备映射,来保留根卷。

aws ec2 run-instances --block-device-mappings file://mapping.json other parameters...

mapping.json 中指定以下内容。

[ { "DeviceName": "/dev/sda1", "Ebs": { "DeleteOnTermination": false } } ]

您可以通过使用 describe-instances 命令,并如此处所示,在命令输出中查找设备的 BlockDeviceMappings 条目,确认 DeleteOnTerminationfalse

... "BlockDeviceMappings": [ { "DeviceName": "/dev/sda1", "Ebs": { "Status": "attached", "DeleteOnTermination": false, "VolumeId": "vol-1234567890abcdef0", "AttachTime": "2013-07-19T02:42:39.000Z" } } ...

例 当实例正在运行时

使用 modify-instance-attribute 命令,并在命令中包括将根卷的 DeleteOnTermination 属性设置为 false的块储存设备映射,来保留根卷。

aws ec2 modify-instance-attribute --instance-id i-1234567890abcdef0 --block-device-mappings file://mapping.json

mapping.json 中指定以下内容。

[ { "DeviceName": "/dev/sda1", "Ebs" : { "DeleteOnTermination": false } } ]