perccli 命令简单介绍(扩容篇)

perccli 命令简单介绍

1.简介:

perccli 是一个用于管理和监控 Dell PowerEdge 服务器硬件 RAID 控制器的命令行工具。它允许管理员执行各种操作,包括创建、配置、监控和维护 RAID 阵列,以确保服务器的存储子系统稳定运行。以下是一些常见的 perccli 命令和其简要介绍:

请注意,以下命令中的 `/cX`、`/vY`、`/eY` 和 `/sZ` 表示控制器、虚拟磁盘、磁盘扩展和磁盘槽的占位符,具体取决于您的硬件配置。使用 `perccli` 命令时,您需要根据您的 RAID 控制器和存储配置来替换这些占位符。此外,确保在执行任何有关 RAID 控制器的操作之前,充分了解您的硬件配置,以防止意外数据丢失或配置更改。在实际操作之前,请查阅 Dell PowerEdge 服务器的 RAID 控制器文档和 `perccli` 的帮助文档以获取更多详细信息。
1. perccli /cX/vY show:
   显示指定 RAID 控制器(`/cX`)上的虚拟磁盘(`/vY`)的详细信息,包括状态、容量和成员磁盘信息。

2. perccli /cX/eY/sZ show
   显示指定 RAID 控制器(`/cX`)上的磁盘(`/eY/sZ`)的详细信息,包括状态、型号和容量。

3. perccli /cX/vY start init
   启动指定虚拟磁盘(`/cX/vY`)上的初始化过程,该过程用于创建虚拟磁盘或重新建立故障磁盘。

4. perccli /cX/vY show rebuild
   显示指定虚拟磁盘(`/cX/vY`)上的重建状态,以查看正在进行的重建操作。

5. perccli /cX add vd ...
   创建新的虚拟磁盘(VD)并将物理磁盘添加到虚拟磁盘中。您可以指定 RAID 级别、容量和其他参数。

6. perccli /cX/dY show all
   显示指定 RAID 控制器(`/cX`)上的物理磁盘(`/dY`)的全部信息,包括状态、型号和连接性。

7. perccli /cX/eY/sZ delete
   删除指定物理磁盘(`/cX/eY/sZ`)上的虚拟磁盘或虚拟磁盘组。

8. perccli /cX/bbu show
   显示指定 RAID 控制器(`/cX`)上的电池备份单元(BBU)的状态和信息。

9. perccli /cX/eY/sZ start locate
   启动指定物理磁盘(`/cX/eY/sZ`)的定位操作,通常用于识别具体磁盘。

10. perccli /cX/eY/sZ stop locate
    停止指定物理磁盘(`/cX/eY/sZ`)的定位操作。

2.添加一个raid 阵列(发现无法实现自动扩容)

将物理机上的第4和5 磁盘为 做raid 1 (wb) [启用写回缓存,这会加快写入性能但也会增加数据丢失的风险]
/opt/MegaRAID/perccli/perccli64 /c0 add vd r1 drives=32:4-5 wb
/opt/MegaRAID/perccli/perccli64 /c0 add vd r1 drives=32:8-9 wb
perccli /c0 set jbod=on pdlist=32:4

3.将JBOD状态变更为UGood 状态

Physical Drives = 8

PD LIST :
=======

---------------------------------------------------------------------------------
EID:Slt DID State DG       Size Intf Med SED PI SeSz Model               Sp Type 
---------------------------------------------------------------------------------
32:0      0 Onln   0 893.750 GB SATA SSD N   N  512B INTEL SSDSC2KB960G8 U  -    
32:1      1 Onln   0 893.750 GB SATA SSD N   N  512B INTEL SSDSC2KB960G8 U  -    
32:2      2 Onln   0 893.750 GB SATA SSD N   N  512B INTEL SSDSC2KB960G8 U  -    
32:3      3 Onln   0 893.750 GB SATA SSD N   N  512B INTEL SSDSC2KB960G8 U  -    
32:4      4 JBOD   -   1.746 TB SATA SSD N   N  512B INTEL SSDSC2KG019T8 U  -    
32:5      5 JBOD   -   1.746 TB SATA SSD N   N  512B INTEL SSDSC2KG019T8 U  -    
32:6      6 JBOD   -  16.371 TB SAS  HDD N   N  512B WUH721818AL5204     U  -    
32:7      7 JBOD   -  16.371 TB SAS  HDD N   N  512B WUH721818AL5204     U  -    
---------------------------------------------------------------------------------

# perccli /c0 set jbod=on pdlist=32:4

4.扩展一个 RAID 10 阵列

保持raid 源阵列不变,后续增加硬盘容量,不会全部被使用

您需要确保您的 RAID 控制器和硬盘支持在线扩展(Online Expansion)功能,并且在执行操作之前备份重要数据。扩展 RAID 阵列通常需要以下步骤:

