Обновление
Введение
В данной инструкции приведено описание порядка обновления ПК СВ "Брест" без остановки кластера.
Требования
- Для обновления ОС кластера следует руководствоваться рекомендованным порядком (см. Оперативные обновления для Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)).
- Содержимое диска обновления размещено в репозитории аналогично тому, как описано в Настройка FTP-репозитория.
Порядок обновления узлов
Обновление узлов кластера, работающих на ОС Astra Linux Special Edition 1.6, выполняется пакетным менеджером apt. Для того чтобы сохранить обслуживание клиентов облака во время обновления его узлов, необходимо обновлять узлы в следующем порядке:
- узлы виртуализации по очереди;
- front-end (если они развернуты отдельно от узлов виртуализации).
Подготовка узла виртуализации
Для обновления узла виртуализации он должен быть выведен в режим обслуживания. Для этого:
- Войти в веб-интерфейс администрирования облака.
- Перенести все работающие ВМ с этого узла на другие узлы.
- Перейти в Infrastructure — Hosts.

- Отметить нужный узел из списка доступных и нажать в верхнем меню кнопку Offline.

Обновление
Войти в командную строку узла под учетной записью <local-admin> и выполнить команды:
sudo apt update
sudo apt dist-upgrade
После окончания установки пакетов перезагрузить узел.
Включение узла
- Перейти в интерфейс управления облаком.
- Перейти в Infrastructure — Hosts.

- Отметить нужный узел из списка и нажать кнопку Enable в верхнем меню.

Дождаться статуса ON для данного узла. - Перенести на него ВМ и убедиться в их работоспособности.
Повторить порядок обновления для следующего узла виртуализации.
Обновление front-end
Если не используется RAFT, то на время перезагрузки front-end в ходе обновления доступ к облаку и управление им будет прервано.
Если настроены несколько front-end и они работают вместе в конфигурации RAFT, выполнять их обновление следует по очереди.
Войти в командную строку front-end под учетной записью
<local-admin>и выполнить команды:sudo cp /etc/apache2/sites-available/000-default.conf ./000-default-BKP.conf # и файл с плавающим адресом, если есть RAFT sudo cp /etc/one/oned.conf ./oned-BKP.conf sudo -u postgres /usr/bin/pg_dump --dbname=onedb --format=plain --blobs --verbose --clean --create --file="/tmp/leader_db.backup"CODEДалее выполнить следующие команды:
sudo apt update sudo apt dist-upgradeCODEВо время обновления будет задан вопрос о замене файла
/etc/one/oned.confна новую версию. Требуется ответить утвердительно на замену всех файлов конфигурации (будут заменены на новые из пакета обновления) и после выполнить следующие шаги:Выполнить редактирование файла
/etc/one/oned.conf, внести данные из резервных копий в блоки RAFT (если есть) и DB:Пример блока RAFT
FEDERATION = [ MODE = "STANDALONE", ZONE_ID = 0, SERVER_ID = <ID>, MASTER_ONED = "" ] RAFT = [ LOG_RETENTION = 500000, LOG_PURGE_TIMEOUT = 600, ELECTION_TIMEOUT_MS = 2500, BROADCAST_TIMEOUT_MS = 500, #rbt: change from 2000 to 0, official recommendation XMLRPC_TIMEOUT_MS = 0 ] # Executed when a server transits from follower->leader # BEGIN RAFT_LEADER_HOOK enabled by ansible raft playbook RAFT_LEADER_HOOK = [ COMMAND = "raft/vip.sh", ARGUMENTS = "leader br1 192.168.56.100/24" ] # Executed when a server transits from leader->follower # BEGIN RAFT_FOLLOWER_HOOK enabled by ansible raft playbook RAFT_FOLLOWER_HOOK = [ COMMAND = "raft/vip.sh", ARGUMENTS = "follower br1 192.168.56.100/24" ]CODEПример блока DB
DB = [ BACKEND = "pgsql", SERVER = "localhost", PORT = 5432, USER = "onedbuser", PASSWD = "12345678", DB_NAME = "onedb" ]CODEПерезагрузить сервисы
apache2,opennebula,unicorn-opennebula:sudo systemctl restart apache2 opennebula unicorn-opennebulaCODEПроверить доступность сервиса в браузере (если front-end один) или в консоли
onezone, если используется RAFT:sudo systemctl status opennebula unicorn-opennebula # смотрим статус служб front-end sudo onezonoe show 0 # смотрим статус обновлённого узла front-end в RAFTCODE
- После окончания установки пакетов перезагрузить узел.
Если настроены несколько front-end и они работают вместе в конфигурации RAFT, перед переходом к обновлению следующей машины следует убедиться, что предыдущая корректно вернулась в зону, выполнив:
sudo onezone show 0
Если статус машины follower или leader, можно переходить к обновлению следующей.