Обновление

Перед началом обновления Спектр S3 убедитесь в наличии обновлённых дистрибутивов Спектр S3 и архива с новой версией, расположенного в /root на серверах хранения и Спектр S3.

Обновление s3gateway-ostor-server

Для обновления s3gateway-ostor-server:

  1. На серверах хранения остановите и удалите из автозагрузки службу s3gateway-ostor-server:

    systemctl stop s3gateway-ostor-server.service
    systemctl disable s3gateway-ostor-server.service
  2. Удалите пакет s3gateway-ostor-server:

    dnf remove -y s3gateway-ostor
  3. Установите новую версию пакета s3gateway-ostor-server:

    cd /root
    tar -xf S3Gateway-distrib-*.tar.gz
    dnf install -y /root/distrib/files/rpm/s3gateway-ostor-*.rpm
  4. На серверах хранения включите и добавьте в автозагрузку службу s3gateway-ostor-server:

    systemctl enable --now s3gateway-ostor-server.service
    systemctl status s3gateway-ostor-server.service

Обновление Спектр S3

Для обновления Спектр S3:

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

    pid=$(cat /var/run/keepalived.pid 2>/dev/null)
    [[ $? -eq 0 ]] || { printf 'no keepalived running\n' >&2; exit 0; }
    kill -USR1 $pid
    grep -E 'VRRP Instance|State' /tmp/keepalived.data

    Если сервер является BACKUP, вывод команды будет иметь следующий вид:

    VRRP Instance = skala-r.MDH.o
       State = BACKUP
       State = idle
       State = UP, RUNNING, no broadcase, loopback, no multicast
       State = UP, RUNNING
  2. Создайте резервную копию каталога приложения и NGINX:

    cp -ra /opt/skala-r/s3gateway /opt/skala-r/s3gateway_<version>
    cp -ra /etc/nginx/ssl/ /etc/nginx/ssl_<version>

    Здесь <version> — номер установленной версии Спектр S3.

  3. Остановите и отключите службы s3gateway на сервере:

    systemctl stop s3gateway-control-server.service
    systemctl stop s3gateway-compression-server.service
    systemctl stop s3gateway-proxy-server.service
    systemctl disable s3gateway-control-server.service
    systemctl disable s3gateway-compression-server.service
    systemctl disable s3gateway-proxy-server.service
  4. Удалите предыдущую версию s3gateway:

    dnf remove s3gateway-core.x86_64 s3gateway-ui.x86_64
    rm -fr /opt/skala-r/s3gateway
    systemctl reload nginx.service
  5. Установите новую версию s3gateway:

    cd /root
    tar -xf S3Gateway-distrib-*.tar.gz
    cd /root/distrib/files/rpm
    dnf install s3gateway-ui-*.rpm s3gateway-core-*.rpm
  6. Вручную исправьте файл конфигурации s3gateway.config.json, сравнивая значения со старой конфигурацией:

    • старая конфигурация — /opt/skala-r/s3gateway_<version>/s3gateway.config.json;

    • новая конфигурация — /opt/skala-r/s3gateway/s3gateway.config.json.

    В случае необходимости уточнения значения параметра s3_cluster_ip_address необходимо на одном из работающих серверов хранения выполнить команду:

    cat /var/lib/ostor/name
  7. Обновите системную БД:

    cd /opt/skala-r/s3gateway
    ./migrator
  8. Скопируйте сертификаты SSL из старой версии в новую:

    cp -a /opt/skala-r/s3gateway_<version>*/*.pem /opt/skala-r/s3gateway/
    cp -a /etc/nginx/ssl_<version>/* /etc/nginx/ssl/
    rm -rf /etc/nginx/ssl_<version>
  9. Запустите сервисы s3gateway:

    systemctl enable --now s3gateway-control-server.service
    systemctl enable --now s3gateway-compression-server.service
    systemctl enable --now s3gateway-proxy-server.service
    systemctl status s3gateway-control-server.service
    systemctl status s3gateway-compression-server.service
    systemctl status s3gateway-proxy-server.service
    systemctl reload nginx.service
  10. После успешного запуска служб убедитесь, что keepalived работает и VIP сможет переключиться на узел с обновлённым ПО:

    cd /etc/keepalived/scripts-skala-r/
    sh hcheck.sh
    echo ExitCode=$?

    Значение ExitCode должно быть равно нулю.

  11. Для переключения VIP на узел с обновлённым ПО, на других узлах Спектр S3 отключите одну из служб, например:

    systemctl stop s3gateway-proxy-server.service
  12. После этого на узле с обновлённым ПО проверьте наличие второго IP-адреса и состояние службы keepalived.

    ip -br a
    pid=$(cat /var/run/keepalived.pid 2>/dev/null)
    [[ $? -eq 0 ]] || { printf 'no keepalived running\n' >&2; exit 0; }
    kill -USR1 $pid
    grep -E 'VRRP Instance|State' /tmp/keepalived.data

    Значение параметра State должно быть Master.