● Серверное резервное копирование

Копии, которые нельзя потерять и нельзя стереть

Homyak — это агенты, которые делают резервные копии серверов, и центральный сервер хранения, который проверяет целостность данных при приёме и хранении. Архитектура без лишнего: только то, что отвечает за сохранность копий.

SHA-256 контроль целостности
WORM режим «Копилка»
REST API-first, без UI
Zabbix · Prometheus из коробки

// strengths

Сильные стороны платформы

Семь принципов, на которых построен Homyak — от платформенной независимости до минимальной поверхности атаки.

⛓️
01

Платформенная независимость

Серверная часть и агенты написаны на Go и собираются под Linux и Windows из единой кодовой базы. Сервер хранения не привязан к ОС защищаемых узлов — агенты специализируются под платформу (KVM/libvirt, MS SQL), протокол общий.

go · linux · windows
🐷
02

Режим «Копилка» (WORM)

Данные попадают в хранилище без возможности удаления со стороны агента. В протоколе нет операции стирания принятой копии: занятое имя файла отклоняется, перезапись невозможна. Удаление — только по серверной retention-политике или решением оператора.

append-only · write-once
🛡️
03

Контроль и целостность хранения

Контрольная сумма SHA-256 проверяется при приёме копии и периодически пересчитывается фоновым сканером уже сохранённых данных. Каждый файл сопровождается манифестом с суммой и описанием. Найденные расхождения попадают в integrity-лог и влияют на состояние здоровья.

sha-256 · manifest · rescan
🎛️
04

Гибкость в настройках

Конфигурация — YAML, секреты — в .env. Настраиваются расписания (cron), политики хранения, параллелизм приёма, отдельные хранилища под агентов, ротация логов. Поведение меняется конфигом, без пересборки.

yaml · .env · cron
🤖
05

Контроль ИИ-системами из коробки

Полностью машиночитаемый интерфейс: REST API о состоянии и структурные JSON-логи. Это позволяет ИИ-агентам и LLM-наблюдателям опрашивать систему, интерпретировать события целостности и принимать решения без человеко-ориентированных адаптеров.

rest · json-logs · machine-first
🚪
06

Без интерфейса — меньше атак

Отсутствие веб-интерфейса — осознанное преимущество. Нет фронтенда — нет лишней кодовой базы, нет классических веб-уязвимостей и, как следствие, низкий уровень векторов атаки. Управление — через API и конфиги.

headless · low attack surface
📈
07

Zabbix / Prometheus из коробки

Состояние агентов, heartbeat и здоровье сервера отдаются в формате, готовом к снятию метрик. Интеграция с Zabbix и Prometheus не требует доработок — мониторинг подключается сразу при развёртывании.

zabbix · prometheus · health
+

Технологичный дизайн

Инженерный подход в продукте и в подаче: предсказуемое поведение, явные ограничения, документированная архитектура и готовность к доработкам под специализированные задачи заказчика.

engineering-grade
// технологично

Режим «Копилка»: данные входят, но не выходят

«Копилка» — это модель хранения write-once. Агент только добавляет копии; удалить или подменить уже принятый файл он не может технически.

  • Финализация через rename. Файл собирается во временный .partial и атомарно фиксируется; повторная запись под занятым именем отклоняется.
  • Нет delete-операции для агента. Протокол агент→сервер не содержит запроса на стирание принятых данных.
  • Удаление — только политикой. Срок жизни задаётся серверным retention (expires_at); по умолчанию копия живёт бессрочно.
  • Скомпрометированный агент безопасен. Захват узла-источника не приводит к потере уже сохранённых копий.
storage · finalize
// приём копии: write-once
POST /api/v1/backups
   <file>.partial        # потоковая запись
   sha256 == manifest?   # сверка суммы
   rename .partial → file # атомарная фиксация

// повторная запись под тем же именем:
return ErrFileExists  // перезапись запрещена

// удаление доступно ТОЛЬКО серверу:
retention.expires_at  cleanup

// concept

Концепция решения

Разделение ответственности: агенты делают копии и передают их, сервер — проверяет, хранит и отдаёт состояние. Между ними — единый протокол.

01

Агент копирует

Специализированный агент снимает копию (KVM-домен, база MS SQL) и считает контрольную сумму.

02

Передача на сервер

Копия стримится на сервер хранения по защищённому протоколу с возобновлением загрузки.

03

Проверка и хранение

Сервер сверяет SHA-256, пишет манифест, фиксирует копилку и фоном перепроверяет данные.

04

Состояние по API

REST API и JSON-логи отдают здоровье, целостность и статус агентов — людям и ИИ-системам.

// functionality

Краткое описание функционала

Что система делает сегодня — компактный набор, сфокусированный на сохранности копий.

🗄️ Централизованное хранение

Единый сервер хранения принимает копии от заранее настроенных агентов, раскладывает их по агентам и ведёт индекс всех копий с манифестами.

🔁 Фоновый контроль целостности

Планировщик периодически пересчитывает суммы хранимых копий, фиксирует «тихую» порчу данных и отражает её в integrity-логе и в health.

📦 Консолидированный слепок (staging)

Отдельный сервис собирает «слепок» — по одной актуальной копии на каждое задание — в отдельный каталог с описью, как буфер для выгрузки вовне.

⏱️ Retention и политики хранения

Срок жизни копий задаётся политикой; просроченные удаляются сервером по расписанию. Без политики — бессрочное хранение (копилка).

🖥️ Агент KVM/libvirt

Резервное копирование виртуальных машин: live-режим и cold-copy выключенных ВМ, учёт UEFI/NVRAM, по расписанию.

🧱 Агент MS SQL

Копии баз Microsoft SQL Server через нативный BACKUP DATABASE, потоковая передача крупных баз, состояние заданий.

GET /api/v1/health
# машиночитаемое состояние — для ИИ и систем мониторинга
{
  "status": "degraded",
  "agents":    { "ok": 12, "stale": 1 },
  "integrity": { "problems": 0, "checked": 66 },
  "storage":   { "used_bytes": 184320000000 }
}

# снимается напрямую в Zabbix / Prometheus
# события целостности — в integrity.log (JSON)
// observability

Мониторинг и контроль — для машин

Homyak спроектирован так, чтобы за ним наблюдали автоматизированные системы, а не оператор у экрана.

  • REST API состояния — здоровье, целостность, статусы агентов, индекс копий.
  • Структурные JSON-логи с отдельным каналом целостности и ротацией.
  • Heartbeat агентов с детекцией «отвалившихся» источников.
  • Zabbix и Prometheus подключаются из коробки, без дополнительного кода.
  • ИИ-наблюдатели получают всё в машинном виде — без парсинга UI.

// extensibility

Готовность к доработкам под заказчика

Модульная архитектура (агенты ↔ общий протокол ↔ сервер хранения) позволяет добавлять новые типы агентов и бэкенды хранения под специализированные задачи.

Новые агенты

PostgreSQL, файловые деревья, произвольный command-output — добавляются как отдельные агенты поверх единого протокола.

Бэкенды хранения

v1 — файловое хранилище; архитектура заложена под расширение на объектное хранилище и ленту под требования заказчика.

Интеграции и выгрузка

Слепок staging и машинный API — точки интеграции с внешними системами архивирования и офсайт-хранением.

// contact

Вопросы, комментарии, обращения по продукту

Напишите нам — обсудим внедрение, доработки под вашу инфраструктуру и интеграции мониторинга. Документация и обновления — на homyak.interforum.su.

hello@inter-forum.org
Написать письмо →