Информация
На главную Главная

Мой t-cards.ru
Войти Войти
Зарегистрироваться Регистрация

Разное
Форум Форум
Вернуться Форумы на t-cards.ru> Hard"n"Soft
Логин
Пароль
Регистрация Участники Поиск >> FAQ


Сообщения в теме: "Xen on Gentoo разворачиваем виртуальные и паравирт..."
24.11.2010 22:28
Admin

Регистрация: 01.12.2005
Проживание: Москва
Сообщения: 69
По умолчаниюXen on Gentoo разворачиваем виртуальные и паравиртуальные машины, уходим в облака

Часть 1. Просто поднимаем нулячую ноду на Gentoo X64



Ставим генту как оыбыно, качаем stage3 распаковываем конфигурим make.conf
Минимальные флаги чтобы завелся ксен:
USE="mmx sse sse2 hvm ioemu pygrub xen"
Дополнительно рекомендую поставить переменную
ACCEPT_KEYWORDS="~amd64"


после этого обновляем систему
emerge system -uDN && emerge world -uDN
ставим необходимые пакеты
emerge gentoolkit genkernel vconfig vim vixie-cron metalog grub dhcp hal -uDN


Ставим ядро
emerge xen-sources
На текущий момент актуальное ядро под dom0 - 2.6.34-r4
для него готовый конфиг
Просто выберите нужное оборудование для дисков и сети и все
Если ядро будете настраивать сами главное включить опцию привелигированного домена в опциях проца
плюс в устройствах выбрать все ксен устройства


Привим /etc/genkernel.conf настраиваем там что куда и как, например если массив делается через mdadm то включаем опцию


Правим
/usr/share/genkernel/arch/x86_64/config.sh
меняем bzImage на vmlinuz


Собираем ядро
genkernel all


Прописываем в груб опции
Пример:

title Xen 2.6.34
root (hd0,1)
kernel /boot/xen.gz dom0_mem=1036M dom0_max_vcpus=1 noreboot
module /boot/kernel-genkernel-x86_64-2.6.34-xen-r4 root=/dev/ram0 domdadm init=/linuxrc real_root=/dev/sda2
module /boot/initramfs-genkernel-x86_64-2.6.34-xen-r4


Не забываем установить груб в mbr


теперь пришло время поставить сам ксен и его утилиты
emerge xen -uDN


И вот здравствуй первый болт, частенько, толзы не собираются из за того что текущее ядро 2.6.34 а linux-headers - 2.6.36
Делаем так
emerge =sys-kernel/linux-headers-2.6.34
emerge xen -uDN
Можно сразу в /etc/portage/package.mask прописать чтобы выше не ставились, при обновлении.


Добавляем xend в автозагрузку
rc-update add xend default


И вот мы практически готовы перезагружаться...












12.12.2010 00:06
Новичок

Регистрация: 07.12.2010
Проживание:
Сообщения: 9
По умолчаниюXen on Gentoo разворачиваем виртуальные и паравиртуальные машины, уходим в облака

Конфиг для windows:

kernel = "/usr/lib/xen/boot/hvmloader"
builder='hvm'
memory = 1524
shadow_memory = 8
name = "win2003"
acpi=1
vif = [ 'type=ioemu, bridge=eth1, mac=00:16:3e:7a:84:fd' ]

disk = [ 'phy:/dev/hdb,hdb,w'
, 'phy:/dev/sdb,sdb,w'
]
device_model = '/usr/lib64/xen/bin/qemu-dm'
boot='c'
sdl=0
vnc=1
vncconsole=0
vnclisten="0.0.0.0"
stdvga=0
vcpus=2
serial='pty'
on_poweroff = 'destroy'
on_reboot = 'restart'
on_crash = 'restart'
usb=1
12.12.2010 00:09
Новичок

Регистрация: 07.12.2010
Проживание:
Сообщения: 9
По умолчаниюXen on Gentoo разворачиваем виртуальные и паравиртуальные машины, уходим в облака

cat /etc/xen/xend-config.sxp |grep -v ^#|grep -v ^$

