Установка MemSQL Cluster

Для тестовой конфигурации понадобится нечётное количество серверов — от 3-х и выше (желательно больше). Где будет 1-н master сервер, а остальные leafs. Все операции по установке кластера будут проводиться именно на master сервере, но предварительно надо подготовить все хосты.
Pre-install
Добавляем пользователя на все хосты:
sudo adduser memsql
Добавляем ему права на sudo:
sudo usermod -aG sudo memsql
Генерируем ssh-ключ будучи под пользователем memsql на master сервере:
ssh-keygen
В качестве наименования ключа указываем «~/clusterkey»:
Enter file in which to save the key (/home/memsql/.ssh/id_rsa): ~/clusterkey
Включаем авторизацию по паролю на всех серверах в GCP (опционально, т. к. авторизация была по дефолту отключена)
Открываем /etc/ssh/sshd_config и указываем:
PasswordAuthentication yes
Рестартуем сервис:
sudo service sshd restart
Шарим этот ключ между остальными хостами:
ssh-copy-id -i ~/clusterkey memsql@<host_ip>
Installation
Подключаемся к master серверу и переходим в папку tmp, куда будем стягивать пакеты:
cd /tmp
Стягиваем json файл с ссылками на нужную нам версию:
wget -O - 'https://release.memsql.com/production/index/memsqlserver/latest.json' // последняя версия
или
wget -O - 'https://release.memsql.com/production/index/memsqlserver/6.7.1.json' // версия 6.7.1 (протестированная ранее)
Стягиваем пакеты по ссылкам, которые получили в json:
wget https://release.memsql.com/production/debian/pool/memsql-server_6.7.1_146ae8d333_amd64.deb
wget https://release.memsql.com/production/debian/pool/memsql-client_1.0.0_97f4a09591_amd64.deb
wget https://release.memsql.com/production/debian/pool/memsql-toolbox_1.0.1_ba197a7975_amd64.deb
wget https://release.memsql.com/production/debian/pool/memsql-studio_1.3.3_5820419148_amd64.deb
Проверяем хеш-суммы пакетов:
ls | grep memsql- | xargs -I % sha256sum %
Устанавливаем client, studio и toolbox на мастер сервере:
sudo dpkg -i memsql-client_1.0.0_97f4a09591_amd64.deb
sudo dpkg -i memsql-studio_1.3.3_5820419148_amd64.deb
sudo dpkg -i memsql-toolbox_1.0.1_ba197a7975_amd64.deb
Проверяем, установились ли пакеты:
apt search memsql
Регистрируем все хосты в toolbox:
memsql-toolbox-config register-host --localhost --host 172.25.10.6
memsql-toolbox-config register-host --identity-file ~/clusterkey --host 172.25.10.7
memsql-toolbox-config register-host --identity-file ~/clusterkey --host 172.25.10.8
…
memsql-toolbox-config register-host --identity-file ~/clusterkey --host X.X.X.X
memsql-toolbox-config list-hosts
Разворачиваем memsql-server на всех хостах:
memsql-deploy install --file-path /tmp/memsql-server_6.7.1_146ae8d333_amd64.deb --all
Создаём мастер ноду и даём ей роль агрегатора:
memsql-admin create-node --host 172.25.10.6
memsql-admin bootstrap-aggregator --memsql-id <master_ memsqlID> --license <license_code>
Добавляем остальные ноды:
memsql-admin create-node --host 172.25.10.7
memsql-admin create-node --host 172.25.10.8
…
memsql-admin create-node --host X.X.X.X
Добавляем роль Лифов на остальные ноды:
memsql-admin add-leaf --memsql-id XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
memsql-admin add-leaf --memsql-id XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
…
memsql-admin add-leaf --memsql-id XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Смотрим список всех нодов:
memsql-admin list-nodes
Запускаем оптимизацию нод:
memsql-admin optimize
Запускаем web-морду на мастер ноде:
sudo systemctl start memsql-studio
Меняем пароль root пользователя на свой:
memsql-admin change-root-password --memsql-id <master_ memsqlID> --password <new_password>
Альтернативные способы развёртывания можно найти в этой документации: Guides → Install MemSQL
На этом, в принципе, всё.