Андрей Смирнов
Время чтения: ~13 мин.
Просмотров: 18

Непотопляемый сервер: настраиваем кластер на основе Windows 2003 Server

Hyper-V-HA-cluster-000.jpgУже на этапе планирования будущей виртуальной инфраструктуры следует задуматься об обеспечении высокой доступности ваших виртуальных машин. Если в обычной ситуации временная недоступность одного из серверов еще может быть приемлема, то в случае остановки хоста Hyper-V недоступной окажется значительная часть инфраструктуры. В связи с чем резко вырастает сложность администрирования — остановить или перезагрузить хост в рабочее время практически невозможно, а в случае отказа оборудования или программного сбоя получим ЧП уровня предприятия.

Все это способно серьезно охладить энтузиазм по поводу преимуществ виртуализации, но выход есть и заключается он в создании кластера высокой доступности. Мы уже упоминали о том, что термин «отказоустойчивый» не совсем корректен и поэтому сегодня все чаще используется другая характеристика, более точно отражающая положение дел — «высокодоступный».

Для создания полноценной отказоустойчивой системы требуется исключить любые точки отказа, что в большинстве случаев требует серьезных финансовых вложений. В тоже время большинство ситуаций допускает наличие некоторых точек отказа, если устранение последствий их отказа обойдется дешевле, чем вложение в инфраструктуру. Например, можно отказаться от недешевого отказоустойчивого хранилища в пользу двух недорогих серверов с достаточным числом корзин, один из которых настроен на холодный резерв, в случае отказа первого сервера просто переставляем диски и включаем второй.

В данном материале мы будем рассматривать наиболее простую конфигурацию отказоустойчивого кластера, состоящего из двух узлов (нод) SRV12R2-NODE1 и SRV12R2-NODE2, каждый из которых работает под управлением Windows Server 2012 R2. Обязательным условием для этих серверов является применение процессоров одного производителя, только Intel или только AMD, в противном случае миграция виртуальных машин между узлами будет невозможна. Каждый узел должен быть подключен к двум сетям: сети предприятия LAN и сети хранения данных SAN.

Вторым обязательным условием для создания кластера является наличие развернутой Active Directory, в нашей схеме она представлена контроллером домена SRV12R2-DC1.

Хранилище выполнено по технологии iSCSI и может быть реализовано на любой подходящей платформе, в данном случае это еще один сервер на Windows Server 2012 R2 — SRV12R2-STOR. Сервер хранилища может быть подключен к сети предприятия и являться членом домена, но это необязательное условие. Пропускная способность сети хранения данных должна быть не ниже 1 Гбит/с.

Hyper-V-HA-cluster-001.jpgБудем считать, что на оба узла уже установлена операционная система, они введены в домен и сетевые подключения настроены. Откроем Мастер добавления ролей и компонентов и добавим роль Hyper-V.

Hyper-V-HA-cluster-002-thumb-600xauto-5587.jpgСледующим шагом добавим компоненту Отказоустойчивая кластеризация.

Hyper-V-HA-cluster-003-thumb-600xauto-5590.jpgНа странице настройки виртуальных коммутаторов выбираем тот сетевой адаптер, который подключен к сети предприятия.

Hyper-V-HA-cluster-004-thumb-600xauto-5593.jpgМиграцию виртуальных машин оставляем выключенной.

Hyper-V-HA-cluster-005-thumb-600xauto-5596.jpgОстальные параметры оставляем без изменения. Установка роли Hyper-V потребует перезагрузку, после чего аналогичным образом настраиваем второй узел.

Затем перейдем к серверу хранилища, как настроить iSCSI-хранилище на базе Windows Server 2012 мы рассказывали в данной статье, но это непринципиально, вы можете использовать любой сервер цели iSCSI. Для нормальной работы кластера нам потребуется создать минимум два виртуальных диска: диск свидетеля кворума и диск для хранения виртуальных машин. Диск-свидетель — это служебный ресурс кластера, в рамках данной статьи мы не будем касаться его роли и механизма работы, для него достаточно выделить минимальный размер, в нашем случае 1ГБ.

Создайте новую цель iSCSI и разрешите доступ к ней двум инициаторам, в качестве которых будут выступать узлы кластера.

Hyper-V-HA-cluster-006-thumb-600xauto-5599.jpgИ сопоставьте данной цели созданные виртуальные диски.

Hyper-V-HA-cluster-007-thumb-600xauto-5602.jpgНастроив хранилище, вернемся на один из узлов и подключим диски из хранилища. Помните, что если сервер хранилища подключен также к локальной сети, то при подключении к цели iSCSI укажите для доступа сеть хранения данных.

Подключенные диски инициализируем и форматируем.

Hyper-V-HA-cluster-008-thumb-600xauto-5605.jpgЗатем переходим на второй узел и также подключаем диски, форматировать их уже не надо, просто присваиваем им такие же самые буквы и метки тома. Это необязательно, но желательно сделать в целях единообразия настроек, когда одинаковые диски на всех узлах имеют одни и те-же обозначения запутаться и сделать ошибку гораздо труднее.

После чего откроем Диспетчер Hyper-V и перейдем к настройке виртуальных коммутаторов. Их название на обоих узлах должно полностью совпадать.

Hyper-V-HA-cluster-009-thumb-600xauto-5608.jpgТеперь у нас все готово к созданию кластера. Запустим оснастку Диспетчер отказоустойчивых кластеров и выберем действие Проверить конфигурацию.

Hyper-V-HA-cluster-010-thumb-600xauto-5611.jpgВ настройках мастера добавим настроенные нами узлы и выберем выполнение всех тестов.

Hyper-V-HA-cluster-011-thumb-600xauto-5614.jpgПроверки занимают ощутимое время, при возникновении каких-либо ошибок их необходимо исправить и повторить проверку.

Hyper-V-HA-cluster-012-thumb-600xauto-5617.jpgЕсли существенных ошибок не обнаружено работа мастера завершится и он предложит вам создать на выбранных узлах кластер.

Hyper-V-HA-cluster-013-thumb-600xauto-5620.jpgОднако, если проверка выдала предупреждения, мы советуем изучить отчет и выяснить на что влияет данное предупреждение и что нужно сделать для его устранения. В нашем случае мастер предупреждал нас об отсутствии избыточности в сетевых подключениях кластера, по умолчанию кластер не использует сети iSCSI, что нетрудно исправить позднее.

Hyper-V-HA-cluster-014-thumb-600xauto-5623.jpgПри создании кластера для него создается виртуальный объект, обладающий сетевым именем и адресом. Укажем их в открывшемся Мастере создания кластеров.

На следующем шаге советуем снять флажок Добавление всех допустимых хранилищ в кластер, так как мастер не всегда правильно назначает роли дискам и все равно придется проверять и, при необходимости исправлять, вручную.

Больше вопросов не последует и мастер сообщит нам, что кластер создан, выдав при этом предупреждение об отсутствии диска-свидетеля.

Закроем мастер и развернем дерево слева до уровня Хранилище — Диски, в доступных действиях справа выберем Добавить диск и укажем подключаемые диски в открывшемся окне, в нашем случае их два.

Затем щелкнем правой кнопкой мыши на объекте кластера в дереве слева и выберем Дополнительные действия — Настроить параметры кворума в кластере.

Далее последовательно выбираем: Выбрать свидетель кворума — Настроить диск-свидетель и указываем созданный для этих целей диск.

Теперь настроим диск хранилища, с ним все гораздо проще, просто щелкаем на диске правой кнопкой и указываем: Добавить в общие хранилища кластера.

Для того, чтобы диск мог использоваться сразу несколькими участниками кластера на нем создается CSVFS — реализуемая поверх NTFS кластерная файловая система, впервые появившаяся в Windows Server 2008 R2 и позволяющая использовать такие функции как Динамическая (Живая) миграция, т.е. передачу виртуальной машины между узлами кластера без остановки ее работы.

Общие хранилища становятся доступны на всех узлах кластера в расположении C:ClusterStorageVolumeN. Обратите внимание, что это не просто папки на системном диске, а точки монтирования общих томов кластера.

Закончив с дисками, перейдем к настройкам сети, для этого перейдем в раздел Сети. Для сети, которая подключена к сети предприятия указываем Разрешить кластеру использовать эту сеть и Разрешить клиентам подключаться через эту сеть. Для сети хранения данных просто оставим Разрешить кластеру использовать эту сеть, таким образом обеспечив необходимую избыточность сетевых соединений.

На этом настройка кластера закончена. Для работы с кластеризованными виртуальными машинами следует использовать Диспетчер отказоустойчивости кластеров, а не Диспетчер Hyper-V, который предназначен для управления виртуалками расположенными локально.

Чтобы создать виртуальную машину перейдите в раздел Роли в меню правой кнопки мыши выберите Виртуальные машины — Создать виртуальную машину, это же можно сделать и через панель Действия справа.

Прежде всего выберите узел, на котором будет создана виртуальная машина. Каждая виртуалка работает на определенном узле кластера, мигрируя на другие узлы при остановке или отказе своей ноды.

После выбора узла откроется стандартный Мастер создания виртуальной машины, работа с ним не представляет сложности, поэтому остановимся только на значимых моментах. В качестве расположения виртуальной машины обязательно укажите один из общих томов кластера C:ClusterStorageVolumeN.

Здесь же должен располагаться и виртуальный жесткий диск, вы также можете использовать уже существующие виртуальные жесткие диски, предварительно скопировав их в общее хранилище.

После создания виртуальной машины перейдите в ее Параметры и в пункте Процессоры — Совместимость установите флажок Выполнить перенос на физический компьютер с другой версией процессора, это позволит выполнять миграцию между узлами с разными моделями процессоров одного производителя. Миграция с Intel на AMD или наоборот невозможна.

Затем перейдите в Сетевой адаптер — Аппаратное ускорение и убедитесь, что выбранные опции поддерживаются сетевыми картами всех узлов кластера или отключите их.

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

Закончив с Параметрами перейдите в Свойства виртуальной машины и укажите предпочтительные узлы владельцев данной роли в порядке убывания и приоритет, машины имеющие более высокий приоритет мигрируют первыми.

На закладке Обработка отказа задайте количество допустимых отказов для виртуальной машины за единицу времени, помните, что отказом считается не только отказ узла, но и потеря пульса виртуальной машины, например, ее зависание. На время настройки и тестов есть смысл указать значения побольше.

Также настройте Восстановление размещения, эта опция позволяет передавать виртуальные машины обратно наиболее предпочтительному владельцу при восстановлении его нормальной работы. Чтобы избежать чрезмерных нагрузок воспользуйтесь опцией задержки восстановления.

На этом настройка виртуальной машины закончена, можем запускать и работать с ней.

Теперь самое время проверить миграцию, для этого щелкните на машине правой кнопкой мыши и выберите Переместить — Динамическая миграция — Выбрать узел. Виртуалка должна переместиться на выбранную ноду не завершая работы.

Каким образом происходит миграция в рабочей обстановке? Допустим нам надо выключить или перезагрузить первый узел, на котором в данный момент выполняется виртуальная машина. Получив команду на завершение работы узел инициирует передачу виртуальных машин:

Завершение работы приостанавливается до тех пор, пока не будут переданы все виртуальные машины.

Когда работа узла будет восстановлена, кластер, если включено восстановление размещения, инициирует обратный процесс, передавая виртуальную машину назад предпочтительному владельцу.

Что произойдет если узел, на котором размещены виртуальные машины аварийно выключится или перезагрузится? Все виртуалки также аварийно завершат свою работу, но тут-же будут перезапущены на исправных узлах согласно списка предпочтительных владельцев.

Как мы уже говорили, прижившийся в отечественной технической литературе термин «отказоустойчивый» неверен и более правильно его было бы переводить как «с обработкой отказа», либо использовать понятие «высокая доступность», которое отражает положение дел наиболее верно.

Кластер Hyper-V не обеспечивает отказоустойчивости виртуальным машинам, отказ узла приводит к отказу всех размещенных на нем машин, но он позволяет обеспечить вашим службам высокую доступность, автоматически восстанавливая их работу и обеспечивая минимально возможное время простоя. Также он позволяет значительно облегчить администрирование виртуальной инфраструктуры позволяя перемещать виртуальные машины между узлами без прерывания их работы.

Для чего нужен кластер

Возможности Win2k3

