Go to main content

Oracle® ZFS Storage Appliance RESTful API ガイド、Release OS8.8.x

印刷ビューの終了

更新: 2021 年 8 月
 
 

スナップショットおよびクローンの操作

スナップショットの操作はすべて、指定されたプールまたはプロジェクトにスコープ指定されます。スナップショット操作は、ファイルシステムまたは LUN レベルにもスコープ指定できます。

  • すべてのプロジェクトベースのスナップショット操作の URI は /api/storage/v{1|2}/pools/pool/projects/project で始まります。

  • すべてのファイルシステムベースのスナップショット操作の URI は /api/storage/v{1|2}/pools/pool/projects/project/filesystems/filesystem で始まります。

  • すべての LUN ベースのスナップショット操作の URI は /api/storage/v{1|2}/pools/pool/projects/project/luns/lun で始まります。

スナップショットをクラウドにバックアップする、またはスナップショットバックアップを新しいシェアとしてアプライアンスに復元するには、RESTful API クラウドサービスを参照してください。

表 50  スナップショットおよびクローンのコマンド
リクエスト
パス /api/storage/v{1|2} の後ろに追加
説明
GET
/snapshots
すべてのローカルスナップショットを一覧表示します
GET
/pools/pool/projects?snaps=true
スナップショットを含む、すべてのプロジェクトを一覧表示します
GET
/pools/pool/projects/project/filesystems?snaps=true
スナップショットを含む、すべてのファイルシステムを一覧表示します
GET
/pools/pool/projects/project/luns?snaps=true
スナップショットを含む、すべての LUN を一覧表示します
GET
/pools/pool/projects/project/snapshots
プロジェクトのすべてのスナップショットを一覧表示します
GET
/pools/pool/projects/project/filesystems/filesystem/snapshots
ファイルシステムのすべてのスナップショットを一覧表示します
GET
/pools/pool/projects/project/luns/lun/snapshots
LUN のすべてのスナップショットを一覧表示します
GET
/pools/pool/projects/project/snapshots/snapshot
プロジェクトスナップショットの詳細を取得します
GET
/pools/pool/projects/project/filesystems/filesystem/snapshots/snapshot
ファイルシステムスナップショットの詳細を取得します
GET
/pools/pool/projects/project/luns/lun/snapshots/snapshot
LUN スナップショットの詳細を取得します
POST
/pools/pool/projects/project/snapshots
プロジェクトスナップショットを作成します
POST
/pools/pool/projects/project/filesystems/filesystem/snapshots
ファイルシステムスナップショットを作成します
POST
/pools/pool/projects/project/luns/lun/snapshots
LUN スナップショットを作成します
PUT
/pools/pool/projects/project/snapshots/snapshot
プロジェクトスナップショットを変更します
PUT
/pools/pool/projects/project/filesystems/filesystem/snapshots/snapshot
ファイルシステムスナップショットを変更します
PUT
/pools/pool/projects/project/luns/lun/snapshots/snapshot
LUN スナップショットを変更します
PUT
/pools/pool/projects/project/filesystems/filesystem/snapshots/snapshot/clone
ファイルシステムスナップショットをクローン作成します
PUT
/pools/pool/projects/project/luns/lun/snapshots/snapshot/clone
LUN スナップショットをクローン作成します
PUT
/pools/pool/projects/project/filesystems/filesystem/snapshots/snapshot/rollback
データを指定されたファイルシステムスナップショットにロールバックします
PUT
/pools/pool/projects/project/lun/lun/snapshots/snapshot/rollback
データを指定された LUN スナップショットにロールバックします
DELETE
/pools/pool/projects/project/snapshots/snapshot
プロジェクトスナップショットを破棄します
DELETE
/pools/pool/projects/project/filesystems/filesystem/snapshots/snapshot
ファイルシステムスナップショットを破棄します
DELETE
/pools/pool/projects/project/luns/lun/snapshots/snapshot
LUN スナップショットを破棄します
GET
/pools/pool/projects/project/snapshots/snapshot/dependents
プロジェクトスナップショットの依存を一覧表示します
GET
/pools/pool/projects/project/filesystems/filesystem/snapshots/snapshot/dependents
ファイルシステムスナップショットの依存を一覧表示します
GET
/pools/pool/projects/project/lun/lun/snapshots/snapshot/dependents
LUN スナップショットの依存を一覧表示します
POST
/pools/pool/projects/project/automatic
新しいプロジェクト自動スナップショットオブジェクトを作成します
POST
/pools/pool/projects/project/automatic?convert=true
新しいプロジェクト自動スナップショットオブジェクトを作成します。新しいスケジュールに適合しない自動生成された既存のスナップショットは、手動スナップショットに変換されます。
convert プロパティーを除外すると、自動生成された既存のスナップショットは破棄されます。
GET
/pools/pool/projects/project/automatic/automatic
指定されたプロジェクトの自動スナップショットプロパティーを取得します
GET
/pools/pool/projects/project/automatic
すべてのプロジェクト自動スナップショットオブジェクトを一覧表示します
PUT
/pools/pool/projects/project/automatic/automatic
指定されたプロジェクトの自動スナップショットオブジェクトを変更します
PUT
/pools/pool/projects/project/automatic/automatic?convert=true
指定されたプロジェクト自動スナップショットスケジュールオブジェクトを変更します。新しいスケジュールに適合しない自動生成された既存のスナップショットは、手動スナップショットに変換されます。
convert プロパティーを除外すると、自動生成された既存のスナップショットは破棄されます。
DELETE
/pools/pool/projects/project/automatic/automatic
指定された自動オブジェクトを破棄します
DELETE
/pools/pool/projects/project/automatic/automatic?convert=true
指定された自動スナップショットスケジュールオブジェクトを破棄します。新しいスケジュールに適合しない自動生成された既存のスナップショットは、手動スナップショットに変換されます。
convert プロパティーを除外すると、自動生成された既存のスナップショットは破棄されます。
POST
/pools/pool/projects/project/filesystems/filesystem/automatic
新しいファイルシステム自動スナップショットオブジェクトを作成します
POST
/pools/pool/projects/project/filesystems/filesystem/automatic?convert=true
新しいファイルシステム自動スナップショットオブジェクトを作成します。新しいスケジュールに適合しない自動生成された既存のスナップショットは、手動スナップショットに変換されます。
convert プロパティーを除外すると、自動生成された既存のスナップショットは破棄されます。
GET
/pools/pool/projects/project/filesystems/filesystem/automatic/automatic
指定されたファイルシステムの自動スナップショットプロパティーを取得します
GET
/pools/pool/projects/project/filesystems/filesystem/automatic
すべてのファイルシステムの自動スナップショットオブジェクトを一覧表示します
PUT
/pools/pool/projects/project/filesystems/filesystem/automatic/automatic
指定されたファイルシステムの自動スナップショットオブジェクトを変更します
PUT
/pools/pool/projects/project/filesystems/filesystem/automatic/automatic?convert=true
指定されたファイルシステム自動スナップショットスケジュールオブジェクトを変更します。新しいスケジュールに適合しない自動生成された既存のスナップショットは、手動スナップショットに変換されます。
convert プロパティーを除外すると、自動生成された既存のスナップショットは破棄されます。
DELETE
/pools/pool/projects/project/filesystems/filesystem/automatic/automatic
指定された自動スナップショットスケジュールオブジェクトを破棄します
DELETE
/pools/pool/projects/project/filesystems/filesystem/automatic/automatic?convert=true
指定されたファイルシステム自動スナップショットスケジュールオブジェクトを破棄します。新しいスケジュールに適合しない自動生成された既存のスナップショットは、手動スナップショットに変換されます。
convert プロパティーを除外すると、自動生成された既存のスナップショットは破棄されます。
POST
/pools/pool/projects/project/luns/lun/automatic
新しい LUN の自動スナップショットを作成します
POST
/pools/pool/projects/project/luns/lun/automatic?convert=true
新しい LUN 自動スナップショットスケジュールを作成します。新しいスケジュールに適合しない自動生成された既存のスナップショットは、手動スナップショットに変換されます。
convert プロパティーを除外すると、自動生成された既存のスナップショットは破棄されます。
GET
/pools/pool/projects/project/luns/lun/automatic/automatic
指定された LUN の自動スナップショットプロパティーを取得します
GET
/pools/pool/projects/project/luns/lun/automatic
すべての LUN の自動スナップショットオブジェクトを一覧表示します
PUT
/pools/pool/projects/project/luns/lun/automatic/automatic
指定された LUN の自動スナップショットオブジェクトを変更します
PUT
/pools/pool/projects/project/luns/lun/automatic/automatic?convert=true
指定された LUN 自動スナップショットスケジュールオブジェクトを変更します。新しいスケジュールに適合しない自動生成された既存のスナップショットは、手動スナップショットに変換されます。
convert プロパティーを除外すると、自動生成された既存のスナップショットは破棄されます。
DELETE
/pools/pool/projects/project/luns/lun/automatic/automatic
指定された LUN 自動オブジェクトを破棄します
DELETE
/pools/pool/projects/project/luns/lun/automatic/automatic?convert=true
指定された LUN 自動スナップショットスケジュールオブジェクトを破棄します。新しいスケジュールに適合しない自動生成された既存のスナップショットは、手動スナップショットに変換されます。
convert プロパティーを除外すると、自動生成された既存のスナップショットは破棄されます。

