Показаны сообщения с ярлыком XenServer. Показать все сообщения
Показаны сообщения с ярлыком XenServer. Показать все сообщения

четверг, 18 сентября 2014 г.

Подключение жёстких дисков из одного Xen-сервера на другой

Вводная: Есть два однотипных сервера. На обоих установлен XenServer 6.2. Сервера не в пуле. В качестве сторейджов используется локальное хранилище (HDD установленные в сам сервер). После смерти одного из серверов, необходимо поднять работу виртуальных серверов на работающем.

Решение: 

1. Корректно гасим рабочий.

2. Берём жёсткие диски из умершего сервера и вставляем в рабочий (в данной статье не рассматривается вопрос рейда, если он у вас есть, то обязательно проверьте, что он корректно определился). Включаем сервер. 

3. После загрузки системы проверяем, что диск подключился
fdisk -l

4. Далее вводим команду
pvdisplay

5. Смотрим на поле VG Name — VG_XenStorage-12660091-343d-2107-5dea-bb021055c07c
(Нам нужна подстрока после «VG_XenStorage-» у вас будет ДРУГОЙ UUID)

xe sr-introduce uuid=12660091-343d-2107-5dea-bb021055c07c type=lvm name-label="Local storage REPAIR" content-type=user

Выйдет uuid подключенного сторейджа — 12660091-343d-2107-5dea-bb021055c07c. Обычно он равен номеру VG Name, но не всегда. Лучше проверить.

6. ll -l /dev/disk/by-id

Выйдет список дисков. Нам нужен третий (первый сам ксен, второй его резервная копия — третий диск с нужными нам образами)

7.  xe host-list
запоминаем UUID

8. xe pbd-create host-uuid=f53d07d5-335a-434b-93ff-1a66faec9c7a sr-uuid=12660091-343d-2107-5dea-bb021055c07c device-config:device=/dev/disk/by-id/scsi-360050760580b2b901ba7bdcb10981ed2-part3

Выйдет UUID - 45593530-bbae-c903-12e4-96bda77bc514

9. xe pbd-plug uuid=45593530-bbae-c903-12e4-96bda77bc514

10. Проверяем, что сторейдж корректно подключился и у него в списке есть диски виртуальных машин.


Можно переходить к созданию виртуальных машин и после создания сделать Attach к образам.

PS: В результате скорость восстановления работоспособности существенно возрастает. По сути теперь она равна скорости 1. Выключить 2. Переставить диски. 3. Загрузиться. 4. Прописать сторейдж и виртуалки. На тестах у нас уходило по 7-9 минут до загрузки (но надо учитывать, что это спокойная обстановка тестирования, плюс я был возле сервера).

PS2: Данная инструкция больше вредна чем полезна, так как делается всё не совсем корректно с точки зрения архитектуры. И надо точно понимать, что вы делаете. Более правильным был бы подход с установкой дисковой полки и настройки high availability-cluster. Тогда бы он делал это всё автоматически. Но пару моментов -
а) Дисковой полки не было
б) В случае использовании дисковой полки нужно ставить их парой в зеркале, что удорожает существенно, иначе выход из строя полки убивает нам всю работу (плюс считаем цену на нормальные FC-коммутаторы и сетевые) 
в) есть варианты с использованием DRBD, но при тестах скорость работы и дисковых операций падали ОЧЕНЬ существенно

PS3: Надо не забывать, что на обоих серверах нужно оставлять некоторое количество памяти и пространства в сторейджах для создания виртуальных машин после переноса. И если память вы сможете переопределить (при выключенных виртуалках), то с пространством на жёстких всё несколько сложнее и дольше.

PS4: Вообще (если у вас ни какой-нибудь хитрый рейд) можно подключить диски "на горячую" (к примеру через rescan-scsi-bus.sh или что-то подобное). И далее идти с первого пункта. Что сэкономит нам некоторое количество времени на выключение-включение.

PS5: Есть мнение, что если у вас есть только два сервера, то можно проделать данные операции ДО возникновения проблем на каждом сервере, и затем просто игнорировать варнинги в логе о "неподключающемся" сторейдже. И в случае проблем, надо будет просто "выключить, переставить диски, включить". Но я данный вопрос не тестировал.























среда, 16 октября 2013 г.

Обновление пула серверов XenServer 6.1 до версии 6.2

Вводная: Имеется пул серверов построенных на XenServer 6.1. Необходимо его обновить до версии 6.2. Управление происходит с рабочей станции на Windows 7, через XenCenter.

Решение: Прежде всего идём на http://support.citrix.com/article/CTX138801 и скачиваем последнюю версию XenCenter. Устанавливаем её.

