BSS. Руководство администратора: различия между версиями
Материал из Флора AI
Нет описания правки |
KorolkovS (обсуждение | вклад) (изменения касательно Apscheduler) |
||
| (не показано 5 промежуточных версий 2 участников) | |||
| Строка 9: | Строка 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. Сервис не требует остановки и возвращается в актуальное состояние после обновления. | ||
Не забудьте запустить сервис и включить в автозапуск в системе: | Не забудьте запустить сервис и включить в автозапуск в системе: | ||
| Строка 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/" | ||
|- | |- | ||
|logs.backups | |logs.backups | ||
|10 | |10 | ||
|Количество файлов ротации | |Количество файлов ротации. | ||
|- | |- | ||
|logs.maxSize | |logs.maxSize | ||
|5242880 | |5242880 | ||
|Максимальный размер файла в байтах, триггер для ротации | |Максимальный размер файла в байтах, триггер для ротации. | ||
|- | |- | ||
|local_destination | |local_destination | ||
|"/tmp" | |"/tmp" | ||
|Директория хранения резервных копий | |Директория хранения резервных копий. | ||
|- | |- | ||
|cleanup_time | |cleanup_time | ||
|"20 | |"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-ключу. | ||
|- | |- | ||
|servers.remote_paths | |servers.remote_paths | ||
| Строка 88: | Строка 90: | ||
|- | |- | ||
|servers.schedule_time | |servers.schedule_time | ||
|"19 | |"0 19 * * *" | ||
|Время старта задания резервного копирования. Для каждого сервера время | |Время старта задания резервного копирования. Для каждого сервера целесообразно установить разное время. | ||
|- | |- | ||
|servers.retention_days | |servers.retention_days | ||
| Строка 95: | Строка 97: | ||
|Глубина хранения резервных копий в сутках. | |Глубина хранения резервных копий в сутках. | ||
|- | |- | ||
| colspan="3" |'''Раздел mirror | | colspan="3" |'''Раздел mirror''' — серверы, на которые будут распространяться готовые резервные копии, и параметры работы lsyncd. | ||
|- | |- | ||
|mirror.logfile | |mirror.logfile | ||
| | |"logs/sync.log" | ||
|Расположение лог файла синхронизации | |Расположение лог файла синхронизации. | ||
|- | |- | ||
|mirror. | |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 адрес и путь хранения зеркала бэкап сервера. Серверов может быть несколько. Для каждого должен быть настроен | |Ноды, на которые с мастер-сервера будут распространяться изменения. В словаре 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? необходим для обновления, при отсутствующем прямом подключении к интернету)
- 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. Команда деинсталлирует сервис и удалит рабочий каталог, включая все установленные модели.