Автоматизированное обновление СУБД Pangolin
При переходе к данному разделу предполагается, что изучена информация общего блока«Обновление».
Автоматизированное обновление следует запускать на отдельном хосте, не входящем в экземпляр кластера СУБД Pangolin.
Автоматизированное обновление поддерживает обновление исполняемых файлов с обновлением данных системных каталогов и без, а также обновление с переносом данных.
Ограничения и требования
Перед запуском Ansible плейбука, либо перед началом использования инструмента Pangolin Installer, убедитесь, что:
- На всех узлах, включая узел запуска, установлены требуемые пакеты, указанные в разделе «Список пакетных зависимостей, необходимых для корректной работы Ansible-скриптов».
- Установлена версия пакета
ansible-coreне ниже 2.11.0 и не выше 2.12.0. Данный пакет устанавливается в рамках поставляемого пакетаansible-venv-controller, который входит в список пакетных зависимостей. - Выполнено предусловие.
В случае сценария обновления с переносом данных, а также требующего обновления системных данных каталога, дополнительно убедитесь, что отсутствуют все внешние подключения к СУБД. В случае их наличия, необходимо произвести их отключение до начала процесса обновления.
Перед процессом обновления отключите все сторонние системы резервного копирования, не входящие в дистрибутив СУБД Pangolin.
Предусловие
Выполните настройку виртуального окружения перед началом использования скриптов автоматизации:
-
Разархивируйте rpm-пакет
venvиз 3rdparty части:tar -xz -f 3rdparty/3rdparty.tar.gz ./pangolin-ansible-venv-controller* -
Выполните установку пакета:
- SberLinux, РЕД ОС, CentOS
- Astra Linux
- Альт СП
sudo dnf install pangolin-ansible-venv-controller-{product_version}-{OS}.x86_64.rpmsudo apt install pangolin-ansible-venv-controller-{product_version}_amd64.debsudo apt-get install pangolin-ansible-venv-controller-altlinux{version_OS}.x86_64.rpmПодсказкаПример готовой команды:
sudo dnf -y install pangolin-ansible-venv-controller-6.7.6-sberlinux8.x86_64.rpm -
Активируйте виртуальное окружение для начала последующей установки:
source /opt/pangolin-ansible-venv-controller/bin/activate
Выбор способа обновления
Автоматизированное обновление СУБД, как и автоматизированная установка, доступно двумя способами:
- Запуск Ansible плейбуков предназначен больше для инженеров. Он более нативный и может использоваться, например, при интеграции его в работу собственных автоматизированных сценариев пользователя.
- Запуск обновления с помощью инструмента Pangolin Installer предназначен скорее для пользователей, которые хотят максимально упростить все процессы по использованию сценариев и не погружаться в тонкости их запуска. Инструмент предоставляет интуитивный запуск сценария, не требующего от пользователя никаких дополнительных шагов, кроме установки rpm/deb-пакета инструмента с помощью пакетного менеджера.
Воспользуйтесь одной из предложенных инструкций, в зависимости от выбора сценария:
Перед выполнением обновления до начала всех работ рекомендуется сделать резервную копию базы данных, чтобы избежать возможных проблем и иметь возможность откатиться к первоначальному состоянию в случае их возникновения.
Если используется собственное решение для автоматизированного обновления и планируете переход с версии 6.4.2-cve2, необходимо учитывать, что в версии 6.4.2-cve2 для устранения критических уязвимостей применялись специальные метки Epoch в пакетных менеджерах. В последующих версиях продукта эти метки не используются, поэтому при обновлении без применения существующих инструментов (Ansible плейбуков или Pangolin Installer) потребуется в ручном режиме определить зависимости между пакетами при установке rpm/deb-пакетов компонентов более новой версии, не использующих Epoch.
Особенности, связанные с использованием Epoch, влияют только на обновление с версии 6.4.2 (6.4.2-cve2) на более высокие версии при использовании собственной автоматизации.
В случае обновления СУБД Pangolin на ОС Альт СП Релиз 10 версии 2 до текущей версии, автоматический откат в случае падения будет невозможен.
Схемы процесса автоматизированного обновления
Схемы процессов различных сценариев обновления СУБД Pangolin автоматизированными скриптами представлены в разделе «Схемы работы сценариев автоматизации СУБД Pangolin».
Время обновления
В данном разделе приведена информация о произведенных обновлениях СУБД Pangolin под нагрузкой, при помощи скриптов автоматизации.
Методика тестирования:
-
Установка и обновление продуктов версии:
- c 5.5.6 до 6.7.0 - обновление с переносом данных;
- с 6.6.3 до 6.7.0 - обновление исполняемых файлов.
-
Создание тестовой базы данных и генерация тестовых данных.
-
Запуск сценария стабильной нагрузки на время обновления. Алгоритм:
- запускается нагрузка, продолжается 5 минут (100TPS);
- стартует обновление;
- после окончания обновления запускается повторная нагрузка на протяжении 10 минут.
-
Сравнение результатов
Результаты обновления:
-
Обновление с переносом данных (c 5.5.6 до 6.7.0):
Объем данных Тип конфигурации Время обновления Размерность 100 ГБ standalone 35 Минуты 100 ГБ cluster 75 Минуты 250 ГБ standalone 70 Минуты 250 ГБ cluster 142 Минуты 500 ГБ standalone 100 Минуты 500 ГБ cluster 269 Минуты 800 ГБ standalone 159 Минуты 800 ГБ cluster 366 Минуты -
Обновление исполняемых файлов (с 6.6.3 до 6.7.0):
Объем данных Тип конфигурации Время обновления Размерность 100 ГБ standalone 13 Минуты 100 ГБ cluster 28 Минуты 500 ГБ standalone 13 Минуты 500 ГБ cluster 28 Минуты 800 ГБ standalone 13 Минуты 800 ГБ cluster 28 Минуты
Обновление компонентов
Обновление компонентов происходит во время сценария обновления СУБД.
Проверка результатов обновления
Для проверки успешности обновления СУБД рекомендуется использовать чек-лист проверки корректности работы.
Восстановление продукта после неудачного обновления
Сценарий осуществляется автоматически, в случае возникновения проблемы, инструментом Pangolin Installer или Ansible плейбуком.
Пример сообщения из лог-файла после восстановления:
RLM.FAIL__E05002:В процессе обновления возникла ошибка. Было произведено восстановление версии СУБД Pangolin до запуска обновления. Ознакомьтесь с логами.__RLM.FAIL
Для восстановления кластера СУБД в исходное состояние, в случае ошибки при обновлении, проверяется доступность исходных rpm/deb-пакетов компонентов. С помощью параметра pangolin_block_update можно контролировать блокировку обновления при отсутствии какого-либо или всех пакетов. Значение по умолчанию – true. В случае значения false, автоматический откат будет отключен, но не будет заблокирован процесс обновления.
Автоматизированный откат с версии 6.5.2 при наличии системы хранения секретов ОдинКлюч невозможен.
Функция автоматизированного отката управляется параметром handle_update_errors:
- по умолчанию он включен;
- при необходимости можно отключить автоматический откат при падении;
- возможно также явное включение этой функции.