Программное обеспечение высокой доступности - High availability software

Программное обеспечение высокой доступности это программное обеспечение, используемое для обеспечения того, чтобы системы работали и были доступны большую часть времени. Высокая доступность - высокий процент времени, в течение которого система функционирует. Формально его можно определить как (1 - (время простоя / общее время)) * 100%. Хотя минимально необходимая доступность зависит от задачи, системы обычно пытаются достичь доступности 99,999% (5 девяток). Эта характеристика слабее, чем Отказоустойчивость, который обычно стремится обеспечить 100% доступность, хотя и со значительными потерями в цене и производительности.

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

Функции

Типичное программное обеспечение высокой доступности предоставляет функции, которые:

Включить аппаратное и программное резервирование: Эти функции включают:

  1. Обнаружение аппаратных и программных объектов,
  2. Назначение активных / резервных ролей этим объектам,
  3. Обнаружение вышедших из строя компонентов,
  4. Уведомление резервных компонентов о том, что они должны стать активными, и
  5. Возможность масштабировать систему.

Служба недоступна, если она не может обслуживать все запросы, размещенные в ней. Свойство «горизонтального масштабирования» системы относится к способности создавать несколько копий подсистемы для удовлетворения растущего спроса и эффективно распределять входящую работу по этим копиям (Балансировка нагрузки (вычисления) ) желательно без выключения системы. Программное обеспечение высокой доступности должно обеспечивать горизонтальное масштабирование без прерывания обслуживания.

Включить активную / резервную связь (особенно контрольную точку): Активные подсистемы должны взаимодействовать с резервными подсистемами, чтобы гарантировать, что резервный готов взять на себя управление с того места, где остановился активный. Программное обеспечение высокой доступности может предоставить абстракции связи, такие как резервные очереди сообщений и событий, чтобы помочь активным подсистемам в этой задаче. Кроме того, важная концепция, называемая «контрольные точки», относится исключительно к высокодоступному программному обеспечению. В системе с контрольными точками активная подсистема идентифицирует все свое критическое состояние и периодически обновляет резервный с любыми изменениями этого состояния. Эта идея обычно абстрагируется как распределенная хеш-таблица - активный записывает записи типа ключ / значение в таблицу, а активная и резервная подсистемы читают из нее. В отличие от «облачной» распределенной хеш-таблицы (Аккорд (одноранговый), Кадемлия и т. д.) контрольная точка полностью реплицируется. То есть все записи в хеш-таблице «контрольной точки» доступны для чтения, пока работает одна копия.[1] Другой метод, называемый [контрольной точкой приложения], периодически сохраняет все состояние программы.[2]

Разрешить обновления в процессе эксплуатации: In Service Software Upgrade - это возможность обновлять программное обеспечение без ухудшения качества обслуживания. Обычно это реализуется в системах с резервированием путем выполнения так называемого «последовательного» обновления - обновления резервного, пока активный обеспечивает обслуживание, восстановления после сбоя и последующего обновления старого активного. Еще одна важная функция - это возможность быстро вернуться к более старой версии программного обеспечения и конфигурации, если новая версия выйдет из строя.[3][4]

Минимизация задержки в режиме ожидания и обеспечение корректности режима ожидания: Задержка режима ожидания определяется как время между моментом, когда резервному серверу предлагается стать активным, и моментом, когда он фактически предоставляет услуги. Системы с «горячим» резервом - это системы, которые активно обновляют внутреннее состояние в ответ на активные контрольные точки системы, что приводит к миллисекундным простоям. «Холодные» резервные системы отключены до тех пор, пока активный не откажет, и обычно перезапускается из «базового» состояния. Например, многие облачные решения перезапускают виртуальную машину на другой физической машине, если базовая физическая машина выйдет из строя. Задержка «холодного» отказа в режиме ожидания может составлять от 30+ секунд до нескольких минут. Наконец, «теплый» резерв - это неформальный термин, охватывающий все работающие системы, которые должны выполнить некоторую внутреннюю обработку, прежде чем стать активными. Например, система горячего резервирования может обрабатывать задания с низким приоритетом - когда активный выходит из строя, он прерывает эти задания и считывает состояние контрольной точки активного перед возобновлением обслуживания. Задержки горячего режима ожидания зависят от того, сколько данных проверяется, но обычно имеют задержку в несколько секунд.

