AutoResticのセットアップ
ここでは、Autorestic を Restic、Backblaze B2、その他の拡張機能とともに使用して、速度、サイズ最小化、堅牢性 を実現する、非常に詳細で最適化されたバックアップ構成を示します。コメントでは、使用されていない変数やオプションの変数について説明します。
Autorestic 構成ファイル (autorestic.yml)
repositories:
b2-cloud:
type: b2
path: b2:my-bucket-name:/backup
env:
B2_ACCOUNT_ID: "your-b2-account-id"
B2_ACCOUNT_KEY: "your-b2-account-key"
options:
- "--compression=auto" # Enables compression to minimize storage.
- "--limit-upload=50MB" # Restrict bandwidth for upload speed control (can be adjusted).
- "--limit-download=0" # Unlimited download to speed up restores.
- "--limit-mem=2048" # Limit memory usage to 2GB.
- "--chunker-params=default" # Use default chunking for optimal deduplication.
- "--cache-dir=/var/cache/restic" # Specify custom cache directory for faster lookups.
local-nas:
type: local
path: /mnt/nas-backup
options:
- "--compression=off" # Local storage, so disable compression for speed.
- "--limit-mem=2048" # Use 2GB memory for operations.
- "--chunker-params=auto" # Auto-adjust chunking for efficiency.
offsite-remote:
type: sftp
path: user@offsite-server:/backup-path
options:
- "--compression=auto"
- "--limit-upload=20MB" # Lower upload limit to prevent bandwidth issues.
- "--limit-mem=1024" # Lower memory for remote server backups.
- "--chunker-params=manual"
- "--cache-dir=/var/cache/restic"
locations:
home-backup:
from: /home
to:
- b2-cloud
- local-nas
- offsite-remote
defaults:
options:
all:
- "--verbose" # Enable verbose output for debugging.
- "--one-file-system" # Only backup the specified filesystem to avoid unwanted directories.
- "--exclude-file=/path/to/exclude-list.txt" # Exclude unnecessary files and directories.
- "--ignore-inode" # Faster scanning, useful if inodes change often.
- "--backup-extra" # Optional extra backup feature.
- "--quiet" # Remove verbose if you need minimal logging.
b2-cloud:
- "--compression=max" # Max compression for cloud to reduce size.
- "--limit-upload=30MB"
offsite-remote:
- "--no-cache" # Avoid storing cache for remote backup due to limited resources.
- "--limit-mem=512" # Lower memory for offsite if limited resources.最適化された Restic 環境変数:
Backblaze B2 の環境変数:
export B2_ACCOUNT_ID="your-b2-account-id"
export B2_ACCOUNT_KEY="your-b2-account-key"
export RESTIC_REPOSITORY="b2:my-bucket-name:/backup"
export RESTIC_PASSWORD="your-secure-password"
export RESTIC_CACHE_DIR="/var/cache/restic" # バックアップを高速化するためにメタデータを保存するキャッシュ ディレクトリ。Systemd バックアップ サービスと自動化用タイマー:
/etc/systemd/system/backup.service
[Unit]]
Description=Run Restic Backup
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
ExecStart=/usr/local/bin/autorestic backup --all
Environment=RESTIC_PASSWORD=your-secure-password
Environment=RESTIC_CACHE_DIR=/var/cache/restic/etc/systemd/system/backup.timer
[Unit]
Description=Schedule Restic Backup
[Timer]
OnCalendar=daily # 毎日バックアップを実行します。
Persistent=true
[Install]
WantedBy=timers.target変数に関する追加コメント:
--compression=auto/max: 柔軟な圧縮にはautoを使用し、バックアップ サイズの最小化が速度よりも重要な場合はmaxを使用します (特にクラウド バックアップの場合)。--limit-uploadand--limit-download: ネットワークのアップロード速度とダウンロード速度に基づいてこれらを調整し、リモート ロケーションとの間のデータ転送を最適化します。--one-file-system: マウントされたファイル システムを誤ってバックアップしないようにし、バックアップ サイズと複雑さを軽減します。--exclude-file: 除外リストを使用して/tmpなどの不要なディレクトリをスキップし、プロセスを高速化します。--cache-dir: ローカル バックアップの場合、Restic はメタデータをキャッシュして操作を高速化します。キャッシュディレクトリが十分な大きさであることを確認します。--limit-mem: Restic が RAM を大量に消費しないようにメモリ制限を設定します。特に、制限のあるシステムでのリモート/オフサイト バックアップの場合に有効です。
オプション機能:
rcloneintegration: アップロード速度をより細かく制御する必要がある場合や、定期的な同期操作を実行する場合は、Rclone を使用してクラウド ストレージ (B2) との同期を処理できます。- Docker vs systemd: Docker を使用している場合は、キャッシュディレクトリをボリュームとしてマウントし、環境変数を Docker の
-eオプションとして渡します。Systemd は、一般的なサーバー設定でのスケジュールされたタスクに対してより軽量です。Docker はコンテナ化された環境に柔軟性を追加しますが、systemd はシンプルさが重要です。
追加の自動化のための Cron ジョブ:
0 2 * * * /usr/local/bin/autorestic backup --all >> /var/log/autorestic.log 2>&1ソース:
- Autorestic 構成ドキュメント: Autorestic
- Backrest 構成オプション: Backrest
- Restic with Backblaze B2: Backblaze Docs
この構成により、特に大規模システムでは、速度、堅牢性、バックアップ サイズの最小化 のバランスが確保されます。環境のニーズに応じてメモリと帯域幅の設定を調整し、パフォーマンスを向上させることができます。