3.2. スナップショットの基本
以下の手順では、コマンドラインで rbd
コマンドを使用して、スナップショットを作成、一覧表示、および削除する方法を説明します。
3.2.1. スナップショットの作成
rbd
でスナップショットを作成するには、snap create
オプション、プール名、およびイメージ名を指定します。
[root@rbd-client ~]# rbd --pool {pool-name} snap create --snap {snap-name} {image-name} [root@rbd-client ~]# rbd snap create {pool-name}/{image-name}@{snap-name}
以下に例を示します。
[root@rbd-client ~]# rbd --pool rbd snap create --snap snapname foo [root@rbd-client ~]# rbd snap create rbd/foo@snapname
3.2.2. スナップショットの一覧表示
イメージのスナップショットを一覧表示するには、プール名とイメージ名を指定します。
[root@rbd-client ~]# rbd --pool {pool-name} snap ls {image-name} [root@rbd-client ~]# rbd snap ls {pool-name}/{image-name}
以下に例を示します。
[root@rbd-client ~]# rbd --pool rbd snap ls foo [root@rbd-client ~]# rbd snap ls rbd/foo
3.2.3. スナップショットのロールバック
rbd
を使用してスナップショットにロールバックするには、snap rollback
オプション、プール名、イメージ名、および snap 名を指定します。
rbd --pool {pool-name} snap rollback --snap {snap-name} {image-name} rbd snap rollback {pool-name}/{image-name}@{snap-name}
以下に例を示します。
rbd --pool rbd snap rollback --snap snapname foo rbd snap rollback rbd/foo@snapname
イメージをスナップショットにロールバックすると、イメージの現行バージョンがスナップショットからのデータで上書きされます。ロールバックの実行にかかる時間は、イメージのサイズとともに増加します。スナップショットにイメージを ロールバック するよりも、クローンするほうが短時間ででき、既存の状態戻す方法として推奨の方法です。
3.2.4. スナップショットの削除
rbd
でスナップショットを削除するには、snap rm
オプション、プール名、イメージ名、およびスナップショット名を指定します。
[root@rbd-client ~]# rbd --pool <pool-name> snap rm --snap <snap-name> <image-name> [root@rbd-client ~]# rbd snap rm <pool-name-/<image-name>@<snap-name>
以下に例を示します。
[root@rbd-client ~]# rbd --pool rbd snap rm --snap snapname foo [root@rbd-client ~]# rbd snap rm rbd/foo@snapname
イメージにクローンがある場合には、クローン作成されたイメージは、親イメージのスナップショットへの参照を保持します。親イメージのスナップショットを削除するには、最初に子イメージをフラット化する必要があります。詳細は、「クローン作成されたイメージの追加 」を参照してください。
Ceph OSD デーモンはデータを非同期的に削除するため、スナップショットを削除してもディスク領域がすぐに解放されません。
3.2.5. スナップショットのパージ
rbd
でイメージのすべてのスナップショットを削除するには、snap purge
オプションとイメージ名を指定します。
[root@rbd-client ~]# rbd --pool {pool-name} snap purge {image-name} [root@rbd-client ~]# rbd snap purge {pool-name}/{image-name}
以下に例を示します。
[root@rbd-client ~]# rbd --pool rbd snap purge foo [root@rbd-client ~]# rbd snap purge rbd/foo
3.2.6. スナップショットの名前変更
スナップショットの名前を変更するには、以下のコマンドを実行します。
[root@rbd-client ~]# rbd snap rename <pool-name>/<image-name>@<original-snapshot-name> <pool-name>/<image-name>@<new-snapshot-name>
例
データ
プールの dataset
イメージの snap1
スナップショットの名前を snap2
に変更するには、以下を実行します。
[root@rbd-client ~]# rbd snap rename data/dataset@snap1 data/dataset@snap2
rbd help snap rename
コマンドを実行して、スナップショットの名前変更に関する追加情報を表示します。