文章目录
前言
RAID在服务器上使用的非常普遍,可以说没有哪个现代服务器能离开RAID。常见的RAID级别有RAID 0、RAID 1、RAID 5、RAID 10、RAID50、RAID60等等。常见的RAID控制器有MegaRAID、DELL PERC系列、浪潮PM系列等等。之前浪潮的RAID和MegaRAID我已经论述过了,今天讲一下我用过的另一款RAID:DELL PERC 9系列的H330 Mini。
一、DELL PERC是什么?
Dell PERC (PowerEdge RAID Controller), computer hardware used in Dell PowerEdge servers。
一言以蔽之,就是一种RAID卡。
二、部署
每一种RAID都有一个自己的cli,PERC 9使用的cli叫perccli。在Ubuntu-18.04上我没有找到apt的源,所以没有办法使用apt下载,我去官方找了一个适用于CentOS-7的rpm包并将它移植到Ubuntu上了,实测Ubuntu-18.04是可以使用的。如果你不愿意去官网找就下载我从CentOS-7移植(移动)过来的。
1.下载
注意:工具只有64位的,而且我的服务器系统是18.04,没在>18.04的系统上测试过!
2.安装
安装方法
tar -xmf perccli.tar
sudo mkdir /opt/MegaRAID
sudo mv perccli /opt/MegaRAID
sudo ln -s /opt/MegaRAID/perccli/perccli64 /usr/sbin/perccli64
三、使用
你要有一个perccli支持的RAID卡,我的型号是PERC H330 Mini,实测可以支持。理论上这个软件应该是支持所有PERC 9系列的卡,10和11没有测试过,请谨慎操作!
1.查看perccli版本
有些操作可能需要特定的cli版本才行,可以使用这个命令查看cli版本。
不需要sudo权限
perccli64 -v
输出
PercCli SAS Customization Utility Ver 1.17.10 October 21, 2015
(c)Copyright 2015, AVAGO Corporation, All Rights Reserved.
Exit Code: 0x00
2.查看控制器数目
我前面说的PERC H330 Mini就是一个RAID控制器,RAID控制器一般能拖动不少硬盘,我这款最大支持128个硬盘(我插了10块不到)。所以,好多小型的服务器只有一个RAID控制器就够用了。
需要sudo权限
sudo perccli64 show ctrlcount
输出
Status Code = 0
Status = Success
Description = None
Controller Count = 1
Controller Count = 1:我只有一块H330 Mini
3.查看帮助信息
这些帮助信息几乎没什么用,它只能显示所有的命令列表,没有对命令的说明。方便一时想不起来命令的管理员使用。
不需要sudo权限
perccli64 show help
输出所有命令列表,太长了,不一一列举
4.查看概览信息
这个命令输出控制器信息,驱动器信息和一些配置信息。
需要sudo权限
sudo perccli64 show all
输出
Status Code = 0
Status = Success
Description = None
Number of Controllers = 1
Host Name = ******
Operating System = Linux4.15.0-163-generic
System Overview :
===============
-------------------------------------------------------------------------
Ctl Model Ports PDs DGs DNOpt VDs VNOpt BBU sPR DS EHS ASOs Hlth
-------------------------------------------------------------------------
0 PERCH330Mini 8 8 2 0 2 0 Msng On 3 N 0 Opt
-------------------------------------------------------------------------
Ctl=Controller Index|DGs=Drive groups|VDs=Virtual drives|Fld=Failed
PDs=Physical drives|DNOpt=DG NotOptimal|VNOpt=VD NotOptimal|Opt=Optimal
Msng=Missing|Dgd=Degraded|NdAtn=Need Attention|Unkwn=Unknown
sPR=Scheduled Patrol Read|DS=DimmerSwitch|EHS=Emergency Hot Spare
Y=Yes|N=No|ASOs=Advanced Software Options|BBU=Battery backup unit
Hlth=Health|Safe=Safe-mode boot
ASO :
===
----
Ctl
----
0
----
Cl=Cluster|MD=Max Disks|WC=Wide Cache|SS=Safe Store|FP=Fast Path|Re=Recovery
CR=CacheCade(Read)|RF=Reduced Feature Set|CO=Cache Offload
CW=CacheCade(Read/Write)|X=Not Available/Not Installed|U=Unlimited|T=Trial
|HA=High Availability |SSHA=Single server High Availability
5.控制器相关命令
前面的命令都不需要指定操作哪个控制器,因为它们是和控制器无关的命令。接下来要操作的命令是针对某一个控制器的,第一个控制器ID是0,第二个是1,依此类推。
1.查看工作模式
sudo perccli64 /c0 show personality
Controller = 0
Status = Success
Description = None
Controller Properties :
=====================
----------------------------------
Ctrl_Prop Value
----------------------------------
Current Personality RAID-Mode
Supported Personalities HBA
----------------------------------
我这款控制器有两种工作模式RAID-Mode和HBA。RAID-Mode就是让控制器接管硬盘,通过创建RAID并让内核识别为一个虚拟设备,通俗点说就是你插一个硬盘它是不在/dev目录里显示的,直到你将它加入一个VG它才会以一个独立块设备在/dev目录里显示出来。而,HBA恰恰相反,直接暴露给内核,不用配置VG也能在/dev里面显示。
Current Personality:我当前的配置是RAID-Mode
Supported Personalities:这块RAID卡支持HBA模式
注意:RAID-Mode和HBA之间切换不是随意切换的,需要满足指定条件:
• 必须移除或删除所有虚拟磁盘。
• 必须删除热备盘,或将其用于其他用途。
• 必须清除或删除所有的外部配置。
• 必须移除所有处于故障状态的物理磁盘。
• 必须删除任何与 SED 关联的本地安全密钥。
除非必要不建议来回切换,一般安装了RAID卡都是为了配置RAID-Mode。
2.查看控制器摘要信息
此命令显示控制器信息的摘要。该摘要包括基本控制器信息、外部配置、驱动器组、虚拟驱动器、物理驱动器、存储模块和 BBU 信息。如果使用 JBOD 选项,则该命令将显示 JBOD 列表中显示的所有非 RAID 磁盘。如果物理磁盘为非 RAID,则其类型设置为 JBOD,其状态设置为联机。
sudo perccli64 /c0 show
3.查看控制器汇总信息
此命令显示所有控制器信息,包括基本控制器信息、总线信息、控制器状态、高级软件选项、控制器策略、控制器默认值、控制器功能、计划任务、其他属性、外部配置、驱动器组、虚拟驱动器、物理驱动器、存储模块和 BBU 信息。
sudo perccli64 /c0 show all
输出太长了,截取一部分
Virtual Drives = 2
VD LIST :
=======
---------------------------------------------------------------
DG/VD TYPE State Access Consist Cache Cac sCC Size Name
---------------------------------------------------------------
0/0 RAID1 Optl RW Yes NRWTD - OFF 893.75 GB
1/1 RAID10 Optl RW Yes NRWTD - OFF 21.830 TB
---------------------------------------------------------------
Cac=CacheCade|Rec=Recovery|OfLn=OffLine|Pdgd=Partially Degraded|dgrd=Degraded
Optl=Optimal|RO=Read Only|RW=Read Write|HD=Hidden|B=Blocked|Consist=Consistent|
R=Read Ahead Always|NR=No Read Ahead|WB=WriteBack|
AWB=Always WriteBack|WT=WriteThrough|C=Cached IO|D=Direct IO|sCC=Scheduled
Check Consistency
Physical Drives = 8
PD LIST :
=======
---------------------------------------------------------------------------
EID:Slt DID State DG Size Intf Med SED PI SeSz Model Sp
---------------------------------------------------------------------------
32:0 0 Onln 0 893.75 GB SATA SSD N N 512B INTEL SSDSC2KB960G8 U
32:1 1 Onln 0 893.75 GB SATA SSD N N 512B INTEL SSDSC2KB960G8 U
32:2 2 Onln 1 7.276 TB SAS HDD N N 512B ST8000NM0185 U
32:3 3 Onln 1 7.276 TB SAS HDD N N 512B ST8000NM0185 U
32:4 4 Onln 1 7.276 TB SAS HDD N N 512B ST8000NM0185 U
32:5 5 Onln 1 7.276 TB SAS HDD N N 512B ST8000NM0185 U
32:6 6 Onln 1 7.276 TB SAS HDD N N 512B ST8000NM0185 U
32:7 7 Onln 1 7.276 TB SAS HDD N N 512B ST8000NM0185 U
---------------------------------------------------------------------------
EID-Enclosure Device ID|Slt-Slot No.|DID-Device ID|DG-DriveGroup
DHS-Dedicated Hot Spare|UGood-Unconfigured Good|GHS-Global Hotspare
UBad-Unconfigured Bad|Onln-Online|Offln-Offline|Intf-Interface
Med-Media Type|SED-Self Encryptive Drive|PI-Protection Info
SeSz-Sector Size|Sp-Spun|U-Up|D-Down|T-Transition|F-Foreign
UGUnsp-Unsupported|UGShld-UnConfigured shielded|HSPShld-Hotspare shielded
CFShld-Configured shielded|Cpybck-CopyBack|CBShld-Copyback Shielded
更多用法请查询官方文档。
6.驱动器相关命令
就是查看物理磁盘相关的命令。先回到上面获取到的PD List:
PD LIST :
=======
---------------------------------------------------------------------------
EID:Slt DID State DG Size Intf Med SED PI SeSz Model Sp
---------------------------------------------------------------------------
32:0 0 Onln 0 893.75 GB SATA SSD N N 512B INTEL SSDSC2KB960G8 U
32:1 1 Onln 0 893.75 GB SATA SSD N N 512B INTEL SSDSC2KB960G8 U
32:2 2 Onln 1 7.276 TB SAS HDD N N 512B ST8000NM0185 U
32:3 3 Onln 1 7.276 TB SAS HDD N N 512B ST8000NM0185 U
32:4 4 Onln 1 7.276 TB SAS HDD N N 512B ST8000NM0185 U
32:5 5 Onln 1 7.276 TB SAS HDD N N 512B ST8000NM0185 U
32:6 6 Onln 1 7.276 TB SAS HDD N N 512B ST8000NM0185 U
32:7 7 Onln 1 7.276 TB SAS HDD N N 512B ST8000NM0185 U
---------------------------------------------------------------------------
重点关注EID(Enclosure Device ID)和Slt(Slot Number),这个后面会用到。这个就像是一种定位物理磁盘的方法一样,如果你想在RAID控制器里唯一标识一块磁盘你就要同时知道Controller ID,EID和Slt这三个。
1.查看驱动器摘要信息
sudo perccli64 /c0/e32/s0 show
Controller = 0
Status = Success
Description = Show Drive Information Succeeded.
Drive Information :
=================
---------------------------------------------------------------------------
EID:Slt DID State DG Size Intf Med SED PI SeSz Model Sp
---------------------------------------------------------------------------
32:0 0 Onln 0 893.75 GB SATA SSD N N 512B INTEL SSDSC2KB960G8 U
---------------------------------------------------------------------------
EID-Enclosure Device ID|Slt-Slot No.|DID-Device ID|DG-DriveGroup
DHS-Dedicated Hot Spare|UGood-Unconfigured Good|GHS-Global Hotspare
UBad-Unconfigured Bad|Onln-Online|Offln-Offline|Intf-Interface
Med-Media Type|SED-Self Encryptive Drive|PI-Protection Info
SeSz-Sector Size|Sp-Spun|U-Up|D-Down|T-Transition|F-Foreign
UGUnsp-Unsupported|UGShld-UnConfigured shielded|HSPShld-Hotspare shielded
CFShld-Configured shielded|Cpybck-CopyBack|CBShld-Copyback Shielded
查询同一个EID下的多块磁盘
sudo perccli64 /c0/e32/s0,1 show
或
sudo perccli64 /c0/e32/s0-1 show
s0,1:查询0和1两块磁盘
s0-1:查询0到1之间的磁盘包括0和1
查询同一个EID下的所有磁盘
sudo perccli64 /c0/e32/sall show
2.查看驱动器汇总信息
sudo perccli64 /c0/e32/s0 show all
查询多个磁盘和上面用法一样。
更多用法请查询官方文档。
7.虚拟驱动器相关命令
前面已经说了,RAID-Mode这种模式下,PD必须通过RAID转化成VD才能被内核识别使用。
Virtual Drives = 2
VD LIST :
=======
---------------------------------------------------------------
DG/VD TYPE State Access Consist Cache Cac sCC Size Name
---------------------------------------------------------------
0/0 RAID1 Optl RW Yes NRWTD - OFF 893.75 GB
1/1 RAID10 Optl RW Yes NRWTD - OFF 21.830 TB
---------------------------------------------------------------
记住VD这个字段,后面会用到。列表里可以看到我创建了两个VD,分别是0和1,可以理解成VD的ID。
1.查询虚拟驱动器的摘要信息
sudo perccli64 /c0/v0 show
Controller = 0
Status = Success
Description = None
Virtual Drives :
==============
--------------------------------------------------------------
DG/VD TYPE State Access Consist Cache Cac sCC Size Name
--------------------------------------------------------------
0/0 RAID1 Optl RW Yes NRWTD - OFF 893.75 GB
--------------------------------------------------------------
Cac=CacheCade|Rec=Recovery|OfLn=OffLine|Pdgd=Partially Degraded|dgrd=Degraded
Optl=Optimal|RO=Read Only|RW=Read Write|HD=Hidden|B=Blocked|Consist=Consistent|
R=Read Ahead Always|NR=No Read Ahead|WB=WriteBack|
AWB=Always WriteBack|WT=WriteThrough|C=Cached IO|D=Direct IO|sCC=Scheduled
Check Consistency
查询多个虚拟驱动器的摘要信息
sudo perccli64 /c0/v0,1 show
或
sudo perccli64 /c0/v0-1 show
v0,1:虚拟驱动器0和1
v0-1:虚拟驱动器0到1范围,包括0和1
查询所有虚拟驱动器的摘要信息
sudo perccli64 /c0/vall show
2.查询虚拟驱动器的汇总信息
sudo perccli64 /c0/v0 show all
除了上面的虚拟驱动器列表信息以外还显示其它配置项:
PDs for VD 0 :
============
---------------------------------------------------------------------------
EID:Slt DID State DG Size Intf Med SED PI SeSz Model Sp
---------------------------------------------------------------------------
32:0 0 Onln 0 893.75 GB SATA SSD N N 512B INTEL SSDSC2KB960G8 U
32:1 1 Onln 0 893.75 GB SATA SSD N N 512B INTEL SSDSC2KB960G8 U
---------------------------------------------------------------------------
EID-Enclosure Device ID|Slt-Slot No.|DID-Device ID|DG-DriveGroup
DHS-Dedicated Hot Spare|UGood-Unconfigured Good|GHS-Global Hotspare
UBad-Unconfigured Bad|Onln-Online|Offln-Offline|Intf-Interface
Med-Media Type|SED-Self Encryptive Drive|PI-Protection Info
SeSz-Sector Size|Sp-Spun|U-Up|D-Down|T-Transition|F-Foreign
UGUnsp-Unsupported|UGShld-UnConfigured shielded|HSPShld-Hotspare shielded
CFShld-Configured shielded|Cpybck-CopyBack|CBShld-Copyback Shielded
VD0 Properties :
==============
Strip Size = 64 KB
Number of Blocks = 1874329600
VD has Emulated PD = Yes
Span Depth = 1
Number of Drives Per Span = 2
Write Cache(initial setting) = WriteThrough
Disk Cache Policy = Disk's Default
Encryption = None
Data Protection = None
Active Operations = None
Exposed to OS = Yes
Creation Date = 04-08-2020
Creation Time = 03:06:04 PM
Emulation type = default
Cachebypass size = Cachebypass-64k
Cachebypass Mode = Cachebypass Intelligent
Is LD Ready for OS Requests = Yes
查询多个和所有命令和上面一样。
总结
1、因为服务器时一直运行中的,所以没办法去重新做RAID测试,手上也没有多余的硬盘可以插上去,所以就暂时没有写配置相关的命令,等有空再说吧。
2、切记滥用sudo权限导致误操作,show命令是查询命令,不会对服务器运行产生影响。