(xend-relocation-server yes)
(xend-relocation-hosts-allow '^localhost$ ^localhost\\\\.localdomain$')
(network-script 'network-bridge netdev=eth1')
(vif-script vif-bridge)
(dom0-min-mem 256)
(enable-dom0-ballooning yes)
(dom0-cpus 0)
(vnc-listen '0.0.0.0')
(vncpasswd '')
15.12.2010 19:21
Admin

Регистрация: 01.12.2005
Проживание: Москва
Сообщения: 69
По умолчаниюXen on Gentoo разворачиваем виртуальные и паравиртуальные машины, уходим в облака

А по поводу конфига, и главное сети, у меня такой


(xend-relocation-server yes)
(xend-relocation-hosts-allow '')
(network-script network-bridge-wrapper)
(vif-script vif-bridge)
(dom0-min-mem 196)
(enable-dom0-ballooning yes)
(total_available_memory 0)
(dom0-cpus 0)
(vncpasswd '')

Два отличия от твоего
1. (xend-relocation-hosts-allow '') позволяет использовать миграцию, так как у меня хосты в нет не стетят
2 (network-script network-bridge-wrapper) это я по хитрой доке ксеновской сделалДока
смысл следующий:
Как ксен создает сеть, он берет физические интерфейсы списокм, почемуто через route -n, делает по ним пробежку, сам физический интерфейс, переименовывает в pethX(peth0 например).
Потом проверяет что физический интерфейс поднят, и если поднят то создает бридж с именем интерфейса (eth0 в нашем случае), и туда включает физику.
Так вот если сеть использует VLAN теги, то у скриптов относит башню, в доке рассказано как это поправить.
От себя добавлю что часто ксен оставляет dom0 вообще без сети если на момент старта xend присутсвовал сложный роутинг, т.е. чтото навороченее чем это
lrc_gw ~ # route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.7.0 0.0.0.0 255.255.255.192 U 0 0 0 eth0.2
127.0.0.0 - 255.0.0.0 ! 0 - 0 -
0.0.0.0 192.168.7.5 0.0.0.0 UG 0 0 0 eth0.2

Второе, если сетевух две или два влана, то мы обычно используем враппер - это такой скрипт который скрипт network-bridge запускает дважды и трижды
у меня он заодно отключает проверку чексуммы исходящих пакетов, это жутко повышает работу сети в ксене. вот пример моего врапера

lrc_gw ~ # cat /etc/xen/scripts/network-bridge-wrapper
#!/bin/sh
ethtool -K eth0 tx off
/etc/xen/scripts/network-bridge-vlans "$@" netdev=eth0.4
/etc/xen/scripts/network-bridge-vlans "$@" netdev=eth0.3
/etc/xen/scripts/network-bridge-vlans "$@" netdev=eth0.2

Так же рекомендую ethtool -K eth0 tx off джелать на гостях
10.02.2011 01:14
Новичок

Регистрация: 07.12.2010
Проживание:
Сообщения: 9
По умолчаниюXen on Gentoo разворачиваем виртуальные и паравиртуальные машины, уходим в облака

Апгрейд xen на 4 версию можен не пройти из-за "слишком новой версии linux-headers"
emerge -avl =sys-kernel/linux-headers-2.6.34
emerge -av xen-tools
04.03.2011 23:59
Admin

Регистрация: 05.10.2005
Проживание: Москва
Сообщения: 272
По умолчаниюXen on Gentoo разворачиваем виртуальные и паравиртуальные машины, уходим в облака

Еще некоторый FAQ по теме.

Q: Где взять драйверы для XEN под Windows?
A: Есть GPL-дрова, взять можно отсюда. Лично проверял версию 238 под win2003 x64.

Q: Не работает ядро dom0 под процессор AMD Phenom X6, зависает при загрузке.
A: Варианты решения:
1. Принять как должное (забить).
2. Попробовать обновить биос (если есть возможность), поиграться с параметрами виртуализации в биосе (если таковые имеются).
3. Попробовать поиграть версия гипервизора (xen-3.x, xen-4.x), попробовать на древнем ядре 2.6.18.

Q: При использовании ОЗУ более 4Гб и наличии в системе сетевых адаптеров на базе Intel (e100) при поднятии сетевого интерфейса происходит Segmentation fault.
A: Решение - выкинуть из системы сетевуху и заменить на другую.

