Xen Server 6.1 - создаем локальное хранилище.

Понадобилось мне обновить Xen Server с версии 6 до версии 6.1. К сожалению, сервер использовал программный raid по вот этому мануалу. Или из-за этого, или по другой причине, установщик Xen Server предлагал только чистую установку, что и было сделано.

После установки обнаружил что локального хранилища нет. Просто нет и все.

Создаем локальное хранилище сами, для этого нам нужен uuid хоста, смотрим его командой:

xe host-list


uuid ( RO): 55f2b31c-194e-4399-b603-3f0000a78ba2
name-label ( RW): virtual2
name-description ( RW): Default install of XenServer


Пытаемся создать локальный storage на разделе /dev/sda3 с типом lvm и именем local:

xe sr-create host-uuid=55f2b31c-194e-4399-b603-3f0000a78ba2 content-type=user name-label="local" shared=false device-config: device=/dev/sda3 type=lvm


На что получаем вот что:

Error code: SR_BACKEND_FAILURE_55
Error parameters:, Logical Volume partition creation error [opterr=error is 5]


Пытаемся создать физический том для lvm вручную:

pvcreate /dev/sda3


И вот что видим:

WARNING: software RAID md superblock detected on /dev/sda3. Wipe it? [y/n] y


Теперь причина ясна — остались старые воспоминания от предыдущей установки, использовавшей raid, соглашаемся на создание физического тома для lvm:

Wiping software RAID md superblock on /dev/sda3.
Physical volume "/dev/sda3" successfully created


Ну и повторяем команду для создания локального хранилища — теперь будет работать.

XenServer: расширение дисков и разделов виртуальных машин

Задача — на XenServer 6 устновлен CentOS 5 в режиме паравиртуализации. К виртуальной машине подключено 2 диска по 20Гб — /dev/xvda и /dev/xvdb. На втором диске создан раздел для LVM размером 20Гб. Нужно его расширить до 40. Внутри этого LVM раздела логический раздел opt с файловой системой ext3. Данный раздел монтируется в /opt.

Естественно, перед производимыми операциями необходимо проверить раздел и сделать резервные копии.

Кратковременно останавливаем виртуальную машину, расширяем диск до 40Гб в XenCenter и запускаем снова.

Запускаем fdisk:

( Читать дальше )

XenServer 6: установка на программный raid

Сделал все вот по этому мануалу. Рекомендую к прочтению!
Автору большое спасибо! Сэкономил кучу времени.

Изоляция десктопных приложений с помощью Xen

Наткнулся на вот такой необычный проект — QubesOS, использующий изоляцию приложений с помощью Xen. Каждое приложение запускается в своей отдельной виртуальной машине со своей файловой системой и прочим. Для пользователя все выглядит прозрачно, только заголовки окон напоминают о том, в каких виртуальных машинах запущено то или иное приложение:



Есть в комплекте и firewall, работающий также в отдельной виртуальной машине.

Как говориться — то, что у вас паранойя не означает что за вами не следят…

Настройка XenWebManager в Ubuntu 10.04

XenWebManager — это web вариант GUI клиента OpenXenManager.

Скачиваем архив с исходным кодом и распаковываем, например, в /opt:

sourceforge.net/projects/xenwebmanager/files/

Или получаем из svn:

cd /opt
svn co https://xenwebmanager.svn.sourceforge.net/svnroot/xenwebmanager xenwebmanager


Устанавливаем необходимые пакеты:

apt-get install python-cherrypy3 python-pybabel python-mako python-simplejson graphviz


Правим cherry.conf… Нам не помешает поддержка https:

Раскоментируем и редактируем пути к сертификату и ключу:

server.ssl_certificate = 'ssl/server.crt'
server.ssl_private_key = 'ssl/server.key'


Также нужна http авторизация:

tools.basic_auth.on = True


Создаем директорию для ключей в директории с XWM и создаем их:

mkdir ./ssl
cd ./ssl


openssl genrsa -out server.key 1024
openssl req -new -key server.key -out server.csr
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt


Для настройки http авторизации создаем md5 хэш желаемого пароля:

echo -n password | md5sum
5f4dcc3b5aa765d61d8327deb882cf99  -


Правим config.py, указав наш хеш:

users = {"admin": "5f4dcc3b5aa765d61d8327deb882cf99"}


Добавляем непривилегированного пользователя, например, user:

useradd -M -d /opt/xenwebmanager/ user -s /sbin/nologin -r


Создаем директории, выставляем права:

mkdir /var/log/xenwebmanager
mkdir /var/lib/xenwebmanager
chmod 770 /var/log/xenwebmanager
chmod 770 /var/lib/xenwebmanager
chown user:user -R /var/log/xenwebmanager/
chown user:user -R /var/lib/xenwebmanager/
chown user:user -R /opt/xenwebmanager/


