V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
cjpjxjx
V2EX  ›  Linux

记一次采坑经历, mdadm 创建 raid0,重启后自动消失

  •  
  •   cjpjxjx · 2019-11-30 12:06:20 +08:00 · 5998 次点击
    这是一个创建于 1580 天前的主题,其中的信息可能已经有所发展或是发生改变。

    家里的一台 Linux 主机,加了两块 1T 硬盘,最近打算组成 raid 用来下 PT,由于没有阵列卡主板也不支持 raid,于是就用 mdadm 软 raid,创建过程:

    mdadm -Cv /dev/md0 -a yes -n 2 -l 0 /dev/sdb /dev/sdc
    mkfs.xfs -f /dev/md0
    

    一切正常,最后把挂载信息写入 /etc/fstab
    结果重启就问题了,卡在进度条,几分钟后自动进入了救援模式(显示的什么内容忘记了)
    经过多次测试,确定是重启之后,/dev/md0 设备就直接消失了。。。消失了。。。消失了。。。

    查了很久的资料,尝试过修改 /etc/mdadm/mdadm.conf 文件,在里面增加 ARRAY /dev/md0......的方法,但是并没有效果
    直到我看到了这个,这个问题应该是和 GPT 分区表有关:
    https://unix.stackexchange.com/questions/156424/centos-7-created-mdadm-array-disappears-after-reboot

    于是我先尝试了一个简单的方法,进 PE 把两块硬盘从 GPT 转成 MBR,然后重新创建 raid,重启后就没有消失了,但是这个简单的方法并不完美,因为 MBR 最大只支持 2TB 的硬盘
    最后还是使用 GPT,但是在创建 raid 之前要使用 gdisk 命令在两块硬盘上各创建一个分区,/dev/sdb1 和 /dev/sdc1,然后再使用分区创建 raid:

    mdadm -Cv /dev/md0 -a yes -n 2 -l 0 /dev/sdb1 /dev/sdc1
    mkfs.xfs -f /dev/md0
    

    这次重启之后 /dev/md0 没有消失,最后将挂载信息写入 /etc/fstab,一切正常

    5 条回复    2019-12-03 15:27:50 +08:00
    msg7086
        1
    msg7086  
       2019-11-30 13:22:19 +08:00
    给后来者的提示:

    这个问题主要原因是用于组阵列的硬盘没有正确清除原始的信息,导致磁盘被首先认作 GPT 磁盘而非 MDADM 成员。
    解决方法也很简单,就是清除掉 GPT 分区表,即清除掉头部的数个扇区和尾部的数个扇区,就行了。
    也可以先转换成 MBR (转换过程中会自动清除 GPT 分区表),然后再清除 MBR 分区表(第一个扇区)即可。
    没有必要先分区再组阵列。
    cjpjxjx
        2
    cjpjxjx  
    OP
       2019-11-30 14:38:35 +08:00
    @msg7086 哈哈,只要知道了问题所在就简单了,就可以得出很有多种解决方法,选择适合自己的就好,很少玩物理机,没想到 UEFI+GPT 会遇到这个问题
    realpg
        3
    realpg  
       2019-12-01 11:56:22 +08:00
    mdadm -Cv /dev/md0 -a yes -n 2 -l 0 /dev/sdb /dev/sdc

    mkfs.xfs -f /dev/md0

    ---------
    那个,我第一次知道还有楼主这种骚操作

    按照通常 LINUX 软 RAID 的规范,首先你要创建分区,然后这个分区的 type 代码为 FD,就是 LINUX RAID

    然后用这两个 FD 类型的分区去建立软 RAID
    msg7086
        4
    msg7086  
       2019-12-01 13:58:02 +08:00 via Android
    @realpg 问题不大其实。阵列卡做阵列就相当于全盘做。
    ps1aniuge
        5
    ps1aniuge  
       2019-12-03 15:27:50 +08:00
    裸盘做 raid========骚操作?

    一个合格的 raid 程序,给裸盘建 raid 时,就必须!!!清除头尾 n 个扇区,以免被误认。
    然后在裸盘头尾写上自己家的数据。

    很显然这个 mdadm 程序不合格,或者 centos 中的 mdadm 版本太老。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1010 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 19:55 · PVG 03:55 · LAX 12:55 · JFK 15:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.