如何使用 megacli 创建 Raid 10

如何使用 megacli 创建 Raid 10

我有 OpenFiler 存储服务器。

在不安装 Windows 和 MSM 的情况下,我想从磁盘 2 到 21 创建 raid10 阵列。

我已经成功将 MegaCli 安装到 OpenFiler,但我仍在寻找创建 raid 10 阵列的正确命令行。

文档说创建 raid 10 的语法是:

MegaCli -CfgSpanAdd -r10 -Array0[E:S,E:S] -Array1[E:S,E:S] -aN

我的机柜 ID 是 25,因此:

[root@linux-h5ut ~]# MegaCli -CfgSpanAdd -r10 -Array0[E25:S02,E25:S21] -Array1[E25:S02,E25:S21] WB Cached NoCachedBadBBU -a0
Invalid input at or near token E

我已经在 Google 上搜索过了,但似乎没有任何使用 megaraid 执行 raid10 的例子(只有语法)。

谁能解释一下哪里出了问题?

答案1

响应 a 创建 Raid 10(不是 Raid 6)

  1. 首先获取适配器

    # MegaCli Adpallinfo -aall | grep '^Adapter'  
    Adapter #0   
    

    MegaCli 或 megacli 取决于发行版 *nix

    在这种情况下适配器是Adapter #0

  2. 获取设备ID和插槽盘值:

     # MegaCli64 -PDlist -aall | grep -e '^Enclosure Device ID:' -e '^Slot Number:'
     Enclosure Device ID: 252
     Slot Number: 0
     Enclosure Device ID: 252
     Slot Number: 1
     Enclosure Device ID: 252
     Slot Number: 2
     Enclosure Device ID: 252
     Slot Number: 3
    

    在这种情况下,ID 为 252

  3. 根据梅加克利 创建 RAID 10 的命令是MegaCli -CfgSpanAdd -r10 -Array0[E:S,E:S] -Array1[E:S,E:S] -aN

    MegaCli -CfgSpanAdd -R10 -Array0[252:0,252:2] -Array1[252:1,252:3] -a0
    

    在这种情况下,创建 RAID 10,使用磁盘 0 和 2 为 Raid1 创建其中一个阵列,使用磁盘 1 和 3 为 Raid1 创建另一个阵列,并且 N = 0(-a0)

  4. 验证 RAID

     # megasasctl
     a0       LSI MegaRAID SAS 9271-4i encl:1 ldrv:1  batt:FAULT, low voltage, charge failed
     a0d0      1489GiB RAID 10  2x2  optimal
     a0e252s0    745GiB  a0d0  online
     a0e252s1    745GiB  a0d0  online
     a0e252s2    745GiB  a0d0  online
     a0e252s3    745GiB  a0d0  online
    

    或者如果megasasctl不可用:

     # MegaCli -LDInfo -Lall -aALL
     Adapter 0 -- Virtual Drive Information:
     Virtual Disk: 0 (Target Id: 0)
     Name:
     RAID Level: Primary-1, Secondary-0, RAID Level Qualifier-0
     Size:1.454 TB
     State: Optimal
     Stripe Size: 256 KB
     Number Of Drives per span:2
     Span Depth:2
     Default Cache Policy: WriteBack, ReadAhead, Direct, No Write Cache if Bad BBU
     Current Cache Policy: WriteBack, ReadAhead, Direct, No Write Cache if Bad BBU
     Access Policy: Read/Write
     Disk Cache Policy: Enabled
     Encryption Type: None
    

答案2

您没有理解手册页。E25:S02 - 它就像应该具有 int 值的变量。您所需要的:

1.获取适配器ID(在我的示例中为0):

root@sto# megacli Adpallinfo -aall | grep '^Adapter'                                                    
Adapter #0

2.获取E和S值:

megacli -PDlist -aall | grep -e '^Enclosure Device ID:' -e '^Slot Number:'

你会得到类似这样的结果:

Enclosure Device ID: 20
Slot Number: 0
Enclosure Device ID: 20
Slot Number: 1
Enclosure Device ID: 20
Slot Number: 2
Enclosure Device ID: 20
Slot Number: 3
Enclosure Device ID: 20
Slot Number: 4

这是您的 E 和 S 号码,例如 20:0、20:1、20:2、20:3、20:4 因此,创建例如 RAID6 的命令将是:

megacli -CfgLdAdd -r6 [20:0,20:1,20:2,20:3,20:4] -a0

答案3

我用过它(几个月前创建了 raid 50):

megacli -CfgSpanAdd -r50 -Array0[252:2,252:3,252:4] Array1[252:5,252:6,252:7] WB RA Direct CachedBadBBU -a0

IBM x3560 和:

Product Name    : ServeRAID M5015 SAS/SATA Controller
Serial No       : SV14018726
FW Package Build: 12.13.0-0179

答案4

似乎我应该不是使用 E 和 S 字母。

一开始我明白正确地并尝试了无字母操作但也得到了无效令牌错误因为我使用的是-aALL而不是-a0(“如果你只有一个控制器,可以安全地使用 ALL,而不是特定的 ID"),然后读取站点上显示“E 是驱动器所在的机箱设备 ID,S 是插槽号”,因此得出结论,我应该用实际 ID 替换 E 和 S。:(

相关内容