Отказоустойчивость приложений в средах виртуализации

Опубликовано: 19 Апреля, 2023

Понимание отказоустойчивости приложений

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

Это не тривиальные вопросы для бизнеса, и поэтому крупные игроки на рынке виртуализации, такие как Microsoft и VMware, разработали различные решения, гарантирующие, что виртуализированные приложения могут быстро и корректно восстанавливаться после сбоев хоста без потери данных.

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

Приведение технологий в соответствие с требованиями бизнеса

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

Рассмотрим бизнес, которому нужна отвертка, чтобы обеспечить бесперебойную работу. Компания А просматривает, что доступно на Amazon, и решает купить отвертку номер один (см. http://amzn.to/1fjGALC):

Изображение 15352
Рис. 1. Инструмент, который может помочь обеспечить операционную устойчивость зрелого бизнеса.

Они приняли правильное решение? Если компания является зрелым бизнесом, который заинтересован только в том, чтобы продолжать выпускать больше своего существующего продукта со скоростью, которую они делали в течение многих лет, то ответ — да. Не каждая компания ищет способы расширения или извлечения выгоды из последних тенденций рынка. Нужно ли предприятию, производящему зубочистки, частное облачное решение? Может быть, им нужен только хост Hyper-V, выполняющий некоторый пользовательский код на виртуальной машине Windows XP, отключенной от Интернета, для управления их машиной для изготовления зубочисток.

Кроме того, есть компания Б, которая считает, что ее доля на рынке в ближайшем будущем сократится. В результате они хотят диверсифицироваться в новые продукты. Поскольку это означает, что вскоре им, возможно, придется приобрести какое-то новое промышленное оборудование, они хотят убедиться, что у них будут необходимые инструменты для обслуживания такого нового оборудования, каким бы оно ни было. Поэтому вместо этого они покупают отвертку номер два (см. http://amzn.to/1jvfwjP):

Изображение 15353
Рисунок 2: Инструмент, который может помочь обеспечить операционную устойчивость для бизнеса, думающего о диверсификации.

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

Кроме того, есть ловкие, гибкие, высокотехнологичные компании, которым необходимо быстро расти, чтобы они могли идти в ногу с тенденциями и доминировать на развивающихся рынках. Финансируемые ангелами-инвесторами, они готовы вкладывать деньги в решение проблемы, чтобы обеспечить быстрое масштабирование своей деятельности и справиться со всем, что может возникнуть. Компания C является примером такого бизнеса, и они без колебаний заказывают отвертку номер три (см. http://amzn.to/1eQ8QZm):

Изображение 15354
Рис. 3. Инструмент, помогающий обеспечить операционную отказоустойчивость для бизнеса, которому требуется гибкость.

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

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

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

Отказоустойчивость VMware

VMware Fault Tolerance (FT) может помочь обеспечить отказоустойчивость приложений, сохраняя динамическую теневую копию виртуальной машины, работающей синхронно с виртуальной машиной. VMware FT был представлен в версии 4.0 VMware vSphere и требует, чтобы VMware High Availability (HA) был настроен для задействованных хостов. При использовании FT любые операции с файлами и другая обработка, выполняемая на основной виртуальной машине, также выполняется на вторичной (теневой) виртуальной машине, чтобы две виртуальные машины всегда находились в идентичном состоянии. Затем, если произойдет что-то, что приведет к сбою хоста первичной виртуальной машины, вторичная виртуальная машина (которая работает на другом хосте) может немедленно подключиться и продолжить с того места, где остановилась первичная, чтобы продолжить любые операции, выполняемые на первичном с помощью без прерывания и без потери данных. Полученное решение (HA + FT) может обеспечить непрерывную доступность с практически нулевым временем простоя для критически важных виртуализированных приложений и услуг.

К преимуществам VMware FT можно отнести следующее:

  • Простота. Концепция наличия живой копии приложения, работающего в фоновом режиме и готового к работе в случае сбоя, проста и привлекательна.
  • Простота реализации. Если в вашей среде уже настроено VMware HA, для настройки FT достаточно пары щелчков мыши.
  • Широкая поддержка приложений. Практически любое приложение в любой операционной системе, которое можно виртуализировать с помощью VMware ESX, можно сделать более отказоустойчивым, включив VMware FT. В частности, FT можно использовать для повышения отказоустойчивости даже приложений, не поддерживающих работу с кластерами.

Но есть некоторые существенные ограничения, если вы думаете об использовании FT:

  • Ограничения обработки. Виртуальная машина с включенным FT может иметь только один виртуальный ЦП. Это ограничивает типы приложений, которые могут использовать FT для обеспечения отказоустойчивости приложений. Например, вы, вероятно, не сможете использовать его для запуска большого приложения базы данных, поскольку оно может быть привязано к процессору только с одним виртуальным ЦП. Некоторые другие расширенные функции процессора, такие как Hyper-Threading и SLAT, также не поддерживаются FT.
  • Ограничения виртуальной сети. Виртуализация ввода-вывода с одним корнем (SR-IOV) позволяет напрямую назначать поддерживаемые сетевые адаптеры виртуальной машине, чтобы максимизировать пропускную способность сети, а также свести к минимуму задержку в сети и нагрузку на ЦП, необходимые для обработки сетевого трафика. В результате увеличивается число операций ввода-вывода виртуальной сети для виртуальной машины. Хотя SKU высокого класса vSphere 5.1 поддерживают SR-IOV, он не поддерживается в сочетании с FT. Это может ограничить пропускную способность сети (и, следовательно, количество транзакций в секунду) для виртуализированных приложений, требовательных к пропускной способности. Транзитная передача NIC также не поддерживается в сочетании с FT.
  • Другие функциональные ограничения — FT нельзя использовать в сочетании со следующими функциями VMware: моментальные снимки, Storage vMotion, связанные клоны, VMware Consolidated Backup, Virtual SAN, тонкое выделение ресурсов хранения, виртуализация N_Port ID (NPIV), устройства с возможностью горячей замены. Полный список ограничений можно посмотреть здесь.

Но означают ли эти ограничения, что FT — плохой выбор для обеспечения отказоустойчивости приложений? Конечно, не при условии, что верно одно или несколько из следующих утверждений:

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

Гостевая кластеризация Hyper-V

Гостевая кластеризация на платформе Microsoft Windows Server включает установку и настройку функции отказоустойчивой кластеризации в гостевой операционной системе виртуальных машин. В типичном развертывании гостевого кластера каждая кластеризованная виртуальная машина работает на разных узлах Hyper-V, и эти узлы сами являются узлами в кластере узлов. Это означает, что у вас будет настроено два экземпляра отказоустойчивой кластеризации: внутри операционной системы узлов Hyper-V и внутри гостевой операционной системы виртуальных машин, работающих на узлах.

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

Главное преимущество использования гостевой кластеризации — отсутствие урезанной функциональности. Другими словами, единственными ограничениями на обработку, виртуальную сеть и хранилище являются ограничения самой операционной системы. Таким образом, используя Windows Server 2012 R2 в качестве основной и гостевой операционной системы, вы можете использовать возможности поддержки SLAT и Hyper-Threading, поддержку до 64 виртуальных процессоров, поддержку SR-IOV, поддержку до 64 узлов на кластер., динамическая миграция, реплика Hyper-V и т. д. Для сравнения Windows Server 2012 R2 Hyper-V и VMware vSphere 5.5 с точки зрения Microsoft см. эту ссылку.

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

  • Повышенная сложность. В то время как решение VMware HA/FT требует настройки только одного экземпляра кластеризации (на хостах), а затем переключения нескольких переключателей, гостевая кластеризация Microsoft влечет за собой настройку двух отдельных экземпляров отказоустойчивой кластеризации (один на хостах, а другой в виртуальные машины).
  • Приложения должны поддерживать работу кластера. Чтобы использовать гостевую кластеризацию для обеспечения отказоустойчивости виртуализированного приложения, приложение должно поддерживать работу кластера. TechNet говорит, что приложение с поддержкой кластера «это приложение, которое вызывает API-интерфейсы кластера, чтобы определить контекст, в котором оно работает… и может переключаться между узлами для обеспечения высокой доступности» (см. эту ссылку). Большинство серверных приложений Microsoft поддерживает работу с кластерами, включая последние версии SQL Server и Exchange, роли сервера, такие как сервер DHCP и масштабируемый файловый сервер, и т. д. Если вы используете пользовательское приложение, не поддерживающее кластер, вам потребуется изменить архитектуру приложения, если вы хотите использовать гостевой кластер для обеспечения отказоустойчивости.

Хорошее объяснение того, как работает гостевая кластеризация и как ее настроить, см. по этой ссылке.

Вывод

Возвращаясь к нашей аналогии с отверткой, лучший подход с точки зрения бизнеса — подобрать правильный инструмент для работы. Например, VMware FT, вероятно, является идеальным решением для повышения отказоустойчивости устаревшего бизнес-приложения, которое не поддерживает работу с кластерами и для которого перекодирование приложения для обеспечения поддержки работы с кластерами повлечет за собой ненужные расходы для компании. Аналогией здесь может служить рис. 1, на котором показан простой, но эффективный инструмент, который может помочь обеспечить операционную устойчивость для зрелого бизнеса, не планирующего диверсификацию или завоевание мира. С другой стороны, компании, которым необходимо диверсифицировать или стать гибкими, чтобы конкурировать на быстро развивающихся рынках, могут захотеть рассмотреть возможность развертывания решения для гостевой кластеризации Hyper-V, даже если они в настоящее время являются магазином VMware, чтобы они могли воспользоваться преимуществами отказоустойчивости, такими как решение может предоставлять бизнес-приложения, созданные с использованием SQL Server 2012 Always On, масштабируемого файлового сервера и аналогичных приложений с поддержкой кластера.