添加新硬盘: 首先,您需要将新的硬盘添加到服务器,并确保它们已经被识别并连接到 RAID 控制器。这些硬盘应该是与现有 RAID 10 阵列兼容的。
查看当前 RAID 阵列的状态: 运行以下命令以查看当前 RAID 10 阵列的状态,找出您要扩展的虚拟磁盘(通常以 vdX 标识):


# perccli /c0/vall show
请注意虚拟磁盘的编号(vdX)。
执行在线扩展操作: 使用以下命令来执行在线扩展操作,将新添加的硬盘扩展到 RAID 10 阵列中。请将 vdX 替换为您要扩展的虚拟磁盘编号。

# perccli /c0/vdX start migrate type=raid10 option=add drives=32:Y,32:Z
其中,Y 和 Z 是新添加硬盘的位置。这个命令将启动在线扩展操作,将新硬盘添加到 RAID 10 阵列中。请等待扩展操作完成。
监视扩展进度: 您可以使用以下命令来监视扩展进度:

# perccli /c0/vdX show migrate
检查虚拟磁盘的状态以确保扩展操作已完成。

确认扩展完成: 一旦扩展操作完成,您可以再次运行 perccli /c0/vall show 命令来验证 RAID 10 阵列的大小已经扩展了。

请注意,执行在线扩展操作是一项复杂的任务,具体步骤可能会根据您的 RAID 控制器和硬件配置而有所不同。确保在执行操作之前详细阅读 RAID 控制器的文档,并谨慎操作,以避免数据丢失。如果不确定如何执行扩展操作,建议咨询硬件供应商或戴尔的技术支持。

5.启动 RAID 阵列的重建操作(raid 0 -->raid 1)

全过程:

  • 背景:原先是 SSD 600G raid1 ,换了一块硬盘

  • 目标:扩容raid 1

  • 过程:硬盘不够,采购未到,应SAS 替换 不适配

为了扩容 将 960SSD插入后,做好U盘启动镜像,将600G 数据拷贝到960G 硬盘,待硬盘到后 将raid 0 重建成raid 1

#查看硬盘信息:
/opt/MegaRAID/MegaCli/MegaCli64 -PDList -aAll
#移除坏的硬盘
/opt/MegaRAID/MegaCli/MegaCli64 -pdmarkmissing -PhysDrv '[32:1]' -a0
/opt/MegaRAID/MegaCli/MegaCli64 -pdprprmv -PhysDrv '[32:1]' -a0
#闪灯显示要拔出的硬盘
/opt/MegaRAID/MegaCli/MegaCli64 -PdLocate -start -PhysDrv '[32:1]' -a0
/opt/MegaRAID/MegaCli/MegaCli64 -PdLocate -stop -PhysDrv '[32:1]' -a0
#替换 RAID 阵列中的一个缺失的物理硬盘
/opt/MegaRAID/MegaCli/MegaCli64 -PdReplaceMissing -physdrv '[32:1]' -array0 -row1 -a0

smartctl 命令是用于监测和管理硬盘驱动器的工具,它允许您获取硬盘的健康状态和性能信息,以及执行一些硬盘相关的操作。
检查硬盘信息:smartctl -i /dev/sda
检查 SMART 数据:smartctl -a /dev/sda
自检硬盘:smartctl -t long /dev/sda
执行自动测试:smartctl -t short /dev/sda
预测硬盘故障:smartctl -H /dev/sda

#新建raid0 
/opt/MegaRAID/MegaCli/MegaCli64 -CfgLdAdd -r0 '[32:1]' WT Direct NoCachedBadBBU -a 0

#获取 MegaRAID 控制器的事件日志中最新的 100 条事件记录
MegaCli64 -adpeventlog  -GetLatest 100 -a0
#调整 /dev/sdb3 上的物理卷的大小。扩展物理卷
pvresize /dev/sdb3
#例: 缩小物理卷   pvresize --setphysicalvolumesize SIZE /dev/sdb3
# 扩展一个逻辑卷(Logical Volume),并在扩展后自动调整文件系统大小以适应新的卷大小
lvextend -l 100%VG -r /dev/cl/root

# ipmitool event
# ipmitool event 命令是用于获取 IPMI(Intelligent Platform Management Interface)事件日志的工具
列出事件日志:
使用 ipmitool event list 或简写的 ipmitool sel list 命令可以列出设备上的 IPMI 事件日志。这些事件日志包含有关硬件、传感器状态、警报和其他系统事件的信息。
清除事件日志:
使用 ipmitool sel clear 命令可以清除事件日志中的条目。这在需要清除旧事件或重新开始记录事件时很有用。
获取事件日志信息:
ipmitool sel elist 命令用于获取事件日志中的详细信息,包括每个事件的时间戳、事件类型、事件数据等

