12 适用于 MD 软件 RAID 的存储机箱 LED 实用程序 #
    存储机柜 LED 监控实用程序 (ledmon) 和 LED 控件 (ledctl) 实用程序都是 Linux 用户空间应用程序,可使用多种接口和协议来控制存储机柜 LED。主要用途是视觉化显示使用 mdadm 实用程序创建的 Linux MD 软件 RAID 设备的状态。ledmon 守护程序会监控驱动器阵列的状态,并更新驱动器 LED 的状态。您可以使用 ledctl 实用程序为指定的设备设置 LED 模式。
   
这些 LED 实用程序使用 SGPIO(通用串行输入/输出)规范(小型 (SFF) 8485)以及 SCSI 机箱服务 (SES) 2 协议控制 LED。它们实施 SGPIO 的 SFF-8489 规范中的国际闪烁模式解释 (IBPI) 模式。IBPI 定义了 SGPIO 标准将如何解释成驱动器以及底板上各插槽的状态,以及底板将如何通过 LED 视觉化显示状态。
有些存储机箱并未严格遵循 SFF-8489 规范。机箱处理器可能会接受 IBPI 模式,但不会按照 SFF-8489 规范闪烁 LED,或者处理器可能仅支持部分 IBPI 模式。
ledmon 和 ledctl 实用程序不支持 LED 管理 (AHCI) 和 SAF-TE 协议。
 
ledmon 和 ledctl 应用程序经验证可以用于 Intel AHCI 控制器以及 Intel SAS 控制器等 Intel 存储控制器。它们还支持使用 PCIe-SSD(固态硬盘)机箱 LED 来控制属于 MD 软件 RAID 卷一部分的 PCIe-SSD 设备的存储机箱状态(正常、故障、正在重建)LED。这些应用程序也可能可以用于其他供应商提供的符合 IBPI 的存储控制器(特别是 SAS/SCSI 控制器);不过其他供应商的控制器未经过测试。
 
ledmon 和 ledctl 是 ledmon 软件包的一部分,默认情况下不会安装该软件包。运行 sudo zypper in
  ledmon 可安装该软件包。
 
12.1 存储设备机箱 LED 监控服务 #
ledmon 应用程序是一个守护程序进程,它会持续监控 MD 软件 RAID 设备的状态或存储机箱或驱动器机架中块设备的状态。一次只能运行一个该守护程序的实例。ledmon 守护程序是 Intel 机箱 LED 实用程序的一部分。
  
状态通过与存储阵列机箱或驱动器机架中的每个槽对应的 LED 视觉化显示。应用程序会监控所有软件 RAID 设备并视觉化显示其状态。无法通过该应用程序仅监控选定的软件 RAID 卷。
ledmon 守护程序支持两种 LED 系统:双 LED 系统(活动 LED 和状态 LED)与三 LED 系统(活动 LED、定位 LED 和失败 LED)。此工具在访问 LED 时具有最高优先级。
  
   要启动 ledmon,请输入
  
>sudoledmon [options]
其中 [options] 是下列一或多项:
ledmon 的选项 #- -c PATH,- --confg=PATH
- 配置从 - ~/.ledctl或- /etc/ledcfg.conf(如果存在)中读取。使用此选项来指定替代的配置文件。- 目前此选项无效,因为尚未实施对配置文件的支持。有关详细信息,请参见 - man 5 ledctl.conf。
- -l PATH , --log=PATH
- 设置本地日志文件的路径。如果指定此用户定义的文件,将不会使用全局日志文件 - /var/log/ledmon.log。
- -t SECONDS,- --interval=SECONDS
- 设置 - sysfs的扫描间隔时间。该值以秒为单位。最小值为 5 秒。不指定最大值。
- --quiet,- --error,- --warning,- --info,- --debug,- --all
- 指定冗长级别。级别选项按从无信息到最详细信息的顺序指定。使用 - --quiet选项不会记录任何内容。使用- --all选项则可记录所有内容。如果指定多个冗长选项,则会应用命令中的最后一个选项。
- -h,- --help
- 将命令信息打印至控制台,然后退出。 
- -v,- --version
- 显示 - ledmon的版本以及许可证的相关信息,然后退出。
ledmon 守护程序无法识别 SFF-8489 规范中的 PFA(故障预警分析)状态。因此无法视觉化显示 PFA 模式。
   
12.2 存储机箱 LED 控制应用程序 #
   机箱 LED 应用程序 (ledctl) 是一款用户空间应用程序,用于控制与存储机箱或驱动器机架中每个槽相关联的 LED。ledctl 应用程序是 Intel 机箱 LED 实用程序的组成部分。
  
   在您发出命令时,指定设备的 LED 将被设置为指定的模式,并且所有其他的 LED 都将关闭。运行此应用程序需要 root 权限。由于 ledmon 应用程序在访问 LED 时具有最高优先级,因此如果 ledmon 守护程序正在运行,则由 ledctl 设置的某些模式可能不起作用(“查找”模式除外)。
  
ledctl 应用程序支持两种 LED 系统:双 LED 系统(活动 LED 和状态 LED)与三 LED 系统(活动 LED、失败 LED 和定位 LED)。
  
   要启动 ledctl,请输入
  
