我想知道应在什么时候扩展附加到 Amazon Elastic Compute Cloud (Amazon EC2) 实例的卷。另外,我还想在操作系统 (OS) 级别自动扩展分区和文件系统。
简述
要评估和扩展 Amazon Elastic Block Store (Amazon EBS) 卷,可以使用一套 AWS Systems Manager Automation 文档。借助这些 Automation 文档,您可以调查并有选择地纠正 Amazon EC2 实例上磁盘使用率偏低这一问题。
根据操作系统类型,AWSPremiumSupport-TroubleshootEC2DiskUsage Automation 文档指导其他 Systems Manager 文档的运行。
以下文档执行基本诊断并评估您是否可以扩展卷大小来迁移卷:
- AWSPremiumSupport-DiagnoseDiskUsageOnWindows
- AWSPremiumSupport-DiagnoseDiskUsageOnLinux
以下文档获取前面文档的输出并运行 Python 代码来执行卷修改:
- AWSPremiumSupport-ExtendVolumesOnWindows
- AWSPremiumSupport-ExtendVolumesOnLinux
然后,自动化访问实例并扩展卷的分区和文件系统。
解决方法
授予权限
您必须授予以下权限才能使用 Automation 文档。首先,请确保您有附加到目标实例的 Systems Manager 的 AWS Identity and Access Management (IAM) 实例配置文件。
要授予权限,请完成以下步骤,设置 AssumeRole 来为 Automation 文档配置流程指定 AutomationAssumeRole 参数:
-
使用 JSON 选项创建以下策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"ec2:DescribeVolumes",
"ec2:DescribeVolumesModifications",
"ec2:ModifyVolume",
"ec2:DescribeInstances",
"ec2:CreateImage",
"ec2:DescribeImages",
"ec2:DescribeTags",
"ec2:CreateTags",
"ec2:DeleteTags"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"iam:PassRole"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"ssm:StartAutomationExecution",
"ssm:GetAutomationExecution",
"ssm:DescribeAutomationStepExecutions",
"ssm:DescribeAutomationExecutions"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"ssm:SendCommand",
"ssm:DescribeInstanceInformation",
"ssm:ListCommands",
"ssm:ListCommandInvocations"
],
"Resource": "*",
"Effect": "Allow"
}
]
}
-
创建代入角色,然后附加策略。
-
修改以下语句。将 "Resource": "*" 替换为代入角色的 ARN:
{
"Action": [
"iam:PassRole"
],
"Resource": "*",
"Effect": "Allow"
},
运行 Automation 文档
要使用这套 Systems Manager Automation 文档,只需运行 AWSPremiumSupport-TroubleshootEC2DiskUsage 文档。
要运行 AWSPremiumSupport-TroubleshootEC2DiskUsage 文档,请完成以下步骤:
- 打开 Systems Manager 控制台,然后在导航窗格中选择自动化。
- 选择执行自动化。
- 选择 AWSPremiumSupport-TroubleshootEC2DiskUsage,然后选择下一步。
- 对于执行自动化文档,选择简单执行。
- 在输入参数下,输入以下信息:
对于 InstanceId,输入您的 Amazon EC2 实例 ID。
对于 AutomationAssumeRole,输入代入角色的 ARN 以允许该自动化代表您执行操作。
- 在输入参数下,如果您的要求与默认值不同,指定以下输入:
VolumeExpansionEnabled: 控制文档是否扩展受影响的卷和分区(默认: True)
VolumeExpansionUsageTrigger: 已使用的触发扩展所需分区空间的最小百分比(默认: 85)
VolumeExpansionCapSize: EBS 卷可以增加的最大大小(以 GiB 为单位)(默认: 2048)
VolumeExpansionGibIncrease: 卷增加量(以 GiB 为单位)(默认: 20)
VolumeExpansionPercentageIncrease: 卷增加百分比(默认: 20)
- 选择执行。
示例场景
您当前的卷为 30 GB,有 4 GB 可用。这表明您已使用 26 GB 的空间。指定以下输入参数:
- VolumeExpansionUsageTrigger: 85
- VolumeExpansionGibIncrease: 10
- VolumeExpansionPercentageIncrease: 15
- VolumeExpansionCapSize: 2048
由于 26 GB 的已用空间超过了 VolumeExpansionUsageTrigger 的阈值 85%,因此增加 10 GB 卷。增加是因为您指定卷增加 10 GB 或当前 4.5 GB 卷的 15%。Automation 文档使用 VolumeExpansionGibIncrease 到 VolumeExpansionPercentageIncrease 之间的最大净增加值。新的卷大小为 40 GB。40 GB 在指定的 2048 VolumeExpansionCapSize 内。
相关信息
调整卷大小后扩展 Linux 文件系统
调整卷大小后扩展 Windows 文件系统
使用 IAM 为自动化配置角色