如何在单个 raid 控制器上使用 smartctl

如何在单个 raid 控制器上使用 smartctl

我使用 PERC H730 Mini RAID 控制器:

# lspci -d::0104 -k
02:00.0 RAID bus controller: Broadcom / LSI MegaRAID SAS-3 3108 [Invader] (rev 02)
        Subsystem: Dell PERC H730 Mini
        Kernel driver in use: megaraid_sas
        Kernel modules: megaraid_sas

以下是连接到服务器的磁盘:

# lsscsi -s
[0:2:0:0]    disk    DELL     PERC H730 Mini   4.28  /dev/sda    499GB
[0:2:1:0]    disk    DELL     PERC H730 Mini   4.28  /dev/sdb   8.00TB
[0:2:2:0]    disk    DELL     PERC H730 Mini   4.28  /dev/sdc   8.00TB
[0:2:3:0]    disk    DELL     PERC H730 Mini   4.28  /dev/sdd   8.00TB
[0:2:4:0]    disk    DELL     PERC H730 Mini   4.28  /dev/sde   8.00TB
[0:2:5:0]    disk    DELL     PERC H730 Mini   4.28  /dev/sdf   8.00TB
[0:2:6:0]    disk    DELL     PERC H730 Mini   4.28  /dev/sdg   8.00TB
[0:2:7:0]    disk    DELL     PERC H730 Mini   4.28  /dev/sdh   8.00TB
[0:2:8:0]    disk    DELL     PERC H730 Mini   4.28  /dev/sdi   8.00TB
[0:2:9:0]    disk    DELL     PERC H730 Mini   4.28  /dev/sdj   8.00TB
[0:2:10:0]   disk    DELL     PERC H730 Mini   4.28  /dev/sdk   8.00TB
[0:2:11:0]   disk    DELL     PERC H730 Mini   4.28  /dev/sdl   8.00TB
[0:2:12:0]   disk    DELL     PERC H730 Mini   4.28  /dev/sdp   8.00TB
[0:2:13:0]   disk    DELL     PERC H730 Mini   4.28  /dev/sdm   8.00TB
[0:2:14:0]   disk    DELL     PERC H730 Mini   4.28  /dev/sdn   8.00TB
[0:2:15:0]   disk    DELL     PERC H730 Mini   4.28  /dev/sdq   8.00TB
[0:2:16:0]   disk    DELL     PERC H730 Mini   4.28  /dev/sdo    399GB

smartctl,我以为设备名称是denoting which disk on the controller is monitored.

但是,当使用一个 RAID 控制器时smartctl也需要,并且当值不同时The non-negative integer N (in the range of 0 to 127 inclusive) denotes which disk on the controller is monitored.会给出完全不同的结果:N

# smartctl -i /dev/sdq -d megaraid,0 -j | jq -r .model_name,.user_capacity.bytes
INTEL SSDSC2BX400G4R
400088457216
# smartctl -i /dev/sdq -d megaraid,1 -j | jq -r .model_name,.user_capacity.bytes
SEAGATE ST8000NM0075
8001563222016

似乎使用N=0会返回错误的磁盘,因为容量与输出的容量不匹配lsscsi -s

如何选择正确的Nsmartctl

答案1

这是正常的。您的结果永远不会与输出匹配lsscsi,因为您在lsscsi 不是您的物理磁盘——这些是逻辑RAID 卷,由您的 RAID 控制器模拟的虚拟“磁盘”(由于是虚拟的,因此没有任何 SMART 数据)。

实际的物理磁盘对于操作系统来说是不可见的 - 它们隐藏在 RAID 控制器“后面”(这实际上是控制器的工作),这就是为什么您需要-d megaraid“作弊代码”才能访问它们。

(如果控制器像普通 HBA 一样工作并直接公开磁盘,则您不需要任何特殊语法来访问它们,只需使用它们的 /dev 名称;但是控制器无法真正实现 RAID 而不受干扰。)

相关内容