Citrix XenServer: различия между версиями

Материал из ALT Linux Wiki
Строка 12: Строка 12:
Примечание: данное ядро устанавливалось в бета-версии дистрибутива. Не знаю какое ядро будет устанавливаться в финальной версии. Если по умолчанию будет установлено другое ядро, то возможно надо будет установить ядро el-smp вручную.
Примечание: данное ядро устанавливалось в бета-версии дистрибутива. Не знаю какое ядро будет устанавливаться в финальной версии. Если по умолчанию будет установлено другое ядро, то возможно надо будет установить ядро el-smp вручную.


После того как система успешно установилась, она работает в режиме HVM (из-за того, что при создании ВМ был выбран шаблон «Other install media»). Работа в режиме HVM имеет следующие недостаки: некоторое снижение производительности, невозможность использования LiveMigration, отсутствует
После того как система успешно установилась, она работает в режиме HVM (из-за того, что при создании ВМ был выбран шаблон «Other install media»). Работа в режиме HVM имеет следующие недостаки: некоторое снижение производительности, невозможность использования LiveMigration, отсутствует возможность мониторинга в XenCenter памяти, используемой ВМ. Чтобы исправить это, на необходимо переключить ВМ в режим PV.
возможность мониторинга в XenCenter памяти, используемой ВМ. Чтобы исправить это, на необходимо переключить ВМ в режим PV.


Чтобы после перезапуска ВМ смогла нормально запуститься нужно сгенерировать новый initrd.
Чтобы после перезапуска ВМ смогла нормально запуститься нужно сгенерировать новый initrd. Сначала добавим нужные модули в initrd, добавив в файл <tt>/etc/initrd.mk</tt> следующую строку:  
Для этого редактируем файл '''/etc/initrd.mk''', добавляем в него строки:
<pre>
MODULES_ADD += xenblk xennet
</pre>


'''MODULES_ADD = \'''
Теперь сгенерируем новый initrd командой <tt>make-initrd</tt>. Причем, если дефолтным ядром являлось не el-smp, то команде <tt>make-initrd</tt> при помощи ключа <tt>-k</tt> потребуется указать версию ядра, для которой генерируется initrd.
 
'''xenblk \'''
 
'''xennet'''
 
И запускаем:
'''make-initrd'''


Следующий шаг — подготовка консоли, чтобы в XenCenter во вкладке Console, относящейся к нашей ВМ все работало корректно.
Следующий шаг — подготовка консоли, чтобы в XenCenter во вкладке Console, относящейся к нашей ВМ все работало корректно.


В файле '''/etc/inittab''' добавляем строчку:
Добавляем hvc0 в файл <tt>/etc/securetty</tt>. В файл <tt>/etc/inittab</tt> добавляем строчку:
<pre>
ca:2345:respawn:/sbin/mingetty --noclear hvc0
</pre>


'''T0:2345:respawn:/sbin/mingetty hvc0'''
Поскольку *getty на виртуальных консолях мы все равно не увидим, то можно их отключить, закомментировав соответствующие строки в <tt>/etc/inittab</tt>.
 
И добавляем hvc0 в файл '''/etc/securetty'''


Выключаем VM.
Выключаем VM.
Строка 44: Строка 39:
Для этого идем в консоль хоста в XenServer или подключаемся к нему через SSH.
Для этого идем в консоль хоста в XenServer или подключаемся к нему через SSH.


В консоли вводим:
В консоли вводим: <tt>xe vm-list</tt>
'''xe vm-list'''


Запоминаем UUID нашей ВМ.
Запоминаем UUID нашей ВМ. Далее вводим:


Далее вводим:
<pre>
# Переключаем VM в режим PV
xe vm-param-set uuid=<VM-UUID> HVM-boot-policy=""
xe vm-param-set uuid=<VM-UUID> PV-bootloader=pygrub


'''xe vm-param-set uuid=c22179cb-cb92-0a66-d382-1def050ceb4b HVM-boot-policy=""'''
# Передаем загрузчику и ВМ дополнительные параметры:
xe vm-param-set uuid=<VM-UUID> PV-bootloader-args="--kernel /boot/vmlinuz --ramdisk /boot/initrd.img"
xe vm-param-set uuid=<VM-UUID> PV-args="root=/dev/xvda2 console=hvc0 quiet"
</pre>


'''xe vm-param-set uuid=c22179cb-cb92-0a66-d382-1def050ceb4b PV-bootloader=pygrub'''
<VM-UUID> заменяем на свой, полученный на предыдущем шаге. Причем его не обязательно вводить вручную. Достаточно ввести несколько первых символов и на жать TAB, сработает автодополнение.


Естественно uuid вводим свой, полученный на предыдущем шаге. Причем его не обязательно вводить вручную. Достаточно ввести несколько первых символов и на жать TAB, сработает автодополнение.
Примечание: /dev/xvda2 в PV-args соответствует /dev/sda2 до смены режима. Если у вас корень установлен не в /dev/sda2, то необходимо подставить соответствующее устройство.


Если необходимо переключится обратно в режим HVM, то это можно сделать этими командами:
Если вдруг понадобится переключится обратно в режим HVM, то это можно будет сделать следующими командами:
<pre>
xe vm-param-set uuid=c22179cb-cb92-0a66-d382-1def050ceb4b HVM-boot-policy="BIOS order"


'''xe vm-param-set uuid=c22179cb-cb92-0a66-d382-1def050ceb4b HVM-boot-policy=«BIOS order»'''
# Эту команду вводить не обязательно. Первой должно быть достаточно
xe vm-param-set uuid=c22179cb-cb92-0a66-d382-1def050ceb4b PV-bootloader=""
</pre>


('''xe vm-param-set uuid=c22179cb-cb92-0a66-d382-1def050ceb4b PV-bootloader=""''' Эту команду вводить не обязательно. Первой достаточно)


Передаем загрузчику и ВМ дополнительные параметры:
Далее нужно сделать диск виртуальной машины загрузочным. Получаем список дисковых устройств нашей VM:
<pre>
xe vm-disk-list uuid=<VM-UUID>
</pre>
Запоминаем uuid у диска 0 VBD и выполняем:
<pre>
xe vbd-param-set uuid=<VBD-UUID> bootable=true
</pre>


'''xe vm-param-set uuid=c22179cb-cb92-0a66-d382-1def050ceb4b PV-bootloader-args="--kernel /boot/vmlinuz --ramdisk /boot/initrd.img"'''
где <VBD-UUID> равен uuid VBD диска, полученному на предыдущем шаге.


'''xe vm-param-set uuid=c22179cb-cb92-0a66-d382-1def050ceb4b PV-args=«root=/dev/xvda2 console=tty0 xencons=tty»'''
В свойствах ВМ в разделе загрузки выбираем загрузку с HD
 
примечание: /dev/xvda2 соответствует /dev/sda2 до смены режима. Если у вас корень установлен не в /dev/sda2, то необходимо изменит /dev/xvda2.
 
Далее нужно сделать диск виртуальной машины загрузочным:
'''xe vm-disk-list uuid''' запоминаем uuid у диска 0 VBD и выполняем:
 
'''xe vbd-param-set uuid=d101b2dc-b57c-5205-6192-0bff9d2d8f67 bootable=true'''
 
где uuid равен uuid VBD диска, полученному на предыдущем шаге.
 
В свойствах ВМ в разделе загрузки выбираем HD


Запускаем ВМ
Запускаем ВМ
Строка 84: Строка 83:
Для исправления необходимо перезапустить XenCenter.
Для исправления необходимо перезапустить XenCenter.


В '''/etc/fstab''' редактируем строчку для cd-rom, меняем sr0 на xvdd
В XenCenter подключаем DVD-drive xs-tools.iso
 
Смотрим в вывод <tt>ls /dev/xvd*</tt> и пытаемся понять, кто из них - DVD-драйв. Обычно это xvdd, но в моем случае это был xvdb.


В XenCenter подключаем DVD-drive xs-tools.iso
В <tt>/etc/fstab</tt> редактируем строчку для /media/cdrom, меняем /dev/sr0 на соответствующее устройство.
В косоли ВМ:
 
В косоли ВМ выполняем:


'''mount /media/cdrom'''
<pre>
mount /media/cdrom
cd /media/cdrom/Linux


'''cd /media/cdrom/Linux'''
# прикидываемся RHEL 6 версии
sh install.sh -d rhel -m 6 
</pre>


'''sh install.sh -d rhel -m 6''' (прикидываемся RHEL 6 версии)
Перезагружаемся.


Перезагружаемся
Также необходимо поправить файл <tt>/etc/sysconfig/grub2</tt>
Также необходимо поправить файл /'''etc/sysconfig/grub2'''


В парамете GRUB_AUTOUPDATE_DEVICE указать устройство '/dev/xvda'
В парамете <tt>GRUB_AUTOUPDATE_DEVICE</tt> нужно указать устройство '/dev/xvda'


Для того, чтобы на закладке Networking в XenCenter выводился IP-адрес нужно поставить пакет net-tools (нужен ifconfig).
Для того, чтобы на закладке Networking в XenCenter выводился IP-адрес нужно поставить пакет net-tools (нужен ifconfig).
[[Категория:Enterprise Software]]
[[Категория:Enterprise Software]]
[[Категория:Xen]]
[[Категория:Xen]]

Версия от 22:02, 15 декабря 2011

Citrix XenServer

Описание процесса запуска ALT Linux 6.0 Centaurus Beta x86_64 в PV-mode на Citrix XenServer

Для начала, создаем новую виртуальную машину (ВМ). Так как продуктов ALT Linux нет в списке доступных шаблонов, то в качестве шаблона выбираем «Other install media». Далее следуем указаниям мастера и завершаем создание ВМ. Запускается усатновщик ОС. Тут тоже все стандартно. Я выбирал автоматическое разбиение диска, поэтому корневая файловая система у меня на sda2, а на sda1 — swap. Тип устанавливаемой системы был выбран «сервер», поэтому было установлено ядро el-smp

Примечание: данное ядро устанавливалось в бета-версии дистрибутива. Не знаю какое ядро будет устанавливаться в финальной версии. Если по умолчанию будет установлено другое ядро, то возможно надо будет установить ядро el-smp вручную.

После того как система успешно установилась, она работает в режиме HVM (из-за того, что при создании ВМ был выбран шаблон «Other install media»). Работа в режиме HVM имеет следующие недостаки: некоторое снижение производительности, невозможность использования LiveMigration, отсутствует возможность мониторинга в XenCenter памяти, используемой ВМ. Чтобы исправить это, на необходимо переключить ВМ в режим PV.

Чтобы после перезапуска ВМ смогла нормально запуститься нужно сгенерировать новый initrd. Сначала добавим нужные модули в initrd, добавив в файл /etc/initrd.mk следующую строку:

MODULES_ADD += xenblk xennet

Теперь сгенерируем новый initrd командой make-initrd. Причем, если дефолтным ядром являлось не el-smp, то команде make-initrd при помощи ключа -k потребуется указать версию ядра, для которой генерируется initrd.

Следующий шаг — подготовка консоли, чтобы в XenCenter во вкладке Console, относящейся к нашей ВМ все работало корректно.

Добавляем hvc0 в файл /etc/securetty. В файл /etc/inittab добавляем строчку:

ca:2345:respawn:/sbin/mingetty --noclear hvc0

Поскольку *getty на виртуальных консолях мы все равно не увидим, то можно их отключить, закомментировав соответствующие строки в /etc/inittab.

Выключаем VM.

В XenCenter переходим на вкладку Storage, относящейся к нашей ВМ. У меня почему-то SR создавался с «Device Position» 1. В свойствах SR меняем «Device Position» на 0

Далее необходимо переключить режим ВМ из HVM в PV. Для этого идем в консоль хоста в XenServer или подключаемся к нему через SSH.

В консоли вводим: xe vm-list

Запоминаем UUID нашей ВМ. Далее вводим:

# Переключаем VM в режим PV
xe vm-param-set uuid=<VM-UUID> HVM-boot-policy=""
xe vm-param-set uuid=<VM-UUID> PV-bootloader=pygrub

# Передаем загрузчику и ВМ дополнительные параметры:
xe vm-param-set uuid=<VM-UUID> PV-bootloader-args="--kernel /boot/vmlinuz --ramdisk /boot/initrd.img"
xe vm-param-set uuid=<VM-UUID> PV-args="root=/dev/xvda2 console=hvc0 quiet"

<VM-UUID> заменяем на свой, полученный на предыдущем шаге. Причем его не обязательно вводить вручную. Достаточно ввести несколько первых символов и на жать TAB, сработает автодополнение.

Примечание: /dev/xvda2 в PV-args соответствует /dev/sda2 до смены режима. Если у вас корень установлен не в /dev/sda2, то необходимо подставить соответствующее устройство.

Если вдруг понадобится переключится обратно в режим HVM, то это можно будет сделать следующими командами:

xe vm-param-set uuid=c22179cb-cb92-0a66-d382-1def050ceb4b HVM-boot-policy="BIOS order"

# Эту команду вводить не обязательно. Первой должно быть достаточно
xe vm-param-set uuid=c22179cb-cb92-0a66-d382-1def050ceb4b PV-bootloader=""


Далее нужно сделать диск виртуальной машины загрузочным. Получаем список дисковых устройств нашей VM:

xe vm-disk-list uuid=<VM-UUID>

Запоминаем uuid у диска 0 VBD и выполняем:

xe vbd-param-set uuid=<VBD-UUID> bootable=true

где <VBD-UUID> равен uuid VBD диска, полученному на предыдущем шаге.

В свойствах ВМ в разделе загрузки выбираем загрузку с HD

Запускаем ВМ После запуска, консоль ВМ, которая доступна через XenCenter не будет реагировать на клавиатуру. Для исправления необходимо перезапустить XenCenter.

В XenCenter подключаем DVD-drive xs-tools.iso

Смотрим в вывод ls /dev/xvd* и пытаемся понять, кто из них - DVD-драйв. Обычно это xvdd, но в моем случае это был xvdb.

В /etc/fstab редактируем строчку для /media/cdrom, меняем /dev/sr0 на соответствующее устройство.

В косоли ВМ выполняем:

mount /media/cdrom
cd /media/cdrom/Linux

# прикидываемся RHEL 6 версии
sh install.sh -d rhel -m 6   

Перезагружаемся.

Также необходимо поправить файл /etc/sysconfig/grub2

В парамете GRUB_AUTOUPDATE_DEVICE нужно указать устройство '/dev/xvda'

Для того, чтобы на закладке Networking в XenCenter выводился IP-адрес нужно поставить пакет net-tools (нужен ifconfig).