Действия

BSS. Руководство администратора: различия между версиями

Материал из Флора AI

Нет описания правки
(изменения касательно Apscheduler)
 
(не показано 5 промежуточных версий 2 участников)
Строка 9: Строка 9:


===== '''Системные требования''' =====
===== '''Системные требования''' =====
Для нормальной работы сервиса необходимо обеспечить не менее 2 потоков CPU >= 2.20GHz.
Для нормальной работы сервиса необходимо обеспечить не менее 2 потоков CPU >= 2.20 GHz.  
Оперативной памяти необходимо не менее 2Gb.
 
Оперативной памяти необходимо не менее 2 GB.
 




===== '''Установка/обновление сервиса''' =====
===== '''Установка/обновление сервиса''' =====
[https://cloud.connect2ai.net/index.php/apps/files/?dir=/bss&fileid=581 Дистрибутив] распространяется в виде установочных пакетов для окружения и сервиса. Загрузите установочные пакеты на сервер и выполните команды для Вашей системы в каталоге с пакетом.
[https://cloud.connect2ai.net/index.php/apps/files/?dir=/bss&fileid=581 Дистрибутив] распространяется в виде установочных пакетов для окружения и сервиса. Загрузите установочные пакеты на сервер и выполните команды для вашей системы в каталоге с пакетом.


Перед установкой непосредственно сервиса необходимо [[PVE. Установка сервисного пакета окружения|установить сервисный пакет окружения]].
Перед установкой непосредственно сервиса необходимо [[PVE. Установка сервисного пакета окружения|установить сервисный пакет окружения]].
Строка 20: Строка 22:
* Загрузить последнюю версию продукта  <code>curl -s "<nowiki>https://repo.connect2ai.net/api/bss/new</nowiki>" --user '[user]:[pass]' 2>&1 | bash</code> или в интерактивном режиме <code>bash -c "$(curl -s <nowiki>https://repo.connect2ai.net/api/bss</nowiki> --user '[user]:[pass]' 2>&1)"</code>.
* Загрузить последнюю версию продукта  <code>curl -s "<nowiki>https://repo.connect2ai.net/api/bss/new</nowiki>" --user '[user]:[pass]' 2>&1 | bash</code> или в интерактивном режиме <code>bash -c "$(curl -s <nowiki>https://repo.connect2ai.net/api/bss</nowiki> --user '[user]:[pass]' 2>&1)"</code>.
* Обновить BSS <code>/opt/bss/inupdate</code> в интерактивном режиме. Или запустить с ключом:
* Обновить BSS <code>/opt/bss/inupdate</code> в интерактивном режиме. Или запустить с ключом:
** <code>/opt/bss/inupdate -b</code> - обновить до последней beta версии;
** <code>/opt/bss/inupdate -b</code> обновить до последней beta версии;
** <code>/opt/bss/inupdate -r</code> - обновить до последней release версии;
** <code>/opt/bss/inupdate -r</code> обновить до последней release версии;
** <code>/opt/bss/inupdate -n</code> - обновить до последней версии (не важно beta или release).
** <code>/opt/bss/inupdate -n</code> обновить до последней версии (неважно beta или release).
* Проверить актуальную версию продукта <code>curl -s "<nowiki>https://repo.connect2ai.net/api/bss/version</nowiki></code>.
* Проверить актуальную версию продукта <code>curl -s "<nowiki>https://repo.connect2ai.net/api/bss/version</nowiki></code>.
* Посмотреть лог изменений  <code>curl -s "<nowiki>https://repo.connect2ai.net/api/bss/changelog</nowiki>" --user '[user]:[pass]'</code>.
* Посмотреть лог изменений  <code>curl -s "<nowiki>https://repo.connect2ai.net/api/bss/changelog</nowiki>" --user '[user]:[pass]'</code>.
* Полное описание всех команд API репозитория можно найти по ссылке '''https://repo.connect2ai.net/api'''. <code>[user]:[pass]</code> - это тот же логин и пароль, что и от [https://cloud.connect2ai.net '''Nextcloud'''.]
* Полное описание всех команд API репозитория можно найти по ссылке '''https://repo.connect2ai.net/api'''. <code>[user]:[pass]</code> это тот же логин и пароль, что и от [https://cloud.connect2ai.net '''Nextcloud'''.]
* В папке с продуктом можно добавить 2 файла конфигурации (допускается один общий файл на все продукты в папке с окружением /opt/pve/):
* В папке с продуктом можно добавить 2 файла конфигурации (допускается один общий файл на все продукты в папке с окружением /opt/pve/):
** echo -n <code>"[user]:[pass]"</code>  > /opt/bss/.userapi (это файл авторизации в API, нужен для обновления)
** echo -n <code>"[user]:[pass]"</code>  > /opt/bss/.userapi (это файл авторизации в API, нужен для обновления)
** echo -n <code>"<nowiki>http://example.com:3128</nowiki> [user] [password]"</code>  > /opt/bss/.proxy (это файл конфигурации proxy необходим для обновления, при отсутствующем прямом подключение к интернету)
** echo -n <code>"<nowiki>http://example.com:3128</nowiki> [user] [password]"</code>  > /opt/bss/.proxy (это файл конфигурации proxy? необходим для обновления, при отсутствующем прямом подключении к интернету)


При обновление следующий список файлов и папок сохраняется: .userapi, .proxy, logs, nnets, config.json, cache, pretrained, pve, data. Сервис не требует остановки и возвращается в актуальное состояние после обновления.
При обновлении следующий список файлов и папок сохраняется: .userapi, .proxy, logs, nnets, config.json, cache, pretrained, pve, data. Сервис не требует остановки и возвращается в актуальное состояние после обновления.


Не забудьте запустить сервис и включить в автозапуск в системе:
Не забудьте запустить сервис и включить в автозапуск в системе:
Строка 44: Строка 46:


===== '''Конфигурирование параметров сервиса''' =====
===== '''Конфигурирование параметров сервиса''' =====
Настройка параметров сервиса bss производится в файле /opt/bss/config.json. Кроме настройки параметров необходимо для пользователей (servers.username) обеспечить ssh доступ по ключу. Бэкап сервер по ssh согласно расписаниям раз в сутки забирает с рабочих серверов папки с данными и складывает их в виде tar.gz архивов в локальную директорию. Также через lsyncd готовые архивы зеркалируются на другие сервера из раздела mirror конфига.
Настройка параметров сервиса bss производится в файле /opt/bss/config.json. Кроме настройки параметров, необходимо для пользователей (servers.username) обеспечить ssh-доступ по ключу. Бэкап-сервер по ssh согласно расписаниям раз в сутки забирает с рабочих серверов папки с данными и складывает их в виде tar.gz-архивов в локальную директорию. Также через lsyncd готовые архивы зеркалируются на другие сервера из раздела mirror конфига.


Описание параметров приведено в таблице.
Описание параметров приведено в таблице.
{| class="wikitable"
{| class="wikitable"
|+
|+
!Параметр
!'''Параметр'''
!По умолчанию
!'''По умолчанию'''
!Назначение
!'''Назначение'''
|-
|-
|logs.path
|logs.path
|"logs/"
|"logs/"
|Дерриктория для хранения логов. Примеры абсолютного пути: "/var/log/bss/"
|Директория для хранения логов. Примеры абсолютного пути: "/var/log/bss/"
|-
|-
|logs.backups
|logs.backups
|10
|10
|Количество файлов ротации
|Количество файлов ротации.
|-
|-
|logs.maxSize
|logs.maxSize
|5242880
|5242880
|Максимальный размер файла в байтах, триггер для ротации
|Максимальный размер файла в байтах, триггер для ротации.
|-
|-
|local_destination
|local_destination
|"/tmp"
|"/tmp"
|Директория хранения резервных копий
|Директория хранения резервных копий.
|-
|-
|cleanup_time
|cleanup_time
|"20:00"
|"0 20 * * *"
|Время старта очистки устаревших копий
|Время старта очистки устаревших копий.
|-
|-
| colspan="3" |'''Раздел servers -''' серверы с данными
| colspan="3" |'''Раздел servers''' серверы с данными.
|-
|-
|servers.ip_address
|servers.ip_address
|"1.2.3.4"
|"1.2.3.4"
|Адрес сервера, данные сервисов которого необходимо резервировать. Серверов в списке может быть несколько  
|Адрес сервера, данные сервисов которого необходимо резервировать. Серверов в списке может быть несколько.
|-
|-
|servers.username
|servers.username
|"root"
|"root"
|Пользователь сервера с правами на резервируемые данные. Для этого пользователя должен быть прописан доступ по ssh ключу.
|Пользователь сервера с правами на резервируемые данные. Для этого пользователя должен быть прописан доступ по SSH-ключу.
|-
|-
|servers.remote_paths
|servers.remote_paths
Строка 88: Строка 90:
|-
|-
|servers.schedule_time
|servers.schedule_time
|"19:00"
|"0 19 * * *"
|Время старта задания резервного копирования. Для каждого сервера время лучше изменить.
|Время старта задания резервного копирования. Для каждого сервера целесообразно установить разное время.
|-
|-
|servers.retention_days
|servers.retention_days
Строка 95: Строка 97:
|Глубина хранения резервных копий в сутках.
|Глубина хранения резервных копий в сутках.
|-
|-
| colspan="3" |'''Раздел mirror -''' сервера на которые будут распространяться готовые резервные копии, и параметры работы lsyncd
| colspan="3" |'''Раздел mirror''' — серверы, на которые будут распространяться готовые резервные копии, и параметры работы lsyncd.
|-
|-
|mirror.logfile
|mirror.logfile
|
|"logs/sync.log"
|Расположение лог файла синхронизации
|Расположение лог файла синхронизации.
|-
|-
|mirror.logfile
|mirror.statusFile
|logs/sync.status
|"logs/sync.status"
|Расположение файла статуса lsyncd
|Расположение файла статуса lsyncd.
|-
|-
|mirror.nodes
|mirror.nodes
|{"1.2.3.4":"/storage/backups"}
|{"1.2.3.4":"/storage/backups"}
|Ноды на которые с мастер-сервера будут распространяться изменения. В словаре IP адрес и путь хранения зеркала бэкап сервера. Серверов может быть несколько. Для каждого должен быть настроен ssh доступ по ключу
|Ноды, на которые с мастер-сервера будут распространяться изменения. В словаре IP-адрес и путь хранения зеркала бэкап-сервера. Серверов может быть несколько. Для каждого должен быть настроен SSH-доступ по ключу.
|}
|}



Текущая версия от 14:55, 25 августа 2025

BSS. Руководство администратора

Общее описание

Сервис Backup Service System (BSS) предназначен для резервного копирования данных сервисов Флора AI.


Термины и определения

Сервис Backup Service System (BSS) – сервис резервного копирования.


Системные требования

Для нормальной работы сервиса необходимо обеспечить не менее 2 потоков CPU >= 2.20 GHz.

Оперативной памяти необходимо не менее 2 GB.


Установка/обновление сервиса

Дистрибутив распространяется в виде установочных пакетов для окружения и сервиса. Загрузите установочные пакеты на сервер и выполните команды для вашей системы в каталоге с пакетом.

Перед установкой непосредственно сервиса необходимо установить сервисный пакет окружения.

  • Установка/обновление BSS осуществляется скриптом chmod +x ./bss-<версия>-<релиз>.sh && ./bss-<версия>-<релиз>.sh -i с правами администратора. Список всех ключей инсталлятора можно посмотреть, запустив инсталлятор ./bss-<версия>-<релиз>.sh без ключей.
  • Загрузить последнюю версию продукта curl -s "https://repo.connect2ai.net/api/bss/new" --user '[user]:[pass]' 2>&1 | bash или в интерактивном режиме bash -c "$(curl -s https://repo.connect2ai.net/api/bss --user '[user]:[pass]' 2>&1)".
  • Обновить BSS /opt/bss/inupdate в интерактивном режиме. Или запустить с ключом:
    • /opt/bss/inupdate -b – обновить до последней beta версии;
    • /opt/bss/inupdate -r – обновить до последней release версии;
    • /opt/bss/inupdate -n – обновить до последней версии (неважно beta или release).
  • Проверить актуальную версию продукта curl -s "https://repo.connect2ai.net/api/bss/version.
  • Посмотреть лог изменений curl -s "https://repo.connect2ai.net/api/bss/changelog" --user '[user]:[pass]'.
  • Полное описание всех команд API репозитория можно найти по ссылке https://repo.connect2ai.net/api. [user]:[pass] – это тот же логин и пароль, что и от Nextcloud.
  • В папке с продуктом можно добавить 2 файла конфигурации (допускается один общий файл на все продукты в папке с окружением /opt/pve/):
    • echo -n "[user]:[pass]" > /opt/bss/.userapi (это файл авторизации в API, нужен для обновления)
    • echo -n "http://example.com:3128 [user] [password]" > /opt/bss/.proxy (это файл конфигурации proxy? необходим для обновления, при отсутствующем прямом подключении к интернету)

При обновлении следующий список файлов и папок сохраняется: .userapi, .proxy, logs, nnets, config.json, cache, pretrained, pve, data. Сервис не требует остановки и возвращается в актуальное состояние после обновления.

Не забудьте запустить сервис и включить в автозапуск в системе:

sudo systemctl enable bss.service && sudo systemctl start bss.service

Удостоверьтесь, что сервис стартовал:

systemctl status bss.service

Разрешите доступ к порту 6199 на нужном интерфейсе по протоколу tcp.


Конфигурирование параметров сервиса

Настройка параметров сервиса bss производится в файле /opt/bss/config.json. Кроме настройки параметров, необходимо для пользователей (servers.username) обеспечить ssh-доступ по ключу. Бэкап-сервер по ssh согласно расписаниям раз в сутки забирает с рабочих серверов папки с данными и складывает их в виде tar.gz-архивов в локальную директорию. Также через lsyncd готовые архивы зеркалируются на другие сервера из раздела mirror конфига.

Описание параметров приведено в таблице.

Параметр По умолчанию Назначение
logs.path "logs/" Директория для хранения логов. Примеры абсолютного пути: "/var/log/bss/"
logs.backups 10 Количество файлов ротации.
logs.maxSize 5242880 Максимальный размер файла в байтах, триггер для ротации.
local_destination "/tmp" Директория хранения резервных копий.
cleanup_time "0 20 * * *" Время старта очистки устаревших копий.
Раздел servers — серверы с данными.
servers.ip_address "1.2.3.4" Адрес сервера, данные сервисов которого необходимо резервировать. Серверов в списке может быть несколько.
servers.username "root" Пользователь сервера с правами на резервируемые данные. Для этого пользователя должен быть прописан доступ по SSH-ключу.
servers.remote_paths ["/tmp/xxx"] Список каталогов и файлов для резервирования с полными путями.
servers.schedule_time "0 19 * * *" Время старта задания резервного копирования. Для каждого сервера целесообразно установить разное время.
servers.retention_days 7 Глубина хранения резервных копий в сутках.
Раздел mirror — серверы, на которые будут распространяться готовые резервные копии, и параметры работы lsyncd.
mirror.logfile "logs/sync.log" Расположение лог файла синхронизации.
mirror.statusFile "logs/sync.status" Расположение файла статуса lsyncd.
mirror.nodes {"1.2.3.4":"/storage/backups"} Ноды, на которые с мастер-сервера будут распространяться изменения. В словаре IP-адрес и путь хранения зеркала бэкап-сервера. Серверов может быть несколько. Для каждого должен быть настроен SSH-доступ по ключу.


Сбор данных об ошибках

Логи сервиса по умолчанию находятся в файле /opt/bss/logs/log.txt


Удаление

Для удаления выполните команду: /opt/bss/uninstall. Команда деинсталлирует сервис и удалит рабочий каталог, включая все установленные модели.