На огромном числе серверов SQL Server запускается на виртуальных машинах, поэтому администраторам баз данных чрезвычайно важно понимать различные пути достижения высокой доступности при запуске SQL Server в виртуальной машине. Если платформа VMware vSphere настроена в кластере на уровне узла, vSphere обеспечивает определенный уровень доступности без специальных настроек в гостевой операционной системе или SQL Server. Параметры высокой доступности предоставляются узлом vSphere, поэтому высокая доступность обеспечивается для всех версий и редакций SQL Server, от выпуска Express до Enterprise и от SQL Server 6.5 до SQL Server 2012.

.

Что такое уровень защиты

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

Сильная сторона платформы vSphere — защита виртуальной машины от отказов узла и перезапусков узла. Работоспособность экземпляра SQL Server будет восстановлена довольно быстро, хотя избежать прерванных транзакций не удастся.

Балансирование рабочих нагрузок с vMotion

Редакции vSphere Enterprise и Enterprise Plus дополнены функциями балансирования нагрузки между физическими узлами. Таким образом, всем виртуальным машинам, выполняемым в среде vSphere, в любое время гарантированно предоставляется максимально доступное количество ресурсов процессора. Для этого vSphere автоматически запускает процесс vMotion, перемещая виртуальные машины с одного узла на другой в зависимости от текущей рабочей нагрузки на процессор и память каждого сервера. Скрыто выполняемый процесс невидим для программ, выполняемых в перемещаемой виртуальной машине.

Автоматическая и ручная отработка отказов с использованием vSphere DRS и vSphere HA

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

Ручная отработка отказов. Укажите виртуальную машину в vCenter и, щелкнув правой кнопкой мыши, выберите пункт Migrate из контекстного меню. Мастер предоставляет на выбор несколько вариантов, в том числе предусмотрена возможность переместить виртуальную машину на другой узел. После завершения работы мастера узлы выполняют процесс vMotion. При переносе виртуальной машины простои и перерывы в обслуживании отсутствуют. Обработка транзакций, выполняемых в экземпляре SQL Server, продолжится без отмены транзакций и передачи конечным пользователям или приложениям сообщений об ошибке.

Автоматическая отработка отказов. Существует два типа автоматической отработки отказов на платформе vSphere. Первый — автоматическое перебалансирование рабочих нагрузок между физическими хост-серверами. Эта задача выполняется системой DRS, которой можно задать различные уровни чувствительности, от консервативного до активного. В консервативном режиме продолжается обычный мониторинг, но система DRS не предпринимает никаких действий на основе собранной информации. В активном режиме система DRS постоянно отслеживает нагрузку на процессор и память на всех серверах фермы vCenter. Если одна из виртуальных машин использует большинство или все ресурсы узла, система DRS автоматически переносит другие виртуальные машины с этого узла на другие компьютеры. В конечном итоге система DRS попытается изолировать виртуальную машину, которая задействует все ресурсы процессора и памяти узла. Если изолировать виртуальную машину невозможно, с узла перемещается столько виртуальных машин, сколько нужно, чтобы устранить дефицит ресурсов процессора и памяти на узле.

Второй тип автоматической отработки отказов защищает от неисправностей физического сервера. Эта часть системы vSphere, именуемая vSphere HA, автоматически перезапускает виртуальные машины в случае неожиданного отключения от сети сервера, на котором работают виртуальные машины. В настройках vCenter администраторы могут назначать уровни приоритетов так, чтобы виртуальные машины подключались к сети в определенном порядке. Таким образом, самые важные серверы будут первыми компьютерами, подключаемыми к сети после восстановления связи, а менее важные серверы подключаются последними или не подключаются вовсе. В первую очередь следует вернуть в сеть контроллеры домена (DC) и серверы базы данных. Следом за ними нужно подключить компьютеры, на которых выполняются приложения, взаимодействующие с Интернетом, в частности, веб-серверы. В последнюю очередь подключаются к сети серверы, на которые возложена внутренняя обработка, и виртуальные рабочие станции.

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

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

Отказоустойчивость (Fault Tolerance) — еще один режим, обеспечивающий высокий уровень доступности в vSphere. В этом режиме виртуальная машина выполняется одновременно на двух узлах, согласованных друг с другом. Если на узле с активным экземпляром виртуальной машины происходит отказ, обработка передается согласованной пассивной машине. Таким образом, виртуальная машина остается в сети даже в случае отказа узла, на котором она размещена.

С режимом отказоустойчивости связано несколько специфических требований. Например, виртуальная машина ограничивается одним виртуальным процессором, и необходимы определенные версии BIOS. Требования разные в зависимости от версии vSphere. Но если виртуальная машина соответствует этим требованиям, то данный режим — отличный способ сохранить виртуальную машину в сети в случае отказа сервера.

Использование режима обслуживания

Одно из важных достоинств vSphere заключается в отсутствии необходимости вручную перемещать виртуальные машины с одного физического узла на другой при обслуживании физического узла (например, перезагрузке или внесении программных исправлений). Это становится возможным благодаря режиму обслуживания в vSphere. Когда хост-сервер переводится в режим обслуживания, узел автоматически перемещает все свои виртуальные машины на другие узлы в ферме. После того, как все виртуальные машины перенесены на другой узел, перевод узла из активного режима в режим обслуживания завершается. После этого никакие виртуальные машины на узле запускать нельзя.

Чтобы перевести физический узел в режим обслуживания, достаточно указать сервер из клиента управления vSphere и щелкнуть правой кнопкой мыши, а затем выбрать из контекстного меню пункт Enter Maintenance Mode. Клиент vCenter спросит, следует ли перенести виртуальные машины с узла. Если нажать кнопку Yes, то будет запущен процесс vMotion для переноса виртуальных машин на другие серверы в ферме. После завершения обслуживания узла необходимо вручную перевести систему из режима обслуживания в рабочее состояние.

Настройка высокого уровня доступности vSphere

Все параметры высокого уровня доступности находятся в клиентской программе vSphere. Этот инструмент vSphere используется для управления и настройки всей платформы vSphere. Для доступа к настройкам высокого уровня доступности необходимо перейти в представление Hosts and Clusters («Узлы и кластеры») в приложении vSphere. Для этого нужно выбрать раздел Home на панели навигации, а затем Hosts and Clusters в разделе Inventory. После этого панель навигации примет вид, показанный на экране 1.

 

Проверка панели навигации для работы в?представлении Hosts and Clusters
Экран 1. Проверка панели навигации для работы в?представлении Hosts and Clusters

Настройка DRS. Настройку DRS необходимо выполнить в разделе свойств конкретного кластера. Чтобы изменить свойства кластера, перейдите в представление Hosts and Clusters. Выберите кластер из списка объектов в правой части приложения. Укажите кластер, щелкните правой кнопкой мыши и выберите пункт Edit Settings («Изменить параметры»). В диалоговом окне Settings («Параметры») выберите vSphere DRS, как показано на экране 2. Затем можно настроить уровень автоматизации, применяемый в системе DRS, а также величину порога миграции.

 

Настройка DRS
Экран 2. Настройка DRS

В разделе vSphere DRS окна Settings даны ссылки на страницы DRS Groups Manager («Диспетчер групп DRS»), Rules («Правила»), Virtual Machine Options («Параметры виртуальной машины») и Power Management («Управление электропитанием»). Для распределения виртуальных машин по группам используется страница DRS Groups Manager. Диспетчер служит для привязки определенных виртуальных машин к конкретным узлам. Обычно эта функция не используется, если только виртуальная машина не требует от узла особых характеристик (например, физически подключенного устройства).