Q: Как избежать геморроев при запуске xend, связанных с переименованиями интерфейсов туда-сюда в режиме bridge?
A: Алгоритм такой:
1. На базе нужного интерфейса заранее создать бридж средствами gentoo в /etc/conf.d/net, например для физики eth0 делаем бридж br0 и сразу переносим на него айпишник и маршруты.
2. Сделать wrapper, прописать его в xend-config.xsp: (network-script network-bridge-wrapper). В тексте этого скрипта достаточно указать одну команду
ethtool -K eth0 tx off
3. Далее в конфиг гостевых систем прописывать br0.
11.03.2011 09:37
Новичок

Регистрация: 07.12.2010
Проживание:
Сообщения: 9
По умолчаниюXen on Gentoo разворачиваем виртуальные и паравиртуальные машины, уходим в облака

Че-то генте в конфиге не понравилось, сделал make clean. Заново настроил ядро и получаю в ответ - не стартует xend.

В логах:
cat /var/log/xen/xend-debug.log
Xend started at Fri Mar 11 04:10:22 2011.
cat: /sys/bus/scsi/devices/host0/vendor: Нет такого файла или каталога

Погуглив нахожу:
В /usr/src/linux/.config изменить
CONFIG_XEN_DEV_EVTCHN=m
на
CONFIG_XEN_DEV_EVTCHN=y
Пересобираем ядро - и наслаждаемся.

13.03.2011 15:16
Новичок

Регистрация: 07.12.2010
Проживание:
Сообщения: 9
По умолчаниюXen on Gentoo разворачиваем виртуальные и паравиртуальные машины, уходим в облака

bonding & xen:
В /etc/xen/xend-config.sxp:
(network-script 'network-bridge netdev=bond0')

И немного подправим /etc/xen/scripts/network-bridge:

--- /etc/xen/scripts/._cfg0000_network-bridge 2009-10-23 15:42:37.000000000
+0200
+++ /etc/xen/scripts/network-bridge 2009-10-19 14:23:09.870223434 +0200
@@ -111,7 +111,9 @@
# use the info from get_ip_info()
ip addr flush $1
ip addr add ${addr_pfx} dev $1
- ip link set dev $1 up
+ fi
+ ip link set dev $1 up
+ if [ -n "$addr_pfx" ] ; then
[ -n "$gateway" ] && ip route add default via ${gateway}
fi
fi
@@ -226,6 +228,7 @@
# Remember slaves for bonding interface.
if [ -e /sys/class/net/${netdev}/bonding/slaves ]; then
slaves=`cat /sys/class/net/${netdev}/bonding/slaves`
+ ifenslave -d ${netdev} ${slaves}
fi
# Remember the IP details for do_ifup.
get_ip_info ${netdev}

Что бы работало: emerge ifenslave
14.03.2011 13:23
Admin

Регистрация: 05.10.2005
Проживание: Москва
Сообщения: 272
По умолчаниюXen on Gentoo разворачиваем виртуальные и паравиртуальные машины, уходим в облака

А зачем такие сложности с патчением скрипта xen, если можно bond0 создать заранее средствами gentoo? Я бы сделал так, это проще и надежней!
10.08.2011 16:50
Admin

Регистрация: 01.12.2005
Проживание: Москва
Сообщения: 69
По умолчаниюXen on Gentoo разворачиваем виртуальные и паравиртуальные машины, уходим в облака

у меня при использовании боундинга и вланов ксеновский врапер выглядит так

lrc_gw ~ # cat /etc/xen/scripts/network-bridge-wrapper
#!/bin/sh
ethtool -K eth0 tx off
ethtool -K eth0 tso off
ethtool -K eth1 tx off
ethtool -K eth1 tso off
brctl addbr xenbr0
brctl addif xenbr0 bond0.2
brctl setmaxage xenbr0 0
brctl setageing xenbr0 0
brctl setfd xenbr0 0
ifconfig xenbr0 192.168.7.1/25
route add default gw 192.168.7.5

brctl addbr xenbr1
brctl addif xenbr1 bond0.3
brctl setmaxage xenbr1 0
brctl setageing xenbr1 0
brctl setfd xenbr1 0
ifconfig xenbr1 up

