Всем доброго времени суток. Имею проблему, которую ввиду неопытности не понимаю каким способом решать, поэтому требую стратегического пинка в нужную сторону.
Имеется система, которая общается с внешним миром посредством USB(Com-порт), RS-232 и Ethernet. На данный момент все крутится на нескольких ПК с Windows 7, на которых установлено некластеризируемое ПО, которое требует физического присутствия USB-HASP(по сети не понимает). ПО работает с MS SQL Server 2008 R2. На каждом ПК стоит Win7, ПО, MS SQL, Hasp-ключ и несколько физических интерфейсов.
На данный момент система работает, но очень нестабильно. Нестабильно настолько, что у каждого пользователя имеется пачка инструкций по устранению всяческих глюков, которой он успешно пользуется ...каждый день.
Основная часть сбоев приходится на USB, RS-232-устройства/интерфейсы. Уже отработан механизм замены этих узлов на подобные, существенно более стабильные, но с Ethernet. Правда приходится привлекать Debian, Dos, Asterisk.
Заодно принято решение крутить все это на отказоустойчивом кластере виртуальных машин на двух имеющихся Dell PowerEdge R810, минимальными вложениями апгрейднутыми до необходимой конфигурации. Платное ПО для кластеризации рассматривается очень неохотно ввиду того, что неясно, когда оно себя отобъет.
На данный момент на двух имеющихся нодах(в режиме тестирования) развернут Proxmox 5 + GlusterFS отдельным линком. Для обеспечения кворума планируется использование третей ноды на малопроизводительном ПК, OrangePi или чем то подобном, что пройдет боевые испытания. Пока в качестве этой ноды используется виртуалка VirtualBox на рабочем ПК c 8 Гб HDD, 512 Мб ОЗУ, debian 9 + proxmox(без подключения к GlusterFS).
Пока все прекрасно работает, виртуальные машины Windows 7 успешно мигрируют онлайн за 5-10 минут, успешно мигрируют при краше одной из нод, НО ...с перезагрузкой( Как (вполне логично)оказалось, Proxmox не умеет онлайн миграцию с сохранением состояния при отваливании ноды и, как я смог выяснить, даже то, что это умеет за деньги, делает это не достаточно уверенно.
Как быть, если этот пятиминутный простой крайне нежелателен? Основная проблема с Windows, пятиминутный простой на вспомогательных ОС допустим. Предполагаю, что нужно организовать две виртуалки с Windows Server 2008 R2(в кластер их?), которые поднять на двух нодах. На обеих виртуалках поднять MS SQL в кластерной конфигурации и каким то образом организовать мигрирование IP-шников этих виртуалок с одной на другую, при этом одна из них должна спать, когда работает другая(active/passive), иначе в базе будет бардак из за отсутствия связи с оборудованием на одной из машин. ПО выступает только как посредник между базой и интерфейсами и все состояние ПО определяется данными в БД, поэтому подключение к базе и интерфейсам другого экземпляра ПО ни к чему плохому не приведет.
О каких технологиях почитать? Что использовать? Денег на отдельное хранилище вряд ли кто то даст, поэтому надо попробовать обойтись без него.
Так же интересует вопрос с HASP ключами в таком случае. Стоит ли заморачиваться с пробросом этих USB c помощью Debian+OrangePi, или сразу покупать что то на подобии AnywhereUSB? Может есть еще какие то варианты?
Прошу сильно не пинать, так как это по сути мой первый серьезный проект, спросить не у кого и если с Linux кластеризацией все пошло достаточно бодро, то c Windows в этом плане что то совсем все плохо. Настраивать вместо меня не прошу, просто подскажите как поступить.
у меня 3 ноды на VE 5 хранилище внешнее на iscsi uplink 10Gb/s, миграция идет без reboot. виртуальные машины 2008r2 Терминальный сервер, два АД, сервер бд MSSql, сервер 1с и PostgresQL, не считая zabbix астерисков и прочего. Лучше железка AnyWareUSB
он хочет не онлайн-миграцию руками без ребута, а восстановление виртуалки после падения ноды на другой с сохранением состояния и аптайма, то есть не ручная миграция, а полноценный Fault Tolerance
Mystray, помниться там для этого есть HA но в рассово верным хранилищем ZFS Over iscsi. то есть по сути на н серверах лежат конфиги тачек, их диске лежат на внешнем хранилищем, как только вм падает она через н секунд поднимается на другой ноде при условии что сервера зеркальны
Антон Уланов, у вас все равно навернется виртуалка, если упадет физическая нода, на которой она крутится.
А HA просто перетянет конфиг-файл на выжившую ноду и заново запустит ВМ. Ни о каком сохранении состояния и аптайма HA ничего не расскажет.
HA работает на любом Shared сторадже, хоть DRBD, хоть NFS/gluster/iSCSI, лишь бы данные виртуалки были не на ноде.
Антон Уланов, не получается при сбое сохранить состояние виртуальной машины на другой ноде. ОЗУ сильно быстро изменяется и не синхронизируется с другой нодой. Поэтому надо две виртуальные машины,одна из которых будет простаивать до форс мажора и вопрос больше в том, как заставить их это делать в моем случае.
Антон Уланов, несколько минут на реакцию HA и несколько минут на запуск винды плохо влияют на работоспособность всей системы. После этого еще минут 20 клиент будет наблюдать не за полезной информацией, а за сообщениями об ошибках из-за потери связи с ПО и БД. Такова природа периферии этой системы.
protsey, у нас такого нет, перезапуск всех систем занимает 2 минуты. Все Виртуалки лежат на SSD. далее пользователи подключаются и уже штатно работают. за эти две минуты поднимают сервера с MS SQL, Exchange, SharePoint, 1c server, Postgresq и Сервер Терминалов