我該如何在可用磁碟空間不足時,自動評估和修復 Amazon EC2 執行個體上增加的磁碟區?

2 分的閱讀內容
0

我想知道我的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體所連接的磁碟區何時需要擴充。此外,我想在作業系統 (OS) 層級自動擴充分割區和檔案系統。

簡短說明

若要評估和擴充 Amazon Elastic Block Store (Amazon EBS) 磁碟區,請使用一批 AWS Systems Manager Automation 文件。自動化文件可讓您調查並選擇性地修復 Amazon EC2 執行個體上的磁碟使用量不足。

自動化文件 AWSPremiumSupport-TroubleshootEC2DiskUsage 會根據作業系統類型來引導其他系統管理員文件的執行。

第一批文件會執行基本診斷,並評估是否可以藉由擴充磁碟區大小來移轉:

  • AWSPremiumSupport-DiagnoseDiskUsageOnWindows
  • AWSPremiumSupport-DiagnoseDiskUsageOnLinux

第二批文件會接收第一批文件的輸出內容,並執行 Python 代碼來修改磁碟區:

  • AWSPremiumSupport-ExtendVolumesOnWindows
  • AWSPremiumSupport-ExtendVolumesOnLinux

然後,自動化會存取執行個體,並擴充磁碟區的分割區和檔案系統。

解決方案

授予權限

您必須授予下列權限以使用自動化文件。首先,請確定您有系統管理員的 AWS Identity and Access Management (IAM) 執行個體設定檔,並且已連接至目標執行個體。

若要授予權限,請完成下列設定 AssumeRole 的步驟,以指定自動化文件組態流程的 AutomationAssumeRole 參數:

  1. 使用 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"
        }
      ]
    }
  2. 建立假設角色,然後連接上一個步驟建立的政策。

  3. 修改此陳述式並使用假設角色的 ARN 取代 "Resource": "*"

    {
      "Action": [
          "iam:PassRole"
        ],
        "Resource": "*",
        "Effect": "Allow"
      },

執行自動化文件

若要使用這批 Systems Manager Automation 文件,僅須執行 AWSPremiumSupport-TroubleshootEC2DiskUsage 文件。

若要執行 AWSPremiumSupport-TroubleshootEC2DiskUsage 文件,請完成下列步驟:

  1. 開啟 Systems Manager 主控台,然後從導覽窗格中選擇自動化
  2. 選擇執行自動化
  3. 選取 AWSPremiumSupport-TroubleshootEC2DiskUsage,然後選擇下一步
  4. 對於執行自動化文件,選擇簡易執行
  5. 輸入參數下,輸入下列資訊:
    對於 InstanceId 欄位,輸入您的 Amazon EC2 執行個體 ID。
    對於 AutomationAssumeRole 欄位,輸入允許自動化代表您執行動作之假設角色的 ARN。
  6. 如果您的需求與預設值不同,請在輸入參數下,指定下列輸入:
    VolumeExpansionEnabled: 控制文件是否擴充受影響的磁碟區和分割區 (預設值: True)
    VolumeExpansionUsageTrigger: 觸發擴充所需的分割區已使用空間百分比下限 (預設值: 85)
    VolumeExpansionCapSize: EBS 磁碟區最大可增加至此大小 (以 GiB 為單位) (預設值: 2048)
    VolumeExpansionGibIncrease: 以 GiB 為單位的磁碟區增加量 (預設值: 20)
    VolumeExpansionPercentageIncrease: 磁碟區增加量百分比 (預設值: 20)
  7. 選擇執行

範例案例

您目前的磁碟區為 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%。自動化文件使用 VolumeExpansionGibIncreaseVolumeExpansionPercentageIncrease 之間最大的淨增加量。新的磁碟區大小為 40 GB。40 GB 還在指定 2048 VolumeExpansionCapSize 的範圍內。

相關資訊

調整磁碟區大小後擴充 Linux 檔案系統

調整磁碟區大小後擴充 Windows 檔案系統

使用 IAM 來設定角色以進行自動化

AWS 官方
AWS 官方已更新 8 個月前