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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类