UrBackupガイド:プロフェッショナルな集中型イメージ・ファイルバックアップソリューション

Virtualization tutorial - IT technology blog
Virtualization tutorial - IT technology blog

数十台の仮想マシンバックアップ管理の「悩み」

インフラエンジニアなら、重要な仮想マシン(VM)が突然故障し、直近のバックアップが先週のものだったという、冷や汗をかくような経験は一度や二度ではないでしょう。私は現在、約15台のVMとコンテナが稼働するProxmoxのホームラボを運用しています。Proxmox Backup Server (PBS) は非常に強力ですが、Windows内の数枚の小さな設定ファイルだけを素早く取り出したい場合や、ハイパーバイザーとは完全に独立した保護レイヤーを構築したい場合には、不便さを感じることがありました。

試行錯誤の末、私はUrBackupを選びました。これは非常に信頼性の高いオープンソースのクライアント・サーバー型バックアップシステムです。Windowsのイメージバックアップ(Image)や、Windows/Linux両方のファイルバックアップ(File)に対応しており、驚異的な容量最適化メカニズムを備えています。

一般的なバックアップ手法の比較

それぞれの手法には一長一短があります。これらを理解することで、特定の課題に対して適切なツールを選択できるようになります。

1. ハイパーバイザーレベルのバックアップ(Proxmox Backup Serverなど)

  • メリット: エージェントレスで仮想マシン全体のイメージ(スナップショット)を取得できる。
  • デメリット: たった一つのテキストファイルを取り出すために50-100GBのイメージファイルをマウントするのは、時間がかかりリソースも消費する。

2. スクリプトベースのバックアップ(Rsync, Restic)

  • メリット: 非常に軽量で柔軟。ピュアなLinuxサーバーには最適な選択肢。
  • デメリット: 一元管理インターフェースがない。サーバーが20-30台になると、どのサーバーのバックアップが成功したかを確認する作業が悪夢のようになる。

3. クライアント・サーバー型バックアップ(UrBackup, Veeam)

  • メリット: Web UIでステータスを監視でき、増分バックアップ(Incremental)によりネットワーク帯域を節約できる。
  • デメリット: クライアント側にエージェント(Agent)のインストールが必須。ただし、UrBackupのエージェントは非常に軽量で、システムへの負荷は最小限。

なぜUrBackupは使う価値があるのか?

完全に無料であるにもかかわらず、UrBackupが提供する機能は期待を大きく上回るものでした:

大きなメリット:

  • 重複排除 (Deduplication): 例えば、10台の同じWindows 10 VMがあるとします。システムファイルを個別に保存すると300GB必要ですが、UrBackupなら最初の1台分(約35GB)程度で済みます。ディスク容量を70〜80%削減できます。
  • Windowsのイメージバックアップ: 稼働中のCドライブ全体をバックアップ(ライブバックアップ)できます。必要に応じて、ネットワーク経由やレスキューUSBを使用して15〜20分で復元可能です。
  • モダンなWeb UI: どのマシンがオンラインか、各マシンのバックアップ容量、エラー履歴などをダッシュボードで詳細に確認できます。

制限事項:

  • LinuxでのイメージバックアップはWindowsに比べるとまだ制限があり、主にファイルバックアップが中心となります。
  • 設定画面に保存期間(retention)などのパラメータが多く、初心者は少し戸惑う可能性があります。

DockerによるUrBackupサーバーの構築

システムを整理し、移行しやすくするために、私は常に Docker Compose を優先して使用します。以下はすぐに導入できる標準的な設定です:

# 環境の準備
mkdir -p ~/urbackup/data ~/urbackup/backups

# 設定ファイルの作成
cat <<EOF > ~/urbackup/docker-compose.yml
version: '3.8'
services:
  urbackup:
    image: urbackup/urbackup-server:latest
    container_name: urbackup-server
    restart: unless-stopped
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Tokyo
    volumes:
      - ./data:/var/urbackup
      - ./backups:/media/backups
    network_mode: "host"
EOF

# システムの起動
cd ~/urbackup && docker compose up -d

Tips: network_mode: "host" を使用すると、サーバーはIPを手動で指定することなく、LAN内のクライアントを自動的に認識します。クラウド(AWS、Azureなど)で使用する場合は、ファイアウォールでポート55413〜55415を開放するのを忘れないでください。

起動後、http://<あなたのIP>:55414 にアクセスします。まず最初に行うべきは、Settings -> Users で管理者(Admin)パスワードをすぐに設定することです。

クライアントへのエージェントインストール

Windowsマシンの場合

公式サイトからインストーラー(.msi)をダウンロードして実行するだけです。クライアントとサーバーが同じLAN内にある場合、自動的に接続されます。別のネットワークにある場合は、システムトレイのUrBackupアイコンを右クリックして Settings を開き、Internet Server Designator にサーバーのIPアドレスを入力します。

Linuxマシン(Ubuntu/Debian)の場合

UrBackupはコマンドライン経由で素早くインストールできるスクリプトを提供しています。Web管理画面で Add Client -> Add new Internet client を選択し、各マシン専用のインストールコードを取得します:

# クイックインストールコマンドの例
TF=$(mktemp) && wget "http://<SERVER-IP>:55414/x?a=download_client&lang=en&clientid=1&authkey=xxxx" -O "$TF" && sudo sh "$TF"

特定のディレクトリ(例:データベースやコード)をバックアップ対象に追加するには、次のコマンドを使用します:

urbackupclientctl add-backupdir -x -f -d /var/www/data_important

運用のための最適化のヒント

実際の運用を通じて得られた、システムをスムーズに稼働させるための3つの黄金律を紹介します:

  1. 賢いファイルシステムの選択: バックアップ先には ZFS または Btrfs パーティションを使用することをお勧めします。ファイルシステムのデータ圧縮機能とUrBackupの重複排除を組み合わせることで、通常のExt4と比較してディスク容量を最大60%節約できます。
  2. クリーンアップの自動化: ディスク容量を無駄にしないよう、**Settings -> Archiving** で30日または60日後に古いバックアップを自動的に削除するルールを設定しましょう。
  3. クライアントサイド・ハッシュ(Client-side hashing): この機能を有効にすると、クライアントがデータを送信する前にハッシュ値を計算します。ファイルがすでにサーバーに存在する場合、クライアントはアップロードをスキップするため、ネットワーク帯域幅の負荷を大幅に軽減できます。

UrBackupの設定はわずか15分で終わりますが、システムに絶大な安心感をもたらします。毎週ログを確認し、すべてが計画通りに動作しているかチェックすることを忘れないでください。

Share: