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

Общие сведения об обновлении SpaceVM

Процедуру установки обновлений рекомендуется выполнять на контроллере после проверки доступности всех узлов SpaceVM. При запуске установки обновлений на контроллере SpaceVM происходит синхронное обновление всех доступных контроллеру узлов SpaceVM. Требуется руководствоваться той версией программной документации (встроенной или с официального сайта по ссылке), которая соответствует установленной версии ПО.

Внимание!

Рекомендуется производить все работы с обновлениями SpaceVM на контроллере, убедившись в доступности всех узлов SpaceVM.

В случае отсутствия доступа к репозиториям SpaceVM, расположенным по адресу update.spacevm.ru, необходимо обеспечить такой доступ или развернуть собственный сервер обновлений с репозиториями SpaceVM. Как развернуть собственный сервер обновлений с репозиториями SpaceVM смотрите в разделе Использование собственного сервера обновлений.

Внимание!

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

Контроль и учет версий SpaceVM

Релизы имеют семантическую систему нумерации релизов, в которой каждый номер версии состоит из трех чисел, разделенных точками, например, 6.1.0.

При каждом обновлении номер версии ПО увеличивается по следующим правилам:

  1. Первое число (х, мажорный релиз) - при значительных изменениях архитектуры ПО, возможно, без сохранения обратной совместимости.

  2. Второе число (y, минорный релиз) - при добавлении большого объема новых возможностей ПО.

  3. Третье число (z, патч релиз) - внесение исправлений в предыдущую версию ПО, с сохранением обратной совместимости.

Порядок обновлений

Все обновления выполняются последовательно, начиная снизу вверх. Сначала обновляется версия патча X.Y.Z, далее минорная версия X.Y.Z, далее мажорная версия X.Y.Z.

В общем случае порядок действий следующий:

  1. Обновить текущую версию ПО до последней версии патча в текущем репозитории (см. установка патчей).

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

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

Последовательность обновлений

Необходимо соблюдать последовательность обновлений. Запрещено обновлять минорные и мажорные версии, пропуская нумерацию. То есть нельзя обновляться, например, с версии 6.2 сразу до версии 6.4. Также крайне рекомендуется перед обновлением минорной версии обновиться до последней доступной на данный момент версии патча. Это связано с необходимостью последовательного применения миграций базы данных и возможных подготовительных этапов перед минорным обновлением.

Стабильность обновлений

Каждый последующий релиз стабильнее предыдущего в общем случае, так как обычно больше времени между релизами тратится на исправление ошибок и расширение вариаций поведения ПО, чем на добавление нового функционала. Поэтому обновляться всегда рекомендуется до последней версии. В случае выявления ошибок после обновления рекомендуется сразу обратиться к вендору для выпуска оперативного патча.

Обновляться или нет

Если пользователя всё устраивает и нужный функционал работает корректно, то обновляться не стоит. В остальных случаях рекомендуем обновиться до последней версии.

Текущий цикл жизни ПО предусматривает поддержку релизов в течение года.

Базовая версия ПО

Берётся из версии пакета utils, как базового для любого типа инсталляции.

Определение версии SpaceVM

Версию установленного SpaceVM можно узнать через Web-интерфейс или при помощи CLI.

Определение версии в Web-интерфейсе контроллера

Определить версию установленного SpaceVM можно несколькими способами:

  1. В правом нижнем углу Web-интерфейса указана версия SpaceVM.

  2. Перейти в раздел Настройки - Контроллер основного меню, далее выбрать пункт ПО и Сервисы - ПО. В открывшемся окне будут указаны версия контроллера SpaceVM и версии основных модулей.

  3. Перейти в раздел Серверы основного меню, выбрать сервер, версию которого необходимо узнать. В открывшемся окне выбрать пункт ПО и Сервисы - ПО. В данном разделе будут указаны версия SpaceVM и версии основных модулей.

Определение версии в Web-интерфейсе узла

Чтобы определить версию SpaceVM, необходимо перейти в раздел Версия ПО основного меню и в открывшемся окне будут указаны версия SpaceVM и версии основных модулей.

Определение версии в CLI

Определить версию SpaceVM можно, выполнив в CLI следующую команду:

version
В результате выполнения данной команды будут указаны версия контроллера SpaceVM и версии основных модулей.

Пример вывода команды version для определения версии контроллера:

SpaceVM V6.0.3, LLC “DACOM M”

controller-app: 6.0.3-3148

controller-env: 6.0.3-1090

controller-ui: 6.0.3-1075

cli-app: 6.0.3-1128

cli-env: 6.0.3-1024

node-app: 6.0.3-1057

node-env: 6.0.3-874

node-ui: 6.0.3-135

docs: 6.0.3-1217

utils: 6.0.3-1425

Пример вывода команды version для определения версии узла:

SpaceVM V6.0.3, LLC “DACOM M”

cli-app: 6.0.3-1128

cli-env: 6.0.3-1024

node-app: 6.0.3-1057

node-env: 6.0.3-874

node-ui: 6.0.3-135

utils: 6.0.3-1425

Описание пакетов

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

docs - документация в Web-интерфейсе. Есть только на контроллере. На официальный сайт выкладывается последняя документация из общей ветки разработки каждый раз при сборке пакета.

cli-env - зависимости CLI.

cli-app - CLI.

node-env - зависимости узла.

node-app - супервизор и Web-сервер узла.

node-ui - Web-интерфейс узла.

controller-env - зависимости контроллера.

controller-app - супервизор и Web-сервер контроллера.

controller-ui - Web-интерфейс контроллера.

Механизм обновления SpaceVM

Во время обновления SpaceVM выполняет следующие действия:

  • Блокируется Web-интерфейс с выводом сообщения о том, что идет процесс обновления.
  • Происходит повторная проверка наличия обновлений.
  • Если происходит обновление контроллера, то останавливаются все сервисы. В том числе, перестают работать Высокая доступность и Динамическое распределение ресурсов между серверами.
  • Обновляется пакетная база SpaceVM.
  • Происходит автотестирование системы.
  • После завершения обновления контроллера запускаются все сервисы. Высокая доступность и Динамическое распределение ресурсов работают в штатном режиме.
  • Возобновляется штатная работа Web-интерфейса SpaceVM.

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

Перед обновлением необходимо убедиться, что все локальные и сетевые хранилища, подключенные к узлам, функционируют исправно. В случае, если на каких-то узлах присутствуют недоступные каталоги сетевых хранилищ или пулов данных (каталоги, которые не отвечают при обращении, например, по команде ls), установка на этом узле может остановиться до решения проблемы, или может потребоваться перезагрузка узла. Признак подобных проблем -- это остановка процесса обновления на стадии или после загрузки пакетов. Например, такое возможно при смонтированных ресурсах NFS и недоступном NFS-сервере или при неисправной кластерной ФС типа GFS2. В случае возникновения такой проблемы следует проверить, что это именно тот случай, а не прерванное интернет-соединение,
мешающее закачке пакетов обновлений. Характерный признак -- это множество процессов на узле в D-state (можно увидеть из shell командой ps -ax | grep \ D). Следует определить неотвечающие каталоги и решить проблему по месту.

Безопасность обновлений

Для обеспечения безопасности используется проверка целостности пакетов в репозиториях SpaceVM на основе хеш-суммы, и файл, содержащий контрольные суммы, подписан закрытым ключом с алгоритмом шифрования RSA 4096. При обновлении производится сверка хеш-сумм и проверка подписи с использованием открытого ключа, который поставляется в комплекте с SpaceVM. Таким образом, при повреждении пакета или его подмены установка выполнена не будет.