Linux中如何快速定位磁盘分区和插槽

当收到一条磁盘告警时,咱们应该怎么快速定位磁盘插槽和分区?这时能够运用MegaCli东西,具体运用方法参考《“五分钟学指令系列”之三十四《MegaCli指令》》。

 

0x01 布景

机器上有两块硬盘,当设备ID为16的磁盘状态为faild时

 

0x02  查询毛病盘对应的插槽

经过MegaCli指令查询出磁盘的Enclosure Device ID,Raw Size,Slot Number,Device Id,Firmware state,DiskGroup

$ /opt/MegaRAID/MegaCli/MegaCli64 -LdPdInfo -aALL |egrep \'Enclosure Device ID|Raw Size|Slot Number|Device Id|Firmware state|DiskGroup\' | awk \'BEGIN{FS=\"n\";ORS=\" ; \"} {if($0~\"Enclosure Device ID\"&&NR>1){print \"n\"$0} else {print $0}}\' |awk \'{print}\' | sed -r \'s/[.*]//;s/s+/ /g\' | sed -r \'s/ Span: 0,/ /g\'
Enclosure Device ID: 252 ; Slot Number: 0 ; Drive\'s position: DiskGroup: 0, Arm: 0 ; Device Id: 17; Raw Size: 447.130 GB ; Firmware state: Online, Spun Up ;
Enclosure Device ID: 252 ; Slot Number: 1 ; Drive\'s position: DiskGroup: 1, Arm: 0 ; Device Id: 16 ; Raw Size: 931.512 GB ; Firmware state: Faild ;

经过上述指令能够得出设备ID为16的毛病磁盘坐落插槽1(Slot Number: 1)

 

0x03  查询毛病盘对应的分区

经过udevadm查询出分区的实在途径

$ udevadm info -q path -n /dev/sda
/devices/pci0000:00/0000:00:02.0/0000:03:00.0/host0/target0:2:0/0:2:0:0/block/sda
$ udevadm info -q path -n /dev/sdb
/devices/pci0000:00/0000:00:02.0/0000:03:00.0/host0/target0:2:1/0:2:1:0/block/sdb

经过上述指令能够得到两个数据,0:2:0:0和0:2:1:0。这两个数据的第三位和第二步得到的Drive’s position: DiskGroup做匹配得到,DiskGroup: 0对应0:2:0:0,DiskGroup: 1对应0:2:1:0

最后,咱们得出结果Device ID为16的毛病盘对应的插槽为1,对应的分区为sdb

PS:转发一个脚本,直接复制到机器运行,能够得到硬盘的所有信息,以表格的方法打印出来,简单明了。《megaclisas-status》