如何在线更换服务器故障硬盘之定位故障磁盘
前言:
随着上个世纪开始计算机的陆续普及,企业对于数据的安全性要求越来越高;对于业务系统使用的可连续性越来越重视。作为一个为企业提供数据存储方或者是私有云项目的建设方,那么客户的需求就是我们的建设目标,客户聚焦关注的目标就是我们建设方案更新/技术更新的方向。
如果硬盘出现了故障的情况,我们如何在不停机的情况下帮助客户更换硬盘?
其实服务器供应商已经提供了此方法,例如戴尔服务器的IPMI带外管理,浪潮服务器的BMC等都是可以对磁盘进行管理,例如:带外磁盘引导、配置阵列、清除阵列、定位磁盘等。不过,此方法只能针对最近出的新服务器。旧服务器上的带外管理未集成磁盘点亮功能。
那么我们如何定位到故障磁盘盘位进行在线更换老旧设备上的硬盘?
此时需要使用到阵列卡管理命令行工具进行管理。下面将介绍如何定位到故障磁盘,如何添加到阵列卡中。这里使用dell服务器做为此次文章的输出。
1. 安装DELL服务器阵列管理工具perccli
此方法适用于DELL服务器上的所有版本raid卡
1.1. 说明:
软件包名称:perccli.zip
软件包版本:7.1-007.0127、A05
软件包类别:SAS RAID
软件包发布时间:17 5月 2018
此版本软件包已支持PERC H740和H840包括前面版本
戴尔官网下载地址:https://www.dell.com/support/home/zh-cn/drivers/driversdetails?driverid=f48c2
说明:此处下载地址下载的软件包格式为RPM格式安装包,作者已通过fakeroot alien命令将rpm包转换成deb包,可直接解压缩安装
deb包下载路径:https://edisk.eflycloud.com/s/CD44wGDTbGQr32J //下载密码:ruijiang
1.2. 常用命令:
# ./perccli64 /c0/eall/sall show 查看物理硬盘信息列表
# ./perccli64 /c0/vall 查看虚拟磁盘信息列表,即阵列信息
# ./perccli64 /c0 show preservedCache 查看虚拟磁盘丢失信息
# ./perccli64 /c0/fall show all 查看脱机硬盘信息
# ./perccli64 /c0/v11 delete preservedcache 清除控制器0上的虚拟磁盘11的缓存信息
# ./perccli64 /c0/fall delete 清除外来硬盘配置信息
# ./perccli64 /c0/fall import [preview] 导入外来硬盘配置
# ./perccli64 /c0 add vd r0 drives=32:10 wb ra 编号为32:10的硬盘做raid0 (32:10 == EID:Slt)
# ./perccli64 /c0 add vd r5 size=all drives=32:01,32:02,32:03 对应编号3块硬盘做raid5
# ./perccli64 /c0 add vd r1 size=all drives=32:01,32:02 对应编号2块硬盘做raid1 (32:01 == EID:Slt)
1.3. 安装
1、软件包获取:https://edisk.eflycloud.com/s/CD44wGDTbGQr32J //下载密码:ruijiang
2、mkdir -p /opt/MegaRAID/perccli //创建perccli安装目录/opt/MegaRAID/perccli
3、unzip /opt/MegaRAID/perccli/perccli.zip //解压缩
4、dpkg -i /opt/MegaRAID/perccli/Linux/perccli_007.0127.0000.0000-2_all.deb //安装
2. 定位损坏磁盘方位
举例损坏磁盘为:/dev/sdc
2.1. 查看损坏磁盘盘符信息
- 记录对应盘符DID值
/dev/sdc为:[0:0:4:0],对应的DID值为4
root@nodeserver1:/opt/MegaRAID/perccli# lsscsi
[0:0:2:0] disk ATA WDC WDS100T2G0A- 0000 /dev/sda
[0:0:3:0] disk ATA INTEL SSDSC2BB80 0101 /dev/sdb
[0:0:4:0] disk ATA WDC WDS100T2G0A- 0000 /dev/sdc
[0:0:5:0] disk ATA INTEL SSDSC2KB96 0110 /dev/sdd
[0:0:6:0] disk ATA INTEL SSDSC2KB96 0110 /dev/sde
[0:0:7:0] disk ATA INTEL SSDSC2KB96 0110 /dev/sdf
[0:2:0:0] disk DELL PERC H730 Mini 4.27 /dev/sdg
- 含义
[0:0:4:0] :[controllerID:未知:DID:未知]
2.2. 查询服务器上的raid卡
root@nodeserver1:~# cd /opt/MegaRAID/perccli
root@nodeserver1:/opt/MegaRAID/perccli# ./perccli64 show
- 以下查询显示的raid卡只有一张,序号为:0
---------------------
Status Code = 0
---------------------
Status = Success
Description = None
Number of Controllers = 1
Host Name = nodeserver1
Operating System = Linux4.15.0-29-generic
System Overview :
===============
------------------------------------------------------------------------
Ctl Model Ports PDs DGs DNOpt VDs VNOpt BBU sPR DS EHS ASOs Hlth
------------------------------------------------------------------------
0 PERCH730Mini 8 8 1 0 1 0 Opt On 3 N 0 Opt
------------------------------------------------------------------------
Ctl=Controller Index|DGs=Drive groups|VDs=Virtual drives|Fld=Failed
PDs=Physical drives|DNOpt=DG NotOptimal|VNOpt=VD NotOptimal|Opt=Optimal
Msng=Missing|Dgd=Degraded|NdAtn=Need Attention|Unkwn=Unknown
sPR=Scheduled Patrol Read|DS=DimmerSwitch|EHS=Emergency Hot Spare
Y=Yes|N=No|ASOs=Advanced Software Options|BBU=Battery backup unit
Hlth=Health|Safe=Safe-mode boot
2.3. 查询raid卡下的磁盘
2.3.1. 语法:
- root@nodeserver1:/opt/MegaRAID/perccli# ./perccli64 /c$x/eall/sall show
$x替换成0或者1,可以从上面[2.2]步骤中获取这个值:Status Code = 0/1
2.3.2. 示例:
root@nodeserver1:/opt/MegaRAID/perccli# ./perccli64 /c0/eall/sall show
Controller = 0
Status = Success
Description = Show Drive Information Succeeded.
Drive Information :
=================
-------------------------------------------------------------------------------
EID:Slt DID State DG Size Intf Med SED PI SeSz Model Sp
-------------------------------------------------------------------------------
32:0 0 Onln 0 278.875 GB SAS HDD N N 512B ST300MP0026 U
32:1 1 Onln 0 278.875 GB SAS HDD N N 512B AL13SXB300N U
32:2 2 JBOD - 931.0 GB SATA SSD N N 512B WDC WDS100T2G0A-00JH30 U
32:3 3 JBOD - 744.625 GB SATA SSD N N 512B INTEL SSDSC2BB800G7 U
32:4 4 JBOD - 931.0 GB SATA SSD N N 512B WDC WDS100T2G0A-00JH30 U
32:5 5 JBOD - 893.75 GB SATA SSD N N 512B INTEL SSDSC2KB960G8 U
32:6 6 JBOD - 893.75 GB SATA SSD N N 512B INTEL SSDSC2KB960G8 U
32:7 7 JBOD - 893.75 GB SATA SSD N N 512B INTEL SSDSC2KB960G8 U
-------------------------------------------------------------------------------
EID-Enclosure Device ID|Slt-Slot No.|DID-Device ID|DG-DriveGroup
DHS-Dedicated Hot Spare|UGood-Unconfigured Good|GHS-Global Hotspare
UBad-Unconfigured Bad|Onln-Online|Offln-Offline|Intf-Interface
Med-Media Type|SED-Self Encryptive Drive|PI-Protection Info
SeSz-Sector Size|Sp-Spun|U-Up|D-Down/PowerSave|T-Transition|F-Foreign
UGUnsp-Unsupported|UGShld-UnConfigured shielded|HSPShld-Hotspare shielded
CFShld-Configured shielded|Cpybck-CopyBack|CBShld-Copyback Shielded
其中,关键数值是:
1、EID:EnclosureDevice ID
2、DID:DeviceID
3、SLT:SlotNo
2.3.3. 定位故障磁盘c轴、e轴、z轴坐标
结合步骤[2.1]与[2.3.2]中获取到的信息,最终得出故障磁盘/dev/sdc的坐标为:c0/e32/s4
3. 点亮故障磁盘
3.1. 语法:
- root@nodeserver1:/opt/MegaRAID/perccli# ./perccli64 /c$x/e$y/s%z start locate
3.2. 字符串说明
- c$x = controllerID
- e$y = EID
- s%z = Slt
3.3. 点亮磁盘
root@nodeserver1:/opt/MegaRAID/perccli# ./perccli64 /c0/e32/s4 start locate
Controller = 0
Status = Success
Description = Start Drive Locate Succeeded.
3.4. 此时就能看到磁盘一直闪灯
dell服务器:一直闪灯,亮—->暗—->亮—->暗,持续频闪
4. 关闭磁盘闪灯
确定盘位之后,可以关闭磁盘闪灯,进行磁盘拔出操作
4.1. 执行命令
root@nodeserver1:/opt/MegaRAID/perccli# ./perccli64 /c0/e32/s4 stop locate
Controller = 0
Status = Success
Description = Stop Drive Locate Succeeded.
以上就是关于今天的全部内容,下期将给大家带来《如何在线更换服务器故障硬盘之更换并配置磁盘》,敬请期待~