スナップショットの一覧表示

アプライアンス上の使用可能なスナップショットを一覧表示します。リクエスト URI に応じて、リストにはプロジェクト、ファイルシステム、または LUN のスナップショットが含まれます。

表 51  スナップショットの一覧表示コマンドの形式
コマンド
パス /api/storage/v{1|2}/pools/pool/projects/project の後ろに追加
プロジェクトスナップショットの一覧表示
/snapshots
ファイルシステムスナップショットの一覧表示
/filesystems/share/snapshots
LUN スナップショットの一覧表示
/lun/share/snapshots

リクエストの例:

GET /api/storage/v1/pools/p1/projects/default/snapshots
Accept: application/json

結果例:

HTTP/1.1 200 OK
Content-Type: application/json

{
    "snapshots": [{
        "id": "3fbbcccf-d058-4502-8844-6feeffdf4cb5",
        "display_name": "snap-001",
        "display_description": "Daily backup",
        "volume_id": "521752a6-acf6-4b2d-bc7a-119f9148cd8c",
        "status": "available",
        "size": 30,
        "created_at": "2012-02-29T03:50:07Z"
    }, {
        "id": "e479997c-650b-40a4-9dfe-77655818b0d2",
        "display_name": "snap-002",
        "display_description": "Weekly backup",
        "volume_id": "76b8950a-8594-4e5b-8dce-0dfa9c696358",
        "status": "available",
        "size": 25,
        "created_at": "2012-03-19T01:52:47Z"
    }]
}

