9560-8i的raid卡设置工作模式均失败

问题描述

如图,设置RAID工作模式时报错:

2026-03-25 07:50:35.376678 storage ERROR: rpc_service_controller.lua(707): [Storage]Failed to set work mode and ret: 4248.
2026-03-25 07:50:35.378414 storage ERROR: rpc_service_controller.lua(334): [Storage]Failed to SetWorkMode, and return: 4248
2026-03-25 07:50:35.379053 storage WARNING: init.lua(97): model.lua:3306 > rpc_service_controller.lua:338 > error_engine.lua:423: Requested operation cannot be performed because there were volumes or enhanced physical drives.

搜了下,错误码对应的十六进制是0x1098

这句“由于存在配置操作不能执行”是啥意思?我用deepseek搜了下,意思是卡可能不支持?

设置为JBOD模式,报错:

2026-03-25 08:01:00.291764 storage NOTICE: rpc_service_controller.lua(322): [Storage]Start SetWorkMode of Controller0
2026-03-25 08:01:02.841868 storage ERROR: rpc_service_controller.lua(707): [Storage]Failed to set work mode and ret: 4099.
2026-03-25 08:01:02.842647 storage ERROR: rpc_service_controller.lua(334): [Storage]Failed to SetWorkMode, and return: 4099
2026-03-25 08:01:02.844252 storage WARNING: init.lua(97): model.lua:3306 > rpc_service_controller.lua:338 > error_engine.lua:423: The RAID controller does not support modification of the property WorkMode.

入参错误

那这张raid卡是工作模式都不能设置的意思么?这符合预期么

答案内容由AI生成,仅供参考:

:white_check_mark: 最终结论

  1. “由于存在配置操作不能执行” 是标准保护机制,意味着不能在有 RAID 阵列或磁盘配置的前提下切换模式。
  2. “不支持修改 WorkMode” 是因为 带外管理接口(BMC→RAID 卡)本质只读,无法下发修改指令
  3. 该行为符合预期,并非 Bug。
  4. 正确做法
    ➤ 如需修改 Work Mode,请在 服务器开机时进入 Ctrl+R 配置界面 操作;
    ➤ 或在操作系统中使用 storcli 工具,先清除配置后再切换模式。
点击此处查看详细分析解答

关于 MegaRAID 9560-8i RAID 卡设置工作模式失败的问题分析

根据您提供的日志、错误码及配置信息,以下是对此问题的完整分析与解答。


:magnifying_glass_tilted_left: 问题描述

用户尝试对 MegaRAID 9560-8i RAID 控制器进行“工作模式(Work Mode)”设置(如设置为 RAIDJBOD),但在执行操作时出现以下两种报错:

  1. 设置为 RAID 模式时报错:

    Failed to set work mode and ret: 4248
    Requested operation cannot be performed because there were volumes or enhanced physical drives.
    
  2. 设置为 JBOD 模式时报错:

    Failed to set work mode and ret: 4099
    The RAID controller does not support modification of the property WorkMode.
    

此外,该 RAID 卡当前显示为 JBOD 模式,且存在逻辑/物理驱动器配置。


:puzzle_piece: 错误码解析

从提供的头文件宏定义来看,返回码是基于 SML_ERR_CODE_BASE(0x1000)扩展的。将十进制错误码转换为十六进制后分析如下:

:white_check_mark: 错误码 42480x1098

对应宏定义:

#define SML_ERR_CONFIG_PRESENT_ERROR (SML_ERR_CODE_BASE + 0x98)

即:

由于存在配置,操作不能执行(Operation not possible because configuration is present)

:white_check_mark: 含义说明:

  • 当前 RAID 控制器上 已存在 RAID 阵列、逻辑盘或增强物理驱动器(Enhanced Physical Drives)
  • 在有数据配置存在的情况下,不允许更改工作模式(如从 JBOD 切换到 RAID 或反之)
  • 需先 清除现有配置 才能切换模式

:white_check_mark: 这类限制常见于企业级 RAID 控制器,以防止误操作导致数据丢失。


:white_check_mark: 错误码 40990x1003

对应宏定义:

#define SML_ERR_INVALID_PARAMETER (SML_ERR_CODE_BASE + 0x03)

但日志中进一步提示:

"The RAID controller does not support modification of the property WorkMode."

这表明:

当前控制器 不支持通过带外管理接口动态修改 Work Mode 属性


:gear: MegaRAID 9560-8i 工作模式设置机制说明

1. 工作模式(Work Mode)类型

  • RAID:启用 RAID 功能,可创建 RAID 0/1/10 等阵列
  • JBOD:直通模式,每块硬盘独立暴露给操作系统
  • Mixed / HBA:混合或主机总线适配器模式(部分型号支持)

2. 设置方式对比

设置方式 是否支持动态修改 说明
BIOS/UEFI 配置界面(启动时按 Ctrl+R) :white_check_mark: 支持 是官方推荐的修改 Work Mode 的方式
带外管理(Out-of-Band, 如 BMC) :cross_mark: 不支持动态修改 多数 Broadcom MegaRAID 卡仅允许 读取 当前模式,不可写入更改
命令行工具(storcli/megacli) :white_check_mark: 支持 在 OS 中运行,可操作

:pushpin: 结论:您当前使用的 BMC 带外管理界面尝试修改 Work Mode 是不被支持的行为,因此报错“The RAID controller does not support modification of the property WorkMode.”属于预期行为。


