Рейтинг@Mail.ru

Citrix XEN сервер + HA-Lizard.



Установка xen-server  и HA-Lizard на локальных хранилицах.

 

Скачать FREE версию XEN сервера всегда можно с оф.сайта, правда придется зарегистрироваться.

Ограничения Free версии:

- не более 3-х хостов в пуле.

- отсутствие штатного HA

- отстутствие Dynamc memory Control

- отсутствие интеграции с AD

- значки Unlicensed на хостах и пуле

(всё вышеописанное не мешает достаточно полноценно пользоваться им)

Системные требования к серверу

 

  Minimum Normaly
CPU 1.5GHz  2GHz One or more 64-bit x86 CPU(s) с аппаратной виртуализацией
RAM 2GB 4GB
HDD  46GB  70GB Локальные (PATA, SATA, SCSI) или внешний SAN
LAN 1x100Mb/s >2x1Gb/s (для HA lizard - минимум 2 интерфейса)




Схема сети

В идеале надо стремиться к схеме:

HA-Lizard original scheme

Master xen: xen-serv1
management interface: 172.16.11.56
replication interface: 10.3.0.1

Slave xen: xen-serv2
management interface: 172.16.11.57
replication interface: 10.3.0.2

 самая простая схема сети

Самая простая конфигурация - два ПК, примерно с одинаковыми параметрами, с двумя сетевыми картами в каждом, гигабитные соеденены патчкордом.

 


Установка Xen Серверов


- тащим образ XenServer-7.1.0-install-cd.iso и XenServer-7.1.0-XenCenterSetup-7.1.1.exe с например тут. С citrix.com уже не утащить. Или качаем официальную Free версию 7.6.

- Requires additional permissions to access.
- записываем образ XenServer-7.x.0-install-cd.iso на флэшкарту (например, с помощью win32diskimager) или CD
- загружаем сервер с данного носителя.
- выбираем язык - ru (просто ru)
- welcome to xenserver setup.... - OK
- accept EULA
- Perform clean instalation - OK (HA-lizard, который ставиться позже, хочет чистую установку)
- выбор диска - OK
- select instalation source - local media - OK
- skip verification (source) - OK (нам же быстрее надо)
- дважды вводим пароль root.. - OK
- выбираем сетевой адаптер для management interface - OK
- забиваем сетевые параметры сетевого интерфейса управления - OK
- hostname и DNS - OK
- europe - OK
- moscow - OK
- настраиваем NTP (очень желательно) - OK
- вводим пару - OK
- жмём install xenserver и ждём
- Would you like to install supplemental packs? - No
- The Xenserver instalation has completed. Вынимаем носитель. Жмём ОК.
- Сервер установлен. Повторяем действия со вторым сервером.

- обновить из XenCenter сервер: tools -> install updates

- можно разрешить репозитории:  vi /etc/yum.repos.d/CentOS-Base.repo В секции [base] раскомментировать baseurl= и enabled=1 (установить)

- Для того, чтобы bond не разваливался при перезапуске хоста citrix рекомендует:

systemctl status fcoe

systemctl status xs-fcoe

systemctl stop fcoe

systemctl stop xs-fcoe

systemctl disable fcoe

systemctl disable xs-fcoe

, однако это не помогает. А помогает включать bond не в режиме active-active, а в LACP with load balancing on source MAC address

- устанавливам XenCenter на управляющем компе в сети.
- добавить XEN сервера в пул с помощью XenCenter
- соединить Replication интерфейсы между собой.
(При наличии бОльшего колическтва интерфейсов имеет смысл создать Bounded network из 2х и более интерфейсов. После создания потребуется перезагрузка)

- подключить SMB или NFS ISO библиотеку к пулу


Установка HA lizard c объединенными в софт-iscsi локальными хранилищами

- проверить или создать репликационную сеть 10.3.0.0 в xen-center.
- включить HA на пуле, если нужно
- скачать скрипт установки halizard_nosan_installer_2.1.4 Для версии сервера 7.* или более актуальный - https://www.halizard.com/ha-lizard-software/ha-lizard-nosan-installer-xen-7
- залить с помощью winSCP на оба сервера в /tmp и установить флаг X (запуск)
- запустить ssh сессии на оба сервера и на обоих выполнить /tmp/halizard_nosan_installer_2.1.4
- нажать enter для начала установки
- ответы на вопросы

