![诊断故障驱动器上的 RAID 利用率](https://linux22.com/image/660427/%E8%AF%8A%E6%96%AD%E6%95%85%E9%9A%9C%E9%A9%B1%E5%8A%A8%E5%99%A8%E4%B8%8A%E7%9A%84%20RAID%20%E5%88%A9%E7%94%A8%E7%8E%87.png)
我在一台未安装的服务器上遇到了问题,之前那个人已经不在了,无法向我解释任何事情。
一些进程似乎由于磁盘故障而崩溃,因此我在日志中搜索并找到了如下行/var/log/messages
:
kernel: [277146.149980] sd 0:1:0:0: [sda] Sense Key : Medium Error [current]
kernel: [277146.149986] sd 0:1:0:0: [sda] Add. Sense: Unrecovered read error
重新启动并使用fsck
并不能解决问题。
我不知道磁盘是位于硬件 RAID 还是软件 RAID 上。我知道机器上没有安装 LVM。备份在这里不是问题,此服务器不包含其磁盘上的信息,重要数据通过 NFS 安装。因此,如果需要,我可以重新安装机器,而不必担心磁盘的当前内容。
该机器是运行 Debian Squeeze 64 位的 Dell PowerEdge R510。制造商(Dell)的诊断工具无法在 Debian Squeeze 上运行,我尝试安装并运行它们,但它们不起作用,所以我必须手动诊断。以下是我可以为您提供的一些信息。
此外,如果需要的话,我可以物理访问该机器,并且我发现只有三个磁盘:三个 SCSI Seagate 磁盘,每个磁盘 600GB。
# lshw -class disk
*-disk:0
description: SCSI Disk
product: Virtual Disk
vendor: Dell
physical id: 1.0.0
bus info: scsi@0:1.0.0
logical name: /dev/sda
version: 1028
size: 1675GiB (1798GB)
capacity: 1675GiB (1798GB)
capabilities: 15000rpm partitioned partitioned:dos
configuration: ansiversion=6 signature=cf241336
因此,显然我们谈论的是 1800 GB 的虚拟磁盘,其中包含三个 600GB 的物理磁盘。显然,可以使用 BIOS 配置虚拟磁盘。因此,如果我必须使用新磁盘重新安装整个机器,我必须在启动一个 iso/liveCD/PXE 之前进入 BIOS,对吗?
# fdisk -l
Disk /dev/sda: 1798.7 GB, 1798651772928 bytes
3 heads, 52 sectors/track, 22519177 cylinders
Units = cylinders of 156 * 512 = 79872 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xcf241336
Device Boot Start End Blocks Id System
/dev/sda1 1 421 32812 de Dell Utility
/dev/sda2 * 434 27320 2097152 c W95 FAT32 (LBA)
/dev/sda3 27320 277715 19530752 83 Linux
/dev/sda4 277728 22519165 1734832129 5 Extended
/dev/sda5 277728 402918 9764864 82 L
我想这确认只有一个磁盘,一个虚拟磁盘。
# smartctl -i /dev/sda
smartctl 5.40 2010-07-12 r3124 [x86_64-unknown-linux-gnu] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net
Device: Dell Virtual Disk Version: 1028
Device type: disk
Local Time is: Mon Jun 15 10:28:59 2015 CEST
Device does not support SMART
这看起来是合法的,因为 smartctl 似乎不适用于虚拟驱动器。
# cat /proc/scsi/scsi
Attached devices:
Host: scsi3 Channel: 00 Id: 00 Lun: 00
Vendor: TEAC Model: DVD-ROM DV-28SW Rev: R.2B
Type: CD-ROM ANSI SCSI revision: 05
Host: scsi0 Channel: 01 Id: 00 Lun: 00
Vendor: Dell Model: Virtual Disk Rev: 1028
Type: Direct-Access ANSI SCSI revision: 06
Host: scsi0 Channel: 00 Id: 00 Lun: 00
Vendor: SEAGATE Model: ST3600057SS Rev: ES64
Type: Direct-Access ANSI SCSI revision: 05
Host: scsi0 Channel: 00 Id: 01 Lun: 00
Vendor: SEAGATE Model: ST3600057SS Rev: ES64
Type: Direct-Access ANSI SCSI revision: 05
Host: scsi0 Channel: 00 Id: 02 Lun: 00
Vendor: SEAGATE Model: ST3600057SS Rev: ES64
Type: Direct-Access ANSI SCSI revision: 05
这就是我目前得到的信息。我想我必须购买新磁盘并重新安装机器。所以我想知道:这台机器是否配置了一些 RAID?我怎么知道?因为我想重现确切的当前配置。如果您需要,我很乐意为您提供更多信息。
[编辑] 这是 lspci 命令输出。
# lspci
00:00.0 Host bridge: Intel Corporation 5500 I/O Hub to ESI Port (rev 13)
00:01.0 PCI bridge: Intel Corporation 5520/5500/X58 I/O Hub PCI Express Root Port 1 (rev 13)
00:03.0 PCI bridge: Intel Corporation 5520/5500/X58 I/O Hub PCI Express Root Port 3 (rev 13)
00:07.0 PCI bridge: Intel Corporation 5520/5500/X58 I/O Hub PCI Express Root Port 7 (rev 13)
00:09.0 PCI bridge: Intel Corporation 5520/5500/X58 I/O Hub PCI Express Root Port 9 (rev 13)
00:0a.0 PCI bridge: Intel Corporation 5520/5500/X58 I/O Hub PCI Express Root Port 10 (rev 13)
00:14.0 PIC: Intel Corporation 5520/5500/X58 I/O Hub System Management Registers (rev 13)
00:14.1 PIC: Intel Corporation 5520/5500/X58 I/O Hub GPIO and Scratch Pad Registers (rev 13)
00:14.2 PIC: Intel Corporation 5520/5500/X58 I/O Hub Control Status and RAS Registers (rev 13)
00:1a.0 USB Controller: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #4
00:1a.1 USB Controller: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #5
00:1a.7 USB Controller: Intel Corporation 82801JI (ICH10 Family) USB2 EHCI Controller #2
00:1d.0 USB Controller: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #1
00:1d.1 USB Controller: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #2
00:1d.2 USB Controller: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #3
00:1d.3 USB Controller: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #6
00:1d.7 USB Controller: Intel Corporation 82801JI (ICH10 Family) USB2 EHCI Controller #1
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 90)
00:1f.0 ISA bridge: Intel Corporation 82801JIR (ICH10R) LPC Interface Controller
00:1f.2 IDE interface: Intel Corporation 82801JI (ICH10 Family) 4 port SATA IDE Controller #1
00:1f.5 IDE interface: Intel Corporation 82801JI (ICH10 Family) 2 port SATA IDE Controller #2
01:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM5716 Gigabit Ethernet (rev 20)
01:00.1 Ethernet controller: Broadcom Corporation NetXtreme II BCM5716 Gigabit Ethernet (rev 20)
02:00.0 Serial Attached SCSI controller: LSI Logic / Symbios Logic SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] (rev 03)
03:00.0 InfiniBand: QLogic Corp. InfiniPath QME7342 QDR HCA (rev 02)
06:03.0 VGA compatible controller: Matrox Graphics, Inc. MGA G200eW WPCM450 (rev 0a)
[编辑2] 要了解可用控制器的数量:
# megacli -adpCount
Controller Count: 0.
Exit Code: 0x00
打印控制器的所有信息:
# megacli -adpallinfo -aALL
Exit Code: 0x00
所以我认为这意味着没有硬件 RAID?
[编辑3]
# ls -l /dev/disk/by-path
total 0
lrwxrwxrwx 1 root root 9 Jun 12 12:19 pci-0000:00:1f.5-scsi-0:0:0:0 -> ../../sr0
lrwxrwxrwx 1 root root 9 Jun 15 13:40 pci-0000:02:00.0-scsi-0:1:0:0 -> ../../sda
lrwxrwxrwx 1 root root 10 Jun 12 12:19 pci-0000:02:00.0-scsi-0:1:0:0-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Jun 12 12:19 pci-0000:02:00.0-scsi-0:1:0:0-part2 -> ../../sda2
lrwxrwxrwx 1 root root 10 Jun 12 12:19 pci-0000:02:00.0-scsi-0:1:0:0-part3 -> ../../sda3
lrwxrwxrwx 1 root root 10 Jun 12 12:19 pci-0000:02:00.0-scsi-0:1:0:0-part4 -> ../../sda4
lrwxrwxrwx 1 root root 10 Jun 12 12:19 pci-0000:02:00.0-scsi-0:1:0:0-part5 -> ../../sda5
lrwxrwxrwx 1 root root 10 Jun 12 12:21 pci-0000:02:00.0-scsi-0:1:0:0-part6 -> ../../sda6
# megaclisas-status
-- Controller informations --
-- ID | Model
-- Arrays informations --
-- ID | Type | Size | Status | InProgress
-- Disks informations
-- ID | Model | Status
[编辑4]
该sas2ircu
命令很有帮助(参见这一页)。
我终于设法找到是否使用了 RAID:重新启动服务器,进入配置实用程序菜单(Ctrl + C),然后查看是否已配置 RAID0。我在磁盘上使用了 smartctl 命令/dev/sg*
(smartctl 无法正常工作/dev/sda*
)。
smartctl -t long /dev/sg2
smartctl -l selftest /dev/sg2
它最终向我显示了哪个磁盘有故障段。问题解决了!
答案1
此消息表明三个磁盘中有一个或多个出现故障,或者控制器/电缆出现故障。整个设置似乎是三个磁盘的 RAID0 - 这是一种非常危险的配置。我会这样做:备份数据(如果您愿意),拆除 RAID 并获取 JBOD。测试每个单独的磁盘。确定故障部件是什么。更换它,然后配置 RAID 1。恢复/重新安装系统。
答案2
lspci 输出:
02:00.0 Serial Attached SCSI controller: LSI Logic / Symbios Logic SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] (rev 03)
表示存在 hw raid 卡。
管理此类卡的正确工具是:sas2ircu
您可以在这里找到更多信息: