长话短说:
重启后RAID阵列+LVM消失。
细节
我想建立一个加密的raid阵列,基于这个所以。
我设置了一个 RAID 阵列“裸机”(即在磁盘上而不是在分区上)。数组构建完成后,我没有格式化它并运行pvcreate
。然后我按照通常的方式设置 LVM 和加密。 (看数字海洋 RAID 指南,RAID 上 LVM 的架构指南。
设置加密后,我运行mdadm --detail --scan | tee -a /etc/mdadm/mdadm.conf
并update-initramfs -u
重新启动。/dev/md0
然后就消失了。我哪里做错了?
调试步骤。
类似的问题还有很多,这是我根据我的阅读到目前为止尝试过的。
- 的输出
mdadm --examine --scan
为空白。 - 未注释的内容
/etc/mdadm/mdadm.conf
:HOMEHOST <system>
,,,没有一些 SO 答案中建议的重复条目MAILADDR root
。ARRAY /dev/md0 metadata=1.2 name=server:0 UUID=xxxxx
- 发行
service mdadm status
收益率Loaded: masked (Reason: Unit mdadm.service is masked.)
- 发行
cat /proc/mdstat
收益率Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] \n unused devices: <none>
- 我尝试跑步
dpkg-reconfigure mdadm
并update-initramfs -u
按照建议这里我没有找到启用“全部”的选项。此后我尝试重新启动,但这也不起作用。
作为最后的手段我尝试了mdadm --assemble --scan
。
奇怪的是,这种类型并不TYPE="linux_raid_member"
符合我的预期这个所以
root@server:/home/user# blkid
/dev/sda1: UUID="xx" TYPE="ext2" PARTUUID="xx-xx"
/dev/sda5: UUID="xx" TYPE="LVM2_member" PARTUUID="xx-xx"
/dev/mapper/server--vg-root: UUID="xx" TYPE="ext4"
/dev/mapper/server--vg-swap_1: UUID="xx" TYPE="swap"
/dev/sdb: PTUUID="xx" PTTYPE="gpt"
/dev/sdc: PTUUID="xx" PTTYPE="gpt"
/dev/sdd: PTUUID="xx" PTTYPE="gpt"
该数组位于 sd[bcd] 上,/dev/sda 保存根文件系统。该阵列驱动器用于数据。
重新创建的步骤。
为了完整性和万一有用。
mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd
创建数组pvcreate /dev/md0
制作物理卷vgcreate data_group /dev/md0
创建卷组lvcreate -n secure data_group -L +900G
创建卷cryptsetup -v luksFormat /dev/data_group/secure
设置加密cryptsetup luksOpen /dev/data_group/secure cryptvault
打开加密卷mkfs.ext4 /dev/mapper/cryptvault
分割mkdir /mnt/vault
制作挂载点mount /dev/mapper/cryptvault /mnt/vault
山mdadm --detail --scan | tee -a /etc/mdadm/mdadm.conf
保存数组布局update-initramfs -u
使用新配置更新 initreboot
答案1
这只是一个理论:mdadm 元数据版本 1.2 距离设备启动为 4K,并且当您创建阵列时磁盘上已经存在现有的 GPT 分区表,该阵列未被 mdadm 删除(我希望 mdadm 删除所有现有签名,但这就是仅对 GPT 签名存在的解释)。阵列现在尚未组装,因为对于所有工具(包括 mdadm)来说,这看起来就像带有 GPT 分区表的空磁盘(也可能 blkid 检测到磁盘末尾附近的标头备份)而不是 mdmember,因此磁盘被忽略。
wipefs
您可以尝试使用-- 首先简单地wipefs /dev/sdb
检测并打印所有签名,然后wipefs -o <offset>
使用上一个命令打印的 GPT 签名的偏移量来删除分区表。这可能有助于系统将磁盘检测为 mdmeber 设备。
如果这没有帮助,我建议重新开始并选择元数据版本 1.1(--metadata=1.1
mdadm 的选项,1.1 将元数据放在设备的开头)或在分区顶部创建阵列(使用磁盘没有任何好处)恕我直言,没有分区表)。或者当然你可以等待其他人提出更好的建议:-)
顺便提一句。我认为这是一个全新的设置,因此设备上没有有价值的数据,但在进行任何不可逆转的更改之前备份磁盘的前几个 MiB 可能会很有用。