Master:  Slave:
 10.3.0.1  10.3.0.2
 10.3.0.2  10.3.0.1
 10.3.0.3  10.3.0.3
xen-serv1 xen-serv1
xen-serv2 xen-serv2
1  1 (указать репликационную сеть, интерфейсы)
yes yes
10 10
 172.16.11.32  172.16.11.32 (просто постоянно включенный узел в сети, например коммутатор)


- подключить в XenCenter soft-iscsi хранилище к пулу по адресу 10.3.0.3
- проверить процесс репликации на серверах через SSH
cat /proc/drbd
- проверить сервис ha-lizard::
service ha-lizard status
ha-lizard running: 22952 [ OK ]
- проверить статус ha-cfg на мастере:
ha-cfg status
Pool HA Status: DISABLED
Ввести yes
Pool HA Status: ENABLED

Можно устанавливать виртуалки.

 

Настройка ящерицы (HA-Lizard)


OP-MODE
1 = управлять устройствами,
2 = управлять виртуальными машинами Значение по умолчанию = 2
global_vm_ha
Укажите, следует ли отдельно включать HA на каждой виртуальной машине в пуле (когда OP_MODE = 2).
0 = Вы должны индивидуально установить ha-lizard-enabled на true / false для каждой виртуальной машины в пуле
1 = ВСЕ ВМ имеют включенную HA независимо от настроек в GUI / CLI
disabled_vapps
Укажите UUID (и) vapps, которые не запускаются автоматически ha-lizard, когда OP_MODE = 1 (управление
приборы) Массив ":" разделен следующим образом (UUID1: UUID2: UUID3) Оставьте пустым, если ВСЕ vapps управляются
ящерица "DISABLED_VAPPS = ()" применяется только когда OP_MODE = 1

Посмотреть статус VM (включен HA или нет)
ha-cfg get-vm-ha

Выбраны настройки
OP-MODE=2
global_vm_ha=0
В xencenter на пуле создан custom field "ha-lizard-enabled"
Для тех VM, которым не нужен HA значение параметра установлено в false, остальные - true
 


Устранение сбоев:
Тип сбоя Результат и действия
ыключение по питанию SLAVE и включение его Автоматическое перемещение VMs на MASTER и запуск их. Деёствия не требуются
выключение по питанию MASTER и включение его Автоматическая смена роли: SLAVE становится MASTER. VMs запускаются на новом MASTER.
 отключение и выход из строя SLAVE 1...
2.В XenCenter сказать сломанному серверу Destroy. ISCSi должно перестроиться.
3.Проинсталлировать новый сервак с теме же версиями, и ввести в пул.
4.Создать репликационную сеть, закачать скрипт установки и пройти пути для SLAVEа.
5.Дождаться синхронизации и сервер готов. 
отключение и выход из строя MASTER 1.Автоматическая смена роли: SLAVE становится MASTER. VMs запускаются на новом MASTER.
2.В XenCenter сказать сломанному серверу Destroy. ISCSi должно перестроиться.
3.Проинсталлировать новый сервак с теме же версиями, и ввести в пул.
4.Создать репликационную сеть, закачать скрипт установки и пройти пути для SLAVEа.
5.Дождаться синхронизации и сервер готов.
   

Возможные проблемы на Drbd:

расстройка конфигурации:

cat /proc/drbd
0: cs:StandAlone ro:Secondary/Unknown ds:UpToDate/DUnknown   r-----

1.  Стартануть Drbd на обоих

2. Указать первому, что он secondary и отменить все данные

drbdadm secondary all

drbdadm disconnect all

drbdadm -- --discard-my-data connect all

3. Установить второму режим master b подсоединить всё
drbdadm primary all
drbdadm disconnect all
drbdadm connect all

(HA мы не используем, т.к. используется HA-lizard service, но вдруг будет полезно)
- Неправильная перезагрузка мастера с HA приводит к выпадению мастера из пула.
Решение: Зайти на мастер и потушить HA
xe host-emergency-ha-disable force=true
подключиться в xen-centrу и перезапустить HA

полезные команды


-список виртуальных машин и серверов XEN:
xe vm-list

-Просмотр хостов в пуле:
xe host-list

-Показать мастер сервер пула:
xe pool-list params=uuid,master


- остановка VM
xe vm-shutdown uuid= force=true
xe vm-reset-powerstate uuid= force=true

- удаление VM:
xe vm-destroy uuid=
xe vdi-destroy uuid=

-Перезагрузка XenVM:
xe vm-reboot uuid=684f260e-cb1a-0630-360c-3ea1d7eb930d force=true

- включение/отключение ручного режима
iscsi-cfg manual-mode-enable/disable

СМЕНА РОЛЕЙ.(На HA-Lizard происходит автоматически, но вдруг понадобится)
Сначала оба хоста приводятся к slave, потом один из них выводится в master
- повышение хранилища до master mode (в ручном режиме)
iscsi-cfg become-primary
(при перезапуске хоста в ручном режиме, виртуалки потеряют связь с хранилищем)
- понидение хранилища до slave mode (в ручном режиме)
iscsi-cfg become-secondary

 

 - Посмотреть свободное место на хранилище

vgs 

- Посмотреть размеры виртуальных дисков

vhd-util scan -f -m "VHD-*" -l VG_XenStorage-197d07e3-f1b9-6ddd-56fd-75a41d0ee1b3 -p

 

 

BACKUP

 

Скрипт бэкапа xen server

#!/bin/bash
 
 
cifs="//10.10.10.1/back"        #backup share
mnt=/mnt/nfs/back/		#mount path
user_cifs=user		        #share username
passwd_cifs=pass		#share password
mnt_xen=/mnt/nfs/back/xen_r	#backup folder
max_day_live=5			#backup time to live
dateback=$(date +%y%m%d)	#folder date format
 
UNAM=$(uname -n) 
LOG=/tmp/$dateback-$UNAM-backup.log
log(){
   message="$(date +"%b %d %T") $UNAM: $@"
   echo $message
   echo $message >>$LOG
      }
log "Start XEN backup script"
#umount share
umount $mnt
 
#mount share
mount -t cifs $cifs $mnt -o user=$user_cifs,password=$passwd_cifs
 
log "Delete old backups on $mnt_xen for $max_day_live days ago"
#delete old backups 
find $mnt_xen -type d -ctime +$max_day_live -exec rm -R {} \;
 
#create backup folder
#mkdir $mnt_xen/$dateback
 
#get VM list
vmlist=$(xe vm-list is-control-domain=false is-a-snapshot=false | awk -F: '$1 ~ /^uuid/ {print $2}' | tr -d " ")
 
# Cicle by uuids
for vm in $vmlist
  do
    #get VM name
    vmname=$(xe vm-list uuid=$vm params=name-label | grep name-label | awk -F: '{print $2}' | tr -d " ")
    #get VM state
    vmstate=$(xe vm-list uuid=$vm params=name-label,other-config | grep -o -P '(?<=lizard-enabled: ).*(?=; home)' )
 
    log "$vmname: HA-state is $vmstate"
 
    if [ $vmstate == 'true' ]; then
    log "Start backuping $vmname"
    #making snapshot, get uuid
    uuidsn=$(xe vm-snapshot uuid=$vm new-name-label=snapshotname)
 
    #restore from snapshot
    xe template-param-set is-a-template=false ha-always-run=false uuid=$uuidsn
 
    #export vm to file.xva
    xe vm-export vm=$uuidsn filename=$mnt_xen/$dateback-$vmname.xva
 
    #delete vm
    xe vm-uninstall uuid=$uuidsn force=true
    log "Finish backuping $vmname"
   fi
  done
    log "Finish XEN backup script"
    cp $LOG $mnt_xen
    rm $LOG
#umount share
umount $mnt
 

 

 

 

 Оригинальная инструкция

Другие варианты запуска потока.

Поделиться: