Что такое 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

Это сделает:

  1. Создаст снапшоты при необходимости.
  2. Отправит только изменения с последнего снапшота.
  3. Применит их на целевом наборе данных.

Расширенные возможности

  • 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 определённо стоит изучить.