Вообще говоря, одни кластеры предназначены для повышения доступности данных, другие — для обеспечения максимальной производительности. В контексте статьи нас будут интересовать MPP (Massive Parallel Processing) — кластеры, в которых однотипные приложения выполняются на нескольких компьютерах, обеспечивая масштабируемость сервисов. Существует несколько технологий, позволяющих распределять нагрузку между несколькими серверами: перенаправление трафика,трансляция адресов, DNS Round Robin, , работающих на прикладном уровне, вроде веб-акселераторов. В Win2k3, в отличие от Win2k, поддержка кластеризации заложена изначально и поддерживается два типа кластеров, отличающихся приложениями и спецификой данных:

1. Кластеры NLB (Network Load Balancing) — обеспечивают масштабируемость и высокую доступность служб и приложений на базе протоколов TCP и UDP, объединяя в один кластер до 32 серверов с одинаковым набором данных, на которых выполняются одни и те же приложения. Каждый запрос выполняется как отдельная транзакция. Применяются для работы с наборами редко изменяющихся данных, вроде WWW, ISA, службами терминалов и другими подобными сервисами.

2. Кластеры серверов – могут объединять до восьми узлов, их главная задача — обеспечение доступности приложений при сбое. Состоят из активных и пассивных узлов. Пассивный узел большую часть времени простаивает, играя роль резерва основного узла. Для отдельных приложений есть возможность настроить несколько активных серверов, распределяя нагрузку между ними. Оба узла подключены к единому хранилищу данных. Кластер серверов используется для работы с большими объемами часто изменяющихся данных (почтовые, файловые и SQL-серверы). Причем такой кластер не может состоять из узлов, работающих под управлением различных вариантов Win2k3: Enterprise или Datacenter (версии Web и Standart кластеры серверов не поддерживают).

В Microsoft Application Center 2000 (и только) имелся еще один вид кластера — CLB (Component Load Balancing), предоставляющий возможность распределения приложений COM+ между несколькими серверами.

NLB-кластеры

При использовании балансировки нагрузки на каждом из хостов создается виртуальный сетевой адаптер со своим независимым от реального IP и МАС-адресом. Этот виртуальный интерфейс представляет кластер как единый узел, клиенты обращаются к нему именно по виртуальному адресу. Все запросы получаются каждым узлом кластера, но обрабатываются только одним. На всех узлах запускается , которая, используя специальный алгоритм, не требующий обмена данными между узлами, принимает решение, нужно ли тому или иному узлу обрабатывать запрос или нет. Узлы обмениваются heartbeat-сообщениями, показывающими их доступность. Если хост прекращает выдачу heartbeat или появляется новый узел, остальные узлы начинают процесс схождения (convergence), заново перераспределяя нагрузку. Балансировка может быть реализована в одном из двух режимов:

1) unicast – одноадресная рассылка, когда вместо физического МАС используется МАС виртуального адаптера кластера. В этом случае узлы кластера не могут обмениваться между собой данными, используя МАС-адреса, только через IP (или второй адаптер, не связанный с кластером);

2) multicast – многоадресная рассылка, МАС-адрес кластера назначается физическому адресу, но не затирая его. Для реализации этого метода маршрутизаторы должны поддерживать групповые МАС-адреса.

В пределах одного кластера следует использовать только один из этих режимов.

Можно настроить несколько NLB-кластеров на одном сетевом адаптере, указав конкретные правила для портов. Такие кластеры называют виртуальными. Их применение дает возможность задать для каждого приложения, узла или IP-адреса конкретные компьютеры в составе первичного кластера, или блокировать трафик для некоторого приложения, не затрагивая трафик для других программ, выполняющихся на этом узле. Или, наоборот, NLB-компонент может быть привязан к нескольким сетевым адаптерам, что позволит настроить ряд независимых кластеров на каждом узле. Также следует знать, что настройка кластеров серверов и NLB на одном узле невозможна, поскольку они по-разному работают с сетевыми устройствами.

Настройка NLB-кластера

Для организации NLB-кластеров дополнительное ПО не требуется, все производится имеющимися средствами Win2k3. Для создания, поддержки и мониторинга NLB-кластеров используют компонент , который находится во вкладке «Администрирование» «Панели управления» (команда NLBMgr). Так как компонент «Балансировка нагрузки сети» ставится как стандартный сетевой драйвер Windows, установку NLB можно выполнять и при помощи компонента «Сетевые подключения», в котором доступен соответствующий пункт. Но лучше использовать только первый вариант, одновременное задействование диспетчера NLB и «Сетевых подключений» может привести к непредсказуемым результатам.

