Установка XenServer 6.2 в Hetzner

image
После обновления линейки серверов у Hetzner я решил не отставать от прогресса и обновить свой.

Естественно XenServer обновить тоже бы не помешало, тем более что Hetzner в своей wiki разместил статью по установке XenServer 6.2, но как оказалось эта инструкция была копией мануала по установке версии 6.0.2 и для установки последнего XenServer'а она не годилась.

Вооружившись документацией к XenServer 6.2 я выяснил отличия в установке.

Для установки XenServer в Hetzner вам понадобится работающий web-сервер, на нем мы разместим установочные файлы.

Первым делом установим на наш сервер в Hetzner систему Ubuntu 12.04 LTS используя их web-интерфейс «robot».

А пока система устанавливается мы скачаем на наш web-сервер образ XenServer 6.2 и подготовим к установке.

Путь /var/www/ замените на тот по которому доступен сайт.
cd ~
wget http://downloadns.citrix.com.edgesuite.net/akdlm/8159/XenServer-6.2.0-install-cd.iso
mount -o loop XenServer-6.2.0-install-cd.iso /mnt
mkdir /var/www/xenserver
cp -a /mnt/* /var/www/xenserver


Теперь нужно создать файл ответов для тихой установки. Вот тут и появляются отличия от предыдущих версий.
nano /var/www/xenserver/xenserver.xml


Содержимое должно быть таким:

<installation mode="fresh" srtype="lvm">
<primary-disk gueststorage="yes">sda</primary-disk>
<keymap>en</keymap>
<hostname>xen.example.com</hostname>
<root-password>password</root-password>
<source type="url">http://ip-вашего-web-сервера/xenserver/</source>
<admin-interface name="eth0" proto="static">
<ipaddr>ip-адрес сервера в Hetzner</ipaddr>
<subnet>255.255.255.224</subnet>
<gateway>Шлюз сервера</gateway>
</admin-interface>
<nameserver>213.133.98.98</nameserver>
<nameserver>213.133.99.99</nameserver>
<nameserver>213.133.100.100</nameserver>
<timezone>Europe/Kiev</timezone>
<time-config-method>ntp</time-config-method>
<ntp-servers>ntp</ntp-servers>
<ntpservers>213.239.239.164</ntpservers>
<ntpservers>213.239.239.165</ntpservers>
<ntpservers>213.239.239.166</ntpservers>
</installation>


Дальше возвращаемся к нашему серверу в Hetzner и копируем несколько файлов.

cd /boot
wget http://www.example.com/xenserver/install.img
wget http://www.example.com/xenserver/boot/vmlinuz
wget http://www.example.com/xenserver/boot/xen.gz


Теперь нам нужно исправить загрузчик. Тут тоже есть отличия от предыдущих версий.

nano /boot/grub/grub.cfg


Ищем похожую запись и меняем последние 3 строчки.

if [ "${linux_gfx_mode}" != "text" ]; then load_video; fi
    menuentry 'Ubuntu, with Linux 3.2.0-24-generic' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    gfxmode $linux_gfx_mode
    insmod gzio
    insmod raid
    insmod mdraid1x
    insmod part_gpt
    insmod part_gpt
    insmod ext2
    set root='(mduuid/xxxxxxxxxxxxx)'
    search --no-floppy --set -f /boot/xen.gz
    multiboot /boot/xen.gz dom0_max_vcpus=1-2 dom0_mem=max:752M com1=115200,8n1 console=com1,vga
    module /boot/vmlinuz answerfile=http://<ip-вашего-web-сервера>/xenserver/xenserver.xml install
    module /boot/install.img
}


После этого перезагружаем сервер и ждем пока XenServer установится, а для того что бы убедится что мы все сделали правильно и установка идет, можно во-первых, пропинговать ваш сервер, во-вторых, просматривать access.log на вашем web-сервере.

Например так:
tail -f /var/log/apache2/access.log


После установки XenServer 6.2 будет доступен по ssh, пароль вы указали в файле ответов.
Дальше можно настроить Software RAID 1 по мануалу на сайте Hetzner.

P.S. Стоит ли описывать тут процесс настройки Software RAID, IP-подсетей и создание локального репозитория ISO образов? Или итак все понятно у Hetzner'а в wiki?
Share post

Comments 25

    +1
    Опишите, пожалуйста, как пробрасываете подсетки
      0
      У них там интересные танцы с бубном — взял себе сеть, делал по их доке, но всё равно виртуалки дальше хоста не пинговались. Плюнул, взял отдельные адреса, перевёл всё в режим моста, сгенерил маки для дополнительных адресов и всё завелось с пол-пинка.
        +1
        Немного о подсети хетзнера. первый и последний ip адрес технические, их нельзя использовать для серверов. Один из адресов Вам нужно будет использовать для самого XenServera который будет в роли маршрутизатора…
        Приведу пример настройки на сети 192.168.1.50/29:
        192.168.1.50 обозначает сеть, его нельзя использовать.
        192.168.1.57 это для broadcast'а, его тоже не получится использовать.
        192.168.1.51 будет у нас gateway
        192.168.1.52 — 192.168.1.56 а эти ip уже для виртуалок.

        1. Разрешаем форвардинг пакетов через сервер nano /etc/sysctl.conf
        # Controls IP packet forwarding
        net.ipv4.ip_forward = 1
        

        применить sysctl -p
        2. Создаем второй ip адрес nano /etc/sysconfig/network-scripts/ifcfg-xenbr0:1
        DEVICE=xenbr0:1
        ONBOOT=yes
        BOOTPROTO=none
        NETMASK=255.255.255.248 #если сетка /29
        IPADDR=192.168.1.51
        

        3. Разрешаем в iptables форвардинг пакетов
        iptables -I RH-Firewall-1-INPUT -i xenbr0 -o xenbr0 -j ACCEPT
        


        Если этого не хватит проверьте добавился ли роут, если нет то нужно добавить…
          0
          … А теперь дополнительно заведите IPv6 в такой конфигурации с работающим v4.
            0
            вот как будет надобность в IPv6 так и будем разбираться с маршрутизацией зоопарка сетей, а пока так работает не трогаем :)
        0
        Хе-хе, и че делать если сервер не пингуется после всего этого? %-(
          0
          закажите KVM
          ну или ребутнитесь в resque и попробуйте разобраться «на холодную»
            0
            Простите делитантский вопрос, а как ребутнуть сервер в resque, если никакого доступа нет?
              0
              хостер предоставляет соответствующие кнопочки в веб-панели управления
                0
                в панели управления robot есть Rescure. Активируете, перезагружаете сервер. монтируете диск mount /dev/sda1 /mnt
                смотрите cat /mnt/var/log/dmesg
                или запостите сюда ls -la /mnt/boot/ и cat /mnt/boot/grub/grub.cfg
                  0
                  ну, в случае софтраида там будет не sda1… но да, суть в этом
                    0
                    софт-рейда на этом этапе еще нету…
            0
            Решил воспользоваться данной шпаргалкой… отмечу два момента:
            1. Проверяйте валидность XML в файле ответов. У меня валидатор заругался на закрывающий тег — а инсталлятор просто взодил в ступор и ребутил сервер.
            2. На вебсервере отключите любой URL rewrite. Как выяснилось, если инсталлер полагается на HTTP-коды, и если он не получит 404 там, где надо, то тоже войдёт в ступор.
              0
              Ребят, может помогу кому — </sourсe>
              Буква «c» — написана кирилицей, надеюсь это ошибка
              Исправьте пожалуйста, многие делают copy-past и в итоге сами знаете что ;-)
                0
                исправил, спасибо
                0
                Ставил на двух разных серверах 6.2.0 с гигабитными картами — больше 100 Мб\c не хочет давать, встречал кто-нибудь такое? Пробовал 6.0.2 — все ок, полный гигабит. Одна из карт вот такая «i217-v».
                  0
                  У меня стоит в хетцнере около 10 машин под xenserver 6.2sp1 — гигабит есть. Точно не скажу максимальное значение, не мерял, но машинки перелетают с хоста на хост очень быстро. При 100М заметно медленнее это происходит.
                  0
                  а возможно ли обновить /boot/grub/grub.cfg под Ubuntu 14?
                    0
                    Там все так же как и в 12… На прошлых выходных ставил.
                      0
                      Ubuntu 14.04.1 LTS minimal
                      /boot/grub/grub.cfg не такой как в 12 версии…
                      И старый вариант изменить 3 строки не прокатывает, либо надо другие какие то менять…
                        0
                        Всё прокатывает. Уже больше десятка серверов накатил в Hetzner.

                        там просто чуть сложнее сделали. Теперь строка типа «search --no-floppy --set .....» Определяется через IF вот всё с этого if и до конца блока стирай и пиши как в статье. И всё прекрасно пашет.
                        Из того на что я напарывался:
                        — некорректно настроил web сервер
                        — ошибся в написании адреса сервера в меню grub
                        — из-за п.1 не скачал образы загрузочные

                        Если не получается бери Лару и разбирайся через Лару.
                        Так что всё работает.
                    0
                    А есть ли отличия в настройке XenServer 6.5? Если да прошу написать инструкцию)
                      0
                      Думаю что нет. Он ведь на той же ветке CentOS 6 основан. Только теперь Dom0 стал 64 битным.
                      0
                      У кого-нибудь есть опыт установки 7 версии? По данному мануалу не получается. Загружал в рескью, dmesg пустой, не понимаю в какую сторону копать (
                        0
                        Закажи Лару и посмотри что будет при загрузке происходить.

                      Only users with full accounts can post comments. Log in, please.