Обновление ПК СВ "Брест" с версии 3.2 до версии 3.3.1

Обновление серверов кластера ПК СВ должно проходить поочередно.

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

Перед обновлением лидера необходимо перевести его в состояние follower командой: 

sudo systemctl restart opennebula

Проверить смену состояния сервера управления можно командой:

sudo onezone show 0

Для обновления c каждым из серверов необходимо выполнить действия, описанные ниже:

Подготовка сервера к обновлению

  1. Мигрировать с обновляемого сервера все ВМ, кроме одной, которую необходимо оставить в статусе "ВЫКЛЮЧЕНО", для проверки обновления сервера.

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

  2. В веб-интерфейсе ПК СВ в меню слева выбрать пункт меню Инфраструктура — Узлы. На открывшейся странице Узлы выбрать обновляемый узел и нажать кнопку Выкл.

  3. Проверить установленную версию ядра linux на соответствие версии ядра AL SE 1.7.2 uu1 командой:

    uname -a
    Пример вывода после выполнения команды:

    linux fn.brest.local 5.15.0-33-generic #astra2+ci70 SMP Mon Apr 10 13:35:08 UTC 2023 x86_64 GNU/Linux
    
    CODE
  4. Проверить процессы virsh командами

    sudo su oneadmin
    virsh -c qemu:///system list --all
    После выполнения команды в выводе не должно быть процессов:

     ID   Имя   Состояние
    -----------------------
    CODE
  5. Сделать резервную копию системы.
  6. При обновлении сервера управления (в кластерах Raft, сервера управления, выполняющего роль лидера), сделать резервную копию базы данных командой:

    sudo /usr/bin/pg_dump --host=127.0.0.1 --port=5432 --username="<имя_пользователя_БД>" --password --format=custom --blobs --verbose --file="/opt/<файл_копии_БД>" --dbname="<имя_БД>"
    где

    • <имя_пользователя_БД> — имя пользователя БД (имя пользователя и соответствующий ему пароль можно узнать из конфигурационного файла /etc/one/one.d/db.conf);
    • <файл_копии_БД> — обозначение файла резервной копии БД;
    • <имя_БД>обозначение БД.

    Дополнительно необходимо скопировать файл резервной копии БД на отдельный сервер или внешний носитель.

    В случае неудавшейся установки обновления для восстановления БД можно воспользоваться командой (перед восстановлением БД необходимо перенести файл с резервной копией БД в каталог /var/lib/one/):

    sudo /usr/bin/pg_restore --host 127.0.0.1 --port 5432 --username "<имя_пользователя_БД>" --dbname="<имя_БД>" --password --verbose --clean "/var/lib/one/<файл_копии_БД>"

  7. Сохранить содержимое каталога /var/lib/one/.one (содержащего хэш-файлы доступа к БД) на отдельный сервер или внешний носитель командой:

    sudo scp -r /var/lib/one/.one <путь_сохранения_файла>

  8. Установить пакеты syslog-ng-mod-astra (по умолчанию пакет уже установлен в ОС СН Astra Linux) и libwxbase3.0-0v5 командой:

    sudo apt install --yes syslog-ng-mod-astra libwxbase3.0-0v5

  9. Предотвратить запуск межсетевого экрана командой:

    sudo systemctl mask firewalld

  10. Добавить новые репозитории ПК СВ "Брест" версии 3.3.1 и ОС СН Astra Linux Special Edition версии 1.7.4 с оперативным обновлением 1.7.4.UU.1. Рекомендуется производить обновление репозиториев ПК СВ и ОС СН Astra Linux Special Edition одновременно:

    Обновление ОС СН до версии 1.7.4 без установки оперативного обновления 1.7.4.UU.1 может привести к неработоспособности виртуализации QEMU.

    Для обновления могут быть использованы сетевые репозитории или копии репозиториев в локальной файловой системе.

    Пример. Интернет-репозитории ОС СН Astra Linux Special Edition 1.7.4 и оперативного обновления 1.7.4.UU.1 и локальный репозиторий ПК СВ "Брест" версии 3.3.1. Предварительно необходимо смонтировать файл с ISO-образом ПК СВ в выбранный каталог (с данном примере cdrom1):

    deb https://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.4/uu/1/repository-base 1.7_x86-64 main contrib non-free
    deb https://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.4/uu/1/repository-update 1.7_x86-64 main contrib non-free
    deb https://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.4/uu/1/repository-main 1.7_x86-64 main contrib non-free
    deb file:/media/cdrom1 brest main non-free
    CODE
  11. Выполнить повторную синхронизацию файлов описаний пакетов с их источником командой:

    sudo apt update

  12. Установить новый пакет для обновления astra-update из новых репозиториев командой:

    sudo apt install --yes astra-update

  13. Создать резервную копию файла adduser.conf командой:

    sudo cp "/etc/adduser.conf" "/etc/adduser_conf_$(date +%y%m%d%H%M%S).backup"

  14. В файле adduser.conf повысить значение параметра LAST_SYSTEM_GID командой:

    sudo sed -i 's/LAST_SYSTEM_GID=999/LAST_SYSTEM_GID=2000000000/' /etc/adduser.conf

