Инсталляция Xentaur
Материал из Xgu.ru
- Автор: Игорь Чубин
- Короткий URL: Xentaur/installation
Репозиторий проекта
http://xgu.ru/hg/xentaur
< Xentaur
На этой странице детально рассматривается процедура инсталляции Xentaur.
Содержание |
[править] Инсталляция Xen
Необходимо подготовить хост-систему Xen.
Подробнее:
Добавьте в /etc/modules:
loop max_loop=128 netloop nloopbacks=128
Это повысит количество сетевых интерфейсов vif, создаваемых в домене 0, и использующихся для связи с гостевыми доменами, и количество loopback-устройств, необходимых для подключения виртуальных дисков, базирующихся на файлах.
[править] Инсталляция дополнительного программного обеспечения
- bridge-utils
- graphviz
- ipython
[править] Инсталляция Xentaur
В настоящий момент доступна инсталляция только из Mercurial-репозитория.
Для того чтобы получить код из репозитория, сначала нужно установить пакет mercurial. После этого, можно клонировать репозиторий:
%$ hg clone http://xgu.ru/hg/xentaur
В результате в текущем каталоге будет создан каталог xentaur/, содержащий код проекта Xentaur.
[править] Инсталляция машины Xenomips
Для выполнения этого пункта потребуется:
- Каталог, куда можно будет складывать образы виртуальных машин;
- Образы IOS; желательно распаковать их, чтобы ускорить загрузку виртуальных машин в будущем.
Это необязательный пункт. Инсталляция выполняется с помощью скрипта build-xenomips-image.
В его начале есть несколько настроечных переменных, которые нужно будет установить перед началом инсталляции.
DYNAMIPS_BUILD=yes # Нужно ли выполнять сборку Dynamips XENOMIPS_FS_BUILD=yes # Нужно ли собирать файловую систему Xenomips CONFIG_FS_BUILD=yes # Нужно ли создавать пустую ФС для хранения конфигурационных файлов Xenomips IOS_FS_BUILD=yes # Нужно ли создавать файловую систему с IOS XENOMIPS_DIR="files/" # источник файлов Xenomips XENOMIPS_IMAGES_DIR="/xen/images/" # Местоположение образов Xenomips IOS_DIR="ios/" # Местоположение образов IOS SSH_OPEN_KEY=files/id_dsa.pub #Xenomips FS XENOMIPS_FS_SIZE=2048k # size in 1k blocks XENOMIPS_FS_NAME=${XENOMIPS_IMAGES_DIR}/xenomips1.img # Config FS CONFIG_FS_SIZE=1000k CONFIG_FS_NAME=${XENOMIPS_IMAGES_DIR}/xenomips-configXXX.img # XXX will be automagically substitued with CONFIG_FS_NUMBER=10 # the number of the Xenomips instance # IOS FS IOS_FS_SIZE=2048k IOS_FS_NAME=${XENOMIPS_IMAGES_DIR}/xenomips-ios1.img DEBIAN_MIRROR=ftp://debian.org.ua/debian DISTRO=etch PACKAGES="openssh-server libc6-xen libelf1 libpcap0.8 screen nfs-common quagga tcpdump telnet ntpdate hping3 ntp nmap netcat socat" DYNAMIPS_SOURCES=http://www.ipflow.utc.fr/dynamips/dynamips-0.2.7.tar.gz DYNAMIPS_BUILD_DIR=dynamips/ PIXEMU_SOURCES=http://xgu.ru/download/pemu_public2007-07-02.tar.bz2 PIXEMU_BUILD_DIR=dynamips/ KERNEL_VERSION=`uname -r` WORK_DIR=${XENOMIPS_FS_NAME%%.img} WORK_DIR2=/tmp/xenomips-build
Создание каталога для хранения образов xenomips:
%# cd xentaur %# mkdir ../xentaur-images
Этот каталог должен быть указан в переменной XENOMIPS_IMAGES_DIR.
Надо добавить автоматическую загрузку модуля iptable_nat, без которого замечены необъяснимые глюки с сеансами TCP между dynamips и quagga, работающими на разных узлах |
Создание каталога с образами IOS и его наполнение:
%# mkdir ../ios
Этот каталог должен быть указан в переменной IOS_DIR.
Для сборки dynamips, которую выполняет скрипт, необходимо установить в системе пакеты:
- libelf
- libelf-dev
- libpcap0.8
- libpcap0.8-dev
- build-essential
И скрипт использует при сборке:
- lsof
%# apt-get install debootstrap libelf1 libelf-dev libpcap0.8 libpcap0.8-dev build-essential lsof
После того как система подготовлена, необходимо проверить правильность путей в скрипте, а затем запускать скрипт инсталляции.
%# ./build-xenomips-image
В результате сборки должны получиться файлы:
- xenomips1.img — образ виртуальной машины Xenomips
- xenomips-config1.img — файл для сохранения конфигурации виртуальной машины Xenomips
- xenomips-ios1.img — файл с образом файловой системы, хранящей IOS'ы, под управлением которых будет работать Dynamips.
Файл xenomips-config1.img хранит конфигурацию одного экземпляра Xenomips. Если экземпляров будет несколько (что естественно), файл должен быть размножен. Количество его копий указывайте в переменной CONFIG_FS_NUMBER сборочного скрипта.
[править] Подготовка конфигурационного файла сети
Скопируйте пример описания сети в каталог /etc/xen:
%# cp examples/fabergeN /etc/xen/myfirstnetN
Отредактируйте этот файл.
- Укажите правильные initrd и kernel. В конфигурационном файле xen указаны kernel и ramdisk. Они должны указывать на существующие в системе файлы.
- Введите описание вашей сети.
- Укажите каталог с образами систем. Он содержится в переменной xenomips_dir
(Создайте ссылку на конфиг с одноименным названием но суффиксом .py в /etc/xen)
Пример описания сети:
domains = [ 'qua1', 'qua2', 'dyn3', 'qua4', 'qua5', 'dyn6', ] domain_types = [ 'quagga', 'quagga', 'xenomips', 'quagga', 'quagga', 'xenomips', ] bridges = [ 'vlan101', 'vlan102', 'vlan103', 'vlan104', 'vlan105', 'vlan106', ] vbridges_table ={ 'qua1' : [ 'vlan101' ], 'qua2' : [ 'vlan102', 'vlan105' ], 'dyn3' : [ 'vlan101', 'vlan102', 'vlan103' ], 'qua4' : [ 'vlan103', 'vlan104', 'vlan106' ], 'qua5' : [ 'vlan104' ], 'dyn6' : [ 'vlan105', 'vlan106' ], }
Это описание соответствует топологии:
[править] Первый запуск
Установите имя вашего конфигурационного файла в файле xentaur:
xen_config_name='fabergeN'
Имя вашего файла должно быть указано вместо fabergeN.
Проверьте правильность схемы сети. Первым делом, посмотрите, что сеть действительно выглядит так как нужно.
Графическое изображение схемы можно получить следующим образом:
%# ./xentaur.py graph %# gqview xenomips.png
Если при построении схемы сети возникает ошибка Renderer type: "jpg" not recognized.... вероятно, graphviz, присутствующий в системе, не поддерживает форматы вывода jpg и png. Подробное описание проблемы и решения здесь [1]. |
Создайте конфигурационный файл screen, который облегчит подключение к консолям виртуальных устройств:
%# ./xentaur.py screen %# screen -c ~/.screenrc_xentaur
Посмотреть код запуска можно так:
%# ./xentaur.py start
Если код в порядке, запуск виртуальных устройств выполняется командой:
%# ./xentaur.py start-all | sh -s
Изнутри screen можно запустить управляющую консоль Xentaur. Лучше всего запускать её на экране 0.
%# ./xentaur.py shell
|
---|