修复磁盘

ECS实例的本地磁盘因硬件故障、数据异常等原因导致无法正常读写时,阿里云会向您发送本地盘受损事件,您可以通过控制台或者OpenAPI等方式对损坏的本地盘进行隔离或修复等操作。

重要

隔离/修复磁盘会导致原受损本地盘数据丢失且不可恢复,建议您提前做好数据备份

在磁盘隔离/修复期间,您可随时选择重新部署本地盘实例以快速恢复完整磁盘使用,但该操作将导致所有磁盘数据丢失。

操作流程

image
  1. 修改配置文件:对于Linux系统实例,需要登录实例内部修改操作系统内的/etc/fstab配置文件,卸载(即umount)损坏的本地盘设备,避免更换磁盘操作导致读写错误磁盘的风险。

  2. 隔离已损坏的磁盘:对损坏的本地盘进行隔离,隔离后,实例可以继续正常使用。

  3. 更换磁盘:阿里云对损坏的磁盘进行更换。

  4. 恢复磁盘:登录ECS实例修改操作系统内的/etc/fstab配置文件,挂载(即mount)新的本地盘设备。

说明

目前仅大数据型实例规格族d1、d2、d3系列和本地SSD型实例规格族i4支持在线隔离换盘,本地SSD型实例规格族i3、i2支持隔离本地盘,不支持更换本地盘。此外,是否需要隔离或恢复本地盘,受到本地盘损坏程度的影响,实际请以页面显示流程为准。

操作步骤

修改配置文件(仅Linux)

并非所有的实例都需要修改配置文件,如果您的实例操作系统不属于Linux系统请跳过此步骤,如果您的实例操作系统属于Linux系统,在隔离损坏本地盘之前,需要在操作系统内部修改/etc/fstab文件并卸载损坏的本地盘:

修改配置文件

  1. 远程连接实例

  2. 若您在ECS实例/etc/fstab中配置了本地盘的开机自动挂载,请在配置文件中为所有本地盘添加nofailbarrier参数,确保当本地盘挂载失败时不影响ECS实例的启动。

    修改前:

    UUID=cf4572d0-****-*** /path/to/mountpoint fstype defaults 0 0

    修改后:

    UUID=cf4572d0-****-*** /path/to/mountpoint fstype defaults,nofail,barrier=0 0 0

    参数设置

    说明

    UUID

    本地数据盘的UUID,可通过blkid命令查询。

    /path/to/mountpoint

    本地盘挂载点,可通过blkid命令查询。

    fstype

    文件系统类型,可通过blkid命令查询。

    barrier

    是否开启写入屏障功能,0表示禁用,1表示启用。

    nofail

    磁盘挂载失败不会影响实例的启动。

  3. 卸载损坏的本地盘。

    重要

    如果不进行卸载操作,在坏盘维修完成后,该本地盘的对应设备名会发生变化,可能导致应用读写错误。

    umount /path/to/mountpoint

隔离已损坏的磁盘

控制台操作

  1. 访问ECS控制台-事件

  2. 事件页面左侧导航栏,单击本地盘实例事件 > 本地盘受损事件,在目标事件操作列单击修复磁盘image

  3. 在修改配置阶段,确认已完成修改配置文件后,单击下一步

    修改配置

  4. 隔离坏盘阶段,单击隔离等待隔离完成,如果您的引导页面出现重启阶段,则需要进行重启。image

    说明

    如果几分钟后仍然没有进入下一阶段,您可尝试刷新页面。

API操作

  1. 查询系统事件。

    调用DescribeInstanceHistoryEvents查询指定地域下问询中Inquiring)状态的系统事件,并记录返回的事件IDEventId)和事件名称(Name)。

  2. 授权并执行隔离已损坏的磁盘。

    调用AcceptInquiredSystemEvent授权阿里云对损坏的磁盘进行隔离操作。

    • 事件名称为SystemMaintenance.IsolateErrorDisk时:

      • 返回RequestId,无需重启实例,等待阿里云进行换盘操作。

      • 返回了code:SwitchToOffline.OnlineIsolateFail,需要重启实例

    • 事件名称为SystemMaintenance.RebootAndIsolateErrorDisk时:调用AcceptInquiredSystemEvent后,需要重启实例

说明

重启实例后,被隔离的受损本地盘暂时变为1 MiBDummy硬盘。您需要在应用层持续隔离受损本地盘的读写操作和/etc/fstab文件中的nofailbarrier设置。

更换磁盘

您无需进行操作,请等待阿里云更换损坏的本地盘,更换操作预计在五个工作日内完成,您可以在本地盘事件页面中查看处理进度。

恢复磁盘

控制台操作

  1. 事件进度变为待恢复时,表示事件处于恢复磁盘阶段,单击操作列中的修复磁盘,然后在弹窗中单击恢复磁盘按钮。

    image

  2. 如果您的引导页面出现重启阶段,则需要进行重启。

  3. 事件进度变为事件已处理时,表示事件已经处理完毕。

API操作

  1. 查询系统事件。

    调用DescribeInstanceHistoryEvents查询系统事件。阿里云完成磁盘更换后会发布SystemMaintenance.ReInitErrorDiskSystemMaintenance.RebootAndReInitErrorDisk事件,

  2. 授权恢复磁盘。

    调用AcceptInquiredSystemEvent授权执行恢复磁盘操作。

    • 事件名称为SystemMaintenance.ReinitErrorDisk时:

      • 只返回RequestId,无需重启实例。

      • 返回code=SwitchToOffline.OnlineReInitFail,需要重启实例

    • 事件名称为SystemMaintenance.RebootAndReinitErrorDisk时:调用AcceptInquiredSystemEvent后,需要重启实例

后续步骤

磁盘修复后,请您检查ECS实例和本地盘状态。此时被更换的本地盘为新盘,需要初始化后才可使用。具体操作,请参见初始化数据盘(Windows)初始化数据盘(Linux)