linux raid卡信息查询

首先获取scsi设备的信息。

[root@server2 ~]# lsscsi
[2:0:0:0]    disk    VMware,  VMware Virtual S 1.0   /dev/sda
[4:0:0:0]    cd/dvd  NECVMWar VMware SATA CD01 1.00  /dev/sr0

有些操作系统没有lsscsi命令,则可以使用下面的方法获取scsi设备信息。

[root@server2 ~]# ll /sys/bus/scsi/drivers/sd/

total0
lrwxrwxrwx1 root root    0 Jun 22 17:29 2:0:0:0 -> ../../../../devices/pci0000:00/0000:00:10.0/host2/target2:0:0/2:0:0:0
--w------- 1 root root 4096 Jun 22 17:29 bind
--w------- 1 root root 4096 Jun 22  2017 uevent
--w------- 1 root root 4096 Jun 22 17:29 unbind

 

[root@server2 ~]# ll /sys/bus/scsi/drivers/sd/2\:0\:0\:0/block/

total 0
drwxr-xr-x 10 root root 0 Jun 22  2017 sda

然后查看/proc/scsi/scsi文件,获取对应scsi设备的详细信息。

[root@server2 ~]# cat /proc/scsi/scsi

Attached devices:
Host: scsi2 Channel:00 Id: 00 Lun: 00
  Vendor: VMware,  Model: VMware Virtual S Rev:1.0
  Type:  Direct-Access                    ANSI  SCSI revision: 02
Host: scsi4 Channel: 00 Id: 00 Lun: 00
  Vendor: NECVMWar Model: VMware SATA CD01 Rev:1.00
  Type:  CD-ROM                          ANSI  SCSI revision: 05
Host: scsi2 Channel: 00 Id: 01 Lun: 00
  Vendor: VMware,  Model: VMware Virtual S Rev:1.0
  Type:  Direct-Access                    ANSI  SCSI revision: 02

在此处,有两块直连(Direct-Access)的scsi磁盘,一块通过光驱cd-rom连接的光盘。我们只考虑scsi磁盘,所以这两块磁盘在scsi中的定位符为2:0:0:0和2:0:1:0。如果继续插入一块盘,那么新盘在scsi中的定位符为2:0:2:0,这个数值串非常重要。

1.1 热插

在向计算机中插入一块磁盘后,内核因为识别不了它所以不会产生任何事件通知,因此在/sys目录中不会产生任何文件,任何工具也就读取不了它。重启系统肯定是可以解决的,但是Linux支持热插。

热插新盘的方式是向/proc/scsi/scsi中写入新scsi设备的信息。方式如下:

echo "scsi add-single-device a b c d" >/proc/scsi/scsi

其中:

      a == hostadapter id (first one being 0)

      b == SCSI channel on hostadapter (first one being 0)

      c == ID

      d == LUN (first one being 0)

例如上面的例子,应该添加如下信息:

[root@server2 ~]# echo "scsi add-single-device 2:0:2:0" >/proc/scsi/scsi

当然,重新扫描scsi总线也可以实现热插的功能。因为上面的例子中,scsi host id为2(即host2),所以扫描的是host2,这样host2这个scsi上的所有设备都会被重新扫描。

[root@server2 ~]# echo "- - -" > /sys/class/scsi_host/host2/scan

如果不知道要扫描哪个host,直接使用循环全部扫描。

[root@xuexi ~]# for i in `ls /sys/class/scsi_host/`;do echo "- - -" >/sys/class/scsi_host/$i/scan;done

热插之后,fdisk -l等命令就可以识别到该磁盘了。

1.2 热拔

热拔磁盘的方式是在/proc/scsi/scsi中移除对应scsi设备的信息。方式如下:

echo "scsi remove-single-device a b c d" >/proc/scsi/scsi

例如删除2:0:2:0这块磁盘。

[root@server2 ~]# echo "scsi remove-single-device 2 0 2 0" >/proc/scsi/scsi

因为要删除的设备已经存在,/sys中已经有它完整的信息,所以也从其自身设备上进行删除。

首先查看scsi设备信息。

[root@server2 ~]# lsscsi
[2:0:0:0]    disk    VMware,  VMware Virtual S 1.0   /dev/sda
[2:0:1:0]    disk    VMware,  VMware Virtual S 1.0   /dev/sdb
[4:0:0:0]    cd/dvd  NECVMWar VMware SATA CD01 1.00  /dev/sr0

 例如要删除/dev/sdb,即2:0:1:0。先看看它的文件信息。

[root@server2 ~]# ls /sys/bus/scsi/drivers/sd/2\:0\:1\:0/

block/                              evt_lun_change_reported            model                              scsi_level
bsg/                                evt_media_change                    power/                              state
delete                             evt_mode_parameter_change_reported  queue_depth                        subsystem/
device_blocked                      evt_soft_threshold_reached          queue_ramp_up_period                timeout
device_busy                        generic/                            queue_type                          type
dh_state                            iocounterbits                      rescan                              uevent
driver/                            iodone_cnt                          rev                                unpriv_sgio
eh_timeout                          ioerr_cnt                          scsi_device/                        vendor
evt_capacity_change_reported        iorequest_cnt                      scsi_disk/                          vpd_pg80
evt_inquiry_change_reported        modalias                            scsi_generic/                      vpd_pg83