スナップショットの取得

単一のスナップショットに関するすべての情報を表示します。成功すると、HTTP ステータス 200 (OK) が返されます。

リクエストの例:

GET /api/storage/v1/pools/p1/projects/default/snapshots/snap-001
Accept: application/json

結果例:

HTTP/1.1 200 OK
Content-Type: application/json

{
    "snapshot": {
        "id": "3fbbcccf-d058-4502-8844-6feeffdf4cb5",
        "display_name": "snap-001",
        "display_description": "Daily backup",
        "volume_id": "521752a6-acf6-4b2d-bc7a-119f9148cd8c",
        "status": "available",
        "size": 30,
        "created_at": "2012-02-29T03:50:07Z"
    }
}

スナップショットの作成

スナップショットの作成コマンドを実行すると、プロジェクト、ファイルシステム、または LUN のスナップショットが作成されます。

  • プロジェクトスナップショットの作成 – POST /pools/pool/projects/project/snapshots

  • ファイルシステムスナップショットの作成 – POST /pools/pool/projects/project/filesystems/share/snapshots

  • ボリュームスナップショットの作成 – POST /pools/pool/projects/project/luns/lun/snapshots

リクエストの例:

POST /api/storage/v1/pools/p1/projects/default/snapshots
Content-Type: application/json

{"name": "initial-backup"}

結果例:

HTTP/1.1 201 Created
Content-Type: application/json
Location: /pools/p1/projects/default/
snapshot/initial-backup

{
    "snapshot": {
        "name": "initial-backup",
        "numclones": 0,
        "creation": "20130610T21:00:49",
        "collection": "local",
        "project": "default",
        "canonical_name": "zfs-storage-1/local/default@initial-backup",
        "usage": {
            "unique": 0.0,
            "loading": false,
            "data": 145408.0
        },
        "type": "snapshot",
        "id": "a26abd24-e22b-62b2-0000-000000000000",
        "pool": "p1"
    }
}

スナップショットの名前変更

既存のスナップショットの名前を変更します。

  • リクエスト URI – スナップショット、現在のスナップショット名

  • リクエスト本文 – 新しいスナップショット名を含む名前パラメータを持つ JSON オブジェクト

リクエストの例:

PUT /api/storage/v1/pools/p1/projects/default/snapshots/initial-snapshot
Content-Type: application/json
Accept: application/json

{"name": "old-snapshot"}

結果例:

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /pools/p1/projects/default/snapshot/initial-backup

スナップショットのクローン作成

既存のスナップショットから新しいファイルシステムまたは LUN を作成します。

次の URI パラメータを使用します。

pool

ソースプール名

project

ソースプロジェクト名

filesystem

ファイルシステムスナップショットのソースシェア名

lun

LUN スナップショットのソースシェア名

snapshot

ソーススナップショット名

ファイルシステムのクローン作成:

PUT /pools/pool/projects/project/filesystems/share/snapshots/snapshot/clone

ボリュームのクローン作成:

PUT /pools/pool/projects/project/luns/lun/snapshots/snapshot/clone

リクエストの本文には、次のプロパティーを持つ JSON オブジェクトが含まれます。

表 52  スナップショットのクローン作成のプロパティー
プロパティー
説明
pool
string
宛先クローンプール名
project
string
宛先クローンプロジェクト名
lun
string
LUN スナップショットの宛先 LUN 名

リクエストの例:

PUT /api/storage/v1/pools/p1/projects/default/filesystems/fs01/
    snapshots/snap01/clone

{"project":"rest", "share":"snap01clone01", "compression": "gzip-9"}

結果例:

HTTP/1.1 201 Created
Content-Length: 2035
X-Zfssa-Storage-Api: 1.0
Location: /api/storage/v1/pools/p1/projects/rest/filesystem/snap01clone01
Content-Type: application/json; charset=utf-8

{
    "filesystem": {
        "origin": {
            "project": "default",
            "share": "fs01",
            "snapshot": "snap01",
            "pool": "p1",
            "collection": "local"
        },
        "href": "/api/storage/v1/pools/p1/projects/rest/filesystems/snap01clone01",
        "mountpoint": "/export/snap01clone01",
        "compression": "gzip-9",
        "source": {
            "compression": "local",
            ...
        },
        ...
       "canonical_name": "zfs-storage-1/local/rest/snap01clone01"
   }
} 

スナップショットのロールバック

スナップショットのロールバックでは、ソースのファイルシステムまたは LUN が、スナップショットが作成されたときの状態に戻されます。応答に成功すると、HTTP ステータス 202 (Accepted) が JSON 形式のスナップショットプロパティーとともに返されます。

次の URI パラメータを使用します。

pool

ソースプール名

project

ソースプロジェクト名

filesystem

ファイルシステムスナップショットのソースファイルシステム名

lun

LUN スナップショットのソース LUN 名

snapshot

ソーススナップショット名

ファイルシステムスナップショットのロールバック:

PUT /pools/pool/projects/project/filesystems/filesystem/snapshots/snapshot/rollback

LUN スナップショットのロールバック:

PUT /pools/pool/projects/project/luns/lun/snapshots/snapshot/rollback

リクエストの例:

PUT /api/storage/v1/pools/p1/projects/default/filesystems/fs-01
    /snapshots/initial-backup/rollback

結果例:

HTTP/1.1 202 Accepted
Location: /pools/p1/projects/default/filesystems/fs-01/snapshot/fs-01-initial-clone
Content-Type: application/json

{
    "snapshot": {
        "name": "fs-01-initial-clone",
        "numclones": 0,
        "creation": "20130610T21:00:49",
        "filesystem": "fs-01",
        "collection": "local",
        "project": "default",
        "canonical_name": "zfs-storage-1/local/default/
               fs-01@fs-01-initial-clone",
        "usage": {
            "unique": 0.0,
            "loading": false,
            "data": 31744.0
        },
        "type": "snapshot",
        "id": "5c9bda07-21c1-2238-0000-000000000000",
        "pool": "p1"
    }
}

スナップショットの削除

スナップショットの DELETE コマンドを実行すると、システムからプロジェクト、ファイルシステム、または LUN のスナップショットが削除されます。

次の URI パラメータを使用します。

pool

ソースプール名

project

ソースプロジェクト名

filesystem

ソースファイルシステム名

lun

LUN の名前

snapshot

ソーススナップショット名

プロジェクトスナップショットの削除:

DELETE /api/storage/v1/pools/pool/projects/project/snapshots/snapshot

ファイルシステムスナップショットの削除:

DELETE /api/storage/v1/pools/pool/projects/project/filesystems/filesystem/snapshots/snapshot

ファイルシステム LUN の削除:

DELETE /api/storage/v1/pools/pool/projects/projectsnapshot

スナップショットに NDMP ホールドがある場合は、?confirm=trueDELETE コマンドに追加してください。ただし、これは NDMP の操作に悪影響を及ぼす可能性があります。詳細については、Oracle ZFS Storage Appliance 管理ガイド、Release OS8.8.x の NDMP 構成を参照してください。

リクエストの例:

DELETE /pools/p1/projects/default/filesystems/fs-01/snapshots/initial-backup?confirm=true

?confirm=true が追加されない場合の結果の例:

スナップショットに NDMP ホールドが存在するときに ?confirm=true が追加されない場合、コマンドは失敗し、次の出力が表示されます (読みやすさのために人為的に改行されています)。

HTTP/1.1 409 Conflict

{"fault": {"message": "request requires confirm=true to complete (confirmation
needed for scripted command (scripted commands must be prefixed with \"confirm\"
to automatically confirm or \"deny\" to automatically deny) (encountered while
attempting to run command \"confirm destroy snap\"))", "code": 409, "name": 
"ERR_CONFIRM_REQUIRED"}}

スナップショット依存の一覧表示

ファイルシステムまたはボリュームの依存を一覧表示します。次の URI パラメータを使用します。

pool

システムのストレージプール名

project

プロジェクト名

filesystem

ファイルシステム名

lun

LUN の名前

snapshot

スナップショット名

ファイルシステムの依存の一覧表示:

GET /api/storage/v1/pools/pool/projects/project/filesystems/filesystem/snapshots/snapshot/dependents

ボリューム依存の一覧表示:

GET /api/storage/v1/pools/pool/projects/project/lun/lun/snapshots/snapshot/dependents

リクエストの例:

GET /api/storage/v1/pools/p1/projects/default/filesystems/fs01/snapshots/snap01/dependents
Accept: application/json

結果例:

HTTP/1.1 200 OK
X-Zfssa-Storage-Api: 1.0
Content-Type: application/json; charset=utf-8
X-Zfssa-Api-Version: 1.0

{
    "dependents": [
        {
            "project": "rest",
            "href": "/api/storage/v1/pools/p1/projects/rest/filesystems/snap01clone01",
            "share": "snap01clone01"
        },
        {
            "project": "rest",
            "href": "/api/storage/v1/pools/p1/projects/rest/filesystems/snap01clone02",
            "share": "snap01clone02"
        },
        {
            "project": "rest",
            "href": "/api/storage/v1/pools/p1/projects/rest/filesystems/snap01clone03",
            "share": "snap01clone03"
        }
    ]
}