суббота, 12 мая 2012 г.

FreeBSD в DomU на xen

В HVM запустить не проблема: подключаем диск, сдром, указываем vnc-опции. (подробно - по ссылкам ниже есть)
!! Есть проблемы запуска на AMD, разные версии не запускаются по разному. В результате платформа была заменена на интел.
!!Хорошие новости: Microsoft обеспечит официальную поддержку платформы виртуализации Hyper-V во FreeBSD
Дело в том, что цитрикс, текущий владелец хена, также хороший партнер мелких. Так что кодовая база hyper-v и xen как минимум пересекается, а значит наработки для hyper-v появятся в xen + код, который будет отдан в freebsd, также будет поддерживать и xen. Так что скорее всего через годик фря будет работать и в hvm на всех платформах, и в pv, и драйвера отладят нормально.

PV-режима под amd64 нету. Есть ядро с pv-xen драйверами, так что это будет смешанный режим - запускаться как hvm, но сеть например в pv. Для продакшена не очень хорошая идея, но для тестов и разработки сгодится.
Под i386 есть конфиг XEN - собираем ядро, ставим его куда-либо, откуда можно будет вытащить (make KERNCONF=XEN DESTDIR=/root/myboot kernel), подсовываем в конфиг в dom0. Можно через pygrub (где-то было, что заменяется на pv-grub), но там есть нюансы, напрямую оно не запустится.
Но чтобы собрать ядро, надо уже иметь систему в hvm, что у меня было сделано. С нуля - есть в интернете готовые ядра, проблема найти посвежее. По линкам ниже тоже будет.
Ограничения: максимум 850мб памяти, в PV проблемы с работой VNC - для его запуска скорее всего придется достать бубен...

Из доработок:
1) файл в dom0:
в стандартный конфиг под pv вписываем сеть, диск, память менее 850мб, название машины. Ядро указываем через pygrub или напрямую (kernel = "/var/xen/kernel.8.2"). Для запуска этого достаточно, но словим mountpoint> и надо будет указать /, поэтому сразу можно вписать строку
extra = "vfs.root.mountfrom=ufs:ad0s1a,machdep.idle_mwait=0,boot_verbose=1"
Теперь можно запустить как xm create -c freebsd.pv - и мы увидим весь процесс загрузки.
2) В самой системе. Как минимум, надо в rc.conf скопировать всё про сеть, заменив название нашей карты на xn0 (xen network), так:
ifconfig_re0="inet 192.168.2.5/24"
ifconfig_xn0="inet 192.168.2.5/24"
2 разных сетевых с 1 айпи? Да, можно, поскольку у нас не может одновременно встретиться обе карты и образ получается более "универсальным"
Также будет ругань про консоли
...
May 12 20:21:38 fbsd8 getty[1035]: open /dev/ttyv4: No such file or directory
...
Причина в том, что этих консолей у нас нет. Можно оставить для совместимости, можно закомментировать, но тогда в hvm у нас не будет переключения консолей (а было ли оно вообще? Это же не реальный сервер...)

Сначала такое преобразование было проделано мной методом тыка, но потом найдена хорошая дока Xen FreeBSD 8.2 DomU (PV) -- Step by Step Howto, оттуда же взяты Xen DomU configuration examples - FreeBSD and CentOS и Xen 3.4.3 on CentOS 5.5 -- Tutorial
Собственно, если freebsd интересен - эти доки небольшие и к ознакомлению обязательны, особенно первая дока.

Официальный статус: http://wiki.freebsd.org/FreeBSD/Xen

FreeBSD on EC2
Есть pypxeboot, но это для совсем уж гиков.

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

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