>sudo[options] PATTERN_NAME=list_of_devices
其中 [options] 是下列一或多项:
- -c PATH,- --confg=PATH
- 设置本地配置文件的路径。如果指定此选项,则全局配置文件和用户配置文件都将失效。 
- -l PATH , --log=PATH
- 设置本地日志文件的路径。如果指定此用户定义的文件,将不会使用全局日志文件 - /var/log/ledmon.log。
- --quiet
- 关闭所有向 - stdout或从- stderr发送的消息。但本地文件和- syslog工具中仍会记录这些消息。
- -h,- --help
- 将命令信息打印至控制台,然后退出。 
- -v,- --version
- 显示 - ledctl的版本以及许可证的相关信息,然后退出。
12.2.1 模式名称 #
    根据 SFF-8489 规范,ledctl 应用程序接受以下  参数的名称。
   
- locate
- 打开与指定设备或空槽相关的查找 LED。此状态用于标识槽或驱动器。 
- locate_off
- 关闭与指定设备或空槽相关的查找 LED。 
- normal
- 关闭与指定设备相关的状态 LED、故障 LED 以及查找 LED。 
- off
- 仅关闭与指定设备相关的状态 LED 和故障 LED。 
- ica,- degraded
- 可视化显示 - In a Critical Array模式。
- rebuild,- rebuild_p
- 可视化显示 - Rebuild模式。由于兼容性和旧版原因,支持两种重构建状态。
- ifa,- failed_array
- 可视化显示 - In a Failed Array模式。
- hotspare
- 可视化显示 - Hotspare模式。
- pfa
- 可视化显示 - Predicted Failure Analysis模式。
- failure,- disk_failed
- 可视化显示 - Failure模式。
- ses_abort
- SES-2 R/R ABORT 
- ses_rebuild
- SES-2 REBUILD/REMAP 
- ses_ifa
- SES-2 IN FAILED ARRAY 
- ses_ica
- SES-2 IN CRITICAL ARRAY 
- ses_cons_check
- SES-2 CONS CHECK 
- ses_hotspare
- SES-2 HOTSPARE 
- ses_rsvd_dev
- SES-2 RSVD DEVICE 
- ses_ok
- SES-2 OK 
- ses_ident
- SES-2 IDENT 
- ses_rm
- SES-2 REMOVE 
- ses_insert
- SES-2 INSERT 
- ses_missing
- SES-2 MISSING 
- ses_dnr
- SES-2 DO NOT REMOVE 
- ses_active
- SES-2 ACTIVE 
- ses_enable_bb
- SES-2 ENABLE BYP B 
- ses_enable_ba
- SES-2 ENABLE BYP A 
- ses_devoff
- SES-2 DEVICE OFF 
- ses_fault
- SES-2 FAULT 
将非 SES-2 模式发送至机箱中的设备时,该模式会自动转换为上面所示的 SCSI 机箱服务 (SES) 2 模式。
| 非 SES-2 模式 | SES-2 模式 | 
|---|---|
| locate | ses_ident | 
| locate_off | ses_ident | 
| normal | ses_ok | 
| off | ses_ok | 
| ica | ses_ica | 
| degraded | ses_ica | 
| 重构建 | ses_rebuild | 
| rebuild_p | ses_rebuild | 
| ifa | ses_ifa | 
| failed_array | ses_ifa | 
| hotspare | ses_hotspare | 
| pfa | ses_rsvd_dev | 
| failure | ses_fault | 
| disk_failed | ses_fault | 
12.2.2 设备列表 #
    当您发出 ledctl 命令时,指定设备的 LED 会设置为指定的模式,并且所有其他 LED 都会关闭。设备列表可采用以下两种格式中的一种提供:
   
- 以逗号分隔且无空格的设备列表 
- 以空格分隔且用花括号括住的设备列表 
如果在同一个命令中指定多个模式,则每一个模式的设备列表可以使用相同格式也可以使用不同格式。有关显示两种列表格式的示例,请参见第 12.2.3 节 “示例”。
    设备就是指向 /dev 目录或 /sys/block 目录中文件的路径。该路径可以标识块设备、MD 软件 RAID 设备或容器设备。对于软件 RAID 设备或容器设备,会为所有关联的块设备设置所报告的 LED 状态。
   
list_of_devices 中列出设备的 LED 将被设置为指定模式 pattern_name 并且所有其他 LED 都将关闭。
12.2.3 示例 #
查找单个块设备:
>sudoledctl locate=/dev/sda
若要关闭单个块设备的“查找 LED”,请执行以下步骤:
>sudoledctl locate_off=/dev/sda
查找 MD 软件 RAID 设备的磁盘,并同时为两个块设备设置重构建模式:
>sudoledctl locate=/dev/md127 rebuild={ /sys/block/sd[a-b] }
关闭指定设备的“状态 LED”和“故障 LED”:
>sudoledctl off={ /dev/sda /dev/sdb }
要找到三个块设备,请运行以下命令之一(两个命令是等效的):
>sudoledctl locate=/dev/sda,/dev/sdb,/dev/sdc>sudoledctl locate={ /dev/sda /dev/sdb /dev/sdc }
12.3 更多信息 #
有关 LED 模式以及监控工具的详细信息,请参见以下资源: