Назад | Перейти на главную страницу

CoreOS на программном RAID с файловой системой EXT4

В настоящее время я подумываю об установке CoreOS на голый сервер с двумя дисками, которые я хочу поместить в программный RAID1.

Последняя версия CoreOS теперь использует EXT4 в качестве файловой системы по умолчанию, и меня это устраивает - я никогда не использовал brtfs (их предыдущее значение по умолчанию), который очевидно поддерживает что-то близкое к RAID1, и я бы предпочел использовать EXT4 по умолчанию и mdadm с которым у меня уже есть опыт.

Я могу собрать RAID, используя mdadm (из базовой среды Linux, загруженной из сети), но я не знаю, что делать дальше, я почти уверен, что установщик CoreOS все испортит, если я просто дам ему /dev/md0 в качестве целевого диска, так что не будем этого делать.

Кто-нибудь успешно это пробовал?

Хитрость в том, чтобы использовать правильные ЭТИКЕТКИ:

  • Настройка SoftwareRAID для CoreOS корень раздел
  • Только для ext4!
  • Предположим, что CoreOS включен /dev/sdaX а второе устройство RAID /dev/sdb
  • Недостаток: только / зеркалируется, узел отключается при сбое sda

-

  1. Загрузитесь в любую систему восстановления, например Grml

  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 cat / proc / mdstat

  8. перезагрузка!

Теперь у нас есть ROOT на /dev/md0. Остальные разделы ставить не пробовал (EFI-SYSTEM, BIOS-BOOT, USR-A, USR-B, OEM, CONFIG) на mdadm, но, вероятно, он будет работать так же.