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-upload and --limit-download: ネットワークのアップロード速度とダウンロード速度に基づいてこれらを調整し、リモート ロケーションとの間のデータ転送を最適化します。
  • --one-file-system: マウントされたファイル システムを誤ってバックアップしないようにし、バックアップ サイズと複雑さを軽減します。
  • --exclude-file: 除外リストを使用して /tmp などの不要なディレクトリをスキップし、プロセスを高速化します。
  • --cache-dir: ローカル バックアップの場合、Restic はメタデータをキャッシュして操作を高速化します。キャッシュディレクトリが十分な大きさであることを確認します。
  • --limit-mem: Restic が RAM を大量に消費しないようにメモリ制限を設定します。特に、制限のあるシステムでのリモート/オフサイト バックアップの場合に有効です。

オプション機能:

  • rclone integration: アップロード速度をより細かく制御する必要がある場合や、定期的な同期操作を実行する場合は、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

ソース:

この構成により、特に大規模システムでは、速度堅牢性バックアップ サイズの最小化 のバランスが確保されます。環境のニーズに応じてメモリと帯域幅の設​​定を調整し、パフォーマンスを向上させることができます。