背景:原先是raid 0, 加一块硬盘扩容成raid 1

并将一块物理硬盘添加到指定的 RAID 1 逻辑驱动器中

# /opt/MegaRAID/MegaCli/MegaCli64 -LDRecon -Start -r1 -Add -Physdrv '[32:0]' -L2 -a0

-LDRecon -Start -r1: 这一部分告诉 MegaCli 启动 RAID 阵列的重建操作,并且 -r1 表示操作的目标 RAID 级别是 RAID 1。重建操作通常用于恢复故障或替换的硬盘。

-Add -Physdrv '[32:0]': 这一部分指定要添加到 RAID 1 逻辑驱动器中的物理硬盘。[32:0] 表示硬盘的位置,其中 32 是外壳(Enclosure)号,0 是插槽(Slot)号。这告诉 MegaCli 要将外壳 32 的插槽 0 上的硬盘添加到 RAID 1 逻辑驱动器中。这通常用于将新硬盘添加到 RAID 1 阵列以替代故障的硬盘。

-L2: 这部分表示操作将应用于逻辑驱动器 2。-L 后面的数字是目标逻辑驱动器的编号。您需要将其替换为实际要操作的逻辑驱动器编号。

-a0: 这表示要操作的适配器的编号。通常,适配器编号为 0。如果系统中有多个适配器,您需要选择正确的适配器编号。

# 显示构建进度
# /opt/MegaRAID/MegaCli/MegaCli64 -LDRecon -ShowProg -L2 -a0
  908  /opt/MegaRAID/MegaCli/MegaCli64 -PDList -a0
  909  /opt/MegaRAID/MegaCli/MegaCli64 -PDOffline -PhysDrv'[32:1]'
  910  /opt/MegaRAID/MegaCli/MegaCli64 -PDOffline -PhysDrv '[32:1]' -a0
  911  /opt/MegaRAID/MegaCli/MegaCli64 -pdmarkmissing -PhysDrv '[32:1]' -a0
  912  /opt/MegaRAID/MegaCli/MegaCli64 -pdprprmv -PhysDrv '[32:1]' -a0
  913  /opt/MegaRAID/MegaCli/MegaCli64 -PdLocate -start -PhysDrv '[32:1]' -a0
  914  /opt/MegaRAID/MegaCli/MegaCli64 -PdLocate -stop -PhysDrv '[32:1]' -a0
  915   /opt/MegaRAID/MegaCli/MegaCli64 -PdGetMissing -a 0
  916  /opt/MegaRAID/MegaCli/MegaCli64 -PdGetMissing -a 0
  917  /opt/MegaRAID/MegaCli/MegaCli64 -LdPdInfo -a0
  918  /opt/MegaRAID/MegaCli/MegaCli64 -PdReplaceMissing -physdrv '[32:1]' -array0 -row1 -a0
MegaCli64 -LDInit -ShowProg 命令用于初始化 RAID 阵列,并显示初始化进度。以下是命令的各个参数和含义:
-LDInit: 这个参数告诉 MegaCli 要执行 RAID 阵列的初始化操作。RAID 阵列初始化是在创建新的 RAID 阵列或添加新硬盘到现有阵列时执行的操作。初始化过程涉及构建阵列并写入初始数据。
-ShowProg: 这个参数告诉 MegaCli 在执行初始化操作时显示初始化进度信息。这样,您可以跟踪初始化的状态和进度。
#  936  /opt/MegaRAID/MegaCli/MegaCli64 -LDRecon -ShowProg -L0 -a0
# 扩展(Expand)RAID 逻辑驱动器(Logical Drive)。 
-LdExpansion: 这个参数告诉 MegaCli64 执行 RAID 逻辑驱动器的扩展操作。
-p100: 这个参数指定了扩展操作的百分比。在这里,-p100 表示要将逻辑驱动器扩展到 100% 的大小,即使用所有可用的空间。
-dontExpandArray: 这个参数告诉 MegaCli64 不要扩展阵列(Array),仅扩展逻辑驱动器。这意味着您只扩展逻辑驱动器的容量,而不改变底层 RAID 阵列的配置。
-L0: 这个参数指定要扩展的目标 RAID 逻辑驱动器。在这里,-L0 表示扩展逻辑驱动器 0。
-a0: 这个参数指定要操作的适配器的编号。通常,适配器编号为 0。如果系统中有多个适配器,您需要选择正确的适配器编号。
# /opt/MegaRAID/MegaCli/MegaCli64 -LdExpansion -p100 -dontExpandArray -L0 -a0

# 取消磁盘 闪烁
  993  /opt/MegaRAID/MegaCli/MegaCli64 -PdLocate -stop -physdrv '[32:0]' -a0
  994  /opt/MegaRAID/MegaCli/MegaCli64 -PdLocate -stop -physdrv '[32:1]' -a0