brctl addbr xenbr2
brctl addif xenbr2 bond0.4
brctl setmaxage xenbr1 0
brctl setageing xenbr1 0
brctl setfd xenbr1 0
ifconfig xenbr2 up


а сеть выглядит так

config_eth0="null"
config_eth1="null"
modules=( "bonding" )
config_bond0="null"
slaves_bond0="eth0 eth1"
vlans_bond0="2 3 4"
config_bond0_2=("null")
config_bond0_3="null"
config_bond0_4="null"


16.08.2011 18:12
Admin

Регистрация: 01.12.2005
Проживание: Москва
Сообщения: 69
По умолчаниюXen on Gentoo разворачиваем виртуальные и паравиртуальные машины, уходим в облака

Словил хитрый баг при переходе на 4.1.1. ксен не собирались xen-tools
писало ACCESS VIOLATION SUMMARY
проконало FEATURES="-sandbox" emerge xen-tools
02.12.2011 18:23
Новичок

Регистрация: 07.12.2010
Проживание:
Сообщения: 9
По умолчаниюXen on Gentoo разворачиваем виртуальные и паравиртуальные машины, уходим в облака

Страничка со списком процессоров INTEL, которые поддерживают vt-x и vt-d:
http://ark.intel.com/Search/Advanced
28.02.2014 18:58
Admin

Регистрация: 05.10.2005
Проживание: Москва
Сообщения: 272
По умолчаниюXen on Gentoo разворачиваем виртуальные и паравиртуальные машины, уходим в облака

Если при запуске
xm create ...
возникает ошибка
Device 0 (vif) could not be connected. Hotplug scripts not working.
то нужно:

1. Проверить, чтоб в ядре включен TUN/TAP.
2. Проверить, чтоб udev умеет обрабатывать события xen, а именно, вывод каталога с правилами должен быть таким:

# ls -la /etc/udev/rules.d/
итого 12
drwxr-xr-x 2 root root 232 апр 21 22:14 .
drwxr-xr-x 4 root root 224 апр 21 22:13 ..
-rw-r--r-- 1 root root 868 фев 28 18:23 70-persistent-cd.rules
-rw-r--r-- 1 root root 573 фев 28 02:07 70-persistent-net.rules
-rw-r--r-- 1 root root 28 мар 18 2011 99-fuse.rules
lrwxrwxrwx 1 root root 20 апр 21 22:14 xen-backend.rules -> ../xen-backend.rules
lrwxrwxrwx 1 root root 13 апр 21 22:14 xend.rules -> ../xend.rules


Сам контент файлов вот:

# cat /etc/udev/xend.rules
SUBSYSTEM=="pci", RUN+="socket:/org/xen/xend/udev_event"
SUBSYSTEM=="scsi", RUN+="socket:/org/xen/xend/udev_event"
#SUBSYSTEM=="net", KERNEL!="vif[0-9]*.[0-9]*|tap[0-9]*.[0-9]*", RUN+="socket:/org/xen/xend/udev_event"


# cat /etc/udev/xen-backend.rules
SUBSYSTEM=="xen-backend", KERNEL=="tap*", RUN+="/etc/xen/scripts/blktap $env{ACTION}"
SUBSYSTEM=="xen-backend", KERNEL=="vbd*", RUN+="/etc/xen/scripts/block $env{ACTION}"
SUBSYSTEM=="xen-backend", KERNEL=="vtpm*", RUN+="/etc/xen/scripts/vtpm $env{ACTION}"
SUBSYSTEM=="xen-backend", KERNEL=="vif*", ACTION=="online", RUN+="$env{script} online"
SUBSYSTEM=="xen-backend", KERNEL=="vif*", ACTION=="offline", RUN+="$env{script} offline"
SUBSYSTEM=="xen-backend", KERNEL=="vscsi*", RUN+="/etc/xen/scripts/vscsi $env{ACTION}"
SUBSYSTEM=="xen-backend", ACTION=="remove", RUN+="/etc/xen/scripts/xen-hotplug-cleanup"
KERNEL=="evtchn", NAME="xen/%k"
KERNEL=="blktap[0-9]*", NAME="xen/%k"