Программное обеспечение высокой доступности - это программное обеспечение, используемое для обеспечения того, чтобы системы работали и были доступны большую часть времени. Высокая доступность - это высокий процент времени, в течение которого система функционирует. Формально его можно определить как (1 - (время простоя / общее время)) * 100%. Хотя минимально необходимая доступность зависит от задачи, системы обычно пытаются достичь 99,999% (5 девяток) доступности. Эта характеристика слабее, чем отказоустойчивость , которая обычно стремится обеспечить 100% доступность, хотя и со значительными потерями в цене и производительности.
Программное обеспечение высокой доступности измеряется его производительностью при отказе подсистемы, его способностью возобновить обслуживание в состоянии, близком к состоянию системы во время исходного сбоя, и его способностью выполнять другие задачи, влияющие на обслуживание (например, программное обеспечение). обновления или изменения конфигурации) таким образом, чтобы исключить или минимизировать время простоя. Все сбои, которые влияют на доступность - оборудование, программное обеспечение и конфигурацию, должны устраняться программным обеспечением высокой доступности, чтобы обеспечить максимальную доступность.
Функции
Типичное программное обеспечение высокой доступности предоставляет функции, которые:
Включить аппаратное и программное резервирование : эти функции включают в себя:
- Обнаружение аппаратных и программных объектов,
- Назначение активных / резервных ролей этим объектам,
- Обнаружение вышедших из строя компонентов,
- Уведомление резервных компонентов о том, что они должны стать активными, и
- Возможность масштабировать систему.
Служба недоступна, если она не может обслуживать все запросы, размещенные в ней. Свойство «горизонтального масштабирования» системы относится к способности создавать несколько копий подсистемы для удовлетворения растущего спроса и эффективно распределять входящую работу по этим копиям ( балансировка нагрузки (вычисления) ), предпочтительно без выключения системы. Программное обеспечение высокой доступности должно обеспечивать горизонтальное масштабирование без прерывания обслуживания.
Включить активную / резервную связь (особенно контрольную точку) : активные подсистемы должны взаимодействовать с резервными подсистемами, чтобы гарантировать, что резервный готов взять на себя управление с того места, где активный остановился. Программное обеспечение высокой доступности может предоставлять абстракции связи, такие как резервные очереди сообщений и событий, чтобы помочь активным подсистемам в этой задаче. Кроме того, важная концепция, называемая «контрольные точки», относится исключительно к высокодоступному программному обеспечению. В системе с контрольными точками активная подсистема идентифицирует все свое критическое состояние и периодически обновляет резервный с любыми изменениями этого состояния. Эта идея обычно абстрагируется как распределенная хеш-таблица - активная система записывает записи ключ / значение в таблицу, а активная и резервная подсистемы читают из нее. В отличие от «облачной» распределенной хеш-таблицы ( Chord (одноранговая) , Kademlia и т. Д.) Контрольная точка полностью реплицируется. То есть все записи в хэш-таблице «контрольной точки» доступны для чтения, пока работает одна копия. [1] Другой метод, называемый [контрольной точкой приложения], периодически сохраняет все состояние программы. [2]
Включение обновлений во время обслуживания : Обновление программного обеспечения в процессе обслуживания - это возможность обновлять программное обеспечение без ухудшения качества обслуживания. Обычно это реализуется в системах с резервированием путем выполнения так называемого «последовательного» обновления - обновления резервного, пока активный обеспечивает обслуживание, восстановления после сбоя и последующего обновления старого активного. Еще одна важная функция - это возможность быстро вернуться к более старой версии программного обеспечения и конфигурации, если новая версия выйдет из строя. [3] [4]
Сведите к минимуму задержку в режиме ожидания и обеспечьте корректность работы в режиме ожидания: Задержка в режиме ожидания определяется как время между моментом, когда резервному серверу предлагается стать активным, и тем, когда он фактически предоставляет услуги. Системы с «горячим» резервом - это системы, которые активно обновляют внутреннее состояние в ответ на активные контрольные точки системы, что приводит к миллисекундным простоям. «Холодные» резервные системы отключены до тех пор, пока активный не выйдет из строя, и обычно перезапускается из «базового» состояния. Например, многие облачные решения перезапускают виртуальную машину на другой физической машине, если базовая физическая машина выйдет из строя. Задержка при «холодном» отказе в режиме ожидания может составлять от 30+ секунд до нескольких минут. Наконец, «теплый» резерв - это неформальный термин, обозначающий все работающие системы, которые должны выполнить некоторую внутреннюю обработку, прежде чем стать активными. Например, система горячего резервирования может обрабатывать задания с низким приоритетом - когда активный выходит из строя, он прерывает эти задания и считывает состояние контрольной точки активного перед возобновлением обслуживания. Задержки горячего резервирования зависят от того, сколько данных проверяется, но обычно имеют задержку в несколько секунд.
Архитектура системы
Программное обеспечение высокой доступности может помочь инженерам создавать сложные системные архитектуры, которые призваны минимизировать объем отказов и обрабатывать определенные режимы отказов. «Нормальный» сбой определяется как сбой, который может быть обработан архитектурой программного обеспечения, в то время как «катастрофический» сбой определяется как сбой, который не обрабатывается. Таким образом, катастрофический отказ вызывает перерыв в обслуживании. Однако программное обеспечение по-прежнему может значительно повысить доступность, автоматически возвращаясь в рабочее состояние, как только катастрофический отказ будет устранен.
Самая простая конфигурация (или «модель резервирования») - 1 активный, 1 резервный или 1 + 1. Другой распространенной конфигурацией является N + 1 (N активных, 1 резервный), которая снижает общую стоимость системы за счет меньшего количества резервных подсистем. Некоторые системы используют полностью активную модель, которая имеет то преимущество, что «резервные» подсистемы постоянно проверяются.
Конфигурации также могут быть определены с подсистемами активного, горячего и холодного резервирования (или ожидания), расширяя традиционную номенклатуру «активный + резервный» до «активный + резервный + простой» (например, 5 + 1 + 1). Обычно подсистемы «холодного резервирования» или «простоя» активны для работы с более низким приоритетом. Иногда эти системы располагаются далеко от своей резервной пары в соответствии с стратегией, называемой географическим резервированием. [5] Эта архитектура направлена на то, чтобы избежать потери обслуживания из-за физически локальных событий (пожар, наводнение, землетрясение) за счет разделения избыточных машин.
Сложные политики могут быть указаны в программном обеспечении высокой доступности, чтобы отличать программное обеспечение от аппаратных сбоев и предпринимать попытки перезапуска с задержкой по времени отдельных программных процессов, целых программных стеков или целых систем.
Использование в промышленности
За последние 20 лет телекоммуникационные сети и другие сложные программные системы стали неотъемлемой частью бизнеса и отдыха.
«В то же время [поскольку экономика находится в состоянии спада] почти 60% - это шесть из 10 предприятий - требуют 99,999. Это четыре девять или пять девяток доступности и времени безотказной работы для их критически важных бизнес-приложений. А 9% респондентов, то есть почти одна из 10 компаний, говорят, что им нужно более пяти девяти времени безотказной работы. Это означает отсутствие простоев. Другими словами, у вас должны быть действительно пуленепробиваемые, бомбоустойчивые приложения и аппаратные системы. Итак, вы знаете, что вы используете? Ну, во-первых, у вас есть кластеры высокой доступности или более дорогие и более сложные отказоустойчивые серверы ». [6]
Телекоммуникации : Программное обеспечение высокой доступности является важным компонентом телекоммуникационного оборудования, поскольку отключение сети может привести к значительной потере доходов для поставщиков телекоммуникационных услуг, а телефонный доступ к службам экстренной помощи является важной проблемой общественной безопасности.
Оборона / Военные : В последнее время программное обеспечение высокой доступности нашло свое применение в оборонных проектах как недорогой способ обеспечить доступность пилотируемых и беспилотных транспортных средств [7]
Space : Программное обеспечение высокой доступности предлагается для использования оборудования, не защищенного от излучения, в космических средах. Электроника с радиационной стойкостью значительно дороже и имеет более низкие характеристики, чем стандартное оборудование. Но программное обеспечение высокой доступности, работающее на одном или паре контроллеров с повышенной защитой от радиоволн, может управлять множеством избыточных высокопроизводительных компьютеров без радиодоступа, потенциально переключая их и сбрасывая их в случае сбоя. [8]
Использовать в облаке
Типичные облачные службы представляют собой набор сетевых компьютеров (обычно виртуальных машин), работающих под управлением стандартной серверной ОС, такой как Linux. Компьютеры часто могут обмениваться данными с другими экземплярами в том же центре обработки данных бесплатно (клиентская сеть) и с внешними компьютерами за плату. Облачная инфраструктура может обеспечить простое обнаружение неисправностей и перезапуск на уровне виртуальной машины. Однако перезапуск может занять несколько минут, что приведет к снижению доступности. Кроме того, облачные службы не могут обнаруживать сбои программного обеспечения на виртуальных машинах. Программное обеспечение высокой доступности, работающее внутри облачных виртуальных машин, может обнаруживать сбои программного обеспечения (и виртуальных машин) за секунды и может использовать контрольные точки, чтобы гарантировать, что резервные виртуальные машины готовы взять на себя обслуживание.
Стандарты
Форум доступности услуг определяет стандарты высокой доступности с учетом приложений. [9]
Смотрите также
Рекомендации
- ^ Форум доступности услуг. «КПП» .
- ^ Куперман, Джин. «Распределенная многопоточная контрольная точка». dmtcp.sourceforge.net . Отсутствует или пусто
|url=
( справка ) - ^ Cisco Systems, Inc. «Обновление программного обеспечения высокой доступности CISCO IOS в процессе обслуживания» (PDF) . www.cisco.com .
- ^ Juniper Networks. «Понимание обновления программного обеспечения в процессе эксплуатации» .
- ^ Бауэр, Эрик; Адамс, Рэнди; Юстас, Дэниел (ноябрь 2011 г.). Помимо избыточности: как географическая избыточность может повысить доступность услуг и надежность компьютерных систем . Wiley-IEEE Press. ISBN 978-1-118-03829-1.
- ^ ДиДио, Лаура. «Тенденции высокой доступности и отказоустойчивости» .
- ^ OpenClovis. «SAIC выбирает OpenClovis SAFPlus для проекта ACTUV» .
- ^ Самсон, Джон. «Надежная многопроцессорная архитектура (DM) для космических приложений» (PDF) . Архивировано из оригинального (PDF) 04 февраля 2015 года . Проверено 4 февраля 2015 .
- ^ «Форум доступности услуг - Главная» . www.saforum.org . Архивировано из оригинала на 2008-10-06 . Проверено 14 января 2020 .