Мы уже много писали о продукте StarWind Enterprise HA, который позволяет создавать отказоустойчивые хранилища для серверов виртуализации VMware ESX на базе обычных Windows-серверов. Недавно вышла версия StarWind Enterprise HA 5.5, в которой реализован канал Heartbeat для еще большей надежности продукта. В данной статье рассматривается весь процесс создания отказоустойчивого кластера StarWind, который выдерживает отказ одного из узлов, отвечающего за работу с томами VMFS для серверов ESX / ESXi.
Итак, основные шаги по установке ПО StarWind Enterprise HA и созданию отказоустойчивого кластера хранилищ виртуальных машин для серверов VMware ESX:
1. Скачиваем дистрибутив StarWind Enterprise HA (есть бесплатная пробная версия на 30 дней) по этой ссылке. И запускаем процедуру установки (если у вас Windows 2003 Server, сначала почитайте здесь, а если у вас Windows Server 2008 - перед установкой StarWind нужно в списке служб Windows для сервиса Microsoft iSCSI Iniator Service сделать тип запуска Automatic и запустить его):
3. Выбираем компоненты для установки StarWind Enterprise HA. Консоль StarWind Management Console нужно поставить на обоих узлах создаваемого вами кластера, на случай, если придется управлять хранилищами и со второго узла.
4. После установки запустится симпатичное окно StarWind Enterprise HA:
Управляющую консоль StarWind всегда можно вызвать из иконки в трее:
5. Устанавливаем полученную по почте пробную лицензию:
6. Сразу же в консоли в настройках меняем язык на русский. Так приятнее:
7. Теперь добавляем первый хост (тот самый, где мы сейчас находимся) в управляющую консоль:
Это хост с адресом 127.0.0.1:
8. Из контекстного меню StarWind Management Console выбираем пункт Connect (Подключиться). Далее у нас попросят пароль на подключение к серверу StarWind. Помните, по умолчанию логин root, а пароль starwind (потом его можно поменять).
9. Теперь добавляем новый таргет iSCSI, который будет видеть хост VMware ESX:
И указываем его имя (опционально можно задать IQN-имя):
А потом выбираем тип устройства хранения - Hard Drive. Мы будем использовать локальный диск сервера StarWind для хранения виртуальных машин на базе общего хранилища, раздаваемого по iSCSI:
Далее выбираем виртуальный диск с расширенным функционалом - именно он поддерживает возможности кластеризации (High Availability) для хранения виртуальных машин в распределенном кластере StarWind с синхронизированными узлами.
Затем выбираем тип устройства для работы виртуального диска - High Availability устройство. Можно сделать и зеркалированный диск (RAID-1), причем его можно зеркалировать не только локально, но и по сети. Можно сделать и диск с поддержкой мгновенных снимков и CDP (подробнее обо всех типах дисков здесь). Но мы сделаем HA-диск:
10. Далее нам нужно указать хост-партнер StarWind Enterprise. К этому моменту вы уже должны были установить ПО StarWind на второй сервер (см. системные требования StarWind). Затем вводим данные этого сервера-партнера (обратите внимание, что указываются креды StarWind, а не локального администратора, и не забудьте добавить лицензию на втором узле):
Важно: в поле "Хост" указывается адрес интерфейса, через который хост-серверы ESX обращаются к узлам StarWind (подробнее здесь).
11. Теперь мы указываем как Target будет называться на втором узле кластера StarWind:
После этого, нам предложат создать диски - на данном сервере и на сервере-партнере StarWind. Создаем эти диски (не забудьте приписать к диску расширение img):
12. Теперь появляется новое в версии StarWind Enterprise 5.5 - это окно выбора интерфейса для синхронизации между узлами StarWind (поле Интерфейс, подробнее здесь) и интерфейса для сети Heartbeat:
Что такое этот Heartbeat (оно, кстати, необязательное)? О нем просто и понятно рассказано в статье "Новая возможность StarWind Enterprise HA - устранение ситуации Split Brain". Если вкратце, то Heartbeat - это отдельный канал, по которому идет обмен сигналами доступности между узлами StarWind на случай обрыва канала синхронизации между этими узлами, когда обе ноды остаются работающими, думая что каждая из них - выживший член кластера. Отдельный интерфейс Heartbeat - это и есть защита от такой ситуации (Split Brain):
Соответственно, поле "Приоритет" и нужно для того, чтобы определить, какой из узлов является первичным. К тому же, раньше в случае отказа одного из узлов, их нужно было синхронизировать вручную. Теперь же появилася галка "Auto synchronization after failure". Это приятно.
13. Далее нам предлагают несколько вариантов создания виртуального диска High Availability. Первый вариант для нас - поскольку мы создаем диски с нуля. Но если у вас есть существующий виртуальный диск (и вы его выбрали на предыдущем этапе на одном из серверов) - то можно его отреплицировать на другой сервер, создав таким образом из обычного хранилища отказоустойчивое. Можно также вовсе не синхронизировать диски. Выбираем первый вариант:
На этом долгоиграющий мастер добавления диска подходит к концу - нажимаем далее, и начинается процесс создания таргетов и синхронизации виртуальных дисков:
15. После создания дисков у вас может возникнуть сообщение о том, что узлы не могут синхронизироваться между собой и нужно сделать это вручную. Сделать это можно из контекстного меню устройства (внимание - внимательно смотрите, диск какого из узлов находится в более актуальном состоянии для обновления диска сервера-партнера):
16. После того, как диски будут синхронизированы, добавим в консоль StarWind Enterprise второй узел, чтобы увидеть таргет сервера-партнера и централизованно управлять обоими узлами:
Кстати, все это я делаю на виртуальных машинах, которые являются узлами кластера StarWind (такое используют даже в рабочей инфраструктуре - см. статью здесь). В этом случае для тестирования продукта вам не понадобится ни физических серверов, ни дополнительных сетевых адаптеров - для виртуальных машин просто можно добавить vNICs.
Наше отказоустойчивое хранилище готово. Давайте приступим к его добавлению к хост-серверу ESX. Для этого в VMware vSphere Client переходим на вкладку Configuration, далее в категорию Storage Adapters, после чего выбираем наш iSCSI-адаптер на ESX (например, vmhba34) и нажимаем Properties:
На вкладке Dynamic Discovery вводим IP-адрес первичного узла StaWind Enterprise:
Кстати, CHAP-аутентификация поддерживается в StarWind. Нажимаем Ok и добавляем IP-адрес второго сервера StarWind Enterprise:
То же самое проделываем на каждом из хостов VMware ESX, которые будут иметь доступ к хранилищу по iSCSI. Мы увидим, что общее хранилище появилось в интерфейсе vSphere Client:
Теперь из контекстного меню для этого таргета выберем пункт Manage Paths, чтобы посмотреть по каким путям сервер VMware ESX видит хранилище нашего кластера:
В появившемся окне мы видим пути к хранилищу - ESX определяет, что это одно хранилище с двумя путями к нему, но мы-то знаем что физических этих хранилищ два, и они синхронизируются между собой.
То есть в случае отказа пути или одного из узлов кластера StarWind Enterprise HA, хост-сервер VMware ESX переключится на второй путь, а значит и на другой узел StarWind, при этом виртуальные машины продолжат работать без остановки работы.
Сначала необходимо добавить VMFS том для этого iSCSI-хранилища. Для этого в категории Storage в vSphere Client нажмем кнопку Add Storage...
Потом нужно создать на этом хранилище виртуальную машину:
Кстати, в консоли StarWind Enterprise можно посмотреть, какие сессии iSCSI сейчас висят на нашем таргете (видим, что висит сервер-партнер StarWind и сервер VMware ESX):
После того, как виртуальная машина запустится на сервере ESX, просто выключите первичный (или вторичный) узел StarWind Enterprise HA (например, выключите виртуальную машину, куда мы устанавливали один из узлов). Сам же сервер VMware ESX переключится на резервный путь:
А виртуальная машина продолжаит работать и никаких данных не потеряется.
Потом просто нужно включить узел StarWind Enterprise - и начнется процесс автоматической синхронизации, поскольку мы ее выставили в настройках (то есть, Failback). И снова обе ноды будут в рабочем состоянии.
По вопросам приобретения продукта StarWind Enterprise HA можно и, несомненно, нужно обращаться только в компанию VMC.