Настройка узлов MySQL Cluster (узлы хранения)
TL;DR
Установите MySQL (mysql-max-5.0.19) на оба узла хранения (sql1.example.com и sql2.example.com), создайте конфигурацию ndbcluster в /etc/my.cnf, инициализируйте каталог данных и запустите ndbd и mysqld. Выполняйте ndbd –initial только при первом запуске или после изменения config.ini на менеджере кластера.
Краткое описание
Ниже — поэтапная инструкция по установке и запуску узлов хранения MySQL Cluster на серверах sql1.example.com и sql2.example.com. Приведены команды для установки, создание системных пользователей, подготовка директорий, конфигурирование и запуск службы. Также добавлены проверочные шаги и рекомендации по надёжному запуску при старте системы.
Требования и предпосылки
- Доступ к серверам sql1.example.com и sql2.example.com под пользователем с правами root или с sudo.
- Доступ к менеджеру кластера (nmc) — укажите его IP в конфиге ниже.
- Портовая доступность между узлами: ndbd использует порты по умолчанию (TCP 1186/2202 и т.д.).
- Пакет wget и базовые утилиты (tar, ln, mv, chown) должны быть установлены.
1. Установка MySQL на узлах хранения
На обоих узлах (sql1.example.com и sql2.example.com) выполните следующие команды:
groupadd mysql
useradd -g mysql mysql
cd /usr/local/
wget http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-max-5.0.19-linux-i686-\
glibc23.tar.gz/from/http://www.mirrorservice.org/sites/ftp.mysql.com/
tar xvfz mysql-max-5.0.19-linux-i686-glibc23.tar.gz
ln -s mysql-max-5.0.19-linux-i686-glibc23 mysql
cd mysql
scripts/mysql_install_db --user=mysql
chown -R root:mysql .
chown -R mysql data
cp support-files/mysql.server /etc/init.d/
chmod 755 /etc/init.d/mysql.server
update-rc.d mysql.server defaults
cd /usr/local/mysql/bin
mv * /usr/bin
cd ../
rm -fr /usr/local/mysql/bin
ln -s /usr/bin /usr/local/mysql/binПояснения:
- Создаётся системная группа и пользователь mysql.
- Пакет распаковывается в /usr/local и создаётся символьная ссылка mysql -> каталог с версией.
- Инициализация каталога данных выполняется скриптом mysql_install_db под пользователем mysql.
- Скрипты запуска и бинарники перемещаются в /etc/init.d и /usr/bin для удобства управления.
2. Создание конфигурационного файла /etc/my.cnf
Создайте файл /etc/my.cnf на обоих узлах:
vi /etc/my.cnfВставьте в файл следующее (укажите IP менеджера кластера вместо 192.168.0.103):
| [mysqld] ndbcluster # IP-адрес узла управления кластером ndb-connectstring=192.168.0.103 [mysql_cluster] # IP-адрес узла управления кластером ndb-connectstring=192.168.0.103 |
Важно: замените 192.168.0.103 на фактический IP сервера управления кластером (например, loadb1.example.com).
3. Подготовка директорий данных и первый запуск ndbd/mysqld
На каждом узле выполните:
mkdir /var/lib/mysql-cluster
cd /var/lib/mysql-cluster
ndbd --initial
/etc/init.d/mysql.server startПримечание: команду ndbd –initial следует выполнять только при первом запуске узла хранения или если файл /var/lib/mysql-cluster/config.ini на менеджере кластера изменился. Повторный запуск ndbd –initial без нужды может вызвать перезапись данных.
4. Установка пароля root MySQL
После запуска сервера задайте пароль для пользователя root:
mysqladmin -u root password yourrootsqlpasswordЗамените yourrootsqlpassword на надёжный пароль и сохраните его в безопасном хранилище.
5. Автозапуск ndbd при старте системы
Чтобы узлы автоматически запускали ndbd при старте, создайте простой init-скрипт и установите системные ссылки:
echo 'ndbd' > /etc/init.d/ndbd
chmod 755 /etc/init.d/ndbd
update-rc.d ndbd defaultsПосле этого ndbd будет запускаться вместе с системными уровнями по умолчанию.
Проверки и диагностирование
- Проверьте, что процесс ndbd запущен: ps aux | grep ndbd
- Убедитесь, что mysqld слушает: netstat -tlnp | grep mysql
- На менеджере кластера (ndb_mgmd) выполните SHOW в ndb_mgm для проверки статуса узлов:
ndb_mgm -e showОжидается, что узлы хранения будут в состоянии Connected или Started.
Критерии приёмки
- Узлы sql1 и sql2 успешно подключены к менеджеру кластера и отображаются в ndb_mgm.
- Служба mysqld запущена и принимает подключения локально.
- Директория /var/lib/mysql-cluster заполнена отношениями данных и журналами.
- Автозапуск ndbd настроен и включён в системные уровни.
Чеклист действий (быстрая проверка)
- Созданы пользователь и группа mysql
- Распакован и установлен mysql-max-5.0.19
- Выполнен scripts/mysql_install_db
- Создан /etc/my.cnf с корректным ndb-connectstring
- Выполнен ndbd –initial один раз
- Запущен /etc/init.d/mysql.server
- Установлен пароль root
- Создан init-скрипт ndbd и добавлен в автозапуск
Когда этот план не подойдёт (ограничения)
- Версия MySQL слишком старая для современных дистрибутивов — возможны проблемы совместимости с библиотеками glibc или архитектурой (i686 vs x86_64).
- Если в инфраструктуре используются firewall/SELinux, потребуется дополнительная настройка портов и политик.
- Для больших кластеров и production стоит использовать менеджер конфигурации и мониторинга (Ansible, Puppet, Zabbix), а также протестировать процедуру восстановления.
Альтернативные подходы
- Использовать современные версии MySQL Cluster/NDB, совместимые с x86_64 и новыми дистрибутивами.
- Рассмотреть отказ от NDB в пользу распределённых решений с репликацией (MySQL Group Replication, Galera) в зависимости от требований к латентности и консистентности.
Краткое резюме
Установка узлов хранения MySQL Cluster сводится к распаковке дистрибутива, инициализации каталога данных, созданию конфигурации с указанием ndb-connectstring на менеджер кластера, единовременной инициализации ndbd и обеспечению автозапуска служб. После настройки обязательно проверьте состояние узлов через ndb_mgm и убедитесь в корректности конфигурации сети и прав доступа.
Важно: всегда делайте резервные копии и проверяйте процедуру восстановления в тестовой среде перед применением в production.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента