Opennet74
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Хай всем еще раз! Бета-тестинг конфиги закончен. Из всех старвиндов которые были доступны - наиболее устойчивым и безпроблемным (без вылета в бсоды) оказался старвинд 5.4 с псевдо-валидным ключом (ломалкой экзешника не рекомендую пользоваться). Несмотря на более худший функционал, но из 5 тестов аварийного выключения - живая нода под w2k8 в бсод не улетала. В то время когда 5.5 и 5.7b - это делали регулярно, 5.6 - консоль под W2K8 R2 SP1 не стартует. Какие задачи ставились?: 1. Возможность плановых и не плановых(экстренных) выключений серверов, как вместе так и по-отдельности без пересбора HA Starwind. К примеру на техобслуживание, по указанию внешнего ИБП. 2. Сохранение отказоустойчивости 1 узла (на случай бсодов и другие неприятностей неожиданного характера). Конфига: 2 сервера W2k8 R2 SP1 с гигабитной сетью между + гигабитная сеть наружу. На обоих Hyper-V на 1 сервере (основной) - поднята не кластеризованная виртуалка w2k3 (VHD, на фейк рейде10) с Starwind 5.4. Действие при завершении работы - сохранить виртуалку. В настройках служб на выключение (правим через реестр параметры отвечающие за связи служб) - сначало стопаем службу кластера, а только затем Hyper-V. Параметры загрузки сервака - стоит таймаут 1сек. на 2 сервере (файловый) - поднят прямо на серваке Starwind 5.4 (на фейк рейде10). Все остальные виртуалки, которые пользуются CSV (HA Starwind) - кластеризованы. Таймаут на загрузку сервака - стоит 360 секунд. Что получилось: 1. Хотим выключить оба сервака? - запускаем батник Shutdownall.bat - батник отправляет на шутдовн 2 сервер и с интервалом в n секунд делает пинг 2 сервера. Пинга нет - продолжаем сценарий - выключаем 1 сервак. При выключении 1 сервака он с начало стопает кластер (сохраняются виртуалки на CSV-HA, которые до этого перенеслись с 1 сервера, а затем сохраняет виртуалку на которой лежит Starwind c этим HA). 2. Включаем оба сервера после выключения - 1 сервак стартует без задержек, 2 сервак ждет 360 секунд (каждый сам перенастраивает тайм-ауты) (предполагаем что оба включены одновременно с возобновлением подачи электричества от ИБП и в BIOS стоит при подаче питания Power ON). 1 сервак стартует, запускает Hyper-V (опять же, порядок запуска и зависимости служб - добился путем установки на службу кластера таймаута, она самой последней стартует). Hyper-V загружает локальную виратулаку с HA-Starwind. Та обнаруживает что 2 узел в дауне и переводит HA в деградированное состояние (Это важно чтобы не произошло сплит-брайна!). К этому моменту стартует служба кластера, видит диск-свидетель и подымает кластер (на всякий - выставьте в хранилищах и прочих ресурсах параметры повторов попыток, что бы он так и не подвис, не увидив диск-свидетель, иначе гарантировано получите геморрой с конфигами кластеризованных VM когда он стартанет без диска-свидетеля увидив второй узел и получив кворум) 2 сервак на 360 секунде продолжает загрузку, загружается, запускает кластер, старвинд и hyper-v. Подсоединяется как узел к существующему кластеру, старвинд увидив что он был в шутдавне - начинает полную синхронизацию с виртуалки 1сервера. ГЛАВНО! Чтобы 2 сервак всегда физически/программно стартовал позже чем тот, который с виртуалкой. Объясняю. Грузиться 2 сервак, видит что 1 пока лежит - помечает битым + сам битый. Грузиться 1сервак, грузит виртуалку из сейв-стейта с HA-starwind, Starwind видит второй сервак и считает его битым, а себя считает исправным. Синхра уже не пойдет между ними без вмешательства. Вариант 2 - сплитбрайн. Штудавним только первый сервак, виртуалка уходит в сейв-стейт. Второй сервак не шутдавнился и считает первый битым. Через n-время загружается первый сервак, выходит из сейв-стейта, видит себя и второй сервак как нормальным = начинает работать. Второй сервак - считает себя нормальным, а 1 битым. Получаем сплит-брейн (разделние мозгов) с весьма неприятными последствиями и геморроем. 3. Вариант выключения 1 из серверов. 3.1 Выключаем 2сервак - все как обычно - shutdown -s. Включение - работает выше описанный алгоритм (с момента загрузки 2сервака). 3.2. Выключаем 1сервак. Тут есть ньюанс - виртуалку со старвиндом нужно перевести не в сейв-стат, а в шутдовн, что бы все операции записи были завершены корректно (на всякий). Как это сделать через батник - читаем маны и пишем shutdown1.bat (и делимся со мной). Пока у меня все ограничивается ручным выключением виртуалки со старвиндом и, затем, ручным выключением 1сервака. Для критически важных виртуалок в кластере - делают ручной dynamic migrate на 2узел кластера. Включение - как обычно, грузится 1сервак, стартует hyper-v, starwind на виртуалке видит свой шутдавн и сливает зеркало с работающего 2сервера. Паралельно стартует кластер и все работает. 4. Аварийное завершение серверов (бсод). Загрузка проходит нормально, при условии: 4.1. В бсод улетает только один сервер, второй продолжает работать 4.2. Если 1сервак (с виртуалкой) улетел в бсод или на рестарт и не успел из него вернуться с восстановлением HA starwind, а тут экстренное завершение работы по питанию (ИБП сказал, что щас сдохну, заряда нет) - получаем геморрой. ЕСЛИ Улетел 2сервак (без виртуалки HA), и не успел загрузиться/слить зеркало с работающего узла - ничего страшного, штатное завершение 1сервака (с виртуалкой) - происходит сейв и шутдавн всех серверов. Запуск как описан выше в п.2. Теперь реальные тесты. Гигабитка на встроенных сетевушках в матерях! на 1серваке виртуалка лежит на том же фейк-массиве рейд10 (ich10r) из рапторов, что и система. Бэкапы делаются на другой, настоящий рейд с серверными-винтами. на 2серваке файлы-диски HA starwind лежат на фейк рейде10 (Ich10r) из десктоп-винтов, разделяя параллельно свою участь с DFS, бэкапами. (СРЕДНЯЯ). Скорость чтения/записи - 60мбайт/сек (тестил еверестом/аида, IOметром пока не было необходимости). Линейное чтение/запись показывает те же результаты что и эверест(нынешняя аида). Рандом - немножко падает до 45-50мбайт/сек. Виртуалки ворочаются шустро. (МАКСИМУМ) Когда дисковые массивы и сеть не нагружена очередными бэкапами - до 70-80мбайт/сек. Реальные тесты на аварийку. Выдергиваем с 1 сервака питание. Все гуд, стартует все нормально, хотя кеш на HA starwind включен, кеш на диске включен. Вносятся тормоза пока фейк-рейд прогонит своих 320гигов на проверку. Дергал так раз 5-6. И еще 1 раз был действительно непредвиденный из-за обновления от билли гейтса. Выдергиваем с 2 сервака питания. Все гуд. Стартует все нормально. 5-6 раз. Непредвиденных пока не было. Ну и если полный "П" - вырубаем ИБП. Получаем то-что имеем, вручную собираю HA, подкидываю таргеты кластеру. - Пашет, но на 1 виртуалке слетела конфига. Пересоздал, подцепил vhd этой виртуалки, добавил в кластер - пашет. Еще 2 раза полный "П" и на третьем получаю бсод в одной из кластеризованных виртуалок. И вправду - а фигле, кеш HA starwindа то улетает при таких полных П. На пятом разе второй сервак отказался грузиться с бсодом. (фейк-рейд, кеш улетел и что-то зацепил, хард-рейды с батарейкой таким проблемам не подвержены). И вот тут настает самое главное в жизни каждого сис.админа - Ежедневный бэкап систем, бэкап виртуалки на 1сервер и бэкап HA-дисков starwind на втором. Тушим 1сервак - F8 - восстанавливаю на момент до тестов (предусмотрительно сделал бэкап Starwind-виртуалки в сейв-стайте), 2-сервак - аналогично. Грузимся и мы готовы к понедельнику, началу рабочей недели. Впринципе, шадов-копи на 2к8 работает замечательно и снимает именно "моментное" состояние виртуалки. И рекомендую юзать бэкапы через эту службу. Иначе делая бэкап работающей 100гиговой виртуалки или дисков - вы получите однозначно косяки из-за того, что в момент бэкапа что-то в виртуалку/диск запишется. Тем самым получите часть старого/частьнового с вероятным бсодом или повреждением HA-дисков. Как организовать бэкапы - это уже все индивидуально :) ---- P.S. так как серваки питаются через 3000вт ИБПешник то аварийный по питанию практически исключен (только отказ ИБП, что маловероятно). При потере внешней сети - серваки через n время или % от заряда начинают штатное завершение работы. Не рекомендую юзать такую схему если у вас нет ИБП и не настроены/нет возможности организовать штатное выключение при потере внешней электросети. ТАКЖЕ !НЕРЕКОМЕНДУЮ ЮЗАТЬ! снапшоты виртуалки на которой крутиться HA-starwind!. Скорость падает до 30мб/сек сразу при 1 снапшоте, и чем больше снапшотов тем хуже (мелкомягкие об этом тоже предупреждают!). Так же потом гемор при откатах - вручную объединять все дифф-VHD от снапшотов. (варианты с дизелями, шкафами-АКБ тут неуместны, ибо тогда вы !должны! по ряду причин купить нормальные внешние дисковые полки с FC и не заниматься такой &%@# как я :) Вроде все расписал, сумбурно вышло, но кто ищет - тот найдет и поймет. Если же вы не поняли, но все равно хотите "СРАЗУ!" внедрить в продакшен(произведственной) среде - лучше купите дисковую полку или посмотрите другие варианты. 3 месяца работает и отпуск пережило нормально. Только один раз внеплан вышел - когда синхронизивался HA после ручного рестарта первого сервера, то второй сервер с которой шла синхронизация ушла в бсод по вине мониторингового ПО (в последствии, его вынес в виртуалку, нефик!), естественно HA не синхронизировался до конца и развалился. К счастью, это все я делал после вечернего бэкапа. Поэтому потерь не было. В кластере/на HA-старвинда крутиться VM w2k3(раздача инета, мониторинг и алармы), VM w2k3 (exchange 2k7, корпоративный мессенджер и все в этом духе), 3xVM XP в режиме терминалки (экзаменационное ПО, справочные и иформационные БД/проги и т.д.) По итогам тестов: 1C 7.7 DBFбазы намного лучше живут в RAID1 из 2 SSD от интела, который throught-pass в некластеризованную виртуалку, которая является сервером терминалов, для работы с этой самой базой. О как загнул... чтение - 503мбайт/сек (с родителя - 510)! Плюс такого подхода в том, что если сдыхает виртуалка, скрипт коннектит SSD-массив напрямую в винду и юзеры тискают иконку не терминалки, а 1С, которая указывает на сетевую шару с этими базами. Если и нода померла - юзеры выбирают другую базу - вчерашнюю копию, которая лежит на другом сервере и работаю только на чтение. DBF база на HA-starwind - я никогда не рискну включать Starwindовский кеш на реляционных БД, впрочем как и любой другой кеш без "батарейки"! А без него, педалит жестко, да и с ним - тоже не шик. Была бы 10гбит оптика между серваками - может и поэксперементировал бы, а так 500мбайт/сек на чтение я по гигабитной сети не сниму. А если у вас есть MSSQL и 1С 8 - флаг вам в руки, кластеризовать MSSQL и тогда можно кластеризовать и виртуалку с терминальным сервером, но тогда уже можно и полочку с дисками докупить. UPD 07.06.2013: Ввиду отсутствия бюджета - мигрировали на Proxmox VE 3(для отказоустойчивости на софтRAID 1) + ФС CEPH. Полет нормальный. Избавились от фейк-рейдов для массивов хранения данных, что упрощает их восстановление в случае "наворачивания железок". UPD 15.11.2016: Ввиду специфики - VmWare 6 с Vcenter по ряду причин лучше Proxmox VE. В частности с системами безопасности в виртуалках Proxmox'а много багов с сетью. (OSSIM, к примеру) | Всего записей: 44 | Зарегистр. 27-06-2007 | Отправлено: 12:35 14-10-2011 | Исправлено: Opennet74, 15:43 02-11-2017 |
|