Soft RAID dla Xenserver

    Aby uruchomić XenServer na sw raid 1 należy najpierw przeprowadzić standardową instalację XenServer na dysku /dev/sda wraz z tworzeniem lokalnego storage dla VM na dowolnym dysku – wybieramy pierwszy z brzegu.

    Następnie postępować według poniższej procedury:

    Usunięcie istniejącego Storage Repository:

    ### START ###
     
    xe sr-list
    xe pbd-list sr-uuid=<local storage-uuid>
    xe pbd-unplug uuid=<uuid>
    xe sr-forget uuid=<local storage-uuid>
    

    Usunięcie partycji w/w Storage Repo:

    sed -i 's/metadata_read_only = 1/metadata_read_only = 0/' /etc/lvm/lvm.conf
    lvremove ...
    vgremove ...
    pvremove /dev/sda3
    sed -i 's/metadata_read_only = 0/metadata_read_only = 1/' /etc/lvm/lvm.conf
    

    Przekopiowanie tablicy partycji z głównego dysku na drugi:

    sgdisk -R /dev/sdb /dev/sda
     
    sgdisk --typecode=1:fd00 /dev/sdb
    sgdisk --typecode=2:fd00 /dev/sdb
    sgdisk --typecode=3:fd00 /dev/sdb
    sgdisk --typecode=5:fd00 /dev/sdb
    sgdisk --typecode=6:fd00 /dev/sdb
    

    Stworzenie urządzeń SW Raid i dodanie partycji dysku nr 2:

    mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 missing
    mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sdb2 missing
    mdadm --create /dev/md2 --level=1 --raid-devices=2 /dev/sdb3 missing
    mdadm --create /dev/md4 --level=1 --raid-devices=2 /dev/sdb5 missing
    mdadm --create /dev/md5 --level=1 --raid-devices=2 /dev/sdb6 missing
    

    Stworzenie systemów plików na nowych urządzeniach:

    mkfs.ext3 /dev/md0
    mkfs.ext3 /dev/md4
    mkswap /dev/md5
    

    Zamontowanie i przekopiowanie folderów na nowy zasób:

    mount /dev/md0 /mnt
    mkdir -p /mnt/var/log
    mount /dev/md4 /mnt/var/log
     
    cp -xa / /mnt
    cp -xa /var/log /mnt/var
    

    Przekopiowanie konfiguracji mdadm:

    echo "MAILADDR root" > /mnt/etc/mdadm.conf
    echo "auto +imsm +1.x -all" >> /mnt/etc/mdadm.conf
    echo "DEVICE /dev/sd*[a-z][1-9]" >> /mnt/etc/mdadm.conf
    mdadm --detail --scan >> /mnt/etc/mdadm.conf
    cp /mnt/etc/mdadm.conf /etc
    

    Zmiana ustawień bootowania i ponowna instalacja grub:

    sed -i 's/LABEL=root-[a-zA-Z\-]*/\/dev\/md0/' /mnt/etc/fstab
    sed -i 's/LABEL=swap-[a-zA-Z\-]*/\/dev\/md5/' /mnt/etc/fstab
    sed -i 's/LABEL=logs-[a-zA-Z\-]*/\/dev\/md4/' /mnt/etc/fstab
    cp /mnt/etc/fstab /etc
     
    e2label /dev/sda1 |xargs -t e2label /dev/md0
     
    mount --bind /dev /mnt/dev
    mount --bind /sys /mnt/sys
    mount --bind /proc /mnt/proc
    chroot /mnt /bin/bash
     
    cp /boot/initrd-$(uname -r).img /boot/initrd-$(uname -r).img.bak
     
    dracut --mdadmconf --fstab --add="mdraid" --add-drivers="raid1" --force /boot/initrd-$(uname -r).img $(uname -r) -M
     
    sed -i 's/quiet/rd.auto rd.auto=1 rhgb quiet/' /boot/grub/grub.cfg
    sed -i 's/LABEL=root-[a-zA-Z\-]*/\/dev\/md0/' /boot/grub/grub.cfg
    sed -i '/search/ i\  insmod gzio part_msdos diskfilter mdraid1x' /boot/grub/grub.cfg
    sed -i '/search/ c\  set root=(md/0)' /boot/grub/grub.cfg
     
    grub-install /dev/sda # Not sure if this works, since there is no raid on sda yet, so grub-install might not add the mdraid1x driver
    grub-install /dev/sdb
     
    exit
     
    cp /mnt/boot/initrd-3.10.0+10.img /boot/
    cp /mnt/boot/grub/grub.cfg /boot/grub/grub.cfg
     
    reboot
    

    Skopiowanie tablicy partycji na dysk nr 1 oraz dodanie partycji dysku 1 do grupy RAID:

    sgdisk -R /dev/sda /dev/sdb
     
    mdadm -a /dev/md0 /dev/sda1
    mdadm -a /dev/md1 /dev/sda2
    mdadm -a /dev/md2 /dev/sda3
    mdadm -a /dev/md4 /dev/sda5
    mdadm -a /dev/md5 /dev/sda6
     
    # To be super save install grub on sda again, since it discovers the raid and adds the required drivers.
    # grub-install /dev/sda
    

    Utworzenie nowego SR:

    xe sr-create content-type=user device-config:device=/dev/md2 host-uuid=<host-uuid> name-label="Local storage" shared=false type=ext
    
    ### END ###
    

    Potrzebujesz pomocy z konfiguracją i utrzymaniem serwera?

    Outsourcing IT może być rozwiązaniem dla Ciebie!