本帖最后由 杨童 于 2023-9-27 17:41 编辑
当VMP系统盘寿命告警时需要进行系统盘替换,结合实践操作总结案例如下: 一、提前检查准备项 1、获取设备appversion、准备好对应系统的iso刻录到u盘,准备好补丁包 2、记录主机网络配置(地址、聚合口等),新硬盘重装系统后重建系统盘时会检查管理口mac,如果管理口用的是聚合口,重装系统后配置的聚合口的mac地址会改变,导致无法加入集群,所以需要提前获取聚合口mac地址(没聚合不需要,并且只要管理口mac),有两种获取方式: (1) 替换前进入该主机后台查看cat /sf/cfg/if.d/bond.ini文件中的聚合口MAC地址,复制保存即可 (2) 如果重装前忘了提前获取,可以进入集群内其他主机找备份配置,具体步骤如下 ① ssh到集群其他主机进入目录cd /sf/data/local/private/cfg_backup/ ② 使用ls命令查看目录下文件,可以看到有如下图的文件名,地址+mac地址信息,每个主机可能只有两个地址的备份文件,如果ssh到的主机上没有,那就ssh到其他主机上再查看 3、获取一体机签名,签名是根据一体机的硬件信息生成的签名,签到系统盘上的,当一体机替换系统盘/重装系统时会丢失签名,不重开签名会导致一体机占用cpu核数授权。签名可以联系硬件部开取,需要提供设备SN和设备id,建议替换前就开好 (1) 获取SN命令dmidecode -t2 (2) 获取设备id命令/sf/vs/sbin/vs_sn -p 4、巡检,确保无严重异常问题
二、操作步骤 1、实体机-物理主机-更多-暂停服务 2、关机或热迁移该主机正在运行的虚拟机 3、后台检查数据完整性,确认无数据同步任务 (1) cat /sf/vs/version命令检查vs的版本 (2) 检查数据完整性命令如下,该主机返回值为0时,表示无数据同步任务 VS2.8前:vs_cluster_cmd.sh e '/sf/vs/bin/vs_localhost_checkok.js check_all; echo $?' VS2.8: vs_cluster_cmd.sh x '/sf/vs/bin/vs_localhost_checkok.js check_all; echo $?' 4、确认数据完整性没问题后,实体机界面关机 5、设备关机后拔掉电源 6、确认设备非通电状态拆卸旧系统盘,替换上新系统盘 7、用U盘或ipmi传镜像安装VMP操作系统 8、用默认地址或随便找接口配置临时地址用于临时登录控制台 9、检查是否网口乱序,乱序就用巡检工具修正 10、根据appversion补齐对应补丁,如果没有就忽略 11、还原管理员账号密码和管理口配置(聚合、IP等)如果用了聚合口,需要进后台修改聚合口的MAC地址,注意修改后需要重启生效,可以和下一步的重开签名一起重启 (1) vim /sf/cfg/if.d/bond.ini(注意用vim,不要用vi)编辑聚合口配置文件,修改还原替换前管理口的MAC地址,注意全大写,只需要改管理口 12、将提前获取的签名上传到主机上,添加权限,然后执行,确认如下第三步ok后重启设备,重启命令:reboot (1) 添加权限:chmod +x 文件名 (2) 执行文件:./文件名 (3) 验证签名状态实例如下图:vs_sn -f 13、进入集群操作对应主机重建系统盘,位置如下图-实体机-物理主机-更多-重建系统盘,然后根据提示输入管理员账号密码等操作即可,之后会自动重启主机 14、重建系统盘后检查存储,大概率会出现zookeeper服务问题如下图,(这边换过4台,每次必现),处理方式如下: (1) ssh到异常的主机执行/sf/vs/bin/vs_zkstatus.sh检查zookeeper服务状态,异常情况如图,最后一行会显示服务状态 正常情况如下最后一行的mode会显示角色应该为leade、follower或observer (2) 可以在异常主机执行重启zookeeper服务命令重启服务:/sf/vs/bin/vs_restart_zk.sh (3) 如果重启服务后再执行第一步检查状态仍然异常,可以进行如下操作排查 (4) 先用命令备份zookeeper数据(命令是一行):vs_cluster_cmd.sh e 'mkdir /sf/data/local/tmp; tar -zcf /sf/data/local/tmp/zkdata.tar.gz /sf/cfg/vs/zookeeper_conf/ /sf/vs/vscfg/zkdata/version-2' (5) 在zookeeper集群删除异常主机,再将异常主机重新加入zookeeper集群,具体操作步骤如下。 ① 使用集群命令在集群内查找角色为leader的主机,并记录对应host-id:vs_cluster_cmd.sh e /sf/vs/bin/vs_zkstatus.sh ② 使用命令vtpclustat查看集群主机名和IP地址对应关系,这两步可以提供leader角色主机的IP地址,方便下边第四步的操作 ③ 使用命令查看当前集群主机内的myid,找一个没有使用到的myid:vs_cluster_cmd.sh e "cat /sf/vs/vscfg/zkdata/myid" 如图箭头指示数字就是myid,随便选一个没有用到的就行,如下图已经使用的是123456789,那就选一个10或者11、20、30都可以,在下边第五步会用到 ④ ssh到对应leader角色主机执行删除命令:vs_del_zk_node.sh host-xxx(此处xxx为异常状态主机的host-id) ⑤ ssh到异常主机上执行加入zookeeper集群命令:vs_add_zk_node.sh -s host-xxx(此处xxx为leader角色的主机的host-id) -i x(此处x为空闲的myid,也就是第三步查询后没有用到的myid,随便填一个不冲突的即可) ⑥ 使用集群或单主机命令检查zookeeper角色状态 集群命令(查看集群内所有主机)vs_cluster_cmd.sh e "/sf/vs/bin/vs_zkstatus.sh" 主机命令,在异常主机本地执行即可/sf/vs/bin/vs_zkstatus.sh ⑦ 第六步执行服务正常后稍等几分钟再去前台查看存储界面的虚拟存储状态,因为前台这个状态刷新需要时间 15、巡检,无异常告警后,关闭替换盘主机的暂停服务,虚拟机开机验证业务即可
附录(异常问题处理的参考文档): 替换主机后zookeeper服务异常处理方法: |