Введение в High Availability SAP HANA
В настоящей статье освещаются технологические подходы, используемые в SAP HANA для реализации процесса аварийного восстановления данных.
ГОСТ Р 53647.2-2009 определяет непрерывность бизнеса (business continuity) как «стратегическую и тактическую способность организации планировать свою работу в случае инцидентов и нарушения её деятельности, …. непрерывность деловых операций на установленном приемлемом уровне.»
Непрерывность бизнеса обеспечивается при наличии достаточно быстрых и эффективных средств восстановления данных и работоспособности информационных систем. В настоящей статье освещаются технологические подходы, используемые в SAP HANA для реализации процесса аварийного восстановления данных.
1. Введение в High Availability SAP HANA
1.1. Восстановление – ключевые показатели
В качестве ключевых показателей эффективности восстановления используются показатели Recovery Period Objective (RPO) и Recovery Time Objective (RTO).
RPO является максимально допустимым периодом, в течение которого данные могут быть потеряны без возможности восстановления (время между созданием последней резервной копии и аварией), RTO представляет собой максимально допустимое время, необходимое для восстановления системы.
Как in-memory СУБД, HANA должна не только обеспечивать надежность данных в случае сбоев системы и быстрое восстановление данных (в памяти).
На Рис. 1 показаны фазы высокой готовности HANA.
Рис.1 Фазы высокой готовности HANA
Перая фаза (prepare) – это готовность к неизбежному сбою. В этот период основная система работает, данные резервируются, и резервная система готова в случае сбоя принять управление инфраструктурой. Вторая фаза – обнаружение сбоя. Сбой фиксируется либо автоматически, либо административно (во избежание ложных автоматических срабатываний), после фиксации будет приведен в действие процесс восстановления(третья фаза) . В результате работоспособность основной системы будет восстановлена.
Для чувствительных к сбою систем требуется обеспечить RPO с нулевой потерей данных в случае локальных сбоев, и зачастую даже в случае системных аварий. Однако проблемы аварийного восстановления (Disaster Recovery) отличаются от проблем восстановления при локальных сбоях и, в этом случае, для достижения нулевого RPO и минимального RTO, данные должны быть синхронизированы в рамках сложных распределенных ланшафтов, что может потребовать выполнения специальных требований к организации отказоустойчивых вычислительных архитектур
В SAP HANA организовано три уровня поддержки аварийного восстановления и две автоматические функции поддержки.
1.2 Уровень певрый. Резервное копирование (Backups)
SAP HANA, как технология энергозависимой памяти, полностью сохраняет любые транзакции, изменяющие данные, такие как вставки, удаления и обновления. Таким образом, работа системы может быть восстановлена без потери данных даже после отключения электроэнергии. SAP HANA сохраняет два типа данных:
- журнальные файлы транзакций (redo logs),
- изменения данных, используя контрольные точки сохранения (savepoints).
Журналы используются для записи изменений. Для обеспечения восстановления тразакции нет необходимости сохранять ее результаты в момент фиксации ее завершения (при выполнении commit), достаточно сохранить журнал. После сбоя, наиболее актуальное состояние БД может быть восстановлено путем применения (наката) журнала, перевыполнив завершенные транзакции и откатив незавершенные.
Одним из преимуществ использования контрольных точек является скорость при перезапуске БД: при запуске системы журналы не прочитываются целиком с самого начала, только с самой последней контрольной точки. По умолчанию контрольные точки выполняются каждые 5 минут, однако этот период может быть гибкно настроен админстратором.
Более новые контрольные точки перезаписывают старые, при этом существует возможность «заморозить» любую контрольную точку для дальнейшего использования, и создать снимок данных (snapshot). Снимки могут быть воспроизведены в виде полных резервных копий БД, котороые могут быть ипользованы для восстановления БД на определнный момент времени. В дополнение к этому сокращение периодов резервирования журналов обеспечивает возможность восстановления после фатальных сбоев с минимальными потерями данных.
На Рис. 2 показаны контрольные точки, сохраненные в локальном дисковом хранилище, и дополнительные резервные копии, сохраненные в резервном хранилище. Локальное восстановление после сбоя использует последнюю контрольную точку, а затем применяет последние журналы, для восстановления базы данных без потери данных. Если локальное хранилище было повреждено, все еще возможно восстановить БД из резервной копии данных (или последнего снимка), и резервных копий журналов, но уже с некоторой потерей данных.
Рис. 2 Контрольные точки сохранения
Регулярная запись резервных копий в удаленное хранилище является простым и относительно недорогим способом подготовиться к непредвиденному сбою (см. Рис.3). Однако, в зависимости от выбранного метода резервировования, фактический RPO может варьироваться от часов до нескольких дней.
Рис. 3 Резервное копирование БД в удаленное хранилище
1.3. Уровень второй. Репликация хранения (Storage Replication)
Одиним из недостатков резервных копий БД является потенциальная потеря данных с момента создания последней резервной копии до момента сбоя. Предпочтительным решением, в этом случае, является возможность обеспечить непрерывную репликацию всех сохраненных данных. Аппаратные партнеры SAP предлагают решения для репликации данных, обеспечивая резервное копирование на уровне файловой системы с использованием удаленной сетевой системы хранения (более подробно о предлождении аппаратных партнеров SAP в цикле вебинаров SAP HANA Online). В этом случае транзакция SAP HANA завершается только тогда, когда локально сохраненный журнал транзакций будет реплицирован в уделнное хранилище. Такой подход называется синхронная репликация (synchronous storage replication). Синхронная репликация может эффективно использоваться при условии, что расстояние между основной и резервной БД составляет до 100 километров (см. Рис.4).
Рис. 4 Синхронная репликация в SAP HANA
Благодаря поддержке непрерывности, репликация поддерживает более приемлимый уровень RPO, чем резервное копировие, однако при для реализации этого подхода требуются надежные каналы с высокой пропускной способностью и низкими задержками передачи между основной и резервной сторной.
В случае сбоя, администратор переподключает систему к резервному хранилищу и перезапускает HANA.
1.4. Уровень третий. Системная репликация (System Replication)
Системная репликация – это алтьтернатива High Availability решениям, обеспечивающая наиболее короткий RTO, и совместимая с решениями всех аппартных партнеров SAP. Эта репликация использует подход N+N, с использованием резервной системы, состоящей из того же числа узлов, что и основная система. Каждая служба и экземпляр основной системы HANA работают синхронно со службой и экземпляром резервной системы (см. Рис.5).
Рис. 5 Системная репликация в SAP HANA
Резервная система может быть расположена рядом с основной, чтобы поддерживать отказоустойчивую конфигурацию при плановых простоях или отработки управления локальными сбоями. Альтернативно или в дополнение резервная система может быть расположена удалённо для целей аваррийного восстановления. Как и репликация хранения эта возможность аварийного восстановления требует надежного сетевого соединения между основной и резервной системами.
Экземпляры резервной системы работают в режиме «живой репликации» (live replication mode). В этом режиме все службы резервной системы постоянно синхронизируются со службами основной системы, включая репликацию и сохранение данных и журналов транзакций, а также загрузку данных в память. В этом режиме резервная система не обрабатывает запросы.
В альтернативной конфигурации, называемой репликацией без предварительной загрузки (replication without data-preload), резервная система не загружает данные в память, соответсвенно, использует сранительно небольшой объем ресурсов оперативной памяти. Это позволяет резервной системе использоваться в качестве тестового контура или контура разработки. При этом RTO в случае отказа в такой конфигурации, разумеется, будет больше.
Как работает системная репликация? В режиме живой репликации каждый копонент службы устанавливает соединение со службой рабочей системы и запрашивает снимок данных. После этого журналы транзакций после сохранения в основной системе копируются в резервную систему. Транзакция в основной системе считается не заврешенной, до тех пор пока, журналы транзакций не реплицированы в резервную систему.
Поддерживаются следющие режимы системной репликации:
- Синхронная. Основная система ожидает завершения тразакции, пока не получит ответ, что журнал сохранился в резервной системе. Этот режим гарантирует немедленную согласованность между обеими системами.
- Синхронная в памяти. Основная система фиксирует
Если хотите прочитать статью полностью и оставить свои комментарии присоединяйтесь к sapland
ЗарегистрироватьсяУ вас уже есть учетная запись?
Войти