| Установка XCP XenAPI в Ubuntu 11.10 или Debian GNU/Linux | [исправить] | 
| Благодаря портированию XCP XenAPI для Debian и Ubuntu Linux у пользователей
данных дистрибутивов появилась возможность создания сервера виртуализации,
функционально эквивалентного стандартному дистрибутиву XCP на базе CentOS.
В процессе развертывания Xen хоста следует не поддастся искушению установки
пакета с ядром Linux, оканчивающегося на "-virtual". Такие ядра в Ubuntu/Debian
оптимизированы для использования внутри гостевых систем и не сконфигурированы
для использования в роли Dom0.
После установки XAPI будут запущены сервисы, использующие сетевые порты 80 и
443. Поэтому важно проследить, чтобы на текущем сервере до этого не был запущен
http-сервер или настроить раздельный запуск XAPI на другом IP. При
использовании VPN и сетевого интерфейса tun0, наблюдается ряд проблем, которые
могут привести к невозможности запуска XAPI.
Установка XAPI
Устанавливаем компоненты XAPI из специального PPA-репозитория ubuntu-xen-org.
Добавляем в /etc/apt/sources.list
   deb http://ppa.launchpad.net/ubuntu-xen-org/xcp-unstable/ubuntu oneiric main
   deb-src http://ppa.launchpad.net/ubuntu-xen-org/xcp-unstable/ubuntu oneiric main
или подключаем репозиторий для Debian:
   apt-get install curl 
   echo "deb http://downloads.xen.org/XCP/debian/repo/debian unstable main" > /etc/apt/sources.list.d/kronos.list 
   echo "deb-src http://downloads.xen.org/XCP/debian/repo/debian unstable main" >> /etc/apt/sources.list.d/kronos.list 
   wget --quiet -O - http://downloads.xen.org/XCP/debian/xcp.gpg.key | apt-key add - 
Устанавливаем xapi:
   apt-get update
   apt-get install xcp-xapi
Вариант сборки свежей версии инструментария XCP из исходных текстов с
использованием xapi-autobuilder.
Устанавливаем необходимые для сборки компоненты:
   apt-get install pbuilder debhelper dh-ocaml dh-autoreconf cdebootstrap python-debian mercurial git
   wget http://downloads.xen.org/XCP/debian/blktap-dkms_0.1_all.deb
   dpkg -i blktap-dkms_0.1_all.deb
Клонируем Git-репозиторий xapi-autobuilder и выполняем сборку:
   git clone https://github.com/jonludlam/xapi-autobuilder.git
   cd xapi-autobuilder
   make clean ; make
в итоге будут подготовлены необходимые для установки в  Debian пакеты, свежие
версии которых также можно загрузить командой:
   wget -r -l1 --no-parent -nd http://downloads.xen.org/XCP/debian/latest/
   rm  index.html*
Настройка XAPI
Активируем по умолчанию опцию загрузки Xen в Grub:
   sed -i 's/GRUB_DEFAULT=""/GRUB_DEFAULT="Xen 4.1-amd64"/' /etc/default/grub
   update-grub
Настраиваем параметры сети
В /etc/network/interfaces добавляем запуск интерфейсе xenbr0:
   auto lo xenbr0
   iface xenbr0 inet dhcp
        bridge_ports eth0 
Вместо "dhcp" при необходимости можно прописать статический IP.
Настраиваем содержимое файла xensource-inventory (в скрипте ниже
подразумевается, что корневой раздел /dev/sda1, а управляющий сетевой интерфейс
xenbr0). Для генерации xensource-inventory  запускаем простой shell-скрипт:
   control_domain=`uuidgen`
   installation=`uuidgen`
   cat > /etc/xensource-inventory << EOF
   CURRENT_INTERFACES='xenbr0'
   BUILD_NUMBER='0'
   CONTROL_DOMAIN_UUID='${control_domain}' 
   INSTALLATION_UUID='${installation}'
   MANAGEMENT_INTERFACE='xenbr0'
   PRIMARY_DISK='/dev/sda1'
   EOF
Перезагружаем систему
   reboot
Использование XCP
Убедимся, что xapi запущен
   service xapi status
если нет, то запустим его командой
   service xapi start
Добавим к переменноё окружения PATH путь к исполняемым файлам xapi:
   export PATH=$PATH:/usr/lib/xen-common/xapi/bin
Создадим репозиторий хранения. Рекомендуется использовать NFS или EXT, если в
системе есть свободное блочное устройство.
Для NFS (в переменную SR будет записан идентификатор хранилища):
   SR=`xe sr-create type=nfs name-label=nfs device-config:server=<nfs server> device-config:serverpath=<path on server>`
