当我在 Linux 内部时,我可以从lsblk
(从输出中删除不相关的驱动器)获取以下信息:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 298G 0 disk
sdb 8:16 0 2.7T 0 disk
当我手动将驱动器从服务器中拉出时,我可以知道我物理上正在使用以下驱动器:
0 Seagate 320GB
1 Seagate 320GB
2 Hitachi 1TB
3 Hitachi 1TB
4 Hitachi 1TB
5 Hitachi 1TB
6 [empty]
7 [empty]
由于服务器中的物理存储空间比 Linux 中的可用空间大,这意味着我显然在使用某种形式的 RAID 系统。通过一点数学运算,我通常可以算出正在使用哪种类型的 RAID 系统。
有没有办法让我检测我是否正在使用硬件 RAIDLinux 内部并找出有关它的所有信息(例如 RAID 类型、可用驱动器)没有关闭服务器,物理拔出驱动器,并读取其标签?
这些信息可以从 Linux 内部收集吗,或者硬件 RAID 的目的是为了让底层系统对于操作系统来说“不可见”?
答案1
如何获取 RAID 信息完全取决于您使用的 RAID 控制器。制造商通常会提供可从其网站下载的工具,可用于查询 RAID 控制器并获取此信息。
为了找到您正在使用的 RAID 控制器,请尝试以下命令之一:
串行通信
# lspci -knn | grep 'RAID bus controller'
08:00.0 RAID bus controller [0104]: 3ware Inc 9690SA SAS/SATA-II RAID PCIe [13c1:1005] (rev 01)
这里我们要寻找的信息是“3ware Inc 9690SA SAS/SATA-II RAID PCIe”。
安全接口
该命令在 Debian 和 Ubuntu 上不可用,但快速sudo apt-get install lsscsi
可从存储库中获取它。请注意,如果您未使用 RAID 控制器,则硬盘的制造商和型号将显示在此处。
# lsscsi
[2:0:0:0] disk AMCC 9690SA-8I DISK 4.08 /dev/sda
[2:0:1:0] disk AMCC 9690SA-8I DISK 4.08 /dev/sdb
这里我们看到制造商是“AMCC”RAID 卡的型号为“9690SA-8I”。快速 Google 搜索表明此卡也称为“AMCC 3Ware 9690SA-8I”。
瘦身
第三种方法(会给出相当多的输出数据)是使用命令lshw
。lshw -class disk
以 root 身份运行,仅显示有关硬盘的详细信息(包括 RAID 信息)。
查找 RAID 控制器工具
现在我们有了制造商和型号,应该可以在他们的网站上找到这些工具,或者至少能够在 Google 上找到有关如何查找和使用该特定控制器的工具的详细信息。
如果制造商出现在此列表中,请参阅以下答案以获取有关如何获取卡的 RAID 信息的更多详细信息:
答案2
运行类似的命令lspci -knn | grep 'RAID bus controller'
。
使用该输出,在 Google 中(例如)搜索LSI Logic / Symbios Logic MegaRAID SAS 2208
。
发现它使用该storcli
实用程序来询问 RAID 控制器。
下载并安装它。
storcli64 show
具体提供控制器的型号、控制器索引、驱动器组的数量和虚拟驱动器的数量。
storcli64 /c0/d0 show
显示第一个控制器、第一个驱动器组。告诉您 RAID 级别,包括嵌套。
storcli64 /c0/eall/sall show all
显示所有磁盘的所有信息。
这些命令的更多参考数据可以在这里找到:
http://mycusthelp.info/LSI/_cs/AnswerPreview.aspx?sSessionID=&inc=8275
您应该只需要做这些。只需使用 Linux 中的常规硬件自检,然后搜索 Google,然后下载并安装随附的实用程序。
@Gene 的建议和评论非常正确。
这个答案完全取决于您从lspci
命令中获得的输出,以及您的 Google 搜索识别制造商和获取正确的命令行工具的能力。
但它确实表明,您可以从服务器通过命令行获取所有这些信息,而无需停止机器、打开机箱和拉出驱动器,我希望这会有所帮助。
答案3
lspci
为了创建存储配置文件,我会在运行或下载任何内容之前执行以下操作。
cat /etc/fstab # What partitions get mounted at boot?
sudo pvs # Are you running LVM? List the physical volumes
cat /proc/mdstat # List software RAID devices & status
for D in /dev/sd?; do parted $D print; done
# If hardware RAID is being used, the "Model" field will list
# the Mfr. name, otherwise the hard drive Mfr.
答案4
除了其他答案中描述的lspci
和方法之外,您还可以解析和使用它们来获取有关物理驱动器的信息。例如,看一下带有 PERC H710p 控制器的此服务器:lshw
dmesg
smartctl
[root@localhost ~]# dmesg | grep -i scsi
[ 0.946723] SCSI subsystem initialized
[ 1.279256] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 248)
[ 2.853831] scsi host0: Avago SAS based MegaRAID driver
[ 2.858058] scsi 0:2:0:0: Direct-Access DELL PERC H710P 3.13 PQ: 0 ANSI: 5
[ 2.873982] scsi 0:2:1:0: Direct-Access DELL PERC H710P 3.13 PQ: 0 ANSI: 5
[ 3.011376] sd 0:2:0:0: [sda] Attached SCSI disk
[ 3.012031] sd 0:2:1:0: [sdb] Attached SCSI disk
[ 7.915918] sd 0:2:0:0: Attached scsi generic sg0 type 0
[ 7.916305] sd 0:2:1:0: Attached scsi generic sg1 type 0
您可以看到定义了两个数组:sda
和sdb
。smartctl
针对此类虚拟设备运行会返回以下内容:
[root@localhost ~]# smartctl --all /dev/sdb
smartctl 7.0 2018-12-30 r4883 [x86_64-linux-3.10.0-1062.12.1.el7.x86_64] (local build)
Copyright (C) 2002-18, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Vendor: DELL
Product: PERC H710P
Revision: 3.13
Compliance: SPC-3
User Capacity: 9,930,501,324,800 bytes [9.93 TB]
Logical block size: 512 bytes
Logical Unit id: REDACTED
Serial number: REDACTED
Device type: disk
Local Time is: Fri May 29 14:46:48 2020 CEST
SMART support is: Unavailable - device lacks SMART capability.
要检查物理磁盘健康值,可以使用smartctl --all -d <driver>,<disknum> <sddevice>
语法。例如,要检查第二个阵列的第一个磁盘:
[root@localhost ~]# smartctl --all -d megaraid,0 /dev/sdb
smartctl 7.0 2018-12-30 r4883 [x86_64-linux-3.10.0-1062.12.1.el7.x86_64] (local build)
Copyright (C) 2002-18, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Device Model: REDACTED
Serial Number: REDACTED
LU WWN Device Id: REDACTED
...
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x002f 200 200 051 Pre-fail Always - 0
3 Spin_Up_Time 0x0027 100 253 021 Pre-fail Always - 0
4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 3
5 Reallocated_Sector_Ct 0x0033 200 200 140 Pre-fail Always - 0
7 Seek_Error_Rate 0x002e 200 200 000 Old_age Always - 0
9 Power_On_Hours 0x0032 097 097 000 Old_age Always - 2251
10 Spin_Retry_Count 0x0032 100 253 000 Old_age Always - 0
11 Calibration_Retry_Count 0x0032 100 253 000 Old_age Always - 0
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 3
192 Power-Off_Retract_Count 0x0032 200 200 000 Old_age Always - 1
193 Load_Cycle_Count 0x0032 200 200 000 Old_age Always - 3
194 Temperature_Celsius 0x0022 123 117 000 Old_age Always - 20
196 Reallocated_Event_Count 0x0032 200 200 000 Old_age Always - 0
197 Current_Pending_Sector 0x0032 200 200 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0030 100 253 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x0032 200 200 000 Old_age Always - 0
200 Multi_Zone_Error_Rate 0x0008 100 253 000 Old_age Offline - 0
最后,要获取阵列布局信息(即:RAID 类型、备用磁盘等),您必须使用特定工具。megacli
是基于 LSI 的卡的通用工具,但也存在供应商定制的工具(即:)omreport storage vdisk
。例如,在 DELL 服务器上:
[root@localhost ~]# omreport storage vdisk
List of Virtual Disks in the System
Controller PERC H710P Mini (Embedded)
ID : 0
Status : Ok
Name : REDACTED
State : Ready
Hot Spare Policy violated : Not Assigned
Encrypted : No
Layout : RAID-6
Size : 64.00 GB (68719411200 bytes)
T10 Protection Information Status : No
Associated Fluid Cache State : Not Applicable
Device Name : /dev/sda
Bus Protocol : SATA
Media : HDD
Read Policy : Adaptive Read Ahead
Write Policy : Write Back
Cache Policy : Not Applicable
Stripe Element Size : 64 KB
Disk Cache Policy : Enabled