Обновление сервера

  1. Выполнить обновление пакетов командой:

    sudo astra-update -a -r -T

    Команда sudo astra-update должна использоваться только с действием -a, для интерактивной установки обновления. При использовании действия -A обновление будет проведено автоматически, без возможности настройки замены конфигурационных файлов, описанных в следующем шаге и может привести к неработоспособности виртуализации.

  2. При появлении приглашения для ввода вида:

    Файл настройки «<имя_конфигурационного_файла>»
     ==> Изменён с момента установки (вами или сценарием).
     ==> Автор пакета предоставил обновлённую версию.
      Что нужно сделать? Есть следующие варианты:
       Y или I : установить версию, предлагаемую сопровождающим пакета
       N или O : оставить установленную на данный момент версию
          D    : показать различия между версиями
          Z    : запустить оболочку командной строки для проверки ситуации
     По умолчанию сохраняется текущая версия файла настройки.
    *** <имя_конфигурационного_файла> (Y/I/N/O/D/Z) [по умолчанию N] ?
    CODE

    Выполнить действие в соответствии с таблицей:

    Имя конфигурационного файлаДействие
    /etc/default/libvirtdввести "Y" и нажать клавишу <Enter>
    /etc/libvirt/libvirtd.confввести "Y" и нажать клавишу <Enter>
    /etc/libvirt/qemu.confввести "Y" и нажать клавишу <Enter>
    /etc/sasl2/libvirt.confввести "Y" и нажать клавишу <Enter>
    /etc/ssh/ssh_config

    ввести "N" и нажать клавишу <Enter>;
    в появившемся окне выбрать Сохранить установленную локальную версию и нажать <ОК>

    /etc/pam.d/fly-dm-npввести "Y" и нажать клавишу <Enter>
    /etc/astra-syslog.confввести "Y" и нажать клавишу <Enter>
    /etc/one/one-apache2.conf
    ввести "Y" и нажать клавишу <Enter>

    Сообщение об ошибке вида:

    ERROR: Site one-apache2 not properly enabled: /etc/apache2/sites-enabled/one-apache2.conf exists but does not point to /etc/apache2/sites-available/one-apache2.conf, not touching it
    CODE

    можно игнорировать.

    /etc/apache2/sites-available/ad-one-apache2.confввести "Y" и нажать клавишу <Enter>
    /etc/audit/rules.d/astra-syslog.rulesввести "Y" и нажать клавишу <Enter>
    /etc/iscsi/iscsid.confввести "Y" и нажать клавишу <Enter>


    Если в диалоге обновления /etc/iscsi/iscsid.conf было введено "N", то в последствии могут удалиться каталоги ВМ из системного хранилища.

Завершение обновления сервера

  1. В файле adduser.conf восстановить значение параметра LAST_SYSTEM_GID командой:

    sudo sed -i 's/LAST_SYSTEM_GID=2000000000/LAST_SYSTEM_GID=999/' /etc/adduser.conf

  2. Настроить автозапуск iSCSI-хранилищ изменив значения параметров node.startup в конфигурационном файле /etc/iscsi/iscsid.conf командой:

    sudo mcedit /etc/iscsi/iscsid.conf
    В конфигурационном файле необходимо раскомментировать параметр node.startup = automatic и закомментировать параметр node.startup = manual.
    Пример настроенного конфигурационного файла: 

    node.startup = automatic
    #node.startup = manual
    CODE
  3. Перезагрузить сервер командой:

    sudo reboot

  4. В веб-интерфейсе ПК СВ в меню слева выбрать пункт меню Инфраструктура — Узлы. На открывшейся странице Узлы выбрать обновленный узел и нажать кнопку Включить.

  5. Далее запустить выключенную ВМ и проверить миграцию работающих ВМ обратно на обновленный сервер.

  6. После проверки миграции, для корректного отображения элементов веб-интерфейса, необходимо очистить куки (cookies) и кэш в браузере.

    Пример очистки куков и кэша в браузере Mozilla Firefox

    • В браузере перейти Открыть меню приложения — Журнал — Удалить историю...;
    • В открывшемся окне Удаление недавней истории в выпадающем списке Удалить: выбрать Всё и отметить флаги Куки и Кэш:
    • Нажать кнопку Удалить сейчас.

Обновление ПК СВ "Брест" с версии 3.3 до версии 3.3.1

Обновление серверов кластера ПК СВ должно проходить поочерёдно. 

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

Перед обновлением лидера необходимо перевести его в состояние follower командой: 

sudo systemctl restart opennebula

Проверить смену состояния сервера управления можно командой:

sudo onezone show 0

Для обновления c каждым из серверов необходимо выполнить действия, описанные ниже:

Подготовка сервера к обновлению

  1. Мигрировать с обновляемого сервера все ВМ, кроме одной, которую необходимо оставить в статусе "ВЫКЛЮЧЕНО", для проверки обновления сервера.

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

  2. В веб-интерфейсе ПК СВ в меню слева выбрать пункт меню Инфраструктура — Узлы. На открывшейся странице Узлы выбрать обновляемый узел и нажать кнопку Выкл.

  3. Проверить процессы virsh командами

    sudo su oneadmin
    virsh -c qemu:///system list --all
    После выполнения команды в выводе не должно быть процессов:

     ID   Имя   Состояние
    -----------------------
    CODE
  4. Сделать резервную копию системы.
  5. При обновлении сервера управления (в кластерах Raft, сервера управления, выполняющего роль лидера), сделать резервную копию базы данных командой:

    sudo /usr/bin/pg_dump --host=127.0.0.1 --port=5432 --username="<имя_пользователя_БД>" --password --format=custom --blobs --verbose --file="/opt/<файл_копии_БД>" --dbname="<имя_БД>"
    где

    • <имя_пользователя_БД> — имя пользователя БД (имя пользователя и соответствующий ему пароль можно узнать из конфигурационного файла /etc/one/one.d/db.conf);
    • <файл_копии_БД> — обозначение файла резервной копии БД;
    • <имя_БД>обозначение БД.

    Дополнительно необходимо скопировать файл резервной копии БД на отдельный сервер или внешний носитель.

    В случае неудавшейся установки обновления для восстановления БД можно воспользоваться командой (перед восстановлением БД необходимо перенести файл с резервной копией БД в каталог /var/lib/one/):

    sudo /usr/bin/pg_restore --host 127.0.0.1 --port 5432 --username "<имя_пользователя_БД>" --dbname="<имя_БД>" --password --verbose --clean "/var/lib/one/<файл_копии_БД>"

  6. Сохранить содержимое каталога /var/lib/one/.one (содержащего хэш-файлы доступа к БД) на отдельный сервер или внешний носитель командой:

    sudo scp -r /var/lib/one/.one <путь_сохранения_файла>

  7. Установить пакеты syslog-ng-mod-astra (по умолчанию пакет уже установлен в ОС СН Astra Linux) и libwxbase3.0-0v5 командой:

    sudo apt install --yes syslog-ng-mod-astra libwxbase3.0-0v5

  8. Предотвратить запуск межсетевого экрана командой:

    sudo systemctl mask firewalld

  9. Добавить новые репозитории ПК СВ "Брест" версии 3.3.1 и ОС СН Astra Linux Special Edition версии 1.7.4 с оперативным обновлением 1.7.4.UU.1. Рекомендуется производить обновление репозиториев ПК СВ и ОС СН Astra Linux Special Edition одновременно:

    Обновление ОС СН до версии 1.7.4 без установки оперативного обновления 1.7.4.UU.1 может привести к неработоспособности виртуализации QEMU.

    Для обновления могут быть использованы сетевые репозитории или копии репозиториев в локальной файловой системе.

    Пример. Интернет-репозитории ОС СН Astra Linux Special Edition 1.7.4 и оперативного обновления 1.7.4.UU.1 и локальный репозиторий ПК СВ "Брест" версии 3.3.1. Предварительно необходимо смонтировать файл с ISO-образом ПК СВ в выбранный каталог (с данном примере cdrom1):

    deb https://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.4/uu/1/repository-base 1.7_x86-64 main contrib non-free
    deb https://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.4/uu/1/repository-update 1.7_x86-64 main contrib non-free
    deb https://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.4/uu/1/repository-main 1.7_x86-64 main contrib non-free
    deb file:/media/cdrom1 brest main non-free
    CODE
  10. Выполнить повторную синхронизацию файлов описаний пакетов с их источником командой:

    sudo apt update

  11. Установить новый пакет для обновления astra-update из новых репозиториев командой:

    sudo apt install --yes astra-update

  12. Создать резервную копию файла adduser.conf командой:

    sudo cp "/etc/adduser.conf" "/etc/adduser_conf_$(date +%y%m%d%H%M%S).backup"

  13. В файле adduser.conf повысить значение параметра LAST_SYSTEM_GID командой:

    sudo sed -i 's/LAST_SYSTEM_GID=999/LAST_SYSTEM_GID=2000000000/' /etc/adduser.conf

Обновление сервера

Выполнить обновление пакетов командой:

sudo astra-update -a -r -T

Завершение обновления сервера

  1. В файле adduser.conf восстановить значение параметра LAST_SYSTEM_GID командой:

    sudo sed -i 's/LAST_SYSTEM_GID=2000000000/LAST_SYSTEM_GID=999/' /etc/adduser.conf

  2. Настроить автозапуск iSCSI-хранилищ изменив значения параметров node.startup в конфигурационном файле /etc/iscsi/iscsid.conf командой:

    sudo mcedit /etc/iscsi/iscsid.conf
    В конфигурационном файле необходимо раскомментировать параметр node.startup = automatic и закомментировать параметр node.startup = manual.
    Пример настроенного конфигурационного файла: 

    node.startup = automatic
    #node.startup = manual
    CODE
  3. Перезагрузить сервер командой:

    sudo reboot

  4. В веб-интерфейсе ПК СВ в меню слева выбрать пункт меню Инфраструктура — Узлы. На открывшейся странице Узлы выбрать обновленный узел и нажать кнопку Включить.

  5. Далее запустить выключенную ВМ и проверить миграцию работающих ВМ обратно на обновленный сервер.

  6. После проверки миграции, для корректного отображения элементов веб-интерфейса, необходимо очистить куки (cookies) и кэш в браузере.

    Пример очистки куков и кэша в браузере Mozilla Firefox

    • В браузере перейти Открыть меню приложения — Журнал — Удалить историю...;
    • В открывшемся окне Удаление недавней истории в выпадающем списке Удалить: выбрать Всё и отметить флаги Куки и Кэш:
    • Нажать кнопку Удалить сейчас.


Возможные проблемы при обновлении

При проведении обновления могут возникнуть следующие проблемы:

  • Сервер остается в статусе candidate, на оставшихся серверах в кластере постоянно меняется роль лидера:
    Для решения проблемы необходимо выполнить инициализацию службы сервера управления и перезагрузить сервер командами:

    sudo brestcloud-configure
    sudo reboot

    После выполнения команды сгенерируется новый криптографический файл /apache2.keytab. Его необходимо объединить с уже имеющимся файлом /etc/apache2/apache2.leader.keytab командами:

    sudo ktutil
    ktutil: rkt /etc/apache2/apache2.leader.keytab
    ktutil: rkt /etc/apache2/apache2.keytab
    ktutil: wkt /etc/apache2/apache2.keytab
    q

    Установить права командами:

    sudo chown www-data:www-data /etc/apache2/apache2.keytab
    sudo chmod 440 /etc/apache2/apache2.keytab
    sudo systemctl restart apache2

  • Узел не выходит из статуса "Ошибка", "Инициализация".
    Для решения проблемы необходимо проверить состояние и при необходимости запустить службу libvirtd командами:

    sudo systemctl status libvirtd
    sudo systemctl start libvirtd
    Если запуск службы не помогает, то необходимо заново выполнить инициацию сервиса узла виртуализации командой:

    sudo ipa-libvirt-qemu-configure

    В конфигурации Raft, для решения проблемы, необходимо сменить роль лидера.

  • Хранилища недоступны.
    Для решения проблемы необходимо установить
    значение параметра node.startup в конфигурационном файле /etc/iscsi/iscsid.conf.