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.confinitramfs 映像中的最新副本。
更喜欢哪种方法,取决于你。我个人喜欢第二种,但如果您碰巧有几个(许多)RAID 设备并且只想在启动时启动其中几个(需要有一个工作的根文件系统)并稍后激活其余的,第一种方法或组合其中有一条路要走。
| 归档时间: |
|
| 查看次数: |
11369 次 |
| 最近记录: |