74. Практическая реализация надежных информационных систем. Обеспечение надежности баз данных. Кластеризация компьютеров. Отказоустойчивые компьютеры.
Обеспечение надежности технических компонентов информационных систем чаще всего реализуется аппаратным и программным способами.
При аппаратном способе используют аппаратную избыточность.
Операции выполняются параллельно на одинаковых компонентах и сравниваются результаты; в случае отказа компонента его резервные аналоги продолжают работу.
Программный способ подразумевает последовательное во времени выполнение одних и тех же информационных процессов и дублирование данных, автоматическое восстановление отказавших приложений и искаженных данных.
Для обеспечения надежности технических средств производится их резервирование, использование стандартных протоколов работы устройств ИВС; применение специализированных технических средств защиты информации.
Для надежности функционирования программного комплекса требуется тестирование программ, использование стандартных протоколов, библиотек, процедур и т.д.; использование структурных методов; изоляция параллельно работающих процессов.
Целостность БД – такое состояние, когда имеет место полное и точное сохранение всех введенных в БД данных и отношений между ними.
Для сведения к минимуму потерь от случайных искажений данных необходимо иметь возможность своевременно обнаруживать и устранять возникающие ошибки на этапах хранения, обновления и реорганизации базы данных. Это требует большого набора вспомогательных программ обслуживания баз данных. К ним относятся программы: ведения системного журнала, контроля достоверности, репликации для получения копии БД, восстановления в начальное состояние.
Для надежной работы БД осуществляется: администрирование, регистрация в журнале каждого обращения к БД, использование средств СУБД для санкционирования доступа и защиты, резервирование, криптографирование, создание групп пользователей с определенным доступом к БД.
Специальные режимы использования файлов БД:
монополный - запрещающий обращения к БД от всех программ, кроме одной, вносящей изменения и считывающей информацию из полей базы данных;
защищенный - вносить изменения в БД вправе лишь одна программа, а остальные программы могут только считывать информацию;
разделённый - все программы могут и изменять, и читать базу данных, но если одна из них начала работать с БД, остальные ждут окончания этой работы.
Кластер – несколько компьютеров, соединенных коммуникационными каналами и разделяющих общие ресурсы.
Кластерные системы используют специальные программы, осуществляющие оптимальное распределение ресурсов и удобное администрирование, в частности:
□ программы, выполняющие обнаружение и корректировку системных сбоев;
□ программы, обеспечивающие непротиворечивость доступа приложений с разных компьютеров к общим ресурсам;
□ утилиты гибкого конфигурирования файловых систем, конфигурирования и мониторинга состояния кластера;
□ программные модули управления дисковыми томами и т. д. В случае возникновения отказа кластерная система выполняет:
□ идентификацию отказа;
□ формирование нового кластера;
□ запуск сценариев (контрольных программ);
□ тестирование файловой системы;
□ запуск базы данных и ее восстановление;
□ перезапуск программ-приложений.
Все большее распространение находят однопроцессорные или многопроцессорные компьютеры (чаше всего серверы) с отказоустойчивыми аппаратными компонентами. В отличие от кластерных отказоустойчивые системы (fault tolerant) упор делают на аппаратное обеспечение надежности и гарантируют не просто сокращение времени простоя (увеличение коэффициента готовности), а вообще предотвращение и исключение возможности появления таких простоев. В основу архитектуры отказоустойчивых систем заложено дублирование, в том числе и многократное, технических компонентов.
В отказоустойчивых компьютерах любая команда выполняется одновременно на всех дублированных компонентах, и результаты выполнения команд сравниваются. Окончательное решение принимается по принципу мажорирования (по большинству одинаковых результатов). Каждый из продублированных компонентов продолжает работу и в случае отказа одного из его дублей таким образом, что система не замечает этого отказа и на ее функционировании это не отражается. Но отказавший компонент идентифицируется и замешается в режиме «горячей замены», то есть без отключения системы.