Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅
中国的 Amazon Web Services 服务入门
(PDF)。
Amazon EC2 实例根卷
当您启动一个实例时,我们会为该实例创建根卷。根卷包含用于启动该实例的映像。每个实例都有单独的根卷。您可以在启动实例时或实例运行后向其添加存储卷。
我们为根卷保留特定的设备名称。有关更多信息,请参阅 Linux 实例上的设备名称。
根卷类型
您可以从实例存储支持的 AMI 或 Amazon EBS-backed AMI 启动实例。AMI 的说明中包括 AMI 的类型;您会看到根设备在一些地方被称为 ebs
(表示由 Amazon EBS 提供支持)或 instance store
(表示由实例存储提供支持)。这很重要,因为您可以使用这两种 AMI 进行的操作有很大区别。有关这些区别的更多信息,请参阅 根设备存储。我们建议您使用由 Amazon EBS 提供支持的 AMI,因为这些实例启动速度更快,而且采用了持久性存储。
由 Amazon EBS 提供支持的实例
使用 Amazon EBS 作为根卷的实例会自动附加一个 Amazon EBS 卷。当您启动由 Amazon EBS 提供支持的实例时,系统会为您使用的 AMI 所引用的每一个 Amazon EBS 快照创建 Amazon EBS 卷。您可以根据实例类型选择使用其他Amazon EBS卷或实例存储卷。
由 Amazon EBS 提供支持的实例可以停止然后再重新启动,附加的卷中存储的数据不会受影响。当由 Amazon EBS 支持的实例处于停止状态时,您可以执行各种与该实例和卷有关的任务。例如,您可以修改实例的属性、更改其大小或更新其使用的内核,或者您可以将您的根卷附加到另一个正在运行的实例,以进行调试或实现任何其他目的。有关更多信息,请参阅 Amazon EBS 卷。
限制
您不能使用 st1
或 sc1
EBS 卷作为根卷。
实例失败
如果由 Amazon EBS 提供支持的实例失败,您可以通过以下方法之一恢复您的会话:
实例存储支持的实例
使用实例存储作为根卷的实例会自带可用的一个或多个实例存储卷,其中一个卷充当根卷。启动实例时,用于启动该实例的映像被复制到根卷。请注意,您可以根据实例类型选择使用更多实例存储卷。
只要实例正在运行,实例存储卷上的所有数据便会存在,但是在实例终止时(实例存储支持的实例不支持停止操作)或是实例失败时(例如底层硬盘有问题时),会删除这些数据。有关更多信息,请参阅Amazon EC2 实例存储。
要求
只有以下实例类型支持将实例存储卷作为根卷:C3、D2、G2、I2、M3 和 R3。
实例失败
由实例存储支持的实例失败或终止后,该实例不能被恢复。如果您打算使用由 Amazon EC2 实例存储支持的实例,我们强烈建议您将数据跨多个可用区分散到不同实例存储中。您还应该定期将您的实例存储卷上的关键数据备份至持久性存储。
按根卷类型选择 AMI
您在启动实例时指定的 AMI 决定着实例的根设备卷类型。您可以使用以下方法之一按根设备类型查看 AMI。
- Console
-
使用控制台选择 Amazon EBS-backed AMI
-
打开 Amazon EC2 控制台。
-
在导航窗格中,选择 AMIs。
-
从筛选条件列表中,选择映像类型(例如公有映像)。在搜索栏中,选择平台以选择操作系统(例如 Amazon Linux),然后选择根设备类型以选择根卷类型(ebs)。
-
(可选)为了获取其他信息以帮助您进行选择,请选择首选项图标,切换要显示的列,然后选择确认。
-
选择一个 AMI 并记下其 AMI ID。
使用控制台选择由实例存储支持的 AMI
-
打开 Amazon EC2 控制台。
-
在导航窗格中,选择 AMIs。
-
从筛选条件列表中,选择映像类型(例如公有映像)。在搜索栏中,选择平台以选择操作系统(例如 Amazon Linux),然后选择根设备类型以选择根卷类型(instance-store)。
-
(可选)为了获取其他信息以帮助您进行选择,请选择首选项图标,切换要显示的列,然后选择确认。
-
选择一个 AMI 并记下其 AMI ID。
- Amazon CLI
-
使用命令行验证 AMI 的根设备卷的类型
您可以使用以下任一命令。有关这些命令行界面的更多信息,请参阅 访问 Amazon EC2。
确定实例的根设备类型
- Console
-
- Amazon CLI
-
将根卷更改为保留
默认情况下,当实例终止时,由 Amazon EBS 提供支持的 AMI 的根卷会被删除。您可以更改默认行为来确保卷在实例终止后保留。要更改默认行为,请使用块储存设备映射将 DeleteOnTermination
属性设置为 false
。
将根卷配置为在实例启动期间保留
可以使用 Amazon EC2 控制台或命令行工具将根卷配置为在启动实例时保留。
- Console
-
使用控制台将根卷配置为在启动实例时保留
-
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/。
-
在导航窗格中,选择实例,然后选择启动实例。
-
依次选择亚马逊机器映像(AMI)、实例类型、密钥对,然后配置网络设置。
-
在配置存储中,选择高级。
-
扩展根卷。
-
对于终止时删除,选择是。
-
配置完实例后,选择启动实例。
- Amazon CLI
-
使用 Amazon CLI 将根卷配置为在启动实例时保留
使用 run-instances 命令,并包含将 DeleteOnTermination
属性设置为 false
的块储存设备映射。
$
aws ec2 run-instances --block-device-mappings file://mapping.json
...other parameters...
在 mapping.json
中指定以下内容。
[
{
"DeviceName": "/dev/sda1
",
"Ebs": {
"DeleteOnTermination": false
}
}
]
- Tools for Windows PowerShell
-
使用 Tools for Windows PowerShell 将根卷配置为在启动实例时保留
使用 New-EC2Instance 命令,并包含将 DeleteOnTermination
属性设置为 false
的块储存设备映射。
C:\>
$ebs = New-Object Amazon.EC2.Model.EbsBlockDevice
C:\>
$ebs.DeleteOnTermination = $false
C:\>
$bdm = New-Object Amazon.EC2.Model.BlockDeviceMapping
C:\>
$bdm.DeviceName = "dev/xvda"
C:\>
$bdm.Ebs = $ebs
C:\>
New-EC2Instance -ImageId ami-0abcdef1234567890 -BlockDeviceMapping $bdm
...other parameters...
配置根卷以便为现有实例保留
可以只使用命令行工具,配置根卷以便为正在运行的实例保留。
- Amazon CLI
-
使用 Amazon CLI 配置根卷以便为现有实例保留
使用 modify-instance-attribute 命令以及将 DeleteOnTermination
属性设置为 false
的块储存设备映射。
aws ec2 modify-instance-attribute --instance-id i-1234567890abcdef0
--block-device-mappings file://mapping.json
在 mapping.json
中指定以下内容。
[
{
"DeviceName": "/dev/xvda",
"Ebs": {
"DeleteOnTermination": false
}
}
]
- Tools for Windows PowerShell
-
使用 Amazon Tools for Windows PowerShell 配置根卷以便为现有实例保留
使用 Edit-EC2InstanceAttribute 命令以及将 DeleteOnTermination
属性设置为 false
的块储存设备映射。
C:\>
$ebs = New-Object Amazon.EC2.Model.EbsInstanceBlockDeviceSpecification
C:\>
$ebs.DeleteOnTermination = $false
C:\>
$bdm = New-Object Amazon.EC2.Model.InstanceBlockDeviceMappingSpecification
C:\>
$bdm.DeviceName = "/dev/xvda
"
C:\>
$bdm.Ebs = $ebs
C:\>
Edit-EC2InstanceAttribute -InstanceId i-1234567890abcdef0
-BlockDeviceMapping $bdm
确认已将根卷配置为保留
可以使用 Amazon EC2 控制台或命令行工具确认已将根卷配置为保留。
- Console
-
- Amazon CLI
-
使用 Amazon CLI 确认已将根卷配置为保留
使用 describe-instances 命令,并确认 DeleteOnTermination
响应元素中的 BlockDeviceMappings
属性设置为 false
。
$
aws ec2 describe-instances --instance-id i-1234567890abcdef0
...
"BlockDeviceMappings": [
{
"DeviceName": "/dev/sda1",
"Ebs": {
"Status": "attached",
"DeleteOnTermination": false,
"VolumeId": "vol-1234567890abcdef0",
"AttachTime": "2013-07-19T02:42:39.000Z"
}
}
...
- Tools for Windows PowerShell
-
使用 Amazon Tools for Windows PowerShell 确认已将根卷配置为保留
使用 Get-EC2Instance 命令,并确认 DeleteOnTermination
响应元素中的 BlockDeviceMappings
属性设置为 false
。
C:\>
(Get-EC2Instance -InstanceId i-i-1234567890abcdef0).Instances.BlockDeviceMappings.Ebs
更改根卷的初始大小
默认情况下,根卷的大小取决于快照的大小。您可以按下述方式使用实例的块储存设备映射增加根卷的初始大小。
例如,实例块储存设备映射的以下条目将根卷的大小 /dev/xvda
增加到 100 GiB。您可以在实例块储存设备映射中省略快照 ID,因为快照 ID 已在 AMI 块储存设备映射中指定。
{
"DeviceName": "/dev/xvda",
"Ebs": {
"VolumeSize": 100
}
}
有关更多信息,请参阅块设备映射。