我正在尝试让 dmraid 正确检测现有的 RAID 10 阵列,该阵列在 Windows 7 中运行良好。总之,驱动器设置和 bios 分区如下:
2 个 SSD(120 GB),RAID 0。
分成:
180 GB (win7)
和58 GB (Ubuntu)
。在 Ubuntu 中检测和安装均正常。
4 个 HDD(2 TB),RAID 1+0。单个 4TB 分区。
在 ubuntu 中不起作用。
Ubuntu 本身安装在分区的条带磁盘对上,并且运行良好。两个分区(180 GB 和 58 GB)对应于以下 LVM(我擅自格式化了数据以便于阅读):
#$ sudo dmsetup info /dev/dm-{1,2,3,4,5} |----------+--------+---------------+-----------+--------| | dev/dm-0 | ubuntu | pdc_hjijcjji | 容器 | | 58 GB | | dev/dm-1 | ubuntu | pdc_hjijcjji1 | / | ext4 | 54 GB | | dev/dm-2 | Ubuntu | pdc_hjijcjji2 | |延伸 | 4.3 GB | | dev/dm-3 | win 7 | pdc_fjhhdeeg | 容器 | | 180 GB | | dev/dm-4 | ubuntu | pdc_hjijcjji5 | | 交换 | 4.3 GB | | dev/dm-5 | win 7 | pdc_fjhhdeeg1 | | ntfs | 180 GB | |----------+--------+---------------+-----------+--------|
Raid 10 阵列(我需要帮助才能在 Ubuntu 中运行)由四个 2TB 磁盘组成,并产生一个 4TB 阵列。它似乎dmraid
知道这个阵列,给出以下输出:
#$ sudo dmraid -r |----------+--------+------------------+--------+---------+----------------+---------| | 设备 | 格式 | 名称 | 类型 | 状态?| 大小(扇区)| ?| |----------+--------+------------------+--------+---------+----------------+---------| | /dev/sdf | pdc | pdc_fjhhdeeg | 条纹 | ok | 175781248 | 数据@ 0 | | /dev/sde | pdc | pdc_fjhhdeeg | 条纹 | ok | 175781248 | 数据@ 0 | | /dev/sdd | pdc | pdc_bjibibahah-1 | 条纹 | 确定 | 1758766336 | 数据@ 0 | | /dev/sdc | pdc | pdc_bjibibahah-1 | 条纹 | 确定 | 1758766336 | 数据@ 0 | | /dev/sda | pdc | pdc_bjibibahah-0 | 条纹 | 确定 | 1758766336 | 数据@ 0 | | /dev/sdb | pdc | pdc_bjibibahah-0 | 条纹 | 确定 | 1758766336 | 数据@ 0 | |----------+--------+------------------+--------+---------+----------------+---------|
这让我有点不知所措,因为我原本以为数组pdc_hjijcjji
也会出现在这里。也许,因为它是条带磁盘内的分区,所以它包含在 中pdc_fjhhdeeg
。无论如何,条带阵列运行良好,所以我并不太担心。
pdc_hjijcjji
运行时显示dmraid -s
:
#$ sudo dmraid -s |-----------+----------------+--------------+--------------| | 姓名 | pdc_bjibibahah | pdc_fjhhdeeg | pdc_hjijcjji | |-----------+----------------+--------------+--------------| | | 超集 | 主动集 | 主动集 | | 大小(-h)| 1.677 TB | 167.6 GB | 54.0 GB | | 尺寸 | 3517532672 | 351562496 | 113281024 | | 步幅 | 128 | 128 | 128 | | 类型 | raid10 | 条带 | 条纹 | | 状态 | 确定 | 确定 | 确定 | | 子集 | 2 | 0 | 0 | | 开发人员 | 4 | 2 | 2 | | 备件 | 0 | 0 | 0 | |-----------+----------------+--------------+--------------| # 大小以 512 字节为单位。
似乎pdc_bjibibahah
与 Raid10 阵列相对应,只是它的大小有点奇怪(1.677 TB,而不是大约 4 TB)。尝试使用结果激活它会导致dmraid -ay
已安装的 1.677 TB 设备报告为未分配数据。
sudo dmraid -s -si
在阵列上运行bjibibahah
:
#$ sudo dmraid -s -si |-----------+----------------+------------------+------------------| | 名称 | pdc_bjibibahah | pdc_bjibibahah-0 | pdc_bjibibahah-1 | |-----------+----------------+------------------+------------------| | | 超集 | 子集 | 子集 | | 大小(-h)| 1.638 TB | 1.638 TB | 1.638 TB | | 尺寸 | 3517532672 | 3517532672 | 3517532672 | | 步幅 | 128 | 128 | 128 | | 类型 | raid10 | 条带 | 条纹 | | 状态 | 确定 | 确定 | 确定 | | 子集 | 2 | 0 | 0 | | 开发人员 | 4 | 2 | 2 | | 备件 | 0 | 0 | 0 | |-----------+----------------+------------------+------------------|
我尝试手动配置阵列,但没有成功,而且该man
页面也没有太大帮助。如果有人对如何配置有建议dmraid
,或者说服它更改 RAID10 阵列的配置,我将不胜感激。
以下是一些相关的输出:
$ sudo dmraid -V dmraid 版本:1.0.0.rc16 (2009.09.16) 共享 dmraid 库版本:1.0.0.rc16(2009.09.16) 设备映射器版本:4.20.0 $ sudo dmsetup--版本 库版本:1.02.48(2010-05-20) 驱动程序版本:4.20.0 $ uname-srvm Linux 3.0.0-16-generic #28-Ubuntu SMP 星期五 1 月 27 日 17:44:39 UTC 2012 x86_64 $ lsb_release-a 无可用的 LSB 模块。 分销商 ID:Ubuntu 描述:Ubuntu 11.10 版本:11.10 代号:oneiric
此外,RAID10 阵列的 BIOS raid 设置与 ubuntu 中的以下磁盘匹配:代码:
|---------+------------+--------------| | 端口:ID | 分配 | OS 磁盘名称 | |---------+------------+--------------| | 01:01 | LD 1-1 | /dev/sda | | 02:01 | LD 1-2 | /dev/sdb | | 03:01 | LD 1-3 | /dev/sdc | | 04:01 | LD 1-4 | /dev/sdd | |---------+------------+--------------|
更新:我忘了说我在使用 Crosshair V 主板,内置控制器AMD SB950
。
更新 2:运行时sudo dmraid -s -ccs pdc
我收到以下错误消息:
错误:pdc:/dev/sdf 上的 RAID 设置“pdc_fjhhdeeg”[1/2] 中的设备数量错误 错误:pdc:/dev/sde 上的 RAID 设置“pdc_fjhhdeeg”[1/2] 中的设备数量错误 错误:pdc:/dev/sdd 上的 RAID 设置“pdc_bjibibahah-1”[1/2] 中的设备数量错误 错误:pdc:/dev/sdc 上的 RAID 设置“pdc_bjibibahah-1”[1/2] 中的设备数量错误 错误:pdc:/dev/sdb 上的 RAID 设置“pdc_bjibibahah-0”[1/2] 中的设备数量错误 错误:pdc:/dev/sda 上的 RAID 设置“pdc_bjibibahah-0”[1/2] 中的设备数量错误 *呃*
如果我省略说明符 pdc,而只写,sudo dmraid -s -ccs
我会得到更加神秘的结果:
*呃* *呃* *呃*
更新 3:我已sudo dmraid -rE
按照建议的方法删除了配置错误的数组在 askubuntu QA 中。我仍然收到“错误:pdc:RAID 组中的设备数量错误...”错误,这似乎阻碍了进一步的进展。我会继续寻找这个问题的解决方案。
编辑:我可以添加任何信息来帮助别人吗?
答案1
好的 :) 那么你的目标如下:
4 x HDD (2 TB), RAID 1+0. Single 4TB partition.
看到它只报告了大约 1.6TB,这么多的缺失存储空间对我来说意味着一个元数据问题。
我建议拆除整个阵列,并使用 确保元数据被清除dmraid -rE
。然后,一旦这些磁盘不再出现,尝试从 2 个 2T 磁盘创建一个简单的 RAID1,您的容器容量应该更接近 1.8-1.9,而不是 1.6。验证后,然后创建条带,应该只需将两者相加即可。如果这不起作用,则可能是固件或 dmraid 系统本身存在错误。
dmraid 嗯……很有趣,如果可以选择的话我宁愿不使用它。你基本上承担了 md-raid 的所有复杂性,而性能没有任何提升,然后混合了来自不同供应商的大量不同元数据格式,然后与多个操作系统共享该元数据,相信你与之共享的操作系统不会破坏元数据。
在使此配置稳定后,您可能想要测试实际更换故障成员,如果您无法维护 RAID,则 RAID 只是一个大的单点故障。祝你好运。
针对您的 dmraid -rE 问题 此时您唯一的选择是 dd if=/dev/zero ...并擦除磁盘。
答案2
我有同样的问题,我相信我最终(经过几天的谷歌搜索而没有得到满意的答案)找到了这个问题。
我相信这是一个 BUG - 某处使用 32 位无符号整数来表示扇区数(dmraid?)。
请注意,(我的)2TB 磁盘上的扇区数:3906898048,乘以 512B/扇区可得出 2.0TB 或 1.8TiB。当进行条带化时,它应该翻倍,但得到的结果是:3518828800 个扇区,乘以 512 B/扇区可得出 1.8TB 或 1.6TiB。
考虑到 Windows 10 在该 RAID10 分区上读取了正确的 4TB 大小,因此错误很可能出现在 Linux 端。
转换为二进制:
3906898048 -> 0000 1110 1000 1101 1110 1000 1000 1000 0000 2x 3906898048 -> 0001 1101 0001 1011 1101 0001 0001 0000 0000 3518828800 -> 0000 1101 0001 1011 1101 0001 0001 0000 0000
有人能看看这个问题并创建一个补丁吗?谢谢。