Hard-Disk

用於辨識具有許多磁碟的伺服器中的特定物理磁碟的命令

  • August 3, 2018

我有一個包含 10 個硬碟的伺服器。設備/dev/sdh在 btrfs 清理時報告無法糾正的讀取錯誤。如何確定對應的物理磁碟 /dev/sdh

我知道我可以使用或獲取磁碟的型號和序列號,hdparm -I /dev/sd?並且可以獲取掛載點。但是,我沒有找到通過序列號連接到硬碟的方法,而這正是我所需要的。findmnt``lsblk``/dev/sdh

lsblk是一種方法:

lsblk -a -o name,model,size,serial

這是一個輸出範例:

NAME         MODEL             SIZE SERIAL
sdh          ST8000DM002-1YW1  7.3T ZA11A1W3

lsscsi

在我有很多 HDD 的伺服器上,我傳統上用來lsscsi確定哪個 HDD 插入哪個埠。

您可以使用此輸出來獲取名稱 + 設備和通用設備名稱:

$ lsscsi -g
[0:0:0:0]    disk    ATA      Hitachi HDT72101 A3AA  /dev/sda   /dev/sg0
[2:0:0:0]    disk    ATA      Hitachi HDS72101 A39C  /dev/sdb   /dev/sg1
[4:0:0:0]    disk    ATA      Maxtor 6L200P0   1G20  /dev/sdc   /dev/sg2
[12:0:0:0]   disk    WD       My Passport 25E2 4005  /dev/sde   /dev/sg5
[12:0:0:1]   enclosu WD       SES Device       4005  -         /dev/sg6

並使用它來獲取與上述設備相對應的 MB 上的埠列表:

$ lsscsi -H
[0]    ahci
[1]    ahci
[2]    ahci
[3]    ahci
[4]    pata_atiixp
[5]    pata_atiixp
[12]    usb-storage

您也可以改用詳細輸出:

$ lsscsi --verbose
[0:0:0:0]    disk    ATA      Hitachi HDT72101 A3AA  /dev/sda
 dir: /sys/bus/scsi/devices/0:0:0:0  [/sys/devices/pci0000:00/0000:00:11.0/host0/target0:0:0/0:0:0:0]
[2:0:0:0]    disk    ATA      Hitachi HDS72101 A39C  /dev/sdb
 dir: /sys/bus/scsi/devices/2:0:0:0  [/sys/devices/pci0000:00/0000:00:11.0/host2/target2:0:0/2:0:0:0]
[4:0:0:0]    disk    ATA      Maxtor 6L200P0   1G20  /dev/sdc
 dir: /sys/bus/scsi/devices/4:0:0:0  [/sys/devices/pci0000:00/0000:00:14.1/host4/target4:0:0/4:0:0:0]
[12:0:0:0]   disk    WD       My Passport 25E2 4005  /dev/sde
 dir: /sys/bus/scsi/devices/12:0:0:0  [/sys/devices/pci0000:00/0000:00:13.2/usb2/2-3/2-3:1.0/host12/target12:0:0/12:0:0:0]
[12:0:0:1]   enclosu WD       SES Device       4005  -
 dir: /sys/bus/scsi/devices/12:0:0:1  [/sys/devices/pci0000:00/0000:00:13.2/usb2/2-3/2-3:1.0/host12/target12:0:0/12:0:0:1]

**注意:**例如,它插入的埠是此塊中的第一個數字,[0]而不是輸出[4]中的第一個數字。lsscsi -H

lshw

我也可以使用lshw它,因為它會告訴您插入了特定 HDD 的埠等,因此更容易確定哪個是具有多個的系統中的哪個。您可以在下面看到/dev/sda它的序列號:

$ lshw -c disk -c storage
 *-storage
      description: SATA controller
      product: SB7x0/SB8x0/SB9x0 SATA Controller [IDE mode]
      vendor: Advanced Micro Devices, Inc. [AMD/ATI]
      physical id: 11
      bus info: pci@0000:00:11.0
      logical name: scsi0
      logical name: scsi2
      version: 00
      width: 32 bits
      clock: 66MHz
      capabilities: storage pm ahci_1.0 bus_master cap_list emulated
      configuration: driver=ahci latency=64
      resources: irq:22 ioport:c000(size=8) ioport:b000(size=4) ioport:a000(size=8) ioport:9000(size=4) ioport:8000(size=16) memory:fbbff800-fbbffbff
    *-disk:0
         description: ATA Disk
         product: Hitachi HDT72101
         vendor: Hitachi
         physical id: 0
         bus info: scsi@0:0.0.0
         logical name: /dev/sda
         version: A3AA
         serial: STF604MH0AD4PB
         size: 931GiB (1TB)
         capabilities: partitioned partitioned:dos
         configuration: ansiversion=5 logicalsectorsize=512 sectorsize=512 signature=0005edc1

您可以根據各自的匯流排資訊和物理 ID 的座標來確定哪個是哪個。

智能控制

我過去使用的另一種方法是smartctl. 您可以獨立查詢每台設備,了解其序列號、品牌和型號,並在打開機箱後確定是哪款設備。

$ smartctl -i /dev/sda
smartctl 5.43 2016-09-28 r4347 [x86_64-linux-2.6.32-642.6.2.el6.x86_64] (local build)
Copyright (C) 2002-12 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF INFORMATION SECTION ===
Model Family:     Hitachi Deskstar 7K1000.B
Device Model:     Hitachi HDT721010SLA360
Serial Number:    STF604MH0AD4PB
LU WWN Device Id: 5 000cca 349c4b953
Firmware Version: ST6OA3AA
User Capacity:    1,000,204,886,016 bytes [1.00 TB]
Sector Size:      512 bytes logical/physical
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   8
ATA Standard is:  ATA-8-ACS revision 4
Local Time is:    Thu Aug  2 21:11:01 2018 EDT
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

ledctl/ledmon

在高端機架式伺服器上,您可以通過其設備名稱ledctl來點亮給定 HDD 的 LED 。/dev/

ledctl 用法

# ledctl locate=/dev/rssda will blink drive LED
# ledctl locate={ /dev/rssda /dev/rssdb } will blink both drive LEDs
# ledctl locate_off=/dev/rssda will turn off the locate LED

參考

引用自:https://unix.stackexchange.com/questions/460196