Общие сведения
Основная цель резервирования это обеспечение отказоустойчивости системы с точки зрения аппаратной или программной части существует несколько вариантов решения. Прежде всего все схемы предполагают использование более одного компьютера, а так же некоторую дополнительную настройку программного окружения.
Выбор схемы резервирования зависит от первоначальных требований клиента и количества ТД которые будут использоваться. Всего предоставляется 2-а варианта настройки схемы с резервированием.
- Схема с резервированием SoftWLC при помощи ProxySQL + Galera Cluster на Ubuntu 22.04
- Схема резервирования 1+1
Далее более подробно разберем какая схема больше подходит под определенные условию
Схема с резервированием SoftWLC при помощи ProxySQL + Galera Cluster на Ubuntu 22.04
Описание
Galera Cluster — это плагин к InnoDB, благодаря которому возможно создание синхронного мульти-мастер кластера MySQL. Он принципиально отличается от стандартной репликации MySQL и решает ряд проблем, включая конфликты при записи на нескольких узлах Master, проблему с отставанием репликации, которая ведет к рассинхронизации ведомых узлов с мастером. При использовании Galera, пользователям нет необходимости знать, на какой сервер будет производиться запись (Master), а с каких серверов можно будет читать (Slave), поскольку Galera предоставляет равнодоступный, как для записи, так и для чтения, кластер.
В кластере Galera приложение может выполнять запись на любой узел, а фиксации транзакций, или событий репликации на основе строк (RBR), применяются ко всем серверам посредством репликации на основе сертификации. Репликация на основе сертификации — это альтернативный подход к синхронной репликации базы данных с использованием методов группового взаимодействия и упорядочивания транзакций.
Минимальный кластер Galera состоит из 3 узлов. Рекомендуется запускать кластер с нечетным количеством узлов, чтобы при возникновении проблем с применением транзакции на одном узле (например, из-за проблемы с сетью, или когда машина не отвечает на запросы), два других узла могли создать кворум (т.е. большинство) и продолжить выполнение транзакции.
Кому подходит данная схема?
Данная схема подходит большим эксплуатациям, для которых основными критериями в выборе схемы является защита от Split-Brain (сделать сноску что это такое Split-Brain возникает, когда один или несколько узлов кластера отключаются от других узлов, что приводит к образованию подкластеров. )
Минимальные требования
Для работы решения понадобятся пять виртуальных машин: 2 хоста SoftWLC развернутых автоматическим скриптом установщиком и 3 хоста для баз данных.
Минимальные требования для хостов с SoftWLC
- Оперативная память не менее 10Гб
- CPU >= 2200MHz
- Память жесткого диска >= 35Gb
- Выход в Интернет
- Операционная система Ubuntu Server 20.04 LTS / Ubuntu Server 22.04 LTS /Astra Linux Special Edition 1.7.4 (Воронеж)
Минимальные требования для хостов с БД
- Оперативная память не менее 32Гб
- CPU >= 2200MHz
- Память жесткого диска >= 35Gb
- Выход в Интернет
- Операционная система Ubuntu Server 20.04 LTS / Ubuntu Server 22.04 LTS /Astra Linux Special Edition 1.7.4 (Воронеж)
Преимущества и недостатки данной схемы
Преимущества:
- Данная схема предотвращает Split-Brain
- В данной схеме можно использовать больше 10 тысяч ТД
Недостатки:
- Сложность в обновлении
- Задействовано большое количество ресурсов
Принципиальная схема резервирования SoftWLC при помощи ProxySQL + Galera Cluster
Настройка данной схемы более подробно описана в инструкции: Резервирование SoftWLC при помощи ProxySQL + Galera Cluster на Ubuntu 22.04
Схема резервирования 1+1
Описание
Схема 1+1 - это схема в которой реализована репликация MySQL с автоматическим позиционированием GTID, которая помогает обеспечить сохранность данных. GTID появился с MySQL 5.6 и представляет собой уникальный 128-битный глобальный идентификационный номер (SERVER_UUID), который увеличивается с каждой новой транзакцией. Классическая репликация MySQL без GTID использует позицию в бинарном логе. Но благодаря GTID больше не нужно разбираться с вычислениями позиции бинлога. Из преимуществ GTID является согласованность данных, т.е. на сервере (как на master, так и на slave) будет подтверждена одна и только одна транзакция с одним GTID, а любые другие транзакции, имеющие такой же UUID, будут проигнорированы.
Кому подходит данная схема?
Данная схема подходит эксплуатациям с малым количеством ТД (до 1000 ТД) и желающим иметь резервирование.
Минимальные требования
- Операционная система Ubuntu Server 20.04 LTS / Ubuntu Server 22.04 LTS / Astra Linux Special Edition 1.7.4 (Воронеж, Орел)
- 2 сервера с памятью и CPU в соответствие с количеством ТД :
Количество устройств | название VM | CPU core, Xeon | RAM, Gb | HDD, Gb |
---|---|---|---|---|
от 10 до 200 ТД | SoftWLC | 4, 64-bit x86 CPUs | 16 | 200 |
от 200 до 500 ТД | SoftWLC | 4, 64-bit x86 CPUs | 24 | 200 |
от 500 до 1000 ТД | SoftWLC | 6, 64-bit x86 CPUs | 32 | 500 |
Преимущества и недостатки данной схемы
Преимущества:
- Легкость установки и администрирования
- Благодаря использованию GTID и ProxySQL повышается отказоустойчивость
Недостатки:
- Данная схема не предотвращает Split-Brain
Принципиальная схема резервирования 1+1
Для настройки схемы с резервирования при наличии одного активного хоста воспользуйтесь инструкцией : Настройка резервирования в схеме 1+1
При первоначальной установке воспользуйтесь инструкцией : Установка схемы резервирования при помощи скрипта
Если имеются закрытый контур, то возможна аналогичная установка схемы резервирование в doсker.
Схема резервирования 1+1 с выносом БД
Описание
Схема резервирования 1+1 с выносом БД аналогична стандартной схеме 1+1. Единственным отличием данных схем является вынос БД, который необходим за счет увеличения потребности эксплуатации в ТД.
Кому подходит данная схема?
Данная схема необходима эксплуатациям в которых есть потребность в выносе БД из-за увеличения потребностей в оборудовании (от 1000 до 10 000). При этом нет необходмости в защите от Split-Brain или имеются ограничения ресурсов(нет возможности выделить 3-и хоста под БД).
Минимальные требования
Для работы решения понадобятся пять виртуальных машин: 2 хоста SoftWLC развернутых автоматическим скриптом установщиком и 2 хоста для баз данных.
Минимальные требования для хостов с SoftWLC
- Оперативная память не менее 10Гб
- CPU >= 2200MHz
- Память жесткого диска >= 35Gb
- Выход в Интернет
- Операционная система Ubuntu Server 20.04 LTS / Ubuntu Server 22.04 LTS /Astra Linux Special Edition 1.7.4 (Воронеж)
Минимальные требования для хостов с БД
- Оперативная память не менее 10Гб
- CPU >= 2200MHz
- Память жесткого диска >= 35Gb
- Выход в Интернет
- Операционная система Ubuntu Server 20.04 LTS / Ubuntu Server 22.04 LTS /Astra Linux Special Edition 1.7.4 (Воронеж)
Принципиальная схема резервирования 1+1 с выносом БД
Настройка данной схемы осуществляется по инструкции: Настройка схемы резервирования 1+1 с выносом БД