附013.桌面云一体机硬盘更换流程
  

木二 1059913人觉得有帮助

{{ttag.title}}
本帖最后由 木二 于 2022-11-10 11:08 编辑

一        问题背景
1.1        背景描述
当桌面云巡检、一键检测或者客户反馈出现卡慢盘的时候,对于高版本会采用自动隔离硬盘,目前5.4.10R1暂不具备自动隔离卡慢盘,需要进行卡慢原因,通常为坏道引起,以及立刻更换硬盘。

1.2        故障处理思路
通常基于业务稳定考虑,完整的更换硬盘为:




    • 定位卡慢盘信息,如服务器信息、硬盘位置、硬盘盘符;
    • 将相关业务虚拟机进行迁移(可选项);
    • 后台检查副本一致性;
    • 若为缓存盘,则建议执行回刷操作,可大幅度降低后续数据同步时间,若为数据盘则无需回刷;
    • 物理拔盘;
    • VMP界面执行替换操作;
    • 若为缓存盘,则继续执行回刷脚本;
    • 替换完成,检查数据同步情况;
    • 后台检查副本一致性;
    • 一键检测,确认集群健康度。




二        换盘操作
2.1        原始信息
桌面云巡检、一键检测或者客户反馈后,通过控制台查看相关卡慢服务器及盘位,整理信息如下。
该盘位通常为逻辑盘位,可能存在和物理实际盘序不一致情况。
设备型号:VDS-R-7550
设备信息:172.16.12.185
磁盘类型:SSD 固态
逻辑盘位:4号
坏盘序号:PHYG114102VB960CGN

2.2        定位逻辑盘符
进一步查看卡慢盘更多信息。
  1. Sangfor:VMP/host-0894eff025c5 /sf # ssh 172.16.12.185
  2. Sangfor:VMP/host-0894eff86a41 /sf # smartctl -a /dev/sdX                #检测某磁盘情况
  3. Sangfor:VMP/host-0894eff86a41 /sf # smartctl -l error /dev/sdX          #检测某磁盘error信息
  4. Sangfor:VMP/host-0894eff86a41 /sf # cat /sf/log/today/kernel.log | grep error | grep sdX        #查看记录的内核错误信息
复制代码
提示:以上命令和相互结合使用,确认相关错误信息。

通常可以使用如下命令对该服务器所有磁盘,通过for巡检检查一次。
  1. Sangfor:VMP/host-0894eff86a41 /sf # for sd in $(ls /dev/sd[a-z]); do echo ---$sd---; smartctl -A $sd | egrep "Current_Pending_Sector|UDMA_CRC_Error_Count|Reallocated_Sector_Ct"; done
  2. ---/dev/sda---
  3.   5 Reallocated_Sector_Ct   0x0032   100   100   000    Old_age   Always       -       0
  4. 197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0
  5. 199 UDMA_CRC_Error_Count    0x003e   100   100   000    Old_age   Always       -       0
  6. ---/dev/sdb---
  7.   5 Reallocated_Sector_Ct   0x0033   100   100   010    Pre-fail  Always       -       0
  8. 197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0
  9. 199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0
  10. ---/dev/sdc---
  11.   5 Reallocated_Sector_Ct   0x0033   100   100   010    Pre-fail  Always       -       0
  12. 197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0
  13. 199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0
  14. ---/dev/sdd---
  15.   5 Reallocated_Sector_Ct   0x0033   100   100   010    Pre-fail  Always       -       0
  16. 197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0
  17. 199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0
  18. ---/dev/sde---
  19.   5 Reallocated_Sector_Ct   0x0033   100   100   010    Pre-fail  Always       -       0
  20. 197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0
  21. 199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0
  22. ---/dev/sdf---
  23.   5 Reallocated_Sector_Ct   0x0033   100   100   010    Pre-fail  Always       -       0
  24. 197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0
  25. 199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0
  26. ---/dev/sdg---
  27.   5 Reallocated_Sector_Ct   0x0033   100   100   010    Pre-fail  Always       -       0
  28. 197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0
  29. 199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0
  30. ---/dev/sdh---
  31.   5 Reallocated_Sector_Ct   0x0032   100   100   000    Old_age   Always       -       4
  32. 197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0
  33. 199 UDMA_CRC_Error_Count    0x003e   100   100   000    Old_age   Always       -       0
  34. ---/dev/sdi---
复制代码
提示:如上所示,磁盘 /dev/sdh 存在异常扇区。

进一步确认相关磁盘信息,如磁盘序列号,磁盘大小。
  1. Sangfor:VMP/host-0894eff86a41 /sf # smartctl -i /dev/sdh | egrep "Device Model|Serial Number|User Capacity"
  2. Device Model:     INTEL SSDSC2KG960G8
  3. Serial Number:    PHYG114102VB960CGN
  4. User Capacity:    960,197,124,096 bytes [960 GB]
复制代码

信息整理:
设备型号:VDS-R-7550
设备信息:172.16.12.185
磁盘类型:SSD 固态
逻辑盘符:sdh
逻辑盘位:4号
坏盘序号:PHYG114102VB960CGN

2.3        定位物理盘符
实际环境中,可能存在逻辑盘符和物理位置不对应的关系,因此需要结合给相关硬盘点灯的操作,确认物理盘位。

2.3.1        确认raid卡类型
采用raid卡后,需要通过raid卡管理命令查看具体的硬盘详细信息。
后台进入VMP集群,执行相关命令确认raid卡类型。
  1. Sangfor:VMP/host-0894eff86a41 /sf # raidstat                        #命令一
  2. controller_model: AVAGO MegaRAID SAS 9361-16i
  3. controller_status: ok
  4. raid_number: 1
  5. raid_level: 1
  6. raid_status: ok
  7. physical_dev_num: 10
  8. device_1: ok
  9. device_2: ok
  10. device_3: ok
  11. device_4: ok
  12. device_5: ok
  13. device_6: ok
  14. device_7: ok
  15. device_8: ok
  16. device_9: ok
  17. device_10: ok
复制代码


提示:通常raid卡类型有多种,其中SAS2008,3008为SAS卡;SAS3008IMR,3108,3416,9361,9460等为Mega RAID卡;PM8222,PM8204为PMC RAID卡。

2.3.2        raid卡命令点灯
不同的raid命令有所区别,采用将服务器对应卡慢盘的前板灯点亮的方式确认物理盘符位置。
不同raid卡类型点灯方式有所区别,可参考:电灯大全
Mega RAID卡点灯命令:
  1. MegaCli64 -PdLocate -start -physdrv[E:S] -a0
复制代码
命令释义:
E:Enclosure Device ID;
S:Slot Number;
a0:为第一张RAID卡,a1为第二张RAID卡,只有一张卡则为a0,可lspci |grep SAS或者lspci |grep raid查看几张卡。
  • 查看Enclosure Device ID和Slot Number




  1. Sangfor:VMP/host-0894eff86a41 /sf # cd /sf/bin/raidtools/bin/
  2. Sangfor:VMP/host-0894eff86a41 /sf/bin/raidtools/bin # ./MegaCli64 -PDList -aAll -NoLog | grep -Ei "Enclosure Device ID|Slot Number|Device Id|WWN|Raw Size|Firmware state|Inquiry Data" | grep -B6 PHYG114102VB960CGN
  3. Enclosure Device ID: 252
  4. Slot Number: 4
  5. Device Id: 25
  6. WWN: 55cd2e41534131b7
  7. Raw Size: 894.252 GB [0x6fc81ab0 Sectors]
  8. Firmware state: JBOD
  9. Inquiry Data: PHYG114102VB960CGN  INTEL SSDSC2KG960G8                     XCV10132
复制代码
  • 正式点灯




通过服务器前板闪灯确认物理位置,确认后关闭点灯。
  1. Sangfor:VMP/host-0894eff86a41 /sf/bin/raidtools/bin # ./MegaCli64 -PdLocate -start -physdrv[252:4] -a0
  2. ./MegaCli64 -PdLocate -start -physdrv[252:4] -a0           #点亮
  3. ./MegaCli64 -PdLocate -stop -physdrv[252:4] -a0            #关闭
复制代码

信息整理:
设备型号:VDS-R-7550
设备信息:172.16.12.185
磁盘类型:SSD 固态
逻辑盘符:sdh
逻辑盘位:4号
物理盘位:0号
坏盘序号:PHYG114102VB960CGN

2.3        副本一致性检查
后端检查副本一致性,确认副本一致性正常后再执行下一步。

2.3.1        确认版本
不同版本检查副本一致性命令有所差别,可先确认 vs 或者 vmp 版本。
  1. Sangfor:VMP/host-0894eff86a41 /sf # cat /sf/vs/version
  2. 2.8.1_R7

  3. Sangfor:VMP/host-0894eff86a41 /sf # cat /sf/version
  4. 5.4.10R1
复制代码

2.3.2        检查副本一致性
VS 2.8之前版本或者 HCI 5.8.6 之前版本:
  1. vs_cluster_cmd.sh e '/sf/vs/bin/vs_localhost_checkok.js check_all; echo $?'
复制代码
VS 2.8版本:
  1. vs_cluster_cmd.sh x '/sf/vs/bin/vs_localhost_checkok.js check_all; echo $?'
复制代码
VS 30.版本或者 HCI 5.8.6 版本及之后:
  1. for b in $(gluster v i | grep host- | awk -F: '{print $1}' | grep -Eo '[0-9]+'); do vs_rpc_tool --cmd check --brickno "$b"; done
复制代码
说明:  所有加入VS中的主机都返回0表示正常,若出现非 0 的情况,可参考 检查虚拟存储副本状态 进行处理。

2.4        缓存回刷
在需要更换的服务器上上传回刷脚本 vst_flush_cache_replace_cache_disk.sh ,如上传至 /root 目录。
功能:替换缓存盘时回刷缓存数据,避免数据同步。

