Зеркалирование и отказоустойчивость Greenplum
Предлагаем Вашему вниманию обзор функций Greenplum.
Вы можете развернуть Greenplum Database без единой точки отказа путем зеркалирования сегментов. Ниже описана стратегии зеркалирования основных компонентов системы Greenplum.
Важно: В случае, если потеря данных в кластере Greenplum Database недопустима, рекомендуется использовать зеркалирование главного и сегментного хранилищ Greenplum. Если зеркалирование не включено, то в Greenplum хранится только одна копия данных, поэтому единственной гарантией доступности и корректности данных в случае аппаратного сбоя является базовый носитель.
Зеркалирование сегментов
При развертывании системы Greenplum можно настроить зеркаирование сегментов. Зеркальные сегменты позволяют переводить запросы к базе данных на резервный сегмент, если основной сегмент по какой-либо причине становится недоступным. Зеркалирование настоятельно рекомендуется для производственных систем и требуется для поддержки VMware.
Вторичный (зеркальный) сегмент всегда должен располагаться на другом хосте, нежели чем основной сегмент, для защиты от сбоя одного хоста. Зеркальные сегменты могут быть распределены по оставшимся хостам кластера в конфигурациях, призванных обеспечить максимальную доступность или минимизировать снижение производительности при отказе хостов или нескольких первичных сегментов.
При инициализации или расширении системы Greenplum доступны две стандартные конфигурации зеркалирования. В конфигурации по умолчанию, называемой групповым зеркалированием, все зеркала первичных сегментов хоста размещаются на одном другом хосте кластера. Другая стандартная конфигурация, разнесенное зеркалирование, может быть выбрана с помощью опции командной строки. Разнесенное зеркалирование распределяет зеркала каждого хоста по остальным хостам и требует, чтобы в кластере было больше хостов, чем первичных сегментов на один хост.

Отказ и восстановление сегментов
Если в системе Greenplum включено зеркалирование, то в случае недоступности основной копии система автоматически переходит на зеркальный сегмент. Система Greenplum может продолжать работать при выходе из строя экземпляра сегмента или хоста до тех пор, пока все данные доступны на оставшихся активных сегментах.
Если мастер не может подключиться к экземпляру сегмента, он помечает его в каталоге системы Greenplum как неработающий и поднимает вместо него зеркальный сегмент. Вышедший из строя экземпляр сегмента будет находиться в нерабочем состоянии до тех пор, пока администратор не предпримет меры по восстановлению его работоспособности. Для определения отказавших сегментов можно использовать утилиту gpstate. Администратор может восстановить вышедший из строя сегмент, пока система находится в рабочем состоянии. В процессе восстановления копируются только те изменения, которые были пропущены, пока сегмент находился в нерабочем состоянии.
Если зеркалирование не включено, система автоматически выключится в случае, если экземпляр сегмента станет недействительным. Перед продолжением работы необходимо восстановить все вышедшие из строя сегменты.
Зеркалирование мастера
Резервную копию или зеркало основного экземпляра также можно развернуть на отдельном от основного узла узле. Резервный мастер-узел служит "теплым" резервом на случай, если основной мастер-узел выйдет из строя. Резервный мастер поддерживается в актуальном состоянии процессом репликации журнала транзакций, который выполняется на резервном мастер-хосте и синхронизирует данные между основным и резервным мастер-хостами.
Если основной мастер выходит из строя, процесс репликации журнала останавливается, и вместо него может быть активизирован резервный мастер. Переключение не происходит автоматически, а должно быть инициировано извне. При активации резервного мастера реплицированные журналы используются для восстановления состояния основного узла на момент последней успешно зафиксированной транзакции. Активированный резервный мастер фактически становится мастером Greenplum Database, принимая клиентские соединения на порт мастера (который должен быть установлен на один и тот же номер порта на мастер-хосте и резервном мастер-хосте).
Поскольку мастер не содержит пользовательских данных, то синхронизации между основной и резервной копиями подлежат только таблицы системного каталога. При обновлении этих таблиц изменения автоматически копируются на резервный мастер для обеспечения синхронизации с основным мастером.

Резервирование интерконнекта
Под интерконнектом понимается межпроцессное взаимодействие между сегментами и сетевая инфраструктура, на которую это взаимодействие опирается. Обеспечить высокую доступность межсетевого взаимодействия можно путем установки в сети двух коммутаторов Gigabit Ethernet и резервирования гигабитных соединений с хост-серверами Greenplum Database (ведущим и сегментным). По соображениям производительности рекомендуется использовать Ethernet 10 Гбит/с или быстрее.




