隔離損壞的本地盤后,ECS實例不會變更所宿物理機。本文僅適用于發生了本地盤實例系統事件的ECS實例,介紹如何在控制臺和使用CLI隔離損壞的本地盤。
背景信息
隔離損壞的本地盤僅支持大數據型實例,隔離損壞的本地盤系統事件包括以下事件:
本地磁盤出現損壞告警(
Disk:ErrorDetected
)因系統維護隔離壞盤(
SystemMaintenance.IsolateErrorDisk
)因系統維護重啟實例并隔離壞盤(
SystemMaintenance.RebootAndIsolateErrorDisk
)因系統維護重新初始化壞盤(
SystemMaintenance.ReInitErrorDisk
)因系統維護重啟實例并重新初始化壞盤(
SystemMaintenance.RebootAndReInitErrorDisk
)
更多本地盤事件信息,請參見本地盤實例運維場景和系統事件。
操作步驟
通過控制臺隔離損壞的本地盤
登錄ECS管理控制臺。
在左側導航欄,單擊事件。
在事件頁面左側導航欄,單擊本地盤實例事件。
在本地盤實例事件頁面,單擊本地盤受損事件頁簽。
找到目標實例,在操作列單擊修復磁盤。
在修改配置階段,修改ECS實例的配置文件,完成后單擊下一步。
部分Linux實例如果出現修改配置階段,請根據頁面提示完成以下操作。本章節壞盤的設備名以/dev/vdd為例。
遠程連接ECS實例。
具體操作,請參見通過密碼或密鑰認證登錄Linux實例。
(可選)對本地盤設置應用層讀寫隔離。
在/etc/fstab配置文件中為對應本地盤加入nofail參數。
/dev/vdd /mnt/vdd ext4 defaults,barrier=0,nofail 0 0
參數設置
說明
/dev/vdd
本地盤設備名,DescribeInstanceHistoryEvents返回的Device取值。
/mnt/vdd
本地盤掛載點,可通過
mount | grep "/dev/vdd"
命令查詢。ext4
文件系統類型,可通過
blkid /dev/vdd
命令查詢。barrier=0
掛載選項,在文件系統中禁用barrier。
nofail
本地盤出現在文件系統中但實際缺失時,不會中斷ECS實例的啟動流程。
取消掛載本地盤。
umount /dev/vdd
重要如果不進行取消掛載操作,在壞盤維修完成并恢復隔離后,該本地盤的對應設備名會發生變化,可能導致應用讀寫錯誤的磁盤。
在隔離壞盤階段,單擊隔離。
如果幾分鐘后沒有進入下一階段,請嘗試刷新頁面。
(可選)在重啟階段,單擊重啟。
如果您的引導頁面出現重啟階段,則需要進行重啟。
說明 重啟實例后,為方便后續操作,被隔離的受損本地盤暫時變為1 MiB的Dummy硬盤。您需要在應用層持續隔離受損本地盤的讀寫操作和/etc/fstab文件中的nofail設置。重啟完成后,在新盤插入中階段,單擊確定。
確認后請等待阿里云在所宿物理機上更換損壞的本地盤,維護操作通常在五個工作日內完成,之后您會收到恢復磁盤的事件通知。
收到恢復磁盤的事件通知后,在恢復磁盤階段,單擊恢復磁盤。
如果幾分鐘后沒有進入下一階段,請嘗試刷新頁面。
(可選)在重啟階段,單擊重啟。
如果您的引導頁面出現重啟階段,則需要進行重啟。
重啟完成后,在完成階段,單擊完成。
使用CLI隔離損壞的本地盤
請確保您已經為ECS實例安裝了阿里云CLI,在不同操作系統中安裝CLI的方式請參見:
調用DescribeInstanceHistoryEvents查詢指定地域下Inquiring狀態的系統事件,并記錄返回的EventId、DiskId和Device取值。
在阿里云CLI中執行以下命令。
aliyun ecs DescribeInstanceHistoryEvents \ --RegionId <TheRegionId> \ --InstanceEventCycleStatus.1 Inquiring
以下為JSON格式的返回示例。
{ "InstanceSystemEventSet": { "InstanceSystemEventType": [ { "InstanceId": "i-2ze3tphuqvc93ci****3", "EventId": "e-2ze9y****wtqcvai68rl", "EventType": { "Code": 3, "Name": "SystemMaintenance.IsolateErrorDisk" }, "EventCycleStatus": { "Code": 28, "Name": "Inquiring" }, "EventPublishTime": "2017-11-30T06:32:31Z", "ExtendedAttribute" : { "DiskId": "d-disk1", "Device": "/dev/xvda" } } ] }, "PageSize": 10, "PageNumber": 1, "TotalCount": 1, "RequestId": "02EA76D3-5A2A-44EB-****-8901881D8707" }
登錄ECS實例,做隔離前的準備。
遠程連接ECS實例。
具體操作,請參見通過密碼或密鑰認證登錄Linux實例。
(可選)對本地盤設置應用層讀寫隔離。
如果是Linux系統ECS實例,在/etc/fstab配置文件中為對應本地盤加入nofail參數。
/dev/vdd /mnt/vdd ext4 defaults,barrier=0,nofail 0 0
參數設置
說明
/dev/vdd
本地盤設備名,DescribeInstanceHistoryEvents返回的Device取值。
/mnt/vdd
本地盤掛載點,可通過
mount | grep "/dev/vdd"
命令查詢。ext4
文件系統類型,可通過
blkid /dev/vdd
命令查詢。barrier=0
掛載選項,在文件系統中禁用barrier。
nofail
本地盤出現在文件系統中但實際缺失時,不會中斷ECS實例的啟動流程。
取消掛載本地盤。
umount /dev/vdd
重要如果不進行取消掛載操作,在壞盤維修完成并恢復隔離后,該本地盤的對應設備名會發生變化,可能導致應用讀寫錯誤的磁盤。
調用AcceptInquiredSystemEvent響應系統事件。
在阿里云CLI中執行以下命令。
aliyun ecs AcceptInquiredSystemEvent --RegionId <TheRegionId> --EventId <TheEventId>
決定是否重啟實例。
事件代碼為
SystemMaintenance.IsolateErrorDisk
時:只返回了RequestId,則無需重啟實例。
返回了
code=SwitchToOffline.OnlineIsolateFail
,則需要重啟實例。
事件代碼為
SystemMaintenance.RebootAndIsolateErrorDisk
時:調用AcceptInquiredSystemEvent后,您需要重啟實例。
如果需要重啟,在阿里云CLI中執行以下命令。
aliyun ecs RebootInstance --InstanceId <TheInstanceId>
說明重啟實例后,為方便后續操作,被隔離的受損本地盤暫時變為1 MiB的Dummy硬盤。您需要在應用層持續隔離受損本地盤的讀寫操作和/etc/fstab文件中的nofail設置。
等待阿里云在所宿物理機上完成更換損壞的本地盤并發布
SystemMaintenance.ReInitErrorDisk
或SystemMaintenance.RebootAndReInitErrorDisk
事件,通常在五個工作日內完成。再次調用AcceptInquiredSystemEvent響應系統事件,本地盤會進入重新初始化狀態。
在阿里云CLI中執行以下命令。
aliyun ecs AcceptInquiredSystemEvent --RegionId <TheRegionId> --EventId <TheEventId>
決定是否重啟實例。
事件代碼為
SystemMaintenance.ReinitErrorDisk
時:只返回了RequestId,則無需重啟實例。
返回了
code=SwitchToOffline.OnlineReInitFail
,則需要重啟實例。
事件代碼為
SystemMaintenance.RebootAndReinitErrorDisk
時:調用AcceptInquiredSystemEvent后,您需要重啟實例。
如果需要重啟,在阿里云CLI中執行以下命令。aliyun ecs RebootInstance --InstanceId <TheInstanceId>
執行結果
壞盤更換完成后,本地盤受損事件將在幾分鐘后消失。
后續步驟
隔離壞盤后,請您檢查ECS實例和本地盤狀態。此時被更換的本地盤容量恢復為原始容量,您可以格式化數據盤。具體操作,請參見初始化小于等于2 TiB數據盤(Windows)或初始化小于等于2 TiB數據盤(Linux)。