Создаем в /opt/xenwebmanager/ скрипт start.sh:

#!/bin/sh
cd /opt/xenwebmanager
python ./frontend.py


Назначаем права:

chmod 755 ./start.sh


Запустить XWM от имени пользователя user можно так:

sudo -u user /opt/xenwebmanager/start.sh


Если видим ошибку 500 с текстом:

File "/usr/lib/pymodules/python2.6/cherrypy/__init__.py", line 301, in __getattr__
return getattr(child, name)
AttributeError: 'Response' object has no attribute 'i18n'

Редактируем i18n_tool.py, на 231 строке комментируя:

if 'Content-Language' not in cherrypy.response.headers:
        cherrypy.response.headers['Content-Language'] = str(
                cherrypy.response.i18n.locale)

XVP - веб менеджер для XCP и XenServer

xvp — web менеджер для серверов Citrix XenServer и Xen Cloud Platform, главной особенностью которого является возможность гибкой настройки прав доступа для нескольких пользователей к определенным виртуальным машинам, пулам и пр. VNC консоль также присутствует.



На сайте можно скачать виртуальную машину, после запуска которой xvp можно настроить в консоли с помощью несложной утилиты:

Bug: XenCenter и Xen Cloud Platform 1.0 - не создаются виртуальные машины

XenCenter выдает вот такую ощибку:

MEMORY_CONSTRAINT_VIOLATION - Memory limits must satisfy: static_min ≤ dynamic_min ≤ dynamic_max ≤ static_max


На сервере XCP в /etc/xensource/xapi_version_override добаляем:

5.6.199


Рестартуем сервисы:

/etc/init.d/xapi restart
/etc/init.d/xapissl restart


Почитать

OpenXenManager: управление серверами XenServer или Xen Cloud Platform в Linux

OpenXenManager — GUI клиент для XenServer (работает также с Xen Cloud Platform) для Linux. Эдакая замена XenCenter в Windows.



Проект требует Python, скачать можно из SVN с помощью команды:

svn co https://openxenmanager.svn.sourceforge.net/svnroot/openxenmanager openxenmanager


Запускается командой ./runme

Кроме того, есть и web интерфейс:

Хранилище iso образов для XenServer и Xen Cloud Platform

Для того, чтобы создать собственное хранилище iso образов и затем просто выбирать их из списка, например в XenCenter или OpenXenManager нужно для начала создать в LVM том нужного размера (назовем его host):

lvcreate --size 50G VG_XenStorage-xxxxxxx --name host


Создаем файловую систему:

mkfs.ext3 /dev/VG_XenStorage-xxxxxxx/host


Монтируем в /mnt/host:

mount /dev/VG_XenStorage-xxxxxxx/host /mnt/host


Создаем поддиректорию iso и скачиваем в нее образы

mkdir /mnt/host/iso


Настраиваем NFS:

echo "/mnt/host/iso/ *(rw,no_root_squash,sync)" > /etc/exports
service nfs start
service portmap start
chkconfig --level 345 nfs on
chkconfig --level 345 portmap on


Монтируем:

xe-mount-iso-sr 127.0.0.1:/mnt/host/iso/




Чтобы при загрузке монтировался lvm том, можно прописать в /etc/rc.local:

lvchange --available y /dev/VG_XenStorage-xxxxxxx/host
mount /dev/VG_XenStorage-xxxxxxx/host /mnt/host 
/etc/init.d/nfs restart

Небольшой мануал по установке Ganeti 2.4.1 и Xen 4.0.1 в Ubuntu 10.04

Ganeti — это программное обеспечение для управления кластером Xen или KVM серверов. Проект очень хорошего качества, но хотел-бы предупредить — пока нет смысла пытаться использовать веб интерфейс для Ganeti Ganeti Web Manager, проект очень сырой (версия 0.6, возможно в будущем будет лучше).

Все нижеперечисленные инструкции необходимо выполнить на всех серверах (нодах) кластера, один из серверов будет главным (мастер). Там, где необходимо что-то настраивать на мастер-ноде будет отдельное примечание.

Также, для Ganeti желательно использовать LVM (хотя диски виртуальных машин могут храниться и в виде файлов). Группа томов должна называться xenvg, тогда не нужно будет все время указывать название.

Начнем конечно-же с установки Xen в Ubuntu 10.04…

Установка XEN 4.0.1 в Ubuntu 10.04:

Основано на данном wiki с некоторыми изменениями.

Устанавливаем необходимые для сборки пакеты:

( Читать дальше )