:pushpin: “由于存在配置操作不能执行”是什么意思?

即使您换到 BIOS 或命令行尝试修改 Work Mode,若当前控制器上存在:

  • 逻辑驱动器(Logical Drives)
  • RAID 阵列
  • Foreign 配置
  • 缓存中的元数据

切换模式的操作会被阻止,以防止数据丢失。

:wrench: 举例:

  • 如果您之前在 RAID 模式下创建过 RAID1,而现在想切换为 JBOD,必须先:
    1. 删除所有逻辑驱动器
    2. 清除 Foreign 配置(如有)
    3. 清空控制器配置
  • 否则,控制器会拒绝模式变更请求。

:red_question_mark: 这张卡真的不能设置工作模式吗?是否符合预期?

:white_check_mark: 回答:是的,这种行为符合预期

原因如下:

原因 说明
1. 带外管理限制 当前通过 BMC over IPMI/MCTP/I2C 调用闭源 SDK 只能读取控制器状态,不能执行某些高权限变更操作(如 SetWorkMode),这是设计上的安全限制
2. 控制器保护机制 存在逻辑盘或物理盘配置时禁止模式切换,防止误操作导致数据丢失
3. 修改 Work Mode 需进入 BIOS 正确修改 MegaRAID 卡工作模式的方式是在 服务器开机自检阶段按 Ctrl+R 进入 RAID BIOS 配置界面 进行设置

:white_check_mark: 正确设置 MegaRAID 9560-8i 工作模式的步骤

:warning: 注意:以下操作可能导致数据丢失,请提前备份!

:white_check_mark: 方法一:通过 BIOS 设置(推荐)

  1. 重启服务器
  2. 开机过程中按 Ctrl + R 进入 MegaRAID BIOS Configuration Utility
  3. 进入 Controller Properties > Advanced Options
  4. 查看并修改:
    • Controller Mode → 可选 RAID, JBOD
    • 注意:若提示“Configuration exists”,需先删除已有阵列
  5. 保存退出,重启生效

:white_check_mark: 此方法是唯一被 Broadcom 官方支持的修改方式。


:white_check_mark: 方法二:使用 storcli 命令行工具(Linux/Windows)

# 查看控制器状态
storcli /c0 show

# 显示当前工作模式
storcli /c0 show mode

# 若支持,可尝试设置为 JBOD 模式(非所有版本支持)
storcli /c0 set property=jbdtonly=value

注意:9560-8i 是否支持 JBOD 模式需查阅 Broadcom 官方文档,部分旧固件可能不支持动态切换。


:hammer_and_wrench: 解决建议总结

问题 解决方案
设置 RAID 模式失败(0x1098) ➤ 必须先清除控制器上的 RAID 配置和逻辑盘
➤ 使用 storcli 或 BIOS 删除阵列:
storcli /c0/v0 del
storcli /c0 delete config
设置 JBOD 模式失败(0x1003) ➤ 带外管理不支持动态修改 WorkMode
进入 BIOS 设置才是正确途径
显示“操作不可能:存在卷” ➤ 控制器上有残留配置,需手动清除
➤ 检查是否有 Foreign 配置,使用 Import ForeignClear Foreign
BBU 不在位 ➤ 不影响模式设置,但会影响缓存策略(WriteBack 可能被禁用)

:books: 补充知识:MegaRAID 9560-8i 特性摘要

属性
型号 MegaRAID 9560-8i
制造商 Broadcom(原 Avago/LSI)
接口 PCIe Gen4 x8, SAS 12Gb/s
内存 4GB DDR4
支持 RAID 级别 RAID 0, 1, 10
是否支持 JBOD :white_check_mark: 支持(需 BIOS 设置)
是否支持带外管理 :white_check_mark: 是(用于状态监控)
是否支持远程修改 WorkMode :cross_mark: 否(仅能读取)

:white_check_mark: 最终结论

  1. “由于存在配置操作不能执行” 是标准保护机制,意味着不能在有 RAID 阵列或磁盘配置的前提下切换模式。
  2. “不支持修改 WorkMode” 是因为 带外管理接口(BMC→RAID 卡)本质只读,无法下发修改指令
  3. 该行为符合预期,并非 Bug。
  4. 正确做法
    ➤ 如需修改 Work Mode,请在 服务器开机时进入 Ctrl+R 配置界面 操作;
    ➤ 或在操作系统中使用 storcli 工具,先清除配置后再切换模式。

:pushpin: 建议操作流程图:

graph TD
    A[开始] --> B{是否要更改工作模式?}
    B -->|是| C[进入服务器BIOS/RAID配置界面]
    C --> D[检查是否存在RAID阵列或逻辑盘]
    D -->|存在| E[删除阵列/清除配置]
    D -->|不存在| F[设置WorkMode为RAID/JBOD]
    E --> F
    F --> G[保存并重启]
    G --> H[完成]

如仍有疑问,建议参考 Broadcom 官方文档:
:blue_book: MegaRAID SAS 9560-8i 用户手册

看了下似乎是正常的,不过前端工作模式这里不能显示当前模式么。。放个请选择也太怪了


这里有显示当前工作模式

这个我看到了,

选择工作模式的时候没办法看到当前模式这个是符合预期的么?我看前端的仓库里有段是,JBOD模式下无法查看当前模式,RAID模式下可以看到当前模式,还没协调到环境做验证是不是RAID模式下,这个图片里就能看到当前工作模式了