1. arcconf工具原理与使用方法全面解析

arcconf是一款功能强大的命令行工具,主要用于管理和配置基于Intel、Microchip(原PMC)等厂商的RAID控制器。本文将深入探讨arcconf的工作原理、功能特性以及详细使用方法,帮助您掌握这一重要工具。

arcconf工具概述

arcconf是一个专业的RAID管理工具,它通过命令行接口提供对RAID控制器的全面控制能力。根据不同的操作系统和硬件平台,arcconf有多个版本:

  1. Linux版本:主要用于管理和配置基于Intel的RAID控制器,支持RAID阵列的创建、删除、修改以及状态监控等功能

  2. Windows版本:在Windows系统中,arcconf可用于配置网络接口卡(NIC)设置,管理网络连接,优化网络性能

  3. 跨平台版本:适用于Microchip(原PMC)阵列卡,包括P430系列、HBA-1000-M2-1、H460、P460、P2404、P4408、PM8204系列等

arcconf工作原理

arcconf通过与RAID控制器的固件进行通信来实现各种管理功能,其核心工作原理包括:

  1. 直接硬件访问:arcconf绕过操作系统存储子系统,直接与RAID控制器硬件通信,提供更底层的控制能力

  2. 命令解析与执行:工具接收用户输入的命令,将其转换为控制器可理解的指令,然后执行并返回结果

  3. 状态监控机制:通过轮询控制器状态寄存器,实时获取RAID阵列和物理磁盘的健康状况

  4. 配置管理:能够读取和修改控制器的非易失性存储器(NVRAM)中的配置信息

arcconf的这种工作方式使其能够实现比图形界面工具更精细的控制,特别适合自动化脚本和远程管理场景。

arcconf安装与获取

Linux系统安装

在Linux系统中,arcconf通常需要手动安装:

  1. 下载工具包

    • 可以从H3C等服务器厂商官网下载,按"支持机型"、"关键字"(阵列卡型号)、"版本类型"、"组件类型"等选项筛选

    • 例如Lenovo提供的软件包名称为:lnvgy_utl_storage-adapter_smartpqi.arcconf-24763-0_linux_x86-64.tgz

  2. 解压安装

    tar xvf lnvgy_utl_storage-adapter_smartpqi.arcconf-24763-0_linux_x86-64.tgz
    cd lnvgy_utl_storage-adapter_smartpqi.arcconf-24763-0_linux_x86-64/linux_x64/cmdline/
    chmod +x ./arcconf
    
  3. RPM安装(可选)

    rpm -ivh Arcconf-4.01-24763.x86_64.rpm
    

    安装后工具位于/usr/Arcconf

Windows系统安装

在Windows系统中,arcconf通常随系统一起安装,无需额外安装步骤。要验证是否已安装,可在命令提示符中输入arcconf,如果系统响应则表明已安装。

arcconf基本命令结构

arcconf命令遵循统一的语法结构:

arcconf [主命令] [控制器编号] [子命令] [参数]

典型命令组成:

  • 控制器编号:通常为1,表示第一个控制器

  • 设备标识:由channel#和ID#组成,如0 8表示channel 0, device 8

  • 逻辑设备号:表示RAID阵列的编号,如logicaldrive 0

arcconf核心功能与使用示例

1. 控制器与设备信息查询

  • 列出所有控制器

    arcconf list
    
  • 查看控制器详细信息

    arcconf getconfig 1
    
  • 查看物理磁盘信息

    arcconf getconfig 1 pd
    

    此命令可查看物理盘的channel和ID(Reported Channel,Device(T:L)对应项),以及磁盘状态(如raw/ready)

  • 查看逻辑磁盘(RAID阵列)信息

    arcconf getconfig 1 ld
    
  • 查看固件版本

    arcconf getversion 1
    

2. 磁盘初始化与状态管理

新插入的硬盘通常处于raw状态,需要初始化后才能使用:

  • 初始化单个磁盘

    arcconf task start 1 device 0 8 initialize
    
  • 初始化所有磁盘

    arcconf task start 1 device all initialize
    
  • 去初始化磁盘(将ready状态盘变回raw状态)

    arcconf task start 1 device 0 8 uninitialize
    
  • 安全擦除磁盘

    arcconf task start 1 device 0 5 secureerase
    

3. RAID阵列管理

创建RAID阵列

基本创建命令格式:

arcconf create 1 logicaldrive [options] size RAID级别 channel# ID# [channel# ID#]...
  • 创建RAID 0

    arcconf create 1 logicaldrive max 0 0 0
    
  • 创建RAID 1

    arcconf create 1 logicaldrive max 1 0 0 0 1
    
  • 创建RAID 5

    arcconf create 1 logicaldrive Method quick max 5 0 0 0 1 0 2 0 3
    
  • 创建RAID 6

    arcconf create 1 logicaldrive Method quick max 6 0 8 0 9 0 10
    
  • 创建RAID 10

    arcconf create 1 logicaldrive max 10 0 0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 0 10 0 11
    

创建时可指定参数:

  • size:逻辑盘大小(MB),max表示使用全部空间

  • Method:初始化方法,可选quick(快速初始化)、buildclear

  • stripesize:条带大小(8,16...1024),默认为256

  • name:逻辑盘名称,如Name LdRaid0

  • priority:优先级(lowmedhigh)

  • Rcache/Wcache:读/写缓存设置(ron/roff)

删除RAID阵列

  • 删除单个逻辑盘

    arcconf delete 1 logicaldrive 0
    
  • 删除所有逻辑盘

    arcconf delete 1 logicaldrive all
    

4. 热备盘管理

热备盘(Hot Spare)是RAID系统中重要的冗余组件,arcconf提供了完善的热备盘管理功能:

  • 设置全局热备盘

    arcconf setstate 1 device 0 3 hsp
    
  • 设置专属热备盘(为特定RAID阵列)

    arcconf setstate 1 device 0 19 hsp logicaldrive 0
    
  • 取消热备盘设置

    arcconf setstate 1 device 0 3 rdy
    

5. 磁盘定位与状态灯控制

在维护多磁盘系统时,定位特定磁盘非常重要:

  • 开启硬盘定位灯

    arcconf identify 1 device 0 4
    
  • 点亮RAID组中硬盘定位灯5秒

    arcconf identify 1 logicaldrive 1 time 5
    
  • 点亮4槽位硬盘定位灯30秒

    arcconf identify 1 DEVICE 0 4 TIME 30
    
  • 熄灭所有硬盘定位灯

    arcconf identify 1 all stop
    
  • 熄灭4槽位硬盘定位灯

    arcconf identify 1 0 4 stop
    

6. 引导设置

  • 设置虚拟磁盘1为主引导设备

    arcconf SETBOOT 1 LOGICALDRIVE 0 TYPE Primary
    
  • 设置虚拟磁盘1为非引导设备

    arcconf SETBOOT 1 LOGICALDRIVE 0 TYPE None
    
  • 设置物理磁盘6为辅助引导设备

    arcconf SETBOOT 1 DEVICE 0 6 TYPE Secondary
    

7. 缓存设置

  • 设置逻辑磁盘0启用缓存

    arcconf setcache 1 logicaldrive 0 con
    
  • 设置所有物理磁盘启用缓存

    arcconf setcache 1 deviceall 0 enable
    

8. 高级功能

  • 保存支持存档(收集日志)

    arcconf SAVESUPPORTARCHIVE
    

    日志默认保存在/var/log/Support

  • 设置后台重建任务优先级

    arcconf setpriority 1 REBUILD MEDIUM
    
  • 查询任务状态

    arcconf getstatus 1
    
  • 设置RAID卡工作模式

    arcconf setcontrollermode 1 3
    
  • 设置SATA硬盘密码

    arcconf atapassword 1 set zte 0 0
    

数据采集与监控

arcconf可用于采集服务器硬盘的健康状态和数据量信息:

  1. 查询硬盘信息

    arcconf getconfig 1 pd
    
  2. 查看数据写入量

    命令输出中包含:

    Sectors Reads :4815
    Sectors Written :0 /*写入数据的扇区数量*/
    Sectors Hours :1
    
  3. 计算数据写入量(TB)

    数据写入量 = Sectors Written × 512 / 10^12
    

    这种方法适用于SATA和SAS接口类型的硬盘

常见问题排查

问题1:无法识别RAID控制器

可能原因

  • 内核模块未加载

  • 控制器硬件故障

解决方法

  1. 确保相关内核模块已加载

  2. 检查控制器是否正确连接并开启

问题2:RAID阵列状态异常

可能原因

  • 磁盘故障

  • 控制器配置错误

解决方法

  1. 使用arcconf查看阵列状态:

    arcconf getconfig 1 ld
    
  2. 如果发现故障磁盘,尝试替换并重建阵列:

    arcconf replace 1 device 0 8 0 9
    

    其中0 8是故障盘,0 9是热备盘

使用技巧与最佳实践

  1. 自动化脚本

    通过编写shell脚本或批处理文件,可以自动化arcconf的常见任务。例如Windows下的批处理脚本:

    @echo off
    arcconf add
    arcconf set 1 protocol TCP/IP
    
  2. 环境变量简化

    设置环境变量可以简化命令输入:

    set arcconf_cmd=arcconf

    然后使用%arcconf_cmd%代替完整路径

  3. 组建RAID前确认

    • 建议在组建RAID前确认目标硬盘槽位与DevID的对应关系:

      arcconf getconfig 1 pd
    • 在单独接12LFF前部背板的情况下,第一块盘slot 0对应的channel# ID#为0 8,第二块盘slot 1对应0 9,以此类推

  4. 初始化方法选择

    • 生产环境中建议选择快速初始化(Method quick)以节省时间

    • 安全敏感场景可使用完整初始化确保数据彻底清除

  5. 固件升级

    arcconf支持控制器固件升级:

    arcconf romupdate 1 firmware.bin

不同平台差异

  1. Linux vs Windows

    • Linux版arcconf主要用于RAID管理

    • Windows版还可用于网络接口卡配置

  2. PMC阵列卡专用命令

    部分PMC阵列卡支持特殊命令如:

    • PHYERRORLOG:显示PHY错误日志

    • EXPANDERLIST:列出连接到控制器的扩展器

    • EXPANDERUPGRADE:更新扩展器固件

总结

arcconf是一款功能强大、用途广泛的存储管理工具,无论是Linux还是Windows平台,都能提供专业的RAID和存储设备管理能力。通过命令行界面,arcconf实现了对存储控制器底层的精细控制,特别适合服务器管理、数据中心运维等专业场景。

掌握arcconf的使用方法,可以帮助系统管理员:

  • 快速部署和配置RAID存储

  • 实时监控磁盘健康状态

  • 及时处理磁盘故障和阵列异常

  • 自动化存储管理任务

  • 收集详细的存储系统日志用于分析

随着Microchip Raid/HBA卡的广泛使用,对arcconf这类命令行工具的需求会持续增长,它是专业存储管理人员工具箱中不可或缺的利器。