6.扩容lvm

背景:原来是4块960 SSD 做的raid10 ,现在根分区满了

目标:扩容根分区大小

过程:增加两块2TB SSD硬盘 做raid 1 创建分区 卷组加入到根分区卷组,从而实现根分区的扩容

(优点:无需关机,动态扩容)

(缺点:只会将前面的盘写满,才会写入后面的盘)

解决方案:数据导出,重建raid

/opt/MegaRAID/perccli/perccli64 /c0 add vd r1 drives=32:4-5 wb
fdisk /dev/sdd
pvcreate /dev/sdd1
vgextend cl /dev/sdd1
lvextend -l 100%vg -r /dev/cl/root

udevadm control --reload-rules  
udevadm control --reload-rules 是一个用于重新加载 udev 规则的命令。udev 是一个在 Linux 系统中用于设备管理的守护进程,它负责识别和管理硬件设备的插拔、设备信息的创建、设备文件的管理等任务。udev 使用一组规则来定义设备的行为和属性。

当您对系统中的 udev 规则进行更改时,例如添加新规则或编辑现有规则,您需要通知 udev 重新加载规则,以使更改生效。这时就可以使用 udevadm control --reload-rules 命令
udevadm trigger 命令用于触发 udev 事件处理系统,以重新扫描和处理硬件设备,特别是重新加载 udev 规则并重新创建设备节点。这个命令通常用于在运行时(runtime)触发 udev 处理,而不需要重启系统来应用新的 udev 规则或处理硬件设备的更改。

具体来说,udev 是 Linux 中的设备管理守护程序,负责在硬件设备插入、拔出或发生其他变化时自动创建或删除相关的设备文件(通常在 /dev 目录下),并应用特定的规则来定义设备的行为和属性。

使用 udevadm trigger 命令时,它会引发以下操作:

重新加载 udev 规则:udev 规则文件通常位于 /etc/udev/rules.d/ 目录中,而 udevadm trigger 命令将重新加载这些规则,以便应用任何更改。

重新扫描硬件设备:udev 将重新扫描系统中的硬件设备,包括已插入或拔出的设备。

创建设备节点:udev 将根据规则为每个设备创建适当的设备节点,以便用户空间程序可以与硬件设备进行通信。

这个命令通常在以下情况下很有用:

当您添加、更改或删除 udev 规则时,可以使用 udevadm trigger 来立即应用这些更改,而无需重启系统。

当您插入或拔出硬件设备(如 USB 设备、磁盘驱动器等)后,可以使用 udevadm trigger 来触发 udev 重新扫描和创建设备节点,以便新设备能够立即在系统中使用。

请注意,执行 udevadm trigger 可能需要管理员权限(通常使用 sudo 命令),因为它涉及到设备管理和硬件配置。此外,具体的效果和操作可能因您的 udev 配置和规则而异。

---------------------------------------------------------
[root@node2 ~]# lsblk 
NAME                                                                                                  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                                                                                                     8:0    0  1.8T  0 disk 
├─sda1                                                                                                  8:1    0  600M  0 part /boot/efi
├─sda2                                                                                                  8:2    0    1G  0 part /boot
└─sda3                                                                                                  8:3    0  1.8T  0 part 
  ├─cl-root                                                                                           253:0    0  3.5T  0 lvm  /
  └─cl-swap                                                                                           253:1    0    4G  0 lvm  [SWAP]
sdd                                                                                                     8:48   0  1.8T  0 disk 
└─sdd1                                                                                                  8:49   0  1.8T  0 part 
  └─cl-root                                                                                           253:0    0  3.5T  0 lvm  /
[root@node2 ~]# fdisk -l 
Disk /dev/sda: 1.8 TiB, 1919313510400 bytes, 3748659200 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: ACD48C34-87B8-4CF8-A25E-B44F6998DF30

Device       Start        End    Sectors  Size Type
/dev/sda1     2048    1230847    1228800  600M EFI System
/dev/sda2  1230848    3327999    2097152    1G Linux filesystem
/dev/sda3  3328000 3748657151 3745329152  1.8T Linux LVM

Disk /dev/mapper/cl-root: 3.5 TiB, 3833023430656 bytes, 7486373888 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

Disk /dev/mapper/cl-swap: 4 GiB, 4294967296 bytes, 8388608 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

Disk /dev/sdd: 1.8 TiB, 1919716163584 bytes, 3749445632 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: C8966A2D-F080-DA44-8A5E-8AD82F028A80

Device     Start        End    Sectors  Size Type
/dev/sdd1   2048 3749445598 3749443551  1.8T Linux filesystem
posted @ 2023-09-13 14:31  赵财进宝  阅读(671)  评论(0编辑  收藏  举报