В данном руководстве предоставляется основная информация о высокодоступном кластере Galera для MySQL/MariaDB. Прочитав статью до конца, вы узнаете ответы на вопросы:
как работает Galera Cluster;
чем репликация Galera Cluster отличается от репликации MySQL;
какие настройки рекомендованы для кластера Galera;
какими преимуществами и недостатками обладает Galera Cluster;
какие преимущества есть в объединении обоих способов репликации в рамках одного развертывания;
какие существуют различия в реализациях Galera у различных поставщиков;
как управлять кластером Galera;
какие стратегии резервного копирования необходимо использовать при использовании Galera.
Также, в статье вы найдете практический раздел о том, как быстро развернуть и управлять кластером с помощью ClusterControl. Для выполнения практической части статьи вам понадобится 4 сервера под управлением Ubuntu Linux 16.04 и новее, или CentOS 7.
Tornado — популярный минималистичный фреймворк для разработки web-сервисов с помощью Python. Он часто применяется как для создания обычных сервисов с RESTful-интерфейсом, так и для реализации приложений, использующих Websocket, что идеально реализуется с помощью асинхронных функций языка.
Разработка фреймворка ведется на GitHub. На следующем изображении вы можете видеть, что Tornado активно разрабатывается сообществом:
Настройка сервера для продуктового использования Tornado сопряжена с рядом дополнительных действий, которые требуется выполнить для преодоления ограничений однопоточной природы сервера Tornado — для утилизации всех ядер сервера на многоядерных CPU необходимо запустить несколько экземпляров сервера Tornado и распределить нагрузку между исполняющимися экземплярами с помощью балансировщика нагрузки.
Закончив чтение данного руководства, вы научитесь самостоятельно настраивать минималистичный сервер для для Tornado без лишних компонентов. Ваше приложение будет доступно по защищенному протоколу HTTPS с поддержкой бесплатного сертификата Let’s Encrypt, балансировка трафика между выполняющимися экземплярами приложения Tornado будет осуществляться с помощью Nginx.
Администраторы часто настраивают кластер Galera с тремя и более узлами в сетях с пропускной способностью 1 Гбит/с. Кажется, что 1 Гбит/с это довольно много? Фактически, не так уж и много, если задуматься о том, как происходит репликация данных между серверами кластера.
Galera поддерживает два режима репликации — с использованием одноадресной рассылки (ip unicast), либо с использованием многоадресной рассылки, для работы которого может требоваться поддержка на уровне инфраструктуры провайдера или вашего сетевого оборудования, если используется собственная инфраструктура.
В том случае, если вы эксплуатируете кластер Galera с узлами, работающими в разных центрах обработки данных, соединение между которыми устанавливается по незащищенному каналу, вам необходимо обеспечить защиту данных, передаваемых между клиентами и кластером и между узлами кластера.
Кластер Galera поддерживает шифрование соединения с использованием протокола SSL. В статье мы рассмотрим, как зашифровать все соединения кластера с помощью SSL-шифрования.
Современные сайты часто должны работать в режиме 24x7x365 без остановок на обслуживание. В этих условиях владельцы сайтов готовы инвестировать дополнительные средства в оборудование и программные решения для обеспечения высокой доступности.
Сайт без единой точки отказа становится де-факто требованием в мире, где большинство операций выполняются дистанционным образом. Простои обходятся дорого, особенно, если они происходят в неподходящее время — праздники, выходные, высокий сезон.
В этой статье мы рассмотрим как настроить высокодоступный сайт на трех узлах, которые могут быть как виртуальными так и аппаратными серверами. В ходе настройки мы будем использовать Nginx, СУБД MariaDB (MySQL), распределенную файловую систему GlusterFS, CDN CloudFlare, сертификаты Let’s Encrypt.
2. Выбираем нужную виртуальную машину кликая по её названию (1). В открывшейся панели управления переходим во вкладку устройств (2) и нажимаем стилизованную под плюс кнопку подключения ISO-образа (3):
3. В открывшемся окне прикрепления ISO-образа указываем тип операционной системы Windows (1), отмечаем образ диска с драйверами VirtIO (2) и подключаем его к нашей машине (3):
4. Переходим в операционную систему. Для этого подключаемся к машине по RDP или используем встроенную консоль панели управления. Для этого кликаем по стилизованной под три точки кнопке меню виртуальной машины (1) и выбираем пункт «Доступ к ВМ» (2):
В открывшемся окне нажимаем ссылку «Открыть VNC консоль» (1):
5. В операционной системе с помощью проводника Windows проверяем наличие присоединённого нужного образа с драйверами:
В контекстном меню (правая кнопка мыши) кнопки «Пуск» выбираем пункт «Управление компьютером»:
6. В открывшейся панели переходим в Диспетчер устройств (1), где наблюдаем ряд неизвестных нашей системе девайсов (2), которые нам предстоит инициализировать:
7. Поочерёдно устанавливаем драйвера на каждое устройство с подключенного диска. Устанавливаем драйвер устройства Virtio RNG Device:
Аналогично устанавливаем последующие драйвера устройств VirtIO Serial Driver и Red Hat VirtIO Ethernet Adapter:
В результате проделанных манипуляций мы получаем полностью установленные VirtIO устройства в нашей системе. Не забудьте отключить ISO в самой системе или в панели управления виртуальной машиной по окончании работ.
Синхронная мульти-master репликация в MySQL появилась сравнительно недавно, однако была востребована довольно давно. До этого момента пользователям приходилось использовать либо репликацию в режиме Master-Slave и переключать операции записи на ведомый сервер при отказе главного сервера, либо использовать довольно сложный вариант с Master-Master репликацией на основании двунаправленной Master-Slave репликации.
Стоит отметить, что в конфигурации Master-мульти-Slave реализация автоматического переключения становится сложнее и не всегда возможна без человеческого вмешательства. Более того, репликация Master-Slave является не полностью синхронной, отчего могут быть проблемы с потерей данных при выходе сервера Master из строя, если ведомый сервер существенно отстал.
С появлением Galera все стало намного проще. Для надежной работы вам необходимо эксплуатировать нечетное количество серверов, например 3 или 5 для защиты от партиционирования, так, чтобы при ситуации, когда кластер «рассыпался» Galera могла принять обоснованное решение о том, является ли наблюдаемый сегмент кластера целостным.
Уважаемый пользователь, мы произвели улучшение, связанное с генерацией случайных чисел. Теперь в виртуальные машины передается устройство VirtIO RNG, которое может использоваться всеми машинами, которые умеют его определять, для генерации лучшей энтропии.
Показатель энтропии очень важен для быстрой работы многих криптографических функций, что может выражатся в медленной генерации ключей или задержке при установлении SSL/TLS соединений. Если энтропия низкая, эти операции могут работать медленно или блокироваться для ожидания накопления нужного количества энтропии.
Узнать текущий показатель энтропии для машины можно с помощью команды:
cat /proc/sys/kernel/random/entropy_avail
120
Если он низкий (меньше 250), то это может стать проблемой. Теперь вы можете решить эту проблему с помощью приведенных далее инструкций.
Для удаленного управления системами Linux необходимо настроить доступ по SSH (secure shell). SSH – это криптографический протокол для управления и взаимодействия с серверами. Существует несколько различных способов подключения к SSH-серверу. В этой статье мы рассмотрим настройку аутентификации на основе ключей SSH.
Многие администраторы по-прежнему используют пароли вместо ключей, хотя ключи не только повышают безопасность, но и облегчают управление системами. Вместо того, чтобы вводить пароль для каждого сервера, достаточно сделать это один раз за сессию. Это особенно удобно, если приходится управлять несколькими системами. После прочтения данной статьи вы удивитесь, почему не отказались раньше от аутентификации на основе паролей.
SyncThing — программное обеспечение, которое позволяет выполнять синхронизацию файлов между серверами по P2P протоколу. Очень важно, что в своей работе SyncThing опирается на подсистему inotify, которая позволяет мгновенно реагировать на операции над файлами и каталогами, чтобы обеспечить минимальную задержку синхронизации, что особенно важно при наличии большого количества файлов в каталоге.