Aug 072013

Warning: all operations are carried out only with the first two RAID partitions, the third partition is not changed

Due to the fact that the standard update is a XenServer installation of the new XenServer with virtual machines preservation, with the loss of all the changes that were made manually on the server (installed software, changing / adding settings through the console, etc.), the update is the new XenServer installation and connection of the old virtual machines.

Based on:

  1. Backup all VM, manually:
    xe vm-export vm=vm_name filename=backup_fiule_name compress=true
    xe pool-dump-database file-name=dump_name.dump

    or with XENBack

  2. VM metadata export
    xe vm-export metadata=true --multiple filename=VMEXPORT

    Warning: store all files VMEXPORT… to another computer/data store/etc

  3. Local storage info:
    xe sr-list name-label="Local Storage"

    should return something like the following:

    uuid ( RO) : 94093206-3d5e-c95c-9b7e-edbf55dbf3c2
     name-label ( RW): Local Storage
     name-description ( RW):
     host ( RO): vmhost-02
     type ( RO): lvm
     content-type ( RO): user
  4. Install XenServer to the first drive, but without local storage
    Note: Do not configure a local repository, if during installation for the local repository is selected a disk, remove selection – the window “Virtual Machine Storage”

    Format the RAID root disk, mount it at /mnt and copy all to it

    mkfs.ext3 /dev/md0
    mount /dev/md0 /mnt
    cp -vxpR / /mnt

    Modify /mnt/etc/fstab and change root filesystem to /dev/md0. (Do NOT include the LABEL=)

    sed -i 's/LABEL=[a-zA-Z\-]*\s\(.*\)/\/dev\/md0 \1/' /mnt/etc/fstab

    Create a new boot image and uncompress it:

    mkdir /mnt/root/initrd-raid
    mkinitrd -v --fstab=/mnt/etc/fstab /mnt/root/initrd-raid/initrd-`uname -r`-raid.img `uname -r`
    cd /mnt/root/initrd-raid
    zcat initrd-`uname -r`-raid.img | cpio -i

    Edit ‘init’ and insert ‘raidautorun …’:

    sed -i 's/raidautorun \/dev\/md0/raidautorun \/dev\/md0\nraidautorun \/dev\/md1\nraidautorun \/dev\/md2/' init

    Copy the new ramdisk to the /mnt/boot folder and modify boot menu

    find . -print | cpio -o -Hnewc | gzip -c > /mnt/boot/initrd-`uname -r`-raid.img
    rm /mnt/boot/initrd-2.6-xen.img
    cd /mnt/boot/
    ln -s initrd-`uname -r`-raid.img initrd-2.6-xen.img

    Replace in /mnt/boot/extlinux.conf string “root=LABEL=root-…” to “root=/dev/md0″ in all menu entries

    sed -i 's/LABEL=[a-zA-Z\-]*/\/dev\/md0/' extlinux.conf

    Set up MBR for GPT on /dev/sdb

    cat /mnt/usr/share/syslinux/gptmbr.bin > /dev/sdb
    cd /mnt
    extlinux  --raid -i boot/

    Reboot (IMPORTANT: Set your server to boot from the SECONDARY HDD before booting!)
    When XenServer is up again, include /dev/sda in the array with the following commands:

    sgdisk --new=3:16779264:DISK_SIZE-34 /dev/sda
    sgdisk --attributes=1:set:2 /dev/sda
    sgdisk --typecode=1:fd00 /dev/sda
    sgdisk --typecode=2:fd00 /dev/sda
    sgdisk --typecode=3:fd00 /dev/sda
    mdadm -a /dev/md0 /dev/sda1
    mdadm -a /dev/md1 /dev/sda2
    mdadm -a /dev/md2 /dev/sda3

    The array needs to complete its synchronisation. That is gonna take a while. Follow its progress with:

    watch -n 1 cat /proc/mdstat

    When it’s done on all three arrays, copy the RAID setup to /etc/mdadm.conf

    mdadm --detail --scan >> /etc/mdadm.conf
  5. After installed XenServer and all arrays synchronized, enable local storage
    xe sr-introduce uuid=UUID_from_section_3 type=type_from_section_3 name-label=”Local storage” content-type=user
    xe pbd-create sr-uuid=UUID_from_section_3 device-config:device=/dev/md2 host-uuid=[TAB]
    xe pbd-plug uuid=previous_returned_UUID

    If need, upgrade local storage in GUI: right mouse click on Local storage->Upgrade

    After enabling local storage, make it a default (via GUI)

  6. Import the metadata for all the virtual machines files (files from section 2)
    xe vm-import metadata=true filename=VMEXPORT...

  5 Responses to “XenServer with software RAID1 upgrade (6.1 to 6.2)”

  1. […] PS: Update for installed system: XenServer with software RAID1 update (6.1 to 6.2) […]

  2. Добрый день!
    Устанавливал ксен на программный рэйд по Вашим манам 6.1. У меня сейчас появилась необходимость в апгрейде. Обновление по данной инструкции достаточно не просто. А если делать апгрейд через стандартную меню Rolling pool upgrade через утилиту ксена, обновление не получится?

  3. Второй вопрос: сервер находится далеко, есть какая то необходимость быть рядом с сервером? Существует ли такая возможность отключения ssh при данной процедуре?

    • Здравствуйте,
      1. Теоретически через Rolling pool upgrade обновится можно… но за последстия я не отвечаю ? Проблема в том, что у Вас xen установлен на програмном рейде, который сам установщик скорее всего не поймет, так что можно либо получить сообщение о неизвестной системе, либо потерять все данные.
      2. Учитывая, что это в любом случае новая установке, с ssh точно будут проблемы. В случае удаленного сервера обязательно нужно иметь возможность удаленного управления (KVM)

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>