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

Обновлено: 16.05.2024

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

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

Как работает отказоустойчивость?

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

Типичной единственной точкой отказа в стандартной системе является блок питания (PSU), который получает основной источник переменного тока (AC) и преобразует его в постоянный ток (DC) различного напряжения для питания различных компонентов. Если блок питания выходит из строя, то все компоненты, которые он питает, также выходят из строя, что обычно приводит к катастрофическому отказу всей системы.

Отказоустойчивость обычно соответствует одной из следующих двух моделей:

  • Нормальное функционирование При некоторых обстоятельствах отказоустойчивая система, столкнувшаяся с ошибкой, может продолжать функционировать в обычном режиме без каких-либо изменений в пропускной способности, времени отклика или других показателях производительности.
  • Мягкое снижение производительности Другие отказоустойчивые системы при определенных сбоях будут испытывать «мягкое снижение» производительности. То есть влияние неисправности на производительность системы будет пропорционально серьезности неисправности. Таким образом, небольшая ошибка будет иметь небольшое влияние, а не серьезное влияние или даже приведет к отказу системы в целом. Система с высокой отказоустойчивостью будет продолжать работать, даже если в ней произойдет один или несколько серьезных сбоев.

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

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

Повышение отказоустойчивости

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

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

Избыточность

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

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

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

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

Разнообразие

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

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

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

Репликация

Более сложный способ достижения отказоустойчивости — репликация. Это включает в себя запуск нескольких идентичных версий системы или подсистемы и проверку того, что их функционирование всегда приводит к идентичным результатам. Если результаты различаются, вызывается некоторая процедура, чтобы решить, какая система неисправна.

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

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

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

Элементы отказоустойчивых систем

Аппаратные системы

Типичная компьютерная система или система хранения данных включает в себя центральный процессор (ЦП), системную память (ОЗУ), дополнительные системы хранения, такие как жесткие диски, а также блок питания, сетевой интерфейс и материнскую плату.

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

Отказоустойчивая сеть может быть обеспечена резервными сетевыми интерфейсными картами (NIC) и/или различными сетевыми опциями, такими как сетевая карта проводной локальной сети и адаптер беспроводной локальной сети.

Программные системы

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

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

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

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

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

Источники питания

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

В чем разница между высокой доступностью и отказоустойчивостью?

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

На практике разница может быть незначительной: многие высокодоступные системы нацелены на так называемые "пять девяток", или время безотказной работы 99,999 %, что соответствует всего нескольким минутам простоя в год.

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

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

Факторы, которые следует учитывать при обеспечении отказоустойчивости

Стоимость

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

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

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

Ухудшение качества

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

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

Трудности тестирования и обнаружения неисправностей

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

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

Читайте также: