スナップショットに基づいてCephをバックアップする方法は?

この投稿は、Cephのスナップショット技術の使用方法とCephのバックアップ方法を紹介し、その後、Cephの遠隔地バックアップソリューションを提案します。

download-icon
無料ダウンロード
VM、OS、DB、ファイル、NASなどに対応
takahashi-meitetsu

Updated by 高橋明哲 on 2026/01/14

目次
  • オプションのCephバックアップソリューション

  • スナップショットに基づくCephのバックアップ

  • RBDに対する増分スナップショットのインポートおよびエクスポート

  • Cephのスナップショットベースのリモート災害復旧ソリューション

  • Vinchin バックアップ&リカバリー――あなたの仮想化ガード

  • バックアップCeph よくある質問

  • 結論

Proxmoxは、仮想マシンとコンテナを効率的に管理できる強力な仮想化管理プラットフォームです。高性能かつ高可用性のストレージを実現するために、多くのユーザーはCephを選びます。Cephは、オブジェクトストレージ、ブロックストレージ、ファイルシステムストレージを提供し、データの安全性と拡張性を保証する分散型ストレージシステムです。これはProxmox環境における理想的なストレージソリューションです。

オプションのCephバックアップソリューション

Cephデータのバックアップ方法には、スナップショットやレプリケーションなど、さまざまな方法があります。スナップショットは非常に便利で効率的なバックアップ方法であり、短時間でデータイメージをすばやく作成することで、データの完全性と一貫性を確保できます。スナップショットを利用すれば、Cephクラスター内のデータをリアルタイムでバックアップし、必要に応じてすばやくデータを復元できます。さらに、Cephはデータのリモートレプリケーションにも対応しており、データを別のデータセンターまたはクラウドストレージサービスにバックアップすることで、データの安全性と信頼性を確保できます。

1. RBDミラーリング

これは、2つの独立したCephクラスター間でのリアルタイムデータミラーリングを含みますが、CephのインストールバージョンがJewel以降である必要があります。

2. スナップショットベースのバックアップ  

Ceph RBDのスナップショット技術を利用し、差分ファイルを通じてデータを定期的に災害復旧センターにバックアップします。プライマリデータセンターに障害が発生した場合、災害復旧センターから最新のバックアップデータを復元し、対応する仮想マシンを再起動することで、災害時のデータ復旧時間を最小限に抑えることができます。このバックアップにより、VMイメージを特定のスナップショット状態に戻すことが可能となりますが、スナップショット状態から障害発生時までのあらゆるデータ更新内容は失われます。

スナップショットに基づくCephのバックアップ

Cephのスナップショット技術はもともとRBDまたはプールのロールバックを目的としていましたが、管理者はスナップショットをリモートイメージのバックアップおよびディザスタリカバリに利用できます。

Cephスナップショット

Cephは2レベルのスナップショット機能をサポートしています:プールとRBDです。両方のスナップショットレベルはCopy On Writeメカニズムを使用します。スナップショットを作成する際、コピー処理は実行されません。代わりに、サーバーにすべての関連ディスクブロックを保持させ、上書きされないように制御します。書き込みや削除操作が発生したとき、データを含む元のディスクブロックは変更されず、変更された部分のみが他の利用可能なディスクブロックに書き込まれます。

1)RBD

現在の画像状態に基づいてスナップショットを作成しています

# rbd create <image-name> --size 1024 -p <pool-name>

実際にはlibrbdはイメージに関連するメタデータのみを作成し、Cephに実際にスペースを割り当てることはありません。

現在の画像状態に基づいてスナップショットを作成しています

# rbd snap create <pool-name/image-name> --snap <snap-name>

スナップショット作成時の状態にイメージをロールバックしています

CephでのRBDスナップショット作成は、次の手順を含みます:

# rbd snap rollback <pool-name/image-name> --snap <snap-name>

a) 最新のスナップショットシーケンス番号(「snap_seq」)を取得するために、Cephモニターにリクエストを送信します。

b) RBDメタデータにsnap_nameとsnap_seqを保存する。

2)プール

プールは、Cephにおいてデータを格納するための論理的なパーティションと考えることができ、名前空間に似ています。Cephクラスターには複数のプールが存在でき、それぞれのプールはある一定数のPGを持ちます。PG内のオブジェクトは、異なるOSDにマッピングされます。

異なるプールは、レプリカ数、データスクラブ頻度、スナップショットサイズ、所有権などの個別設定を持つことができます。

スナップショットを作成する

# rados mksnap <snap_name> -p <pool_name>
# rados lssnap -p <pool_name>

スナップショット作成時の状態にプールを復元する

# rados rollback pool <pool_name> to snapshot <snap_name>

これらの2種類のスナップショットレベルは排他的であることに注意することが重要です。Cephクラスターではいずれか一方のみを使用できます。したがって、RBDオブジェクトがプール内に作成された場合(すべてのイメージインスタンスが削除されていても)、そのプールに対してスナップショットを作成することはできません。逆に、プールに対してスナップショットが取得されている場合、そのプールに対してRBDイメージのスナップショットを作成することはできません。

RBDに対する増分スナップショットのインポートおよびエクスポート

加えて、Cephは以下に詳細に示すように、RBDに対する増分スナップショットのインポートおよびエクスポートもサポートしています:

増分イメージのエクスポート:

a) 画像作成時から現在までの変更のエクスポートおよびインポート:

<pool-name/image-name> の作成以降の増分変更を <image_diff> ファイルに保存します

# rbd export-diff <pool-name/image-name> <image_diff>

画像の作成から特定の時点までの差分をインポートします

# rbd import-diff <image_diff> <pool-name/image-name>

このコマンドを実行した後、<image-name> は <image-diff> が <image-name> 作成時の状態を反映したものになります

b) 画像の作成から特定のスナップショットまでの変更をエクスポート:

<pool-name/image-name> の作成から <snap_name> までの変更を <image_diff> ファイルにエクスポートする

# rbd export-diff <pool-name/image-name>@<snap-name> <image_diff>

c) 画像の現在の状態から特定のスナップショットへの変更をエクスポートする:

現在の<pool-name/image-name>の状態と<snap_name>が作成されたときの状態との差分を<image_diff>ファイルに保存します

# rbd export-diff <pool-name/image-name> --from-snap <snap_name> <image_diff>

増分イメージのインポート:

a) 作成時から特定の時点までの差分をインポート

# rbd import-diff <image_diff> <pool-name/image-name>

Cephのスナップショットベースのリモート災害復旧ソリューション

master_dcとbackup_dcの2つのデータセンターがあり、それぞれに独自のCephストレージシステムが存在すると仮定します。

初期バックアップ:

1. 初期ミラーとしてbackup_dcにimg_bakを作成します。

# rbd create <img_bak> --size 1024 -p <pool-bak>

2. マスターデータセンターでイメージスナップショットを作成します。

# rbd snap create <pool-mas/image-mas> --snap <snap-mas>

3. イメージとスナップショットの間の増分差分をエクスポートします。

# rbd export-diff <pool-mas/image-mas>@<snap-mas> <image-snap-diff>

4. インクリメンタルファイル「<image-snap-diff>」をscpまたは他の方法を使用してbackup_dcに転送します。

5. インクリメンタルスナップショットファイルをbackup_dcのイメージにインポートします。

# rbd import-diff <image-snap-diff> <pool-bak/image-bak>

以降のバックアップ:

master_dc と backup_dc の両方で最新のスナップショットが snap-1 であると仮定します。

1. マスタードメインコントローラーで新しいイメージスナップショットを作成します。

# rbd snap create <pool-mas/image-mas> --snap <snap-2>

2. スナップショットsnap-1と最新のスナップショットsnap-2の間の増分差分をエクスポートします。

# rbd export-diff --from-snap <snap-1> <pool-mas/image-mas@snap-2> <image-snap1-snap2-diff>

3. インクリメンタルファイルをバックアップ_DCに転送します。

4. インクリメンタルファイルをbackup_dcのイメージにインポートします。

# rbd import-diff <image-snap1-snap2-diff> <pool-bak/image-bak>

上記の手順は、スナップショット技術に基づくバックアップソリューションの主要ポイントを示しています。これを基に、独自の自動バックアップおよび復旧スクリプトを作成し、より包括的でインテリジェントな二センター バックアップソリューションを構築することができます。

Vinchin バックアップ&リカバリー――あなたの仮想化ガード

最新のITインフラを構築する際、多くの組織がCephをProxmoxなどの仮想化プラットフォームに統合することを選択します。Proxmox環境において、全体のITインフラの安定稼働とデータセキュリティを確保するためには、仮想マシンのバックアップと復元が極めて重要です。

Vinchin Backup & Recovery は堅牢な Proxmox VE 環境保護ソリューションであり、自動VMバックアップ、エージェントレスバックアップ、LAN/LAN-Freeバックアップ、オフサイトコピー、効果的なデータ削減、クラウドアーカイブ、インスタントリストア、細粒度リストアなどの高度なバックアップ機能を提供し、3-2-1ゴールデンバックアップ構築を厳格に遵守して、データのセキュリティと完全性を包括的に保護します。

さらに、データ暗号化とランサムウェア対策保護により、Proxmox VEのVMバックアップを二重に保護する保険を提供します。また、簡単にProxmoxホストから別の仮想プラットフォームへデータを移行したり、逆に移行したりすることも可能です。

Proxmox VEの仮想マシンをバックアップするには、たったの4ステップです:

1.  バックアップ対象を選択します。

バックアップ対象の選択

2. バックアップ先を選択します。

バックアップ対象の選択

3. バックアップ戦略を構成します。

バックアップ対象の選択

4. 求人情報を確認して送信する。

バックアップ対象を選択する

さあ、この強力なシステムを 60日間のフル機能トライアルで使い始めましょう! また、お問い合わせ からご要望をお寄せいただければ、貴社のIT環境に合わせたソリューションをご提供いたします。

バックアップCeph よくある質問

1. Q: Cephのデメリットは?

A:Cephの欠点は、セットアップや管理の複雑さにあり、経験が少ない人にとっては難しいと感じられることがあります。また、Cephは適切にチューニングされていない場合、特定のワークロードにおいてパフォーマンスが低下する可能性があり、スムーズな運用を保つためには継続的な監視とメンテナンスが必要です。

2. Q: Proxmox CephとZFSの違いは何ですか?

A: Proxmox Cephは、大規模で障害耐性のある導入に最適な、スケーラブルな分散ストレージシステムです。ZFSはデータの完全性、スナップショット、圧縮機能で知られる堅牢なファイルシステムおよびボリュームマネージャーで、シングルノード構成に最適です。

結論

Cephのバックアップとリカバリーは、企業のデータ管理において不可欠な一部です。これによりデータの安全性と信頼性を確保し、業務の安定性と可用性を向上させることができます。実際の運用においては、実際のニーズや状況に応じて適切なバックアップおよびリカバリー戦略を選定し、Cephの分散ストレージシステムの利点を十分に発揮させる必要があります。

共有:

Categories: Tech Tips