Xen: различия между версиями
(перенос в категорию Admin) |
Нет описания правки |
||
Строка 1: | Строка 1: | ||
[[Категория:Admin]] | [[Категория:Admin]] | ||
=== Введение === | |||
Xen является систему паравиртуализации. Тоесть системой позволяюзий запускать несколько ядер операционных систем специального вида на одной реальной машине. | |||
==== Слова ==== | |||
Простая задача: x86_64 система на базе altlinux server 4.0, хотелось бы завести под нее xen-ядро. Благодаря Михаилу Якушину большинство работ уже сделано, осталось решить вопрос загрузки. Проблема в том что для x86_64 загрузчик grub не собирается. А на текущий момент именно grub-единственно легкий способ загрузки xen-ядер. | |||
==== Решение ==== | |||
По хорошему, необходимо собрать grub для 32битной систему, использовать его для создания некого загрузочного cd-диска. Положить на него stage1 stage2. Ставить систему с любым ядром и lilo. Загружаться в эту систему, копировать сd-rom’а /boot/grub на диск, создавать /boot/grub/device.map и /boot/grub/menu.lst, перезагружаться и с помощью волшебного cd-диска устанавливать grub как основной загрузчик системы. | |||
типа | |||
<pre>root(hd0,1) | |||
setup(hd0) | |||
reboot</pre> | |||
[http://wpkg.org/Running_Xen_with_LILO http://wpkg.org/Running_Xen_with_LILO] | |||
[http://gentoo-wiki.com/HOWTO_Xen_and_Gentoo http://gentoo-wiki.com/HOWTO_Xen_and_Gentoo] | |||
[http://www.tjd.phlegethon.org/software/#mbootpack http://www.tjd.phlegethon.org/software/#mbootpack] | |||
==== Альтернативное решение ==== | |||
В качестве альтернативного решения можно использовать загрузчик extlinux из пакета syslinux. | |||
== Установка Xen в ALT Linux == | == Установка Xen в ALT Linux == |
Версия от 13:21, 18 августа 2008
Введение
Xen является систему паравиртуализации. Тоесть системой позволяюзий запускать несколько ядер операционных систем специального вида на одной реальной машине.
Слова
Простая задача: x86_64 система на базе altlinux server 4.0, хотелось бы завести под нее xen-ядро. Благодаря Михаилу Якушину большинство работ уже сделано, осталось решить вопрос загрузки. Проблема в том что для x86_64 загрузчик grub не собирается. А на текущий момент именно grub-единственно легкий способ загрузки xen-ядер.
Решение
По хорошему, необходимо собрать grub для 32битной систему, использовать его для создания некого загрузочного cd-диска. Положить на него stage1 stage2. Ставить систему с любым ядром и lilo. Загружаться в эту систему, копировать сd-rom’а /boot/grub на диск, создавать /boot/grub/device.map и /boot/grub/menu.lst, перезагружаться и с помощью волшебного cd-диска устанавливать grub как основной загрузчик системы. типа
root(hd0,1) setup(hd0) reboot
http://wpkg.org/Running_Xen_with_LILO http://gentoo-wiki.com/HOWTO_Xen_and_Gentoo http://www.tjd.phlegethon.org/software/#mbootpack
Альтернативное решение
В качестве альтернативного решения можно использовать загрузчик extlinux из пакета syslinux.
Установка Xen в ALT Linux
Пример на основе branch 4.0.
Моя конфигурация такова:
/dev/sda1 — root — 63G /dev/sda2 — swap — 4G
Ставим grub и устанавливаем его:
# apt-get install grub # grub-install /dev/sda
Примерный /boot/grub/menu.lst:
timeout 5 color black/cyan yellow/cyan default 0 title default kernel /boot/vmlinuz root=/dev/sda1 vga=normal initrd /boot/initrd.img
Проверим, что grub грузит текущее ядро:
# reboot
После успешной загрузки ставим ядро и необходимые для работы железа модули:
# apt-get install kernel-image-xen-dom0 kernel-modules-необходимые-xen-dom0 xen-hypervisor xen
Редактируем /boot/grub/menu.lst примерно до такого:
timeout 5 color black/cyan yellow/cyan default 0 title default kernel /boot/vmlinuz root=/dev/sda1 vga=normal initrd /boot/initrd.img title XEN kernel /boot/xen.gz dom0_mem=512M module /boot/vmlinuz-2.6.18-xen-dom0-alt6.M40.1 root=/dev/sda1 module /boot/initrd-2.6.18-xen-dom0-alt6.M40.1.img
Обратите внимание на двойную module — это обязательно.
Перезагружаемся в XEN-ядро, далее:
# service xend start
Проверим, что все в порядке:
[root@wintermute ~]# xm info host : wintermute.tld release : 2.6.18-xen-dom0-alt6.M40.1 version : #1 SMP Tue Mar 4 22:42:44 MSK 2008 machine : i686 nr_cpus : 4 nr_nodes : 1 sockets_per_node : 2 cores_per_socket : 1 threads_per_core : 2 cpu_mhz : 2392 hw_caps : bfebfbff:00000000:00000000:00000080:00004400 total_memory : 4095 free_memory : 3540 xen_major : 3 xen_minor : 1 xen_extra : .2 xen_caps : xen-3.0-x86_32p xen_scheduler : credit xen_pagesize : 4096 platform_params : virt_start=0xf5800000 xen_changeset : unavailable cc_compiler : gcc version 4.1.1 20070105 (ALT Linux, build 4.1.1-alt11) cc_compile_by : builder cc_compile_domain : rio.altlinux.org cc_compile_date : Tue Mar 4 23:38:33 MSK 2008 xend_config_format : 4 [root@wintermute ~]# brctl show bridge name bridge id STP enabled interfaces xenbr0 8000.feffffffffff no vif0.0 peth0
Поставим xend в автозапуск:
# chkconfig --level 345 xend on
Ставим kernel-image-xen-domU:
# apt-get install kernel-image-xen-domU
Делаем образ машины. Я использовал один из собственноручно приготовленных openvz-темплейтов.
# mkdir -p /xen/alt # dd if=/dev/zero of=/xen/alt.img bs=1M seek=10240 count=0 — создаем 10 ГБ «раздел» для машины # mkfs.ext3 /xen/alt.img # mount -o loop /xen/alt.img /xen/alt/ # cd /xen/alt && tar xf /altlinux-4.0.tar.gz
Поставим внутрь будущей виртуальной машины domU-ядро:
# chroot /xen/alt/ /bin/bash # vim /etc/resolv.conf — установим нужный nameserver # vim /etc/apt/sources.list — установим правильный репозиторий (можно пропустить, если устраивает тот, что преднастроен внутри контейнера) # apt-get update && apt-get install kernel-image-xen-domu
Поправим /etc/fstab в чруте, чтобы выглядело примерно так:
/dev/hda1 / ext3 defaults 0 1
Выходим из чрута:
# exit
Отмонтируем чрут: # umount /xen/alt
Ставим kernel-image-xen-domU в dom0-систему:
# apt-get install kernel-image-xen-domU
Пишем конфигурационный файл /etc/xen/alt:
kernel = "/boot/vmlinuz-2.6.18-xen-domU-alt6" memory = 256 name = "alt" root = "/dev/hda1 ro" extra = "xencons=tty" disk = [ 'file:/xen/alt.img,hda1,w' ]
Пробуем запустить: # xm create -c alt
В конце концов должен выдать приглашение на логин, куда собственно и нужно логиниться.
Для выхода из консоли нажать Ctrl-].