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

Инструкция по обновлению кластера Почты

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

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

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

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

Внимание

Обновление до версии 1.24 возможно только с версии 1.22 и выше. Если у вас установлена версия 1.21 и ниже, то вам нужно будет обновить систему до версии 1.22 и только после этого можно будет обновиться до версии 1.24.

  1. Убедитесь, что представители VK предоставили вам следующие данные:

    • Ссылку на скачивание дистрибутива новой версии Почты.
    • Пароль от архива с дистрибутивом.
  2. У вас есть архитектурная схема кластера, показывающая, на каком гипервизоре какие компоненты системы установлены. Эти данные потребуются на этапе генерации новых контейнеров.

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

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

Внимание

Если предполагается обновление более чем на одну версию, например у вас стоит версия 1.19, а вы хотите обновиться сразу на 1.21.1, то проконсультируйтесь с представителями VK, иначе могут возникнуть проблемы при обновлении.

Шаг 1. Выполните проверку баз данных и хранилищ

Перед установкой обновления необходимо удостовериться в консистентном состоянии кластеров баз данных:

  1. В веб-интерфейсе установщика перейдите в Настройки -> Шардирование и репликация БД.
  2. Нажмите на кнопку Опросить все Overlord'ы. Таким образом будет проверено состояние баз данных.
  3. Авторизуйтесь в панели администратора Почты https://biz.<main-domain>.
  4. Перейдите в панель управления кластерами БД MySQL https://biz.<main-domain>/orchestrator/web/clusters/.
  5. Проверьте отсутствие ошибок в процессе репликации баз данных.

Проверьте дисковое пространство на серверах отведенных под хранилища:

  • На разделах выделенных для хранения данных должно быть свободно более 15% дискового пространства и обязательно более 25 Гб.
  • На всех остальных разделах должно быть занято не более 10% дискового пространства.

Шаг 2. Подготовьте новую версию к обновлению

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

  1. Поместите zip-архив с дистрибутивом новой версии в ту же папку, которая использовалась при первичной установке. То есть туда же, где находится файл-установщик onpremise-deployer_linux.
  2. Распакуйте архив под той же учетной записью поверх имеющегося дистрибутива с заменой всех изменившихся файлов. Архив защищен паролем, который потребуется указать при распаковке.

    Внимание

    Шаги 3 и 4 из этого раздела актуальны только для обновления на версию 1.24.

  3. Откройте для редактирования файл $DEPLOYER_HOME/configs/rimap/zubr/picker-zubr.yaml, где $DEPLOYER_HOME — папка в которую распаковывался установщик. Например, /home/deployer:

    vim /home/deployer/configs/rimap/zubr/picker-zubr.yaml
    
  4. Добавьте сервис - 94 # arbuzapi в раздел:

    constructor:
        services:
    

    Общий вид раздела после изменения:

    services:
        - 12 # MEMC_NEWMAIL
        - 25 # ADDRBOOK
        - 36 # autoreply_limiter
        - 37 # PDD
        - 41 # RIMA
        - 46 # IRINA
        - 57 # SPAMABUSE
        - 62 # DOMEN
        - 64 # HERMES
        - 76 # RICO
        - 94 # arbuzapi
        - 103 # USPATH 2
        - 108 # XTAZIK
        - 130 # RIMAP-API
    
  5. Проверьте, есть ли у файла onpremise-deployer_linux флаг на исполнение (x) с помощью команды:

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

    chmod +x onpremise-deployer_linux
    
  7. Выполните команду sudo systemctl restart deployer.

Шаг 3. Добавьте новые контейнеры

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

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

    AddSeveralConainers

    Откроется всплывающее окно Выберите роли для добавления.

    AddRoles

  3. Задайте фильтры:

    • Установлено не более: 0.
    • Тег: контейнеры какого компонента системы необходимо добавить. Например: База данных, Хранилище, Мониторинг, Инфраструктура и т.д.

      Filters

  4. Выберите все доступные для установки контейнеры.

    AllContainers

  5. Прокрутите список контейнеров вниз и выберите гипервизоры, на которые нужно произвести установку.

  6. Выберите режим генерации На каждом гипервизоре.

    EachHypervisor

  7. Нажмите на синюю кнопку Добавить. Всплывающее окно, в котором выполнялись предыдущие действия, закроется.

  8. Откройте окно добавления контейнеров, нажав Добавить -> Несколько контейнеров.
  9. Повторите шаги 1-6 для всех оставшихся компонентов в поле Теги.
  10. Убедитесь, что все контейнеры добавлены:

    • Откройте окно добавления контейнеров, нажав Добавить -> Несколько контейнеров.
    • Выберите фильтр Установлено не более: 0.
    • Список контейнеров, доступных для добавления, должен быть пустым.

В релизе 1.24 вышло крупное обновление для БД Tarantool — мигрировали с версии 1.5 на версию 2.11. Поэтому отдельное внимание нужно уделить созданию новых кластеров:

  1. Перейдите в раздел Настройки -> Шардирование и репликация БД.
  2. Количество кластеров для новых сервисов должно быть равно количеству кластеров для сервисов предыдущей версии. Нужно создать новые кластеры в соответствии со следующей таблицей:

    Название в предыдущих версиях Название в 1.24
    irina-tar irina
    ricotar rico
    hermes hermes-tnt
    signatar signatarng
    filters-tar delfi
    spammerdb spammerdbng
    abookpdd-tar commonab
    addrbook-tar addrbook
    list-mailer-tar listmailer
    msglink-tar msglinks
  3. Чтобы добавить кластер:

    1. Нажмите кнопку Добавить в первой строке, отмеченной красным.
    2. Нажмите кнопку Добавить контейнер БД. В зависимости от типа базы данных может быть добавлен один или два контейнера.
    3. Сохраните изменения.
    4. Повторите шаги 1-4 для каждой строки, отмеченной красным.

    шардирование и репликация БД

Вернитесь в верхнюю часть страницы и проверьте: отображается ли в правом верхнем углу зеленая кнопка Далее. Если зеленая кнопка Далее отображается и активна, то донастройте параметры системы. Логика: «Cледуем за кнопкой Далее то тех пор, пока она активна». Когда зеленая кнопка Далее перестанет отображаться в верхнем углу страницы, можно запускать обновление.

Как ускорить установку

Если вы планируете провести подготовительные действия днем, а непосредственную установку ночью, необходимо заранее запустить проверку и кэширование образов:

  1. Днем нажмите кнопку Запустить проверку в выпадающем меню рядом с кнопкой Play.
  2. Дождитесь завершения проверки.
  3. Нажмите кнопку Кэшировать образы в выпадающем меню. Это позволит сэкономить время ночной установки.

При таком подходе ночью достаточно будет нажать на кнопку Play и завершить обновление согласно инструкции.

Шаг 4. Подготовьте crow-index к обновлению

Внимание

Шаг актуален только при обновлении до версии 1.24.

Для каждого контейнера crowindex* проверьте размер БД с индексами с помощью команды:

docker exec  crow-index<номер_контейнера> du -d 1 -h /data

Если размер хотя бы одного каталога с шардом более 10 Гб, то выполните следующие действия:

  1. В веб-интерфейсе установщика, перейдите в раздел Настройки -> Переменные окружения.
  2. В левом боковом меню найдите crow-index.
  3. Нажмите кнопку редактировать edit_icon.
  4. Нажмите на кнопку + Добавить.
  5. В поле Название переменной введите CROW_INDEX_DATABASE_SEARCH_USE_LEVELED_COMPACTION_STYLE, в поле Значение переменной введите false.
  6. Нажмите на кнопку + Добавить.
  7. В поле Название переменной введите CROW_INDEX_DATABASE_CONTENT_USE_LEVELED_COMPACTION_STYLE, в поле Значение переменной введите false.
  8. Нажмите на кнопку Сохранить.

StartMigration

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

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

  1. Запустите установку, нажав на кнопку Play напротив индикатора состояния.
  2. Подтвердите запуск автоматической установки, нажав на кнопку Запустить во всплывающем окне. В этом окне также есть возможность увеличить процент контейнеров одной роли, устанавливаемых одновременно. Допустима установка значений: 25, 50, 100. Это ускорит процесс обновления.
  3. Дождитесь завершения установки.
  4. Перейдите в панель администратора https://biz.main-domain.
  5. Авторизуйтесь под учетной записью администратора admin@admin.qdit.
  6. Убедитесь, что письма отправляются и доходят до адресата. Для проверки лучше написать письмо от одного пользователя (не от admin@admin.qdit) другому пользователю и убедиться, что оно будет доставлено.

Шаг 6. Запустите переиндексацию данных

Внимание

Шаг актуален только при обновлении до версии 1.24.

Если на шаге 1 размеры каталогов с шардами превышали 10 Гб, то выполните следующие действия:

  1. В веб-интерфейсе установщика, перейдите в раздел Настройки -> Переменные окружения.
  2. В левом боковом меню найдите crow-index.
  3. Нажмите кнопку редактировать edit_icon.
  4. Измените значение переменной CROW_INDEX_DATABASE_SEARCH_USE_LEVELED_COMPACTION_STYLE на true или удалите эту переменную.
  5. Выполните шаг up_container для одного из контейнеров crow_index*. Например, для контейнера crow_index1.
  6. Дождитесь переиндексации данных. Узнать об окончании переиндексации можно в логе /data/shard*/LOG:

    ** Compaction Stats [default] **
    Level    Files   Size     Score Read(GB)  Rn(GB) Rnp1(GB) Write(GB) Wnew(GB) Moved(GB) W-Amp Rd(MB/s) Wr(MB/s) Comp(sec) CompMergeCPU(sec) Comp(cnt) Avg(sec) KeyIn KeyDrop
    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    L0      4/0    4.18 GB   0.0     13.6     0.0     13.6      18.5      4.9       0.0   3.1     17.2     23.4    811.17            756.92        59   13.749    203M      0
    L1     11/0    5.02 GB   0.0      6.0     4.1      1.9       5.0      3.1       0.0   1.2     32.4     27.0    190.36            268.18         1  190.358     12M      1
    L2     20/0    9.70 GB   0.0      0.0     0.0      0.0       0.0      0.0       0.0   0.0      0.0      0.0      0.00              0.00         0    0.000       0      0
    L3     27/0   13.35 GB   0.0      0.0     0.0      0.0       0.0      0.0       0.0   0.0      0.0      0.0      0.00              0.00         0    0.000       0      0
    L4     44/0   21.73 GB   0.0      0.0     0.0      0.0       0.0      0.0       0.0   0.0      0.0      0.0      0.00              0.00         0    0.000       0      0
    L5     62/0   30.74 GB   0.0      0.0     0.0      0.0       0.0      0.0       0.0   0.0      0.0      0.0      0.00              0.00         0    0.000       0      0
    L6    411/0   205.27 GB   0.0      0.0     0.0      0.0       0.0      0.0       0.0   0.0      0.0      0.0      0.00              0.00         0    0.000       0      0
    Sum    579/0   289.98 GB   0.0     19.6     4.1     15.6      23.5      8.0       0.0   3.9     20.1     24.1   1001.52           1025.09        60   16.692    216M      1
    Int      0/0    0.00 KB   0.0      0.0     0.0      0.0       0.0      0.0       0.0   0.0      0.0      0.0      0.00              0.00         0    0.000       0      0
    
    ** Compaction Stats [Content] **
    Level    Files   Size     Score Read(GB)  Rn(GB) Rnp1(GB) Write(GB) Wnew(GB) Moved(GB) W-Amp Rd(MB/s) Wr(MB/s) Comp(sec) CompMergeCPU(sec) Comp(cnt) Avg(sec) KeyIn KeyDrop
    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    L0      0/0    0.00 KB   0.0      0.0     0.0      0.0       1.4      1.4       0.0   1.0      0.0     27.0     51.67             11.31         3   17.225       0      0
    L2      6/0    2.28 GB   0.0      2.5     2.5      0.0       2.3      2.3       0.0   0.9     48.7     44.0     53.10              8.20         1   53.099    729K    66K
    L3      8/0    3.01 GB   0.0      0.0     0.0      0.0       0.0      0.0       0.0   0.0      0.0      0.0      0.00              0.00         0    0.000       0      0
    L4      8/0    3.50 GB   0.0      0.0     0.0      0.0       0.0      0.0       0.0   0.0      0.0      0.0      0.00              0.00         0    0.000       0      0
    L5     36/0   17.35 GB   0.0      0.0     0.0      0.0       0.0      0.0       0.0   0.0      0.0      0.0      0.00              0.00         0    0.000       0      0
    L6     89/0   44.25 GB   0.0      0.0     0.0      0.0       0.0      0.0       0.0   0.0      0.0      0.0      0.00              0.00         0    0.000       0      0
    Sum    147/0   70.39 GB   0.0      2.5     2.5      0.0       3.6      3.6       0.0   2.7     24.7     35.6    104.77             19.51         4   26.193    729K    66K
    Int      0/0    0.00 KB   0.0      0.0     0.0      0.0       0.0      0.0       0.0   0.0      0.0      0.0      0.00              0.00         0    0.000       0      0
    

    В столбце Files, число после / должно быть равно 0 (кроме строки L0).

  7. Повторите действия 5-6 последовательно для каждого контейнера crow-index*.

  8. В веб-интерфейсе установщика, перейдите в раздел Настройки -> Переменные окружения.
  9. В левом боковом меню найдите crow-index.
  10. Нажмите кнопку редактировать edit_icon.
  11. Измените значение переменной CROW_INDEX_DATABASE_CONTENT_USE_LEVELED_COMPACTION_STYLE на true или удалите эту переменную.
  12. Повторите действия 5-6 последовательно для каждого контейнера crow-index*.

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

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

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

    StartMigration

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

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

    StartMigration