Далее скачиваем ISO образ XenServer 6.2 (XenServer-6.2.0-install-cd.iso) с http://xenserver.org/overview-xenserver-open-source-virtualization/download.html ,  либо через https://www.citrix.com/downloads/xenserver/product-software/xenserver-62.html (необходима регистрация на сайте). Разницы в ISO образах нет. Рекомендую после скачивания проверить MD5 образа.

Распаковываем ISO образ в папку - имя не должно содержать кириллицу.
Далее можно было пойти несколькими путями - обеспечить доступ к данной папке по одному из протоколов - HTTP, FTP или NFS. Я решил пойти по пути наименьшего сопротивления и воспользовался программой HFS http://ru.wikipedia.org/wiki/HTTP_File_Server Данная программа позволяет ОЧЕНЬ быстро организовать файловый доступ через HTTP в системе Windows (для работы достаточно запустить, выбрать нужный нам каталог и проверить настройки файрвола - я на время обновлении его выключил вообще).  
Из плюсов данного метода могу отметить - не требовательность к инсталляции, быструю скорость запуска, простота настройки. Но если есть настроенные сервера с NFS или FTP сервером, возможно будет проще использовать их - в моём случае проблема была в том, что управление пулом выполнялось из другого VLAN`a и другой подсети от имеющихся серверов (по сути компьютер с XenCentr`ом был единственным кто видел сервера)
Скачиваем программку HFS http://www.rejetto.com/hfs/?f=dl и добавляем в него папку с содержимым распакованного ISO-образа.

В моём случае получилось http://192.168.123.50/ISO/

Теперь запуска XenCenter и в меню выбираем Tools - Rolling Pool Upgrade
  1. На первом экране просто нажимаем "Next".
  2. На втором выбираем наш пул, который требуется обновить.
  3. На третьем я выбрал automatic.
  4. На четвёртом у меня поругался на "xenserver 6.2 requires new licenses to be added to your license server"  пропускаем.
  5. На пятом шаге выбираем HTTP и вводим http://192.168.123.50/ISO/ . Нажимаем Test. (если связь не появилась, проверяйте настройки сети и файрвола)
  6. Если всё прошло без ошибок, нажимаем Обновить.
После обновления пула до 6.2 необходимо поставить все текущие обновления. Данный вопрос очень хорошо освещён в статье http://blog.plastilin.org.ua/2013/07/xenserver-62.html так что просто приведу инструкцию из неё. 
Как известно с версии 6.2 XenServer стал полностью бесплатен. Однако все же не обошлось без "откусываний" функционала. Одним из таких шагов стал запрет установки обновлений через XenCenter. Так что для того чтобы установить обновление привычным способом, необходимо приобрести план подписки на техническую поддержку и получить лицензию, которая разблокирует эту функцию. Для тех, кто не желает "подписываться" остается консольный способ
Установка обновлений в пуле серверов XenServer 6.2:
1. В консоли XenServer скачиваем обновление на мастер пула (Где взять обновление подскажет XenCenter):
wget http://support.citrix.com/servlet/KbServlet/download/34977-102-704231/XS62E001.zip
(В моём случае я скинул файлы обновления в папку подключенную через HFS и вводил wget http://192.168.123.50/ISO/XS62E001.zip) 
2. Разархивируем обновление:
unzip XS62E001.zip 
3.  Загружаем обновление на мастере пула:
xe patch-upload -s xxx.xxx.xxx.xxx -u root -pw ******** file-name=XS62E001.xsupdate 
Где xxx.xxx.xxx.xxx - IP адрес мастера пула, ******** - пароль пользователя root мастера пула. При успешном выполнении команды будет выдан UUID обновления, копируем в буфер
4.  Применяем обновление:
xe patch-pool-apply -s xxx.xxx.xxx.xxx -u root -pw ******** uuid=59128f15-92cd-4dd9-8fbe-a0115d1b07a2 
5.  В случае успешного применения обновления, поочередно перезапускаем все сервера в пуле, начиная с мастера пула.
После установки XenServer 6.2 и всех обновлений не забудьте установить на виртуальных машинах XenTools.

PS: Видео на youtube показывающая процесс обновления через CD-disk http://www.youtube.com/watch?v=W7snE6jfdWU "How to Upgrade from XenServer 6.1 to XenServer 6.2" - мною способ не тестировался.

PS2: http://www.cosonok.com/2012/12/how-to-upgrade-xenserver-56-to.html в данной статье была подчерпунта информация по обновление с помощью HFS

PS3: http://support.citrix.com/article/CTX137829 XenServer 6.2.0 Installation Guide - официальное руководство по установке и обновлению (глава 7)

PS4: http://www.vmgu.ru/news/citrix-xenserver-62-open-source "Новые возможности Citrix XenServer 6.2 в "новой упаковке" - теперь Open Source." 

пятница, 8 февраля 2013 г.

Использование XenConvert для переноса физического сервера в виртуальную среду.



Вводная: Дана задача перенести рабочий сервер (виндовый) в виртуальную среду. Выбора два - либо переустановить на новом сервере ОС-программы и заново всё настраивать (по разным причинам простое клонирование в данном случае не даст никакого результата). Либо сконвертировать существующий сервер в виртуальный.
Мы пойдём вторым путём. Ферма виртуальных серверов крутится под управлением гипервизора Citrix XenServer 6.1.

Решение: Для переноса серверов воспользуемся специальной программой XenConvert. При запуске выберем - "XenServer Virtual Hard Disk".
Почему не остальные? Вариант "XenServer" это выгрузка напрямую на сервер, а из соображений безопасности и удобства сервера вынесены в отдельную подсеть. Вариант "Open Virtualization Format (OVF) Package" - по сути та же выгрузка диска, но в не родном для XenServer формате. Третий "Provisioning Services vDisk" это вообще необходимо для доставки виртуальных ПК на базе мастер-образа, так что тоже не наш вариант.
На следующем шаге выбираем диски для импорта. Также можем сразу подкорректировать их размер

Далее выбираем путь по которому необходимо сохранить файл импорта
маленький хинт - по кнопке "Browse" вы не получите доступ по абсолютному URI (к выгрузке в сетевую папку), но если это вам необходимо, то можете подключить сетевой диск и выгрузить на него
Далее надо проверить параметры выгрузки и если всё правильно, то нажимаем "Convert" и ждём окончания. Рекомендую также на этом шаге поставить галочку "Log names of converted files" (чтобы если выгрузка глюканула, то вы знали на каком файле это произошло)


Теперь переходим непосредственно к установке образа в виртуальную среду.
  1. Запсукаем XenCenter. Выбираем сервер на котором будем разворачивать.
  2. Щелкаем на нём правой кнопкой и нажимаем "Import". Выбираем созданный на предыдущем шаге образ сервера.
  3. Следующим шагом выбираем имя, количество ядер и памяти для сервера.
  4. Выбираем пул и конкретный сервер.
  5. Выбираем сторейдж на котором будет разворачиваться образ.
  6. Подключаем сетевой адаптер.
  7. Выбираем использовать или нет "OS Fixup Settings" - данная опция позволяет сразу подключить ISO с образом ОС (к примеру если проблемы с загрузчиком и надо выполнить fixboot-fixmbr). Статья посвященная опции - http://support.citrix.com/article/CTX124961
  8. Выбираем интерфейс который будет мостом с реальной сетью
  9. Нажимаем "Finish" и ждём (Можно перейти на вкладку Logs целевого пула и смотреть на прогресс-бар :) )

понедельник, 5 ноября 2012 г.

Удаление умершего сервера из пула XenServer

Вводная: После экспериментов над пулом из 2 двух серверов xenserver-01 и xenserver-02 (XenServer 6.1 - без high availability и Work load balance), один из серверов, который 01, приказал долго жить :) При попытки удаления его из пула (правой кнопкой - "Destroy"). Появляется ошибка - "Destroying host 'xenserver-01' - This server can not be forgotten because there are some user VMs still running". Стандартная команда "xe host-disab​le host=(UUID​ or name)" также не отрабатывает. То есть пул думает, что у нас есть запущенная виртуальная машина, поэтому не даёт удалить сервер из пула. ВНИМАНИЕ!!! СЛЕДУЮЩУЮ ИНСТРУКЦИЮ МОЖНО ПРИМЕНЯТЬ ТОЛЬКО ЕСЛИ ВАМ НЕ НАДО ВОССТАНАВЛИВАТЬ УМЕРШИЙ СЕРВЕР!!!

Для начала заходим на работающий сервер (02) и в командной строке делаем команду
xe host-list

Находим UUID недоступного сервера и пробуем сделать
xe host-forget uuid=d531bdae-ea7a-4d6a-afe4-bc9694c5xxxx

Опять ошибка - "This host can not be forgotten because there are some user VMs still running
host"

Делаем
xe vm-list
Находим виртуалки, которые работали на недоступном сервере и с ихними UUID`ами делаем команду -
xe vm-reset-p​owerstate force=true​ vm=2acb31dc-b856-4803-7494-e687bb37xxxx

После этого удаляем сам сервер
xe host-forget uuid=d531bdae-ea7a-4d6a-afe4-bc9694c5xxxx.

После этого надо будет удалить виртуальную машину (которой мы делали reset-powerstate)
xe vm-forget uuid=2acb31dc-b856-4803-7494-e687bb37xxxx

и почистить хранилища, оставшиеся от старого сервера. Для их поиска воспользуемся командой -
xe sr-list
и выберем все UUID`ы со строкой - host ( RO): <not in database>
И затем
xe sr-forget uuid=ca6fcc5a-8c17-a024-e53b-85709de8xxxx