Hard-Disk
用於辨識具有許多磁碟的伺服器中的特定物理磁碟的命令
我有一個包含 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
參考