авг 072013
 

Внимание: все операции производятся только с первыми двумя разделами RAID, третий раздел не изменяется

В связи с тем, что обновление XenServer представляет собой установку нового XenServer с сохранением виртуальных машин, но потерей всех изменений, которые делались вручную на сервере (установленное ПО, изменение/добавление настроек через консоль и т.п.), обновление XenServer заключается в новой установке и подключении старых виртуальных машин.

Основано на: http://support.citrix.com/article/CTX120962

  1. Бэкап всего, что есть (на всякий случай), либо вручную:
    xe vm-export vm=имя_виртуальной_машины filename=имя_файла compress=true
    ...
    xe pool-dump-database file-name=имя_дампа.dump
    

    либо с помощью: XENBack

  2. Экспорт метаданных
    xe vm-export metadata=true --multiple filename=VMEXPORT

    Внимание: сохраните получившиеся файлы VMEXPORT… на другом компьютере

  3. Информация о локальном хранилище:
    xe sr-list name-label="Local Storage"

    должно вернуть следующее:

    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. Установите XenServer c подержкой Soft-RAID на первый диск, без добавления локального хранилища
    Внимание: НЕ НАСТРАИВАЙТЕ локальное хранилище, если при установке для локального хранилища будет выбран какой-либо диск, уберите его — окно «Virtual Machine Storage»

    Отформатируйте корневой диск RAID, смонтируйте его в /mnt и скопируйте на него все файлы

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

    Измените /mnt/etc/fstab — замените корневую фалйловую систему на /dev/md0.

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

    Создайте новый загрузочный образ и разархивируйте его:

    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
    

    Отредактируйте файл ‘init’ — вставьте raidautorun …:

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

    Скопируйте новый загрузочный образ в каталог /mnt/boot и измените загрузочное меню

    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
    

    замените в /mnt/boot/extlinux.conf строку «root=LABEL=root-…» на «root=/dev/md0» во всех пунктах меню

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

    Настройте MBR для GPT на /dev/sdb

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

    Перезагрузите сервер (ВНИМАНИЕ: загрузка должна происходить со ВТОРОГО диска)
    Когда XenServer загрузится, добавьте разделы с /dev/sda в массивы:

    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
    

    Массивы RAID нуждаются в синхронизации, это может занять какое-то время. Вы можете отслеживать процесс синхронизации:

    watch -n 1 cat /proc/mdstat

    Когда все три массива синхронизируются, скопируйте настройки RAID в /etc/mdadm.conf

    mdadm --detail --scan >> /etc/mdadm.conf
  5. После установки и включения RAID, включите локальное хранилище:
    xe sr-introduce uuid=UUID_из_п_3 type=type_из_п_3 name-label=”Local storage” content-type=user
    xe pbd-create sr-uuid=UUID_из_п_3 device-config:device=/dev/md2 host-uuid=[TAB]
    xe pbd-plug uuid=UUID_созданного_PBD
    

    В GUI обновить локальное хранилище: правая клавиша мыши->Upgrade

    После включения локального хранилища, сделайте его хранилищем по-умолчанию (через GUI)

  6. Импортируйте метаданные для всех виртуальных машин (файлы из п.2)
    xe vm-import metadata=true filename=VMEXPORT...

  5 комментариев to “Обновление XenServer, установленного на софт-RAID (с 6.1 до 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>

(required)

(required)