После установки NLB-кластера не забудь изменить DNS-запись, чтобы разрешение имени теперь показывало на IP-кластера.

Изменение загрузки сервера

Журналирование событий

Настраиваем IIS с репликацией

Полную версию статьи читай в февральском номере Хакера!

Дата: 20.05.2015 Автор Admin

Устанавливаем на каждый сервер компонент отказоустойчивого кластера. Объединяем сервера в кластер.

Как это сделать можно посмотреть тут.

Запускаем мастер установки MSSQL 2012 и выбираем пункт — Новая установка отказоустойчивого кластера.

Запускать мастер нужно под пользователем с правом заведения ПК в домен Active Directory.

3ea73fe5767928c27df087dcb831cb20.png

Вводим ключ продукта, и соглашаемся с лицензией.

Устанавливаем доступные обновления.

c94639de417d0a102927801cfa0e8058.png

Проходим проверку конфигурации кластера для MSSQL.

fe186520bc3d744d0c811afa2f0ab386.png

Выбираем компоненты для установки.

bb3d6c3726da7a5bed93be1c42981817.png

Выбираем компоненты для установки.

a44eead044aca91587ed0d188fa2960d.png

Далее проходим проверку конфигурации и нажимаем далее.

Указываем сетевое имя кластера MSSQL.

a97793c01d6c03433fadab8249aff8b6.png

Проверка использования свободного пространства.

ee5ab06a27d731e0edd12734479f6ca5.png

Просматриваем доступные кластерные хранилища.

6cbfd66f0ea1c3c93bece0ded08f67b7.png

Указываем общий диск кластера.

73f9da6f3ee238cb347c7b27af77d0d4.png

Указываем сетевые настройки кластера.

30774f1418139141c0be9cace92445a4.png

Указываем учетные данные администратора.

Желательно завести отдельного пользователя для MSSQL.

7fcc751ec490e86d64eb3ccc75bf3d3f.png

Также укажите параметры сортировки.

d19c77194e0d2f45d87f0358c32ecc9e.png

Если вам нужна учетная запись администратора MSSQL (SA), выберите смешанный тип, и укажите пароль.

Также добавьте своего пользователя.

2d5d84ed90839957a77b388f888b3999.png

В каталогах данных можете указать локальные пути для Temp DB. Данное действие доступно с версии 2012.

94f32d653ef32bb2e5100bcba8691393.png

Проходим еще одну проверку и нажимаем далее.

13b5ee4b9bbe1e909319ddfd8188ffcb.png

Нажимаем установить, и ждем окончания установки.

305c6fbac1000829201cf56db937dc27.png

Установка может идти очень долго.

d82f33eeb74b6f3dc1f26f481912a79b.png

Установка на первой ноде кластера завершена.

100a820ebe67744acb84f65e5a229d53.png

Переходим ко второй ноде.

Запускаем мастер установки MSSQL.

Выбираем пункт — добавление узла в отказоустойчивый кластер SQL.

e8cfc8b2ec976c2f74b4eaf1565a4a67.png

Далее, проходим тест, вводим ключ, принимаем лицензию,  устанавливаем обновления.

Проходим проверку.

7f471203d8770bcce0c2452af9cb6c95.png

Выбираем узел кластера.

402144575118ea2807ba08264eedfeeb.png

Выбираем ip адрес кластера.

a30d8a7a94bde172ac094c848c6bdbae.png

Указываем учетные данные.

416a5d8c652dda88c933e5aaddf1a0ba.png

Далее проходим проверки, и переходим к установке.

136079c8a4d494d5e80ee747b49496e9.png

Ожидаем завершения установки.

73135d320d2be806754c6ecec19b9866.png

На этом установка второй ноды завершена.

e1af3ea770a668e814f5eecc52f62e5f.png

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

Windows, Windows Server Метки: Cluster, MSSQL, Windows ServerИспользуемые источники:

  • https://interface31.ru/tech_it/2015/03/nastraivaem-otkazoustoychivyy-klaster-hyper-v-na-baze-windows-server-2012.html
  • https://xakep.ru/2008/05/23/43726/
  • http://ittraveler.org/ustanovka-i-nastrojka-klastera-mssql-2012/

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации