![3ware 9650SE:此备用单元只能更换相同接口类型的故障驱动器](https://linux22.com/image/565085/3ware%209650SE%EF%BC%9A%E6%AD%A4%E5%A4%87%E7%94%A8%E5%8D%95%E5%85%83%E5%8F%AA%E8%83%BD%E6%9B%B4%E6%8D%A2%E7%9B%B8%E5%90%8C%E6%8E%A5%E5%8F%A3%E7%B1%BB%E5%9E%8B%E7%9A%84%E6%95%85%E9%9A%9C%E9%A9%B1%E5%8A%A8%E5%99%A8.png)
我刚刚向阵列添加了一个备用磁盘:
Unit UnitType Status %RCmpl %V/I/M Stripe Size(GB) Cache AVrfy
------------------------------------------------------------------------------
u0 RAID-6 OK - - 256K 5587.9 RiW ON
u1 SPARE OK - - - 1863.01 - OFF
VPort Status Unit Size Type Phy Encl-Slot Model
------------------------------------------------------------------------------
p0 OK u0 1.82 TB SATA 0 - ST32000542AS
p1 OK u0 1.82 TB SATA 1 - ST32000542AS
p2 OK u0 1.82 TB SATA 2 - ST32000542AS
p3 OK u0 1.82 TB SATA 3 - ST32000542AS
p4 OK u0 1.82 TB SATA 4 - ST32000542AS
p5 OK u1 1.82 TB SATA 5 - WDC WD2002FYPS-02W3
当我这样做时,tw_cli 说了这样的话:
Creating new unit on controller /c0 ... Done. The new unit is /c0/u1.
WARNING: This Spare unit may replace failed drive of same interface type only.
这个警告是什么意思?
最近,我为另一台几乎相同的机器(同样是 9650SE)添加了一个备用磁盘,没有任何问题。唯一的区别是,在另一台机器中,阵列由 WDC WD2002FYPS-02W3 磁盘组成,并向其中添加了一个。在此阵列中,阵列由 ST32000542AS 磁盘组成,并向其中添加了一个 WDC WD2002FYPS-02W3。
这是关于接口类型的警告,但都是 SATA,所以我不明白。
这是否与 WDC WD2002FYPS-02W3 是 4k 扇区驱动器而 ST32000542AS 不是有关?
这引出了一个问题:9650 SE 如何对齐数据?它兼容 4k 吗?或者也许只有在检测到 4k 扇区磁盘时才会对齐 4k(在这种情况下,添加 4k 驱动器作为备用驱动器会出现问题)。
答案1
对于您的硬件,可以忽略有关接口类型的警告,因为 9650SE 是仅支持 SATA 的控制器。但是,可以使用相同的 tw_cli 实用程序来管理较新的卡(如 9690SA),这些卡同时支持 SATA 和 SAS 驱动器,但不允许在同一阵列中混合使用 SATA 和 SAS。
WDC WD2002FYPS 似乎不使用 4k 扇区——至少规格表没有在任何地方提到“高级格式”,因此它不应该有任何对齐问题。这款硬盘甚至被列入 9650SE 的官方兼容性列表中(但即使知识库 15573说只有 9690SA 才需要将速度限制为 1.5 Gbps,而 9650SE 的实际兼容性列表则显示“仅当链接速度设置为 1.5 Gb/秒时才兼容;参见 KB 15573”)。
3ware 9xxx 系列控制器将 DCB(阵列配置数据)放置在每个驱动器的末尾,并且用户数据从 LBA 0 开始写入(例如,参见这和这由于对齐问题是由于控制器本身的缺陷(而不是对齐柱),因此控制器本身不应该存在任何对齐问题。
但是,即使使用 512 字节扇区的磁盘,也存在对齐问题(在 9690SA 上测试过,不确定 9650SE 是否存在同样的问题)。当您使用自动雕刻(/cx set autocarve=on
或 BIOS 中的等效选项)或 BIOS 中的“启动卷”选项从单个阵列创建多个卷时,指定的卷大小将减少 1 个(512 字节)扇区,并且除第一个卷之外的所有卷都将与底层 RAID 条带不对齐。这可以在输出中观察到tw_cli /cx show diag
- 控制器日志以十六进制形式包含卷的起始扇区号,通常应以 00000 结尾(1 GiB 是 0x200000 个扇区),但在糟糕的情况下,它们以 FFFFF、FFFFE 结尾,...,因此您将看到类似以下内容:
LUN 0x0 Start LBA 0x0 Size 0xf9ffffff
LUN 0x1 Start LBA 0xf9ffffff Size 0xd7a80001
或者(使用 40 GiB 启动卷和 2048 GiB 自动雕刻 - 注意对齐移位累积):
LUN 0x0 Start LBA 0x0 Size 0x4ffffff
LUN 0x1 Start LBA 0x4ffffff Size 0xffffffff
LUN 0x2 Start LBA 0x104fffffe Size 0x583e0002
(好吧,在这种情况下 0xffffffff 自动雕刻大小限制是合理的,但不能成为破坏以下卷对齐的借口 - 要么应该跳过多余的扇区,要么将允许的最大自动雕刻大小设置为 2047 GiB。)
唯一正常工作的选项是tw_cli /cx add ... vol=a:b:c:d
(明确指定除最后一个卷之外的所有所需卷的大小)。它提供正确对齐的起始扇区 — 例如vol=2000
:
LUN 0x0 Start LBA 0x0 Size 0xfa000000
LUN 0x1 Start LBA 0xfa000000 Size 0xd7a80000