peo*_*eon 3 raid debian software-raid mdadm
重新启动后 mdadm 出现问题,我无法重新组装/dev/md0
。
我在 debian wheezy 上工作。
我已经完成了以下步骤::
sudo mdadm --create --verbose /dev/md0 --level=6 --raid-devices=4 /dev/sd[b-e]
cat /proc/mdstat
sudo mdadm --readwrite /dev/md0
sudo mdadm --detail --scan >> /etc/mdadm/mdadm.conf
echo check > /sys/block/md0/md/sync_action
sudo pvcreate /dev/md0
sudo pvdisplay
sudo vgcreate vgraid6 /dev/md0
sudo lvcreate -l 100%FREE -n lvHD vgraid6
sudo mkfs.ext4 -v /dev/vgraid6/lvHD
Run Code Online (Sandbox Code Playgroud)
这里一切顺利。
挂载 RAID 后,我可以使用它、创建文件、从其他 PC 访问它...
现在问题来了:
重新启动服务器(现在重新启动)后,RAID 不再存在,/dev/md0
消失了。
首先我检查/etc/mdadm/mdadm.conf
:
# mdadm.conf
#
# Please refer to mdadm.conf(5) for information about this file.
#
#DEVICE partitions containers
...
CREATE owner=root group=disk mode=0660 auto=yes
MAILADDR root
ARRAY /dev/md0 metadata=1.2 name=media:0 UUID=cb127a0b:ad4eb61d:e0ba8f82:db4b062d
Run Code Online (Sandbox Code Playgroud)
在我尝试之后:
$ mdadm --stop --scan
$ mdadm --assemble --scan
Run Code Online (Sandbox Code Playgroud)
或者:
$ sudo mdadm --assemble /dev/md0 /dev/sd[b-e]
mdadm: Cannot assemble mbr metadata on /dev/sdb
mdadm: /dev/sdb has no superblock - assembly aborted
$ sudo mdadm --examine /dev/sd[b-e]
/dev/sdb:
MBR Magic : aa55
Partition[0] : 4294967295 sectors at 1 (type ee)
/dev/sdc:
MBR Magic : aa55
Partition[0] : 4294967295 sectors at 1 (type ee)
/dev/sdd:
MBR Magic : aa55
Partition[0] : 4294967295 sectors at 1 (type ee)
/dev/sde:
MBR Magic : aa55
Partition[0] : 4294967295 sectors at 1 (type ee)
Run Code Online (Sandbox Code Playgroud)
mdadm 守护进程正在运行 ( ps aux | grep mdadm
)
空 /proc/mdstat
$ cat /proc/mdstat
Personalities :
unused devices: <none>
Run Code Online (Sandbox Code Playgroud)
怎么了?
kos*_*tix 12
原因有两个:
在组装数组时,您的(新的)mdadm.conf
未被读取。
这是因为它发生在你的根文件系统被挂载之前(显然:你必须有一个工作的 RAID 设备才能访问它),所以这个文件是从包含所谓的预引导环境的 initramfs 映像中读取的。
所以为了使这项工作,在更新配置后,运行
# update-initramfs -u
Run Code Online (Sandbox Code Playgroud)
更新initramfs。
您的 RAID 设备不会在启动时被自动发现和组装。
为此,请将成员分区的类型更改为0xfd
(Linux RAID 自动检测)—对于 MBR 样式的分区表或更改为00FD
(相同)对于 GPT。您可以分别使用fdisk
或gdisk
来做到这一点。
mdadm
在启动时运行(在 initramfs 之外),扫描可用分区,从所有分区中读取具有类型的元数据块,0xfd
然后组装并启动它能够运行的所有 RAID 设备。这不需要mdadm.conf
initramfs 映像中的最新副本。
更喜欢哪种方法,取决于你。我个人喜欢第二种,但如果您碰巧有几个(许多)RAID 设备并且只想在启动时启动其中几个(需要有一个工作的根文件系统)并稍后激活其余的,第一种方法或组合其中有一条路要走。
归档时间: |
|
查看次数: |
11369 次 |
最近记录: |