Что такое Syncoid и чем он может быть полезен
Если вы используете ZFS на Linux или BSD, у вас могут быть наборы данных и снапшоты, которые нужно реплицировать между серверами.
Syncoid — это инструмент, который упрощает репликацию и бэкапы ZFS.
Зачем использовать Syncoid?
- Автоматическая репликация снапшотов — копирует снимки между наборами данных или серверами.
- Инкрементальные передачи — отправляются только изменения, экономя трафик.
- Простой CLI — не нужно писать сложные скрипты с
zfs send/receive
. - Работа с удалёнными хостами — встроенная поддержка SSH.
Пример: базовое использование Syncoid
Допустим, у вас есть источник tank/data
и вы хотите реплицировать его на удалённый сервер backup/data
:
syncoid tank/data root@backup-server:backup/data
Это сделает:
- Создаст снапшоты при необходимости.
- Отправит только изменения с последнего снапшота.
- Применит их на целевом наборе данных.
Расширенные возможности
- Cron jobs — автоматизация регулярной репликации.
- Политика хранения — сохранять только последние N снапшотов на целевой стороне.
- Dry-run — предварительный просмотр того, что будет отправлено.
Пример бекапа
#!/bin/bash
CONTAINER_NAME="mysql-db"
REMOTE_NAME="172.16.10.120"
REMOTE_USER="backup-lxd"
TOKEN="Your_TG_Token"
CHAT_ID="Your_ChatID"
ZFS_VOLUME="lxdpool/containers"
send_telegram_message() {
local message=$1
curl -s -X POST "https://api.telegram.org/bot$TOKEN/sendMessage" \
-d "chat_id=$CHAT_ID" \
-d "text=$message"
}
date
echo 'Starting backup'
if ! syncoid --create-bookmark --compress zstd-fast ${ZFS_VOLUME}/${CONTAINER_NAME} ${REMOTE_USER}@${REMOTE_NAME}:${ZFS_VOLUME}/${CONTAINER_NAME}; then
echo 'Backup failed'
send_telegram_message "Backup of $CONTAINER_NAME failed on $(hostname)"
exit 1
fi
echo 'Backup Finished'
date
Первое копирование будет долгим, особенно если контейнер сожердит много данных, но последующие запуски будут копировать только разницу, поэтому будут в разы быстрее
Итог
Syncoid — это мощный инструмент репликации ZFS. Он упрощает управление снапшотами, инкрементальные бэкапы и удалённую репликацию. Если вы работаете с ZFS и хотите безопасную, автоматическую репликацию, Syncoid определённо стоит изучить.