本文为您介绍如何修复EMR Kafka集群Broker节点的ECS实例存在的磁盘事件。
背景信息
当您收到提示本地磁盘硬件异常风险的邮件时,需要进行Kafka服务磁盘修复操作。
此时,您可以在ECS的控制台,查看修复磁盘事件流程。修复磁盘向导共包含 7 个步骤:修改配置、隔离坏盘、重启、新盘插入中、恢复磁盘、重启、完成。在第一步修改配置中,系统提示需在云服务器操作系统中调整
/etc/fstab 配置文件,并卸载(unmount)该磁盘设备,以避免更换磁盘操作带来的异常风险。事件处理概述
EMR Kafka Broker节点的ECS磁盘事件处理与响应和普通的ECS实例不完全相同,在ECS磁盘事件流程的不同阶段,需要穿插Kafka Broker相应的运维操作。整个流程大致可以分为磁盘下线、等待ECS磁盘修复和磁盘上线3个阶段。
故障磁盘下线
- 选择合适的磁盘恢复策略并执行相关操作。
当ECS磁盘事件处于修改配置阶段时,您需要选择合适的EMR Kafka磁盘恢复策略进行Kafka磁盘运维操作,详细的运维策略请参见EMR Kafka磁盘故障运维。
按照Kafka磁盘恢复策略进行相关操作之后,单击ECS磁盘事件流程中修改配置中的下一步至重启阶段。如果没有重启阶段,则处理至新盘插入中阶段。
进行此步骤时,需注意以下信息:- 相关的修复策略通常会包含隔离坏盘操作,隔离坏盘之后,重启Broker之前,您需要将坏盘目录路径移出Kafka的log.dirs配置中。
- 如果修复策略要求重启Broker,且ECS磁盘事件流程中也要求重启ECS实例,则可以将两者合并操作。
- 可选:重启ECS实例。
如果ECS修复磁盘事件流程中,要求重启ECS,则可以按照如下步骤重启:
- 在EMR控制台停止故障Broker节点服务。
- 重启故障ECS实例。
在ECS修复磁盘事件流程中,单击重启。
- 在EMR控制台启动故障Broker节点服务。
观察Broker节点状态是否处于正常状态。
当执行完ECS实例重启后,修复磁盘事件处于新盘插入中阶段。
- 等待ECS修复磁盘。
在新盘插入中阶段,单击确定。确认后请等待阿里云在所宿物理机上更换损坏的本地盘,维护操作通常在五个工作日内完成,之后您会收到恢复磁盘的事件通知。
磁盘上线
收到恢复磁盘的事件通知后,您可以进行磁盘上线操作。
- 确认磁盘当前状态。
- 使用SSH方式登录Kafka集群,详情请参见登录集群。
- 执行以下命令,确认磁盘已经插入,且磁盘大小为1 MB。
lsblk
- 在ECS控制台,单击修复磁盘事件流程中的恢复磁盘,等待流程进入下一阶段。
- 可选:重启ECS实例。
如果您的引导页面出现重启阶段,则需要进行重启。请按照如下步骤重启:
- 在EMR控制台停止故障Broker节点服务。
- 重启故障ECS实例。
在修复磁盘事件流程中,单击重启。
- 在EMR控制台启动故障Broker节点服务。
观察Broker节点状态是否处于正常状态。
- 在故障节点执行以下命令,查看磁盘大小是否恢复。
lsblk - 重启完成后,在修复磁盘事件流程中,单击完成。
说明 ECS磁盘恢复流程完成后,您仍需要进行后续操作,完成Kafka Broker节点日志目录的恢复。
- 格式化磁盘和挂载磁盘。
- 执行以下命令,格式化磁盘。
which mkfs.ext4 mkfs.ext4 -m 0 /dev/***说明 请替换/dev/***为您实际的设备名。 - 执行以下命令,配置/etc/fstab文件。
echo "/dev/*** /mnt/*** ext4 defaults,noatime,nofail 0 0 " >> /etc/fstab说明 请替换/dev/***和/mnt/***为您实际的设备名和挂载目录。 - 执行以下命令,确认/etc/fstab文件是否配置正确。
more /etc/fstab根据以下回显信息,可以确认/etc/fstab文件已正确配置。
/dev/vdi /mnt/disk8 ext4 defaults,noatime,nofail 0 0 /dev/vdc /mnt/disk2 ext4 defaults,noatime,nofail 0 0 /dev/vdd /mnt/disk3 ext4 defaults,noatime,nofail 0 0 /dev/vde /mnt/disk4 ext4 defaults,noatime,nofail 0 0 /dev/vdf /mnt/disk5 ext4 defaults,noatime,nofail 0 0 /dev/vdg /mnt/disk6 ext4 defaults,noatime,nofail 0 0 /dev/vdb /mnt/disk1 ext4 defaults,noatime,nofail 0 0 /dev/vdh /mnt/disk7 ext4 defaults,noatime,nofail 0 0 - 执行以下命令,挂载磁盘。
mount /dev/** /mnt/***请替换设备名和挂载目录。本文示例是将/dev/vdh挂载至/mnt/disk7,所以命令为
mount /dev/vdh /mnt/disk7。 - 执行以下命令,确认磁盘是否已经挂载。
df -h根据以下回显信息,可以确认磁盘已经挂载。
[root@emr-worker-5 ~]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 32G 0 32G 0% /dev tmpfs 32G 104K 32G 1% /dev/shm tmpfs 32G 788K 32G 1% /run tmpfs 32G 0 32G 0% /sys/fs/cgroup /dev/vda1 118G 32G 81G 29% / /dev/vde 5.4T 1.6T 3.8T 30% /mnt/disk4 /dev/vdg 5.4T 684G 4.7T 13% /mnt/disk6 /dev/vdd 5.4T 1.3T 4.2T 23% /mnt/disk3 /dev/vdb 5.4T 433G 5.0T 8% /mnt/disk1 /dev/vdi 5.4T 920G 4.5T 17% /mnt/disk8 /dev/vdc 5.4T 1.1T 4.3T 21% /mnt/disk2 /dev/vdf 5.4T 1.2T 4.2T 22% /mnt/disk5 tmpfs 6.3G 0 6.3G 0% /run/user/0 tmpfs 6.3G 0 6.3G 0% /run/user/1013 tmpfs 6.3G 0 6.3G 0% /run/user/1001 /dev/vdh 5.4T 89M 5.4T 1% /mnt/disk7 [root@emr-worker-5 ~]#
- 执行以下命令,格式化磁盘。
- 按照您选择的Kafka磁盘修复策略,恢复Kafka Broker节点日志目录,详情请参见EMR Kafka磁盘故障运维。
- 可选:按照您选择的Kafka磁盘修复策略,迁移Kafka分区副本至修复后的磁盘,使负载更加均衡,详情请参见EMR Kafka磁盘故障运维。
该文章对您有帮助吗?