監控磁碟區修改進度 - Amazon Elastic Compute Cloud

監控磁碟區修改進度

修改 EBS 磁碟區時,會經過一連串的狀態。磁碟區會進入 modifying 狀態,再進入 optimizing 狀態,最終進入 completed 狀態。至此,磁碟區已準備好進行其他修改。

注意

極少數情況下,瞬間的 AWS 故障可能導致 failed 狀態。這並非指磁碟區運作狀態,只是表示修改磁碟區失敗。如果發生此情況,請重新嘗試修改磁碟區。

磁碟區進入 optimizing 狀態時,磁碟區的效能介於來源和目標組態規格之間。轉換的磁碟區效能不會比來源磁碟區效能低。如果要降級 IOPS,轉換的磁碟區效能不會比目標磁碟區效能低。

磁碟區修改變更即會生效,如下所示:

  • 大小變更通常需幾秒鐘才會完成,且需等磁碟區轉換為 Optimizing 狀態後生效。

  • 效能 (IOPS) 變更完成需要從幾秒到幾小時的時間,視進行的組態變更而定。

  • 某些情況下,新組態可能需要超過 24 小時才能生效,例如磁碟區未完全初始化時。一般來說,完整使用的 1 TiB 磁碟區需約 6 小時才能遷移到新效能組態。

若要監控磁碟區修改進度,請使用下列其中一種方法。

Console

使用 Amazon EC2 主控台監控修改進度

  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格中,選擇 Volumes (磁碟區)。

  3. 選取磁碟區。

  4. Details (詳細資訊) 索引標籤中的 Volume state (磁碟區狀態) 欄和 Volume state (磁碟區狀態) 欄位包含下列格式的資訊:volume-state - modification-state (progress%)。

    可能的磁碟區狀態為 creatingavailablein-usedeletingdeletederror

    可能的代碼狀態為 modifyingoptimizingcompleted

AWS CLI

使用 AWS CLI 監控修改進度

使用 describe-volumes-modifications 命令來檢視一或多個磁碟區修改的進度。以下範例說明兩個磁碟區的磁碟區修改狀態。

aws ec2 describe-volumes-modifications --volume-ids vol-11111111111111111 vol-22222222222222222

在以下範例輸出中,磁碟區修改仍處於 modifying 狀態中。進度會以百分比的形式回報。

{ "VolumesModifications": [ { "TargetSize": 200, "TargetVolumeType": "io1", "ModificationState": "modifying", "VolumeId": "vol-11111111111111111", "TargetIops": 10000, "StartTime": "2017-01-19T22:21:02.959Z", "Progress": 0, "OriginalVolumeType": "gp2", "OriginalIops": 300, "OriginalSize": 100 }, { "TargetSize": 2000, "TargetVolumeType": "sc1", "ModificationState": "modifying", "VolumeId": "vol-22222222222222222", "StartTime": "2017-01-19T22:23:22.158Z", "Progress": 0, "OriginalVolumeType": "gp2", "OriginalIops": 300, "OriginalSize": 1000 } ] }

下一個範例說明修改狀態為 optimizingcompleted 的所有磁碟區,然後篩選並格式化結果,僅顯示在 2017 年 2 月 1 日及之後啟動的修改:

aws ec2 describe-volumes-modifications --filters Name=modification-state,Values="optimizing","completed" --query "VolumesModifications[?StartTime>='2017-02-01'].{ID:VolumeId,STATE:ModificationState}"

以下範例輸出提供兩個磁碟區的相關資訊:

[ { "STATE": "optimizing", "ID": "vol-06397e7a0eEXAMPLE" }, { "STATE": "completed", "ID": "vol-ba74e18c2aEXAMPLE" } ]
CloudWatch Events console

您可以使用 CloudWatch Events 來建立磁碟區修改事件的通知規則。您可以使用規則,利用 Amazon SNS 產生通知訊息,或呼叫 Lambda 函式來回應匹配的事件。盡可能發出事件。

使用 CloudWatch Events 監控修改進度

  1. 透過 https://console.aws.amazon.com/cloudwatch/ 開啟 CloudWatch 主控台。

  2. 選擇 Events (事件)、Create rule (建立規則)。

  3. Build event pattern to match events by service (建構事件的模式,依服務來匹配事件) 中,選擇 Custom event pattern (自訂事件模式)。

  4. Build custom event pattern (建置自訂事件模式) 中,將內容取代為下列內容,並選擇 Save (儲存)

    { "source": [ "aws.ec2" ], "detail-type": [ "EBS Volume Notification" ], "detail": { "event": [ "modifyVolume" ] } }

    以下為事件資料的範例:

    { "version": "0", "id": "01234567-0123-0123-0123-012345678901", "detail-type": "EBS Volume Notification", "source": "aws.ec2", "account": "012345678901", "time": "2017-01-12T21:09:07Z", "region": "us-east-1", "resources": [ "arn:aws:ec2:us-east-1:012345678901:volume/vol-03a55cf56513fa1b6" ], "detail": { "result": "optimizing", "cause": "", "event": "modifyVolume", "request-id": "01234567-0123-0123-0123-0123456789ab" } }