На странице Rules можно назначить особые правила для DRS. Вы можете подготовить правила трех типов.

  • Правила для размещения определенных виртуальных машин на различных хост-компьютерах в любое время. Обычно такое правило используется, чтобы различные узлы в кластере виртуальных серверов (например, отказоустойчивом кластере SQL Server) всегда работали на различных компьютерах.
  • Правила, принуждающие виртуальные машины сосуществовать на одном хост-компьютере. Такое правило обычно применяется, чтобы снизить сетевой трафик между виртуальными машинами, такими как сервер приложений и сервер базы данных.
  • Правила для привязки виртуальных машин к определенным хост-компьютерам с использованием групп DRS.

На странице Virtual Machine Options («Параметры виртуальной машины») можно настроить уровень автоматизации процесса vMotion для использования при переносе виртуальных машин. Обычно на этой странице не нужно выполнять никаких настроек, кроме включения автоматизации.

На странице Power Management («Управление электропитанием») можно настроить автоматическое отключение и включение хост-компьютеров для экономии электроэнергии. В периоды минимального использования ресурсов на хост-компьютерах виртуальные машины консолидируются на нескольких хост-компьютерах, а затем компьютеры, на которых не осталось виртуальных машин, отключаются. Когда рабочая нагрузка вновь увеличивается, хост-компьютеры автоматически включаются, а виртуальные машины перемещаются на только что включенные хост-компьютеры и получают достаточные физические ресурсы.

Настройка приоритета перезапуска vSphere HA. Настройка приоритета автоматического запуска виртуальных машин выполняется из окна Settings («Параметры»), показанного на экране 2. В vSphere HA необходимо щелкнуть ссылку Virtual Machine Options («Параметры виртуальной машины»). На странице Virtual Machine Options каждой виртуальной машине можно задать приоритет перезапуска — Disabled, Low, Medium, High или Use Cluster Setting («Использовать параметр кластера»). Если добавлены новые виртуальные машины и их приоритеты отличаются от параметра кластера, следует вручную изменить приоритет перезапуска.

Настройка отказоустойчивости. Чтобы включить режим отказоустойчивости для определенной виртуальной машины, укажите эту виртуальную машину и щелкните правой кнопкой мыши; выберите из контекстного меню Fault Tolerance и укажите в раскрывающемся меню Turn On Fault Tolerance, как показано на экране 3.

 

Настройка отказоустойчивости
Экран 3. Настройка отказоустойчивости

Появится предупреждение, показанное на экране 4. В нем говорится, что при включении режима отказоустойчивости для виртуальной машины любые диски, предоставленные в рамках процесса тонкой подстройки, будут полностью удалены. В результате виртуальная машина получит все пространство хранения, которое ей назначено. Кроме того, виртуальная машина будет перенастроена, а память зарезервирована таким образом, что виртуальная машина всегда получит доступную память после перезапуска. Щелкните кнопку Yes в окне предупреждения, чтобы включить режим отказоустойчивости для этой виртуальной машины.

 

Предупреждение перед включением режима высокой отказоустойчивости
Экран 4. Предупреждение перед включением режима высокой отказоустойчивости

Преимущества высокого уровня доступности vSphere

У встроенных параметров высокой доступности vSphere есть свои преимущества. Многие компании имеют небольшие приложения (например, приложения управления серверами и мониторинга серверов), которые используют базы данных SQL Server Express. В редакции Express функции высокой доступности по умолчанию отсутствуют. Разместив такие приложения внутри виртуальной машины в кластере vSphere корпоративного уровня, можно обеспечить им высокую доступность. Аналогично, встроенные параметры высокой доступности vSphere могут быть полезны компаниям, не имеющим средств для приобретения редакций SQL Server корпоративного уровня для реализации проектов, или бюджета для обновления программного обеспечения и замены версий старых приложений. Во всех этих случаях параметры высокой доступности vSphere обеспечат присутствие приложений в сети. Но возможны и поврежденные транзакции, точно так же, как при использовании собственных решений высокой доступности SQL Server.

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