Tag: centos
XEN и Fedora 10 – большая подстава
by L0rda on Dec.04, 2008, under linux, xen
Все началось с того, что я решил обновить xen’овскую виртуалку domU до Fedora 10 (до этого была 9-ка), там крутился всего один сайт(зато какой!), ничего не предвещало беды. Обновил fedora-release, проапгрейдил пакеты и отправил на ребут, тут начинается самое интересное – виртуалка не запускается.
При попытке завести вручную полчаем ошибку:
[root@xen]# xm create xnl3
Using config file "/etc/xen/xnl3".
Error: (2, 'Invalid kernel', 'xc_dom_find_loader: no loader found\n')
Судорожно начинаю гуглить и оказывается, что в Fedora 10 ядро в формате bzImage (тикет), а Xen в CentOS 5.2 его понимать не хочет это раз(ему нужен libxc), и заново Fedora 10(далее по тексту F10) не поставить тоже, потому что virt-install тоже нужен по-новее, который может распарсить treeinfo от F10 (тикет). Ну и что делать? Гуглю дальше, нашел src.rpm (тут), качаю, пересобираю,
yum install rpm-build
rpm -i http://pasik.reaktio.net/tmp/python-virtinst-0.300.2-11.el5.src.rpm
rpm -i http://pasik.reaktio.net/tmp/xen-3.0.3-73.el5.src.rpm
cd /usr/src/redhat/SPEC
rpmuild -ba python-virtinst.spec
rpmbuild -ba xen.spec
тянет за собой кучу пакетов конечно, и все равно отказывается собираться из-за отсутствия pdf документации, редактирую .spec файл, комментирую строку
%doc docs/pdf/
собираю и ставлю
rpmbuild -ba xen.spec
cd /usr/src/RPMS/x86_64/
rpm -Uvh *.rpm
обновляю virt-install
cd /usr/src/RPMS/noarch/
rpm -Uvh *.rpm
Дальше reboot и слава яйцам, виртуалка завелась
Надеюсь вы не наступите на мои грабли.
В процессе гугления я также узнал, что dom0 в Fedora 10 опять нет и единственная возможность виртуализации это KVM.
UPDATE: готовые пакеты xen, virt-install для установки F-10 здесь
Xen, windows
by L0rda on Dec.02, 2008, under MacOS X, linux
Таки я подсел на Xen, очень он мне нравится. В связи с чем поднял на сервере Dom0 на centOS 5 (прикол в том, что dom0 на fedora9 сломан и не заводится, заводится на 8-ке и на 10-ке), сервер с 8 ядрами и 8 гигами оперативной памяти. В качестве гостевых систем уже успел поднять Fedora 9 и Windows XP, последнюю поднял только для того, чтобы отказаться от Parallels, который мне уже порядком надоел, обновляться не хочет, виснет, а за новую версию башлять деньги совсем не хочется, ну а винда мне нужна только для того чтобы пользоваться webmoney, яндекс.деньгами и банк-клиентом ВТБ24. Линукс поднялся в ачестве гостевой оси с пол пинка, с виндой я трахался целый день, хотя казалось бы все просто.
Итак установка винды
Для начала нужно знать, поддерживает ли проц аппаратную виртуализацию, в моем случае я имел два процессора Intel Xeon X5355 и прочитав спецификацию выяснил, что поддержка есть.
Проверяем включена ли она:
$ xm info | grep caps
hw_caps : bfebfbff:20100800:00000000:00000140:0004e3bd:00000000:00000001
xen_caps : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64
hvm-3.0-x86_32 говорит о том, что XEN успешно обнаружил процессор, который поддерживает технологии Intel VT или AMD-V.
Далее нам нужен образ винды в формате ISO, закачиваем на сервер и кидаем куда-нибудь вроде /var/lib/xen/images/
Там же создаем файл, в котором у нас будет находиться сама винда.
dd if=/dev/zero of=xp.img bs=1M count=4096
Я сделал его равным 4гб.
Дальше пошли хитрости, сначала запускаем процесс установки через virt-install
virt-install -n xenxp -r 384 -f /var/lib/xen/images/xp.img -b xenbr0 --vnc -v -c /var/lib/xen/images/winxp200808-install.iso
оно конечно ругнется, что к VNC не сможет приконнектиться, но это фигня. Оно создаст конфиг.
Дальше мы останавливаем виртуальную машину.
xm destroy xenxp
И правим ее конфиг, в моем случае это /etc/xen/xenxp
Конфиг должен выглядеть примерно так:
name = "xenxp"
uuid = "9cc97c2f-88de-003d-b254-4185d7833d82"
maxmem = 384
memory = 384
vcpus = 1
builder = "hvm"
kernel = "/usr/lib/xen/boot/hvmloader"
boot = "d"
pae = 0
acpi = 0
apic = 0
localtime = 0
on_poweroff = "destroy"
on_reboot = "destroy"
on_crash = "restart"
device_model = "/usr/lib64/xen/bin/qemu-dm"
sdl = 0
vnc = 1
vncunused = 1
vnclisten="78.x.x.x"
vncdisplay = "0"
disk = [ "file:/var/lib/xen/images/xp.img,hda,w", "file:/var/lib/xen/images/winxp200808-install.iso,hdc:cdrom,r" ]
vif = [ "mac=00:16:3e:67:bf:8f,bridge=xenbr0" ]
serial = "pty"
Обращаем внимание на:
on_reboot = “destroy” – чтобы после установки, машина не перезагрузилась, а выключилась
boot = “d” – чтобы грузилось с CD-ROM(в нашем случае с образа)
vnc = 1 – включение VNC доступа
vnclisten=”78.x.x.x” – биндим на внешний IP
vncdisplay = “0″ – дисплэй по-умолчанию, порт получается 5900
disk = [ "file:/var/lib/xen/images/xp.img,hda,w", "file:/var/lib/xen/images/winxp200808-install.iso,hdc:cdrom,r" ] – и тут прописываем путь к образу перед “,hdc:cdrom,r”
acpi и apic отключаем
pae тоже не нужен, если памяти много не используется, я поставил 384 мб и даже это я считаю много для винды.
Далее запускаем виртуалку
xm create xenxp
коннектимся VNC-клиентом к IP dom0 системы и ставим винду как обычно, тут хочу заметить что пол вечера я трахался и не мог дойти дальше разбивки, VNC-клиент постоянно умирал на маке, в качестве клиента использовал “Chicken of the VNC” – не используйте его, оно глючное. В итоге пришлось поставить какой-то клиент на винду в parallels и работать с него. Винда поставилась, и виртуалка вместо ребута выключилась.
Дальше нужно снова отредактировать конфиг вот таким образом(тут только параметры, которые я редактировал):
boot = "c"
disk = [ "file:/var/lib/xen/images/xp.img,hda,w"]
#, "file:/var/lib/xen/images/winxp200808-install.iso,hdc:cdrom,r" ]
on_reboot = "restart"
конфиг это кстати питоновский скрипт, то есть туда можно зафигачить все что угодно ![]()
тут я убрал подключение имаджа дистрибутива винды, включил загрузку с диска С, и включил обратно нормальный ребут, VNC тоже можно отключить
IP прописал статический, включил удаленный доступ к рабочему столу, разрешил его в фаерволе, дальше я поставил патч который делает из XP нормальный терминал-сервер и снес все ненужные сервисы и программы, перенес из параллелс кипер, яндекс-деньги, банк-клиент, поствил firefox и радуюсь жизни, от parallels я избавился.