在其中有3个文件:delete、rescan和state。其中state记录了该设备是否正在运行中。而delete和rescan文件则用于删除和重新扫描该设备。

例如,删除该设备,即热拔。

[root@server2 ~]# echo 1 > /sys/bus/scsi/drivers/sd/2\:0\:1\:0/delete
<think>好的,用户想了解如何在Linux系统查看RAID信息。首先,我需要回想一下常用的命令和工具。可能涉及到的命令有lspci、dmidecode,还有厂商特定的工具,比如MegaCLI或者hpacucli。另外,软件RAID的话可能会用到mdadm,但用户提到的是RAID,应该是指硬件RAID,所以可能重点在硬件相关的工具。 第一步,确认RAID型号。通常使用lspci命令来列出PCI设备,然后过滤RAID相关的关键词,比如“RAID”或者厂商名称如LSI、Adaptec等。这时候需要告诉用户运行lspci | grep -i raid,这样能快速找到RAID信息。 接下来,如果需要更详细的信息,dmidecode可以显示DMI信息,包括硬件厂商、型号等。不过dmidecode可能需要root权限,所以需要提醒用户使用sudo。 然后,针对不同厂商的RAID,可能需要不同的工具。例如LSI的常用MegaCLI或storcli,而戴尔的则使用perccli。用户可能需要安装这些工具,比如在Ubuntu下用apt安装,CentOS用yum。需要分点说明不同厂商的工具安装和使用方法。 还有,查看RAID的状态和配置信息,比如磁盘状态、阵列级别、容量等,这些通常通过厂商工具来获取。比如MegaCLI的查看物理磁盘和逻辑磁盘的命令,以及perccli的例子。 此外,系统日志/var/log/messages或dmesg也可能有RAID相关的信息,可以建议用户查看。 需要考虑用户可能对命令行不太熟悉,所以给出的命令要具体,比如示例输出和步骤。同时提醒权限问题,比如sudo的使用。 最后,可能还需要检查是否有驱动加载,使用lsmod或者lspci -k查看内核模块。如果有驱动问题,RAID可能无法正确识别。 总结步骤应该是:先确认RAID型号,再根据厂商使用对应工具,查看详细信息,检查日志和驱动情况。这样用户能一步步排查,获取所需信息。</think>在Linux系统查看RAID信息,可通过以下步骤逐步操作: --- ### 一、确认RAID型号 #### 1. 使用 `lspci` 命令 ```bash lspci | grep -i raid ``` - **示例输出** `01:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID SAS-3 3108 [Invader]` - 这里可看到RAID型号为 **LSI MegaRAID SAS-3 3108** --- ### 二、获取详细硬件信息 #### 1. 使用 `dmidecode` (需root权限) ```bash sudo dmidecode -t storage ``` - 输出内容包括RAID制造商、型号、固件版本等 --- ### 三、查看RAID配置状态 #### 1. 使用厂商专用工具(需单独安装) - **LSI MegaRAID 系列** 安装工具: ```bash # Ubuntu/Debian sudo apt-get install megacli # CentOS/RHEL sudo yum install MegaCli ``` 查看RAID状态: ```bash sudo MegaCli -LDInfo -LAll -aALL # 查看逻辑磁盘信息 sudo MegaCli -PDList -aALL # 查看物理磁盘状态 ``` - **Dell PERC 系列** 安装工具: ```bash wget https://downloads.dell.com/FOLDER06155275M/1/perccli-1.17.10-1.noarch.rpm sudo rpm -ivh perccli*.rpm ``` 查看RAID信息: ```bash sudo perccli /c0 show # 查看控制器0的配置 ``` --- ### 四、检查内核RAID模块 #### 1. 查看已加载的RAID驱动 ```bash lsmod | grep raid ``` - 输出可能包含 `megaraid_sas`(LSI驱动)或 `hpsa`(HP驱动) --- ### 五、查看系统日志 #### 1. 从日志中提取RAID事件 ```bash sudo dmesg | grep -i raid sudo grep -i raid /var/log/messages ``` --- ### 总结 | 方法 | 用途 | 示例命令 | |---------------------|------------------------------|-----------------------------| | `lspci` | 快速定位RAID型号 | `lspci \| grep -i raid` | | `dmidecode` | 获取制造商和固件信息 | `sudo dmidecode -t storage` | | 厂商工具(MegaCLI等) | 查看详细RAID配置和磁盘状态 | `sudo MegaCli -PDList -aALL`| | 系统日志 | 排查RAID相关事件或错误 | `sudo dmesg \| grep raid` | --- ### 注意事项 1. **权限问题**:大部分命令需要 `root` 权限,使用 `sudo` 或切换到root用户 2. **工具兼容性**:不同厂商RAID需使用对应工具(如LSI用MegaCLI,HP用ssacli) 3. **驱动状态**:若RAID未识别,检查驱动是否加载(`lsmod | grep raid`)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值