Для незанятого блочного устройства /dev/sda3  (внимание, указанный раздел будет отформатирован !)
   SR=`xe sr-create type=ext device-config:device=/dev/sda3 name-label=ext` 
Свяжем созданное хранилище с пулом:
   POOL=`xe pool-list --minimal`
   xe pool-param-set uuid=$POOL default-SR=$SR
Решение проблемы с памятью для Dom0
В штатном ядре Ubuntu 11.10 наблюдается проблема с выделением недостаточного
объема памяти для Dom0. Данная проблема решена в ядре 3.2. В качестве обходного
пути решения, можно вручную увеличить размер выделенной для нужд Dom0 памяти
(посмотреть текущее значением можно через "cat /proc/meminfo" ).
Находим uuid идентификатор Dom0:
   xe vm-list
   uuid ( RO)           : f5d0039b-1138-4635-c153-6203bfdc330f
     name-label ( RW): Control domain on host: piggy
     power-state ( RO): running
Вручную назначаем нижний и верхний лимит памяти:
   xe vm-param-set uuid=f5d0039b-1138-4635-c153-6203bfdc330f memory-dynamic-max=2GiB
   xe vm-param-set uuid=f5d0039b-1138-4635-c153-6203bfdc330f memory-dynamic-min=2GiB
Установка гостевой системы с Linux
Находим шаблон для установки интересующего дистрибутива:
   xe template-list
Ниже представленный скрипт позволяет автоматизировать выполнение установки.
Скрипт следует запускать из локальной системы (Dom0), но его можно легко
модифицировать для организации удалённой установки с другого хоста. На
завершающем этапе работы скрипта будет произведён запуск виртуальной машины для
выполнения финального этапа установки.
В скрипте может понадобиться поменять следующие переменные:
   "vm-label" - метка для ссылки на VM из  Dom0;
   "hostname" - имя хоста;
   "domain" - локальный домен
В качестве шаблона для установки выбран Ubuntu Lucid Lynx 10.04 (64-bit)
   #!/bin/bash
   set -e
   set -x
   template=`xe template-list name-label="Ubuntu Lucid Lynx 10.04 (64-bit)" --minimal`
   vm=`xe vm-install template=$template new-name-label=vm-label`
   network=`xe network-list bridge=xenbr0 --minimal`
   vif=`xe vif-create vm-uuid=$vm network-uuid=$network device=0`
   xe vm-param-set uuid=$vm other-config:install- repository=http://archive.ubuntu.com/ubuntu
   xe vm-param-set uuid=$vm PV-args="auto-install/enable=true interface=auto netcfg/dhcp_timeout=600 hostname=vm-host-name domain=mydomain.is.best"
   xe vm-start uuid=$vm
Для завершения установки следует подключиться к виртуальной машине, например, через "xe console"
Перед этим следует запустить демон  xapissl:
   service start xapissl
Список активных консолей VM можно посмотреть командой:
   xe console-list
Выбрав нужный vm-uuid выполняем:
   xe console uuid=593c6788-1ddc-e7d7-c6b1-0de0778c78b7
Если что-то пошло не так удалить установленную виртуальную машину можно командой:
   xe vm-uninstall name-label=vm-label  --multiple
Установка гостевой системы с Windows
Для установки Windows необходимо наличие установочного iso-образа, который
может быть импортирован с другой машины по NFS:
   xe-mount-iso-sr nfs-server:/path/to/isos
Создаём виртуальную машину с Windows:
   xe vm-install template=Windows\ 7\ \(32-bit\) new-name-label=windows
   xe vm-cd-add vm=windows cd-name=win7.iso device=3
   xe vm-start vm=windows
Для обеспечения работы сети выполняем создание сетевого моста:
 
   brctl addbr xenbr0
   brctl addif xenbr0 eth0
Поднимаем IP на интерфейсе сетевого бриджа вместо физического интерфейса. После чего запускаем:
   xe pif-scan
Устанавливаем в Window паравиртуальные драйверы, которые можно загрузить следующим образом:
   wget http://downloads.xen.org/XCP/debian/xs-tools-5.9.960.iso
   mv xs-tools-5.9.960.iso /usr/lib/xen-common/xapi/packages/iso
 | 
|  | 
| 
 | 
 | | Раздел:    Корень / Безопасность / Виртуализация - Xen, OpenVZ, KVM, Qemu |