采用 EXT4 文件系统的软件 RAID 上的 CoreOS

采用 EXT4 文件系统的软件 RAID 上的 CoreOS

我目前正在考虑在裸机服务器上安装 CoreOS,并希望将两个磁盘放入软件 RAID1。

最新的 CoreOS 现在使用 EXT4 作为其默认文件系统,我对此很满意 - 我从未使用过brtfs(他们之前的默认设置)显然支持接近 RAID1,我宁愿坚持使用默认的 EXT4,mdadm因为我已经有了使用经验。

我可以使用(从网络加载的基本 Linux 环境)组装 RAID mdadm,但我不知道下一步该做什么,我很确定如果我只是将其作为/dev/md0目标磁盘,CoreOS 安装程序会破坏一切,所以我们不要那样做。

有人成功尝试过这个吗?

答案1

诀窍是使用正确的标签:

  • 为 CoreOS 设置软件 RAID分割
  • 仅适用于 ext4!
  • 假设 CoreOS 已打开/dev/sdaX,第二个 RAID 设备已/dev/sdb
  • 缺点:仅/镜像,当 sda 发生故障时,节点将关闭

--

  1. 启动到任何恢复系统,例如格鲁姆

  2. 如果尚未完成:安装 CoreOS

  3. 备份/dev/sda9

    mkdir -p /root/sda9
    mount /dev/sda9 /mnt
    rsync -a /mnt/* /root/sda9
    umount /dev/sda9
    
  4. 准备分区布局

    # delete sda9
    sgdisk /dev/sda --delete=9
    
    # create new /dev/sda9 partition (max size)
    START=`sgdisk /dev/sda -f`
    END=`sgdisk /dev/sda -E`
    sgdisk /dev/sda --new=9:$START:$END --type=9:fd00
    sleep 0.5
    partprobe /dev/sda
    
    # Remove partition table from sdb
    sgdisk --clear -g /dev/sdb || exit 1
    
    # create a partition sdb9 with the size of sda9
    PARTDATA=( $(sgdisk -i 9 /dev/sda | grep 'Partition size' || exit 1) )
    SECTORS=$(expr ${PARTDATA[2]} + 2048)
    sgdisk /dev/sdb -a 2048 --new=9:2048:$SECTORS --type=9:fd00 || exit 1
    sleep 0.5
    partprobe /dev/sdb
    
  5. 创建 RAID

    mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda9 /dev/sdb9
    mkfs.ext4 -I 128 -L ROOT /dev/md0
    
  6. 复制数据

    mount /dev/md0 /mnt
    rsync -a /root/sda9/* /mnt
    umount /mnt
    
  7. 等到重新同步完成

    观察-n 1 猫/proc/mdstat

  8. 重启!

现在我们有了ROOT。我还没有尝试/dev/md0将其他分区(EFI-SYSTEM、、、、、)放在 mdadm 上,但它可能会BIOS-BOOT以相同的方式工作。USR-AUSR-BOEMCONFIG

相关内容