Архитектура системы

Программное обеспечение высокой доступности может помочь инженерам создавать сложные системные архитектуры, которые призваны минимизировать объем отказов и обрабатывать определенные режимы отказов. «Нормальный» сбой определяется как сбой, который может быть обработан архитектурой программного обеспечения, а «катастрофический» сбой определяется как сбой, который не обрабатывается. Поэтому катастрофический сбой вызывает перерыв в обслуживании. Однако программное обеспечение по-прежнему может значительно повысить доступность, автоматически возвращаясь в рабочее состояние, как только катастрофический отказ будет устранен.

Самая простая конфигурация (или «модель резервирования») - 1 активный, 1 резервный или 1 + 1. Другой распространенной конфигурацией является N + 1 (N активных, 1 резервный), что снижает общую стоимость системы за счет меньшего количества резервных подсистем. Некоторые системы используют полностью активную модель, которая имеет то преимущество, что «резервные» подсистемы постоянно проверяются.

Пример системной архитектуры программного обеспечения высокой доступности

Конфигурации также могут быть определены с подсистемами активного, горячего и холодного резервирования (или простоя), расширяя традиционную номенклатуру «активный + резервный» до «активный + резервный + простой» (например, 5 + 1 + 1). Обычно подсистемы «холодного резерва» или «простоя» активны для работы с более низким приоритетом. Иногда эти системы располагаются далеко от своей резервной пары в соответствии с стратегией, называемой географическим резервированием.[5] Эта архитектура направлена ​​на то, чтобы избежать потери обслуживания из-за физически локальных событий (пожар, наводнение, землетрясение) за счет разделения избыточных машин.

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

Использование в промышленности

За последние 20 лет телекоммуникационные сети и другие сложные программные системы стали неотъемлемой частью бизнеса и отдыха.

«В то же время [поскольку экономика находится в состоянии спада] почти 60% - это шесть из 10 предприятий - требуют 99,999. Это четыре девять или пять девяток доступности и времени безотказной работы для их критически важных бизнес-приложений. И 9% респондентов, то есть почти одна из 10 компаний, говорят, что им нужно более пяти девяти времени безотказной работы. Это означает отсутствие простоев. Другими словами, у вас должны быть действительно пуленепробиваемые, бомбоустойчивые приложения и аппаратные системы. Итак, вы знаете, что вы используете? Ну, во-первых, у вас есть кластеры высокой доступности или у вас более дорогие и более сложные отказоустойчивые серверы ».[6]

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

Оборона / Военные: Недавно программное обеспечение высокой доступности нашло свое применение в оборонных проектах как недорогой способ обеспечить доступность пилотируемых и беспилотных автомобилей.[7]

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

Использовать в облаке

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

Стандарты

Форум по доступности услуг определяет стандарты высокой доступности с учетом приложений.[9]

Смотрите также

Рекомендации

  1. ^ Форум доступности услуг. «КПП».
  2. ^ Куперман, Джин. «Распределенная многопоточная контрольная точка». dmtcp.sourceforge.net. Отсутствует или пусто | url = (помощь)
  3. ^ Cisco Systems, Inc. «Обновление программного обеспечения с высокой доступностью CISCO IOS в процессе обслуживания» (PDF). www.cisco.com.
  4. ^ Juniper Networks. «Понимание обновления программного обеспечения в процессе эксплуатации».
  5. ^ Бауэр, Эрик; Адамс, Рэнди; Юстас, Дэниел (ноябрь 2011 г.). Помимо избыточности: как географическая избыточность может повысить доступность услуг и надежность компьютерных систем. Wiley-IEEE Press. ISBN  978-1-118-03829-1.
  6. ^ ДиДио, Лаура. «Тенденции высокой доступности и отказоустойчивости».
  7. ^ OpenClovis. «SAIC выбирает OpenClovis SAFPlus для проекта ACTUV».
  8. ^ Самсон, Джон. «Надежная многопроцессорная архитектура (DM) для космических приложений» (PDF). Архивировано из оригинал (PDF) на 2015-02-04. Получено 2015-02-04.
  9. ^ "Форум доступности услуг - Главная". www.saforum.org. Архивировано из оригинал на 2008-10-06. Получено 2020-01-14.

внешняя ссылка