BSS. Руководство администратора: различия между версиями
Материал из Флора AI
KorolkovS (обсуждение | вклад) (изменения касательно Apscheduler) |
|||
| (не показано 9 промежуточных версий 2 участников) | |||
| Строка 2: | Строка 2: | ||
===== '''Общее описание''' ===== | ===== '''Общее описание''' ===== | ||
Сервис Backup Service System (BSS) предназначен для резервного копирования данных сервисов Флора AI. | Сервис Backup Service System (BSS) предназначен для резервного копирования данных сервисов Флора AI. | ||
===== '''Термины и определения''' ===== | ===== '''Термины и определения''' ===== | ||
| Строка 8: | Строка 9: | ||
===== '''Системные требования''' ===== | ===== '''Системные требования''' ===== | ||
Для нормальной работы сервиса необходимо обеспечить не менее 2 потоков CPU | Для нормальной работы сервиса необходимо обеспечить не менее 2 потоков CPU >= 2.20 GHz. | ||
Оперативной памяти необходимо не менее | |||
Оперативной памяти необходимо не менее 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> | ** <code>/opt/bss/inupdate -b</code> – обновить до последней beta версии; | ||
** <code>/opt/bss/inupdate -r</code> | ** <code>/opt/bss/inupdate -r</code> – обновить до последней release версии; | ||
** <code>/opt/bss/inupdate -n</code> | ** <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> | * Полное описание всех команд 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. Сервис не требует остановки и возвращается в актуальное состояние после обновления. | ||
Не забудьте запустить сервис и включить в автозапуск в системе: | Не забудьте запустить сервис и включить в автозапуск в системе: | ||
| Строка 40: | Строка 42: | ||
<code>systemctl status bss.service</code> | <code>systemctl status bss.service</code> | ||
Разрешите доступ к порту | Разрешите доступ к порту 6199 на нужном интерфейсе по протоколу tcp. | ||
===== '''Конфигурирование параметров сервиса''' ===== | ===== '''Конфигурирование параметров сервиса''' ===== | ||
Настройка параметров сервиса bss производится в файле /opt/bss/config.json | Настройка параметров сервиса 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/" | ||
|- | |- | ||
|logs.backups | |logs.backups | ||
|10 | |10 | ||
|Количество файлов ротации | |Количество файлов ротации. | ||
|- | |- | ||
|logs.maxSize | |logs.maxSize | ||
|5242880 | |5242880 | ||
|Максимальный размер файла в байтах, триггер для ротации | |Максимальный размер файла в байтах, триггер для ротации. | ||
|- | |||
|local_destination | |||
|"/tmp" | |||
|Директория хранения резервных копий. | |||
|- | |||
|cleanup_time | |||
|"0 20 * * *" | |||
|Время старта очистки устаревших копий. | |||
|- | |||
| colspan="3" |'''Раздел 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 | |||
|Глубина хранения резервных копий в сутках. | |||
|- | |- | ||
| | | colspan="3" |'''Раздел mirror''' — серверы, на которые будут распространяться готовые резервные копии, и параметры работы lsyncd. | ||
| | |- | ||
|" | |mirror.logfile | ||
|"logs/sync.log" | |||
|Расположение лог файла синхронизации. | |||
|- | |||
|mirror.statusFile | |||
|"logs/sync.status" | |||
|Расположение файла статуса lsyncd. | |||
|- | |||
|mirror.nodes | |||
|{"1.2.3.4":"/storage/backups"} | |||
|Ноды, на которые с мастер-сервера будут распространяться изменения. В словаре IP-адрес и путь хранения зеркала бэкап-сервера. Серверов может быть несколько. Для каждого должен быть настроен SSH-доступ по ключу. | |||
|} | |} | ||
===== '''Сбор данных об ошибках''' ===== | ===== '''Сбор данных об ошибках''' ===== | ||
Логи сервиса по умолчанию находятся в файле /opt/ | Логи сервиса по умолчанию находятся в файле /opt/bss/logs/log.txt | ||
Текущая версия от 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? необходим для обновления, при отсутствующем прямом подключении к интернету)
- echo -n
При обновлении следующий список файлов и папок сохраняется: .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. Команда деинсталлирует сервис и удалит рабочий каталог, включая все установленные модели.