注意:
1:该主机存在运行的虚拟机也可以直接使用,处于性能考虑,建议把虚拟机迁移其他主机上去,在回刷数据的时候,会有性能方面的影响;
2:如果有多台主机需要替换缓存盘回刷,先处理完一台后,检查数据完整性没有问题,再继续另外一台;
3:该脚本不能用于踢出缓存盘的场景。

脚本流程:关闭对应主机缓存,回刷缓存,等待替换完成,打开对应主机缓存。

适用版本: VS2.6 VS2.8 VS3.0 VS3.3(HCI或者VDI、EDS环境缓存回刷场景)

使用方法:
1:无需加任何参数直接执行此脚本,过程会输出脚本动作和结果;
2:中途会等待更换硬盘,更换完输入OKOK后会自动将脚本代码还原;
3:如中途异常退出脚本,再次执行即可。
  1. Sangfor:VMP/host-0894eff86a41 /sf # cd /root
  2. Sangfor:VMP/host-0894eff86a41 ~ # chmod u+x vst_flush_cache_replace_cache_disk.sh
  3. Sangfor:VMP/host-0894eff86a41 ~ # ./vst_flush_cache_replace_cache_disk.sh
复制代码
   

回刷过程可通过另一个终端执行提示的命令查看相关回刷进度:
  1. Sangfor:VMP/host-0894eff86a41 /sf # /sf/vs/bin/vs_tier_cli.py -c dump |grep -E "dirty_block_cnt|clean_block_cnt".py -c dump |grep -E dirty_block_cnt|clean_block_cnt
复制代码
提示:等待相关block变为0,即会自动继续执行回刷任务。若为数据盘,则不需要数据回刷。

2.5        物理拔盘
将对应的服务器、对应的物理盘符拔出,并结合如下信息确认无误。
设备型号:VDS-R-7550
设备信息:172.16.12.185
磁盘类型:SSD 固态
逻辑盘符:sdh
逻辑盘位:4号
物理盘位:0号
坏盘序号:PHYG114102VB960CGN

2.6        物理插盘
将新盘插回,并在 VMP 控制台完成替换。
   

2.7        继续回刷
VMP 控制台更换完成后继续执行回刷脚本,输入 OKOK 即可。
2.8        检查副本一致性
参考 2.3 步骤再次检查副本一致性。

2.9        一键检测
VMP 控制台执行一键检测,确保集群健康。

打赏鼓励作者,期待更多好文!

打赏
95人已打赏

sangfor_1143 发表于 2022-11-22 18:02
  
感谢楼主的分享,楼主针对桌面云一体机更换磁盘这一场景做了比较详细的分享,其中定位磁盘盘符、磁盘点灯、检查副本一致性都是比较实用的命令,整篇文章逻辑严谨,思路清晰,期待楼主后续带来更多有价值的分享
SANGFOR_HZ 发表于 2022-11-7 19:31
  
楼主的文章图文并茂,清晰易懂,看完这波操作可以轻松上手了,如遇到问题再向楼主请教~
新手626351 发表于 2022-11-7 20:47
  
每天学习一点新知识,谢谢分享
蟲爺 发表于 2022-11-7 21:14
  
感谢分享
飞翔的苹果 发表于 2022-11-8 08:18
  
感谢楼主分享,学习一下
白鹭先生 发表于 2022-11-8 08:50
  
感谢楼主分享,学习一下
韩_鹏 发表于 2022-11-8 08:51
  
感谢分享                                                            
嘀嘀嗒嗒 发表于 2022-11-8 08:57
  
感谢分享                                                            
怪兽君 发表于 2022-11-8 08:58
  
感谢楼主分享,学习一下
木棉 发表于 2022-11-8 09:03
  
感谢楼主分享,学习一下
发表新帖
热门标签
全部标签>
每日一问
技术笔记
技术咨询
功能体验
新版本体验
2023技术争霸赛专题
干货满满
技术盲盒
标准化排查
产品连连看
GIF动图学习
技术晨报
信服课堂视频
安装部署配置
运维工具
深信服技术支持平台
秒懂零信任
自助服务平台操作指引
答题自测
安全攻防
每日一记
通用技术
云计算知识
SDP百科
畅聊IT
sangfor周刊
资源访问
排障笔记本
卧龙计划
专家问答
技术圆桌
在线直播
MVP
网络基础知识
升级
上网策略
测试报告
日志审计
问题分析处理
流量管理
用户认证
原创分享
解决方案
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
功能咨询
终端接入
授权
设备维护
迁移
地址转换
虚拟机
存储
加速技术
产品预警公告
玩转零信任
信服圈儿
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
社区帮助指南
答题榜单公布
纪元平台
华北区拉练
天逸直播
以战代练
山东区技术晨报
文档捉虫活动
齐鲁TV
华北区交付直播
每周精选

本版版主

468
220
32

发帖

粉丝

关注

本版达人

新手89785...

本周建议达人

YangZhe...

本周分享达人

runner

本周提问达人