Перейти к содержанию

Инструкция по установке обновлений Почты до версии 26.2.3 на одну машину

Как обновлять Почту до версий ниже 26.2.3

Документация ко всем предыдущим релизам Почты собрана на странице: Документация предыдущих релизов.

Вы можете выбрать версию Почты, до которой хотите обновиться, и посмотреть соответствующее руководство по обновлению.

Дополнительная документация

Как обновить SSL-сертификаты

Предварительные условия для установки обновления

Внимание

Почту версии 26.2.3 нельзя установить с нуля. На нее можно только обновиться с версий 26.2.0 и 26.2.1.

  1. Убедитесь, что представители VK предоставили вам ссылку на скачивание дистрибутива новой версии Почты.

  2. Обновление необходимо проводить в нерабочее время, когда приложением не пользуются сотрудники (в технологическое окно).

  3. Проверьте наличие лицензий Почты на каждом домене. Отсутсвие лицензии приведет к неработоспособности продукта после обновления.

  4. Проверьте дисковое пространство:

    • На разделах выделенных для хранения данных должно быть свободно более 15% дискового пространства и обязательно более 25 Гб.
    • На всех остальных разделах должно быть занято не более 10% дискового пространства.
  5. Чтобы Почта VK WorkSpace работала корректно, нужно установить оперативное обновление ядра ОС указанной ниже версии. Версия должна быть актуальной на момент обновления. Поддерживаемые операционные системы:

    • Astra Linux SE Орел — версия 1.7.5+, версия ядра — 5.15.
    • Astra Linux SE Орел — версия 1.8, версия ядра — 6.1.
    • РЕД ОС — версия 7.3.5, версия ядра — 6.1.
    • РЕД ОС — версия 7.3с (сертифицированная), версия ядра — 6.1.
    • РЕД ОС — версия 8, версия ядра — 6.6 или 6.12.
    • MosOS Arbat — версия 15.5, версия ядра — 5.14.

Предварительные действия

Прежде чем запустить автоматическое обновление Почты:

  1. Используйте учетную запись пользователя, от имени которого производилась первичная установка.
  2. Распакуйте zip-архив c новой версией. Используйте учетную запись пользователя, от имени которого производилась первичная установка:

    Примечание

    Перед распаковкой убедитесь, что архив скачался без повреждений. Как это сделать, описано в разделе «Как проверить целостность скачанного дистрибутива?».

    # Если на машину не установлен unzip, скачиваем его:
    sudo apt-get install unzip
    
    export UNZIP_DISABLE_ZIPBOMB_DETECTION=true
    
    unzip -o <имя_архива>
    
    # Если на машину не установлен unzip, скачиваем его:
    sudo yum install unzip
    
    # Если в вашей версии РЕД ОС нет yum, то используйте dnf
    
    export UNZIP_DISABLE_ZIPBOMB_DETECTION=true
    
    unzip -o <имя_архива>
    
    # Если на машину не установлен unzip, скачиваем его:
    sudo zypper install unzip
    
    export UNZIP_DISABLE_ZIPBOMB_DETECTION=true
    
    unzip -o <имя_архива>
    
  3. Поместите архив deployer.tar с дистрибутивом новой версии в ту же папку, которая использовалась при первичной установке. То есть туда же, где находится файл-установщик onpremise-deployer_linux.

  4. Распакуйте архив под той же учетной записью поверх имеющегося дистрибутива с заменой всех изменившихся файлов:

    tar -xf deployer.tar
    
  5. Проверьте, есть ли у файла onpremise-deployer_linux флаг на исполнение (x) с помощью команды:

    ls -la <путь к каталогу с файлом>`.
    
  6. Если флаг отсутствует, выполните команду:

    chmod +x onpremise-deployer_linux
    
  7. Распакуйте архив со статическими файлами:

    tar -xf static.tar.gz
    
  8. Скопируйте архив Docker-репозитория:

    cp registry/mail/dockerRepo.tar
    
  9. Скопируйте файлы md5:

    cp registry/mail/dockerRepo.md5 source/
    
  10. Выполните команду sudo systemctl restart deployer.

  11. Перейдите в веб-интерфейс установщика http://server-address:8888, где server-address — ip-адрес машины, на которую производится установка, либо ее доменное имя.

  12. Пролистайте список контейнеров и в нижней части страницы нажмите на кнопку Сгенерировать автоматически.

    GenerateAutomatically

  13. Вернитесь в верхнюю часть страницы и проверьте, отображается ли в правом верхнем углу зеленая кнопка Далее.

Шаг 1. Добавьте контейнер xtaz в разделе Mescalito

Перед автоматической установкой необходимо добавить контейнер xtaz в разделе ХранилищаMescalito:

  1. Внутри раздела нажмите на кнопку редактирования в строке первого кластера.

    xtaz

  2. Добавьте в кластер №1 контейнер xtaz2, который был создан при автоматической генерации.

  3. Сохраните изменения.
  4. Проведите донастройку других параметров системы.

Когда зеленая кнопка Далее перестанет отображаться в верхнем углу страницы, можно запускать обновление.

Шаг 2. Запустите обновление

Для обновления версии Почты:

  1. Запустите установку, нажав на кнопку Play напротив индикатора состояния.

    Play

  2. Подтвердите запуск автоматической установки, нажав на кнопку Запустить во всплывающем окне.

  3. Дождитесь завершения установки.

    SetupCompleted

  4. Перейдите в панель администратора https://biz.main-domain.

  5. Авторизуйтесь под учетной записью администратора admin@admin.qdit.
  6. Убедитесь, что письма отправляются и доходят до адресата. Для проверки лучше написать письмо от одного пользователя (не от admin@admin.qdit) другому пользователю и убедиться, что оно будет доставлено.

Шаг 3. Проверьте базы данных после обновления

После завершения обновления установщик может показать статус Установка завершена, хотя отдельные кластеры баз данных или их реплики остаются в нерабочем состоянии.

Внимание

Проверка баз данных — обязательный шаг. Не возвращайте систему в эксплуатацию, пока не убедитесь, что все кластеры баз данных работают корректно.

Проверьте состояние всех баз данных

  1. Откройте НастройкиШардирование и репликация БДКластеры баз данных.

  2. Нажмите Опросить базы данных.

  3. Перейдите в контейнер каждой роли Tarantool, например:

    kubectl exec -it -n onprem rima1-0 -- bash
    
    4. Перейдите в консоль:

    tarantoolctl connect /run/tarantool/tarantool.sock
    
  4. Выполните команду:

    box.info
    
  5. Убедитесь, что:

    • В box.info.status состояние — running.
    • В репликации значения box.info.replication.upstrea и downstreamfollow.

Если все кластеры в этом состоянии, обновление завершено корректно. Если репликация нарушена, восстановите её по инструкции ниже.

Восстановите репликацию Tarantool или OneDB

Выполняйте этот шаг, только если на предыдущем шаге обнаружены реплики с нарушенной репликацией.

Внимание

Наличие работающего мастера — обязательное, но недостаточное условие для ребутстрапа. Перед операцией убедитесь, что:

  • Выбранный источник действительно является актуальным RW-мастером.
  • Восстанавливаемый инстанс является репликой, а не мастером.

Вариант 1. Ребутстрап через веб-интерфейс

  1. В составе нужного кластера найдите неисправную реплику.

  2. Откройте меню реплики и выберите Ребутстрап.

    Пункт «Ребутстрап» в меню реплики

  3. Нажмите Запустить.

    Окно подтверждения ребутстрапа

  4. Дождитесь завершения операции.

    Сообщение об успешном завершении ребутстрапа

  5. Повторно выполните проверку кластера по инструкции «Проверьте состояние всех баз данных».

Во время ребутстрапа данные выбранной реплики удаляются и загружаются заново с мастера.

Внимание

Если появляется ошибка «VClock реплики опережает мастер», не используйте Пропустить проверку и перезапустить как обычный способ восстановления. Принудительный ребутстрап допустим только после резервного копирования, выбора мастера источником истины и согласования потери данных, присутствующих только на реплике.

Вариант 2. Ручной ребутстрап в Kubernetes

Порядок действий описан на примере кластера rima. В примере считаем, что rima1 - master, а для rima2, rima3 нужно выполнить ребутстрап. Для других кластеров используйте их имена.

  1. Во вкладке Шардирование и репликация выберите инстанс с наибольшим значением LSN. Остальные инстансы кластера остановите, удалив соответствующие StatefulSet:

    kubectl delete sts -n onprem rima2
    kubectl delete sts -n onprem rima3
    
  2. На Kubernetes-нодах остановленных инстансов создайте резервную копию каталогов в /opt/mailOnPremise/dockerVolumes, а оригинальные каталоги удалите переименованием:

    cd /opt/mailOnPremise/dockerVolumes
    sudo mv rima2 rima2bak
    sudo mv rima3 rima3bak
    
  3. В веб-интерфейсе установщика на вкладке Переменные окружения установите для мастера переменную:

    TARANTOOL_FORCE_RECOVERY=true
    
  4. Запустите установку роли для мастера в веб-интерфейсе установщика.

  5. Зайдите в консоль Tarantool мастера:

    kubectl exec -it -n onprem rima1-0 -- \
      tarantoolctl connect /var/run/tarantool/tarantool.sock
    

    Примечание

    Если pod содержит несколько контейнеров, дополнительно укажите контейнер:

    kubectl exec -it -n onprem rima1-0 \
      -c <контейнер-с-Tarantool> -- \
      tarantoolctl connect /var/run/tarantool/tarantool.sock
    
  6. Удалите записи в space _cluster. Идентификаторы для удаления возьмите из результата box.space._cluster:select{}:

    box.space._cluster:select{}
    box.space._cluster:delete{ИДЕНТИФИКАТОР_RIMA2}
    box.space._cluster:delete{ИДЕНТИФИКАТОР_RIMA3}
    

    Примечание

    На одном из удалений может появиться ошибка RO — это ожидаемо.

    В результате команда должна возвращать одну запись:

    box.space._cluster:select{}
    
  7. Сохраните snapshot:

    box.snapshot()
    
  8. В веб-интерфейсе установщика установите для мастера переменную:

    TARANTOOL_FORCE_RECOVERY=false
    
  9. Повторно запустите установку роли для мастера.

  10. Запустите установку роли для остальных инстансов кластера. Установщик заново создаст удалённые StatefulSet rima2 и rima3.

  11. После запуска всех инстансов нажмите Опросить базы данных и проверьте состояние кластера.

Шаг 4. Выполните компактизацию и дефрагментацию etcd

Данный шаг не является обязательным, но рекомендуется выполнить его, чтобы сохранить скорость работы системы. После завершения обновления и миграции хранилищ метаданных:

  1. Перейдите в раздел НастройкиШардирование и репликация БД.
  2. Найдите БД infraetcd.
  3. Кликните правой кнопкой мыши по строчке с infraetcd и нажмите кнопку Compact & defrag.

    StartMigration

  4. Найдите БД mailetcd.

  5. Кликните правой кнопкой мыши по строчке с mailetcd и нажмите кнопку Compact & defrag.

    StartMigration

Шаг 5. Проведите тестирование пользовательских интерфейсов

Чтобы убедиться, что обновление прошло успешно, рекомендуем пройти проверки из инструкции: Как вручную проверить состояние Почты.