银河麒麟高级服务器操作系统磁盘做软raid无法正常安装系统和数据丢失问题
一 常见问题现象
前提:做软raid使用的磁盘是GPT分区表格式,则会造成以下问题。
问题现象一:
服务器出货自带的服务器操作系统,到现场之后需要重新安装其它系统版本,未采购硬件raid卡,有系统盘数据冗余需求的情况下,需要做软raid1。
问题现象二:
三台机器需要使用nvme做软raid数据盘。两块nvme的盘制作了软raid1,重启后发现出现了raid丢失的情况,其中两台是其中一块盘丢失,第三台出现了md1丢失的情况。
二 问题原因
软raid的默认创建操作并不会完全清除GPT分区数据,导致识别出的设备类型与用户期望不符,显然当将一个进行过GPT分区的磁盘作为 raid_member时,会破坏一部分主分区表,但又没有将其结构完全覆盖从而出现此问题。
并且这将导致磁盘被错误识别为主分区表损坏的gpt分区,而非raid组的成员,甚至可能从备份分区表中恢复数据到主分区表,并破坏 raid 超级块。
三 解决方法
1.问题现象一的处理方法
1.1 通过清掉问题盘的前两个扇区的gpt信息:
dd if=/dev/zero of=/dev/nvme1n1 bs=512 count=2
dd if=/dev/nvme1n1 of=gpt0 bs=512 count=2 #也可在清盘前对前两个扇区作备份
1.2 然后,将问题盘重新装配回md1
mdadm --stop /dev/md1
mdadm -A -s /dev/md1
mdadm -a /dev/md1 /dev/nvme1n1
1.3 以上操作完成后,重启系统。使用 mdadm -D /dev/md1查看状态正常并且发现状态为 rebuild的状态。此情况为后添加盘正在从之前健康的盘重构数据,恢复正常
1.4 md1丢失的问题通过重新格式化raid组的两块磁盘并重做raid解决。
2.问题现象二的处理方法
制作软raid前,使用 wipefs清除 gpt 信息,如下图:
注意的是如果默认设备上就有 gpt 类型的标识,可通过 wipefs命令进行抹除。但是如果此设备上有分区并且也标识了gpt分区表,这种情况直接清设备的是无法完全抹掉所有gpt信息的,此情况建议先将设备完全格式化再使用wipefs进行操作或者使用dd命令进行磁盘格式化。
四 建议
如果条件允许,建议使用硬raid对数据安全的保障性会更好。