четверг, 1 августа 2013 г.

Установка паравиртуальной CentOS в Xen

Итак, у нас есть задача - установить Linux CentOS 5 как гостевую паравиртуальную виртуальную машину в гипервизор Xen (здесь мы будем рассматривать Xen 4.0.1 как последний на момент написания статьи).

Установка показана на примере Xen 4.0.1 с доменом-0 Linux Debian. Путь к виртуальным машинам оставлен по-умолчанию:
/etc/xen



Суть действий остается одинаковой для любого домена-0.


Начнем.

Перво-наперво - запаситесь горой терпения. Сайт CentOS и его зеркала показывают невероятно медленные скорости работы (около 10 Кбит/с - модемы быстрее работают).

Идем в домен-0 сервера виртуальных машин и создаем заготовку для гостевой системы.

1) В первую очередь создаем папку для нее и виртуальный диск.

# cd /etc/xen
# mkdir vm_centos
# cd vm_centos
# dd if=/dev/zero of=hdd0 bs=1M count=1 seek=10240

Здесь мы создаем файл виртуальной машины размером 10Гб без предварительной аллокации секторов (т.е. динамический) по адресу:
/etc/xen/vm_centos

Если Вы хотите сразу занять все место под файл виртуального диска - используйте следующий вариант команды dd:

# dd if=/dev/zero of=hdd0 bs=1M count=10240

Назвать папку Вы можете как угодно - следите просто, чтобы это название было корректно указано в файлах конфигурации.


2) Создаем файл конфигурации.

# nano vm.cfg

следующего вида:

kernel = "/etc/xen/vm_centos/vmlinuz"
ramdisk = "/etc/xen/vm_centos/initrd.img"
extra = "text"
name = "centos"
memory = "256"
disk = [ 'file:/etc/xen/vm_centos/hdd0,xvda,w' ]
vif = [ 'bridge=eth0, mac=fe:16:3e:68:fc:47' ]
vcpus=1
on_reboot = 'destroy'
on_crash = 'destroy'

Поясним некоторые моменты:

а) Мы указываем использовать для загрузки ядро и initrd-образ из папки нашей виртуальной машины. Мы их скачаем в следующем шаге.
б) Указываем использовать LOOP-интерфейс для файла жесткого диска (FILE:) вместо более быстрого, но чаще всего не работающего TAP-интерфейса (последний стабильно работает только для HVM-доменов).
в) Выделяем 256Мб ОЗУ.
г) Сразу прописываем MAC-адрес для сетевого интерфейса. Это крайне рекомендуется, иначе Xen будет выдавать MAC-адрес сам, причем каждый раз разный!
д) Выделяем 1 процессорное ядро.
е) Указываем, что машину нужно будет остановить при перезагрузке. Нам это нужно затем, что после первой же перезагрузки после установки нам нужно будет сразу загасить виртуальную систему - так удобнее. В дальнейшем мы поменяем этот параметр.


3) Скачиваем ядро и initrd для установки:

Для 32-битной системы (x86-32)

# wget http://mirror.centos.org/centos/5/os/i386/images/xen/initrd.img
# wget http://mirror.centos.org/centos/5/os/i386/images/xen/vmlinuz

Для 64-битной системы (x86-64 или, как правильно - amd64)

# wget http://mirror.centos.org/centos/5/os/x86_64/images/xen/initrd.img
# wget http://mirror.centos.org/centos/5/os/x86_64/images/xen/vmlinuz


4) Запускаем установку CentOS:

# xm create -c vm_centos/vm.cfg

Ключ -c указывает, что сразу нужно подцепиться к консоли машины. Если Вы его забыли указать, то подцепиться можно в любой момент командой:

# xm console centos

По ходу установки экран (в отличие от HVM с VNC Viewer) будет черно-белым. Текущее положение селектора можно видеть по блоку курсора (белый блок). Выбор опции - клавиши вверх и вниз. Перейти на кнопки - через Tab.


5) Ставим CentOS в интерактивном режиме.

Нас приветствует установщик. Интуитивно двигаемся по его шагам, указывая нашу локаль. Если это чудо спрашивает нас - Text-mode или VNC, то отвечаем "Text-mode". Когда нас спрашивают - откуда брать файлы для установки - отвечаем "HTTP".


6) Нас просят ввести адрес HTTP - откуда брать файлы для установки. Вводим:

Как я уже говорил - ресурсы самого CentOS демонстрируют нам скорости начала 90х. Если есть желание загрузить и поставить ОС побыстрее - используйте другие зеркала, которые можно посмотреть по адресу:

http://www.centos.org/modules/tinycontent/index.php?id=34

Следите за тем, чтобы в шестой колонке было указано "Yes" (Direct DVD downloads), иначе, по моему опыту, установщик заругается, что не может загрузить образ ОС (например, такая ошибка выскакивает на mirror.yandex.ru).

Одно из неплохих найденных зеркал:

Server: ftp.astral.ro
dir: distros/centos/5/os/x86_64

Если же Вы хотите использовать официальный ресурс - вот его координаты:

Server: mirror.centos.org
dir: centos/5/os/x86_64/

Если нужна 32-битная система - указываем i386 вместо x86_64.

Идем дальше.

Оно довольно долго будет загружать установочный образ, после чего перейдет к следующему окну.


7) Оно пишет "Welcome" и предлагает разметить диск (The partition table on device xvda was unreadable). Отвечаем "Yes". Оно еще раз уточняет - отвечаем "OK" и "Yes".


8) Оно говорит, что готово к разметке и спрашивает - не хотим ли мы заценить - как оно решило нам диск разбить (Review and modify partitioning layout?). Говорим - "Да, конечно!" (Yes).

Здесь оно показывает свой вариант. Если устраивает (редко) - соглашаемся и жмем на "OK". Если не устраивает - меняем и жмем "OK".


9) Если ОЗУ Вы выделили немного (те же 256Мб) - то оно предупреждает, что памяти мало (As you don't have much memory in this machine, we need to turn on swap space immediately) и предлагает сразу включить файл подкачки на целевом диске. Конечно, соглашаемся ("Yes").


10) Загрузчик. Оно спрашивает - какой загрузчик использовать (Which boot loader you like to use). Выбор небольшой - никакого или GRUB. Нас устраивает только GRUB (даже если бы был и другой какой), так что смело выбираем "Use GRUB Boot Loader", через Tab перемещаемся на "OK" и давим на нее.


11) Оно спрашивает - какую консоль использовать. Оставляем строчку "console=xvc0" и жмем на "OK".


12) Спрашивает - поставить ли пароль на GRUB? Оставляем поля ввода пароля пустыми и через Tab перемещаемся на "ОК". Жмем на нее.


13) Оно спрашивает про то - что загружать через GRUB. Просто жмем на "OK".


14) Очередной вопрос - куда поставить загрузчик. Ставим курсор на "/dev/xvda" и через Tab жмем OK.


15) Следующий вопрос - сконфигурировать ли сетевой интерфейс прямо сейчас. Говорим "Да, несомненно" - жмем "Yes".

Здесь проверяем все настройки нашего сетевого интерфейса, меняем если что-то необходимо.


16) Следующий вопрос - часовой пояс (time zone). Стрелками вверх/вниз выбираем нужный нам (например, Asia/Yekaterinburg), через Tab перемещаемся на "OK" и нажимаем на нее.


17) Спрашиваем рутовый пароль (для root). Вводим пароль для суперпользователя (внимательно) и жмем на "OK".


18) Далее пишет "Retrieving installation information..." и некоторое время тормозит. Может подвиснуть на 40% - ничего страшного, оно продолжит установку.


19) Далее установщик спрашивает - какой софт ставить. Убираем разные GNOME, KDE, Desktop и подобные вещи, зато ставим галочку напротив надписи "Customize software selection" и продолжаем.

В следующем окне выбираем нужный софт. ВНИМАНИЕ! Очень аккуратно выбирайте, не ставьте то, что Вам не нужно на этом сервере - одна лишняя галочка - и оно радостно загрузит половину X-Window для какой-нибудь фигни.


20) Следующий шаг - оно проверяет зависимости выбранных пакетов (Checking dependencies in packages selected for installation...). Процедура занимает некоторое время, паниковать не стоит.


21) Теперь оно нам сообщает, что лог установки будет доступен после перезагрузки по пути "/root/install.log". Учитываем это и давим "ОК".


22) Оно форматирует диск... и начинает ставить софт. Процедура долгая, т.ч. не расчитывайте через 5 минут увидеть радостное сообщение, что все готово. Не волнуйтесь, если зависнет на табличке "Starting install process. This may take several minutes..." - ничего страшного. Оно думает. А может, центосу тоже нужно делать перерывы на кофе? Короче, на этой надписи установшик некоторое время тормозит.


23) После установки оно нам сообщает, что щас перезагрузится. Давим "ОК", в тайне потирая ручки - никуда оно не перезагрузися. Помните строчку "on_reboot = 'destroy'"? Воот. Машина сразу загасится и мы вернемся в консоль домена-ноль Xen.


24) В этом месте можно скопировать образ виртуальной машины для того, чтобы использовать его в дальнейшем как шаблон (если, конечно, Вам это нужно).


25) Меняем файл конфигурации vm.cfg. Приводим его к такому виду:

bootloader = "/usr/bin/pygrub"
extra = "text"
name = "centos"
memory = "256"
disk = [ 'file:/etc/xen/vm_centos/hdd0,xvda,w' ]
vif = [ 'bridge=eth0, mac=fe:16:3e:68:fc:47' ]
vcpus=1
on_reboot = 'restart'
on_crash = 'restart'
on_poweroff = 'destroy'

Что здесь изменилось?
а) Убрали указание на ядро и initrd - они нам больше не нужны.
б) Указали загрузчиком PyGRUB - дабы ядро оно брало прямо изнутри файловой системы виртуальной машины. Плюс такого метода - при обновлении ядра нам не нужно его выгружать отдельно в домен-ноль для того, чтобы апдейты заработали.
в) Поменяли значение параметров "on_reboot" и "on_crash" на "restart". Таким образом теперь при перезагрузке оно действительно перезагрузиться, а не загасится, как сделало сейчас.


26) Стартуем машину снова:

# xm create -c vm_centos/vm.cfg

Сразу после загрузки ядра Вам покажут менюшку с предложением подкорректировать некоторые параметры служб. Аккуратнее - менюшка сама закроется через несколько секунд если не давить никакие кнопки.

Здесь крайне рекомендую обратить внимание на файервол - дабы он соответствовал тому, что Вам нужно. Иначе он сразу включен и не особо приветлив даже для стандартных служб (ssh, например).


Ну все, добро пожаловать в паравиртуальный CentOS!

Выйти из консоли и вернуться в dom0 Xen можно сочетанием клавишь Ctrl+]

Взято из http://how-it.ru/public/root/88-ustanovka_paravirtualnoi_centos_v_xen.html

Комментариев нет:

Отправить комментарий