我有一个带有4个eSATA磁盘的外部驱动器托架。我的系统有一个4端口eSATA卡,以及一对内部硬件RAID1驱动器。外部驱动器是在软件RAID1对作为/dev/md0
和/dev/md1
。两者都已配置为LVM物理卷以创建我的storagevg
LVM卷组。最近,有一个驱动器脱机(我怀疑是电缆),但是似乎并没有一个很好的方法来物理识别我需要检查的驱动器,特别是由于启动顺序在启动之间是不同的。如何找到需要注意的磁盘?
我有一个带有4个eSATA磁盘的外部驱动器托架。我的系统有一个4端口eSATA卡,以及一对内部硬件RAID1驱动器。外部驱动器是在软件RAID1对作为/dev/md0
和/dev/md1
。两者都已配置为LVM物理卷以创建我的storagevg
LVM卷组。最近,有一个驱动器脱机(我怀疑是电缆),但是似乎并没有一个很好的方法来物理识别我需要检查的驱动器,特别是由于启动顺序在启动之间是不同的。如何找到需要注意的磁盘?
Answers:
磁盘实用程序(位于系统->管理中)将为您提供所有磁盘的序列号。
这就是我所看到的(在序列的右上角看)。您会注意到该驱动器在mdadm RAID阵列中。磁盘工具可以穿透阵列进行原始磁盘访问。
我的PC上有6个相同型号的磁盘,因此我画了一张小图,显示了它们在机箱中的位置以及序列号,以便在紧急情况下可以快速找到它们。
反之亦然,如果磁盘死了,我只需要查找正在显示哪些磁盘,就可以消除它们,直到我知道缺少哪个序列。
编辑:我正在尝试改善我的bash-fu,所以我写了此命令行版本以仅向您提供计算机中当前磁盘序列号的列表。fdisk
可能会剔除一些错误,但这不会污染列表:
for disk in `sudo fdisk -l | grep -Eo '(/dev/[sh]d[a-z]):' | sed -E 's/://'`;
do
sudo hdparm -i $disk | grep -Eo 'SerialNo=.*' | sed -E 's/SerialNo=//';
done
(如果需要,您可以将其分解为一行-为了便于阅读,我将其分解了)
编辑2: ls /dev/disk/by-id/
有点容易;)
如果您在将驱动器序列号或端口指示与磁盘的空间位置匹配时遇到问题,则可以运行cat /dev/sdz >/dev/null
(发生sdz
故障的驱动器在哪里),并通过其LED(如果不在嘈杂的服务器机房中,则通过耳朵)来定位驱动器。 )。如果驱动器甚至无法启动,则足以确定驱动器是哪一个。请确保下次在磁盘上放置可见标签。
通过软件突袭,这是一个常见问题。硬件突袭往往具有一项功能,该功能允许您在与硬件相关的前提下使与驱动器关联的LED闪烁。
但是,使用软件RAID时,每个驱动器都有一些唯一的元数据。您可以使用mdadm -E /dev/sda1
阵列中每个驱动器的命令从每个驱动器读取它,并修改设备以匹配您的环境。因此,如果驱动器出现问题并且当前处于脱机状态。我将在每个在线驱动器上运行此命令,并记录每个驱动器的次要号。然后,使用支持MD的Live CD,系统急救cd是一个不错的选择,一次只能连接一个驱动器,然后运行此命令来查找罪魁祸首。这可能不是您想要的那样简单,但是应该可以。
lsscsi
$ lsscsi -l [0:0:0:0]磁盘ATA TOSHIBA THNS128G AGLA / dev / sda 状态=运行queue_depth = 1 scsi_level = 6类型= 0 device_blocked = 0超时= 30 [1:0:0:0] cd / dvd HL-DT-ST DVDRAM GT30N LT09 / dev / sr0 状态=运行queue_depth = 1 scsi_level = 6类型= 5 device_blocked = 0超时= 30
如果磁盘未处于运行状态,这是一个很好的信号。因此,/ proc / mdstat会告诉您哪个成员失败了。假设您没有一个不错的驱动器笼,则必须按序列号向下钻取,sg_inq应该可以帮助您。
如果确实有良好的驱动器框架,则应该能够启用磁盘信标以帮助识别故障成员。
http://www.mail-archive.com/linux-scsi@vger.kernel.org/msg07307.html
要获取所有硬盘的序列号,请运行:
lsblk -i -o kname,mountpoint,fstype,size,maj:min,name,state,rm,rota,ro,type,label,model,serial
KNAME MOUNTPOINT FSTYPE SIZE MAJ:MIN NAME STATE RM ROTA RO TYPE LABEL MODEL SERIAL
sda 3.7T 8:0 sda running 0 1 0 disk WDC WD4000F9YZ-0 WD-WCCXXX4
sda1 3.7T 8:1 `-sda1 0 1 0 part
sdb /mnt/backup3 ext4 3.7T 8:16 sdb running 0 1 0 disk backup_netops WDC WD4000F9YZ-0 WD-WCCXXX1
sdc 3.7T 8:32 sdc running 0 1 0 disk WDC WD4000F9YZ-0 WD-WCCXXX3
sdc1 /mnt/backup2 ext4 3.7T 8:33 `-sdc1 0 1 0 part
sdd 3.7T 8:48 sdd running 0 1 0 disk WDC WD4000F9YZ-0 WD-WCCXXX2
sdd1 /mnt/backup1 ext4 3.7T 8:49 `-sdd1 0 1 0 part
这很简单。例如,这是我的PC上的输出:
andrea@centurion:~$ cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdh1[1] sdg1[0]
312568576 blocks [2/2] [UU]
unused devices: <none>
如您所见,我将/ dev / sdh1和/ dev / sdg1加入了/ dev / md0