スナップショットの操作はすべて、指定されたプールまたはプロジェクトにスコープ指定されます。スナップショット操作は、ファイルシステムまたは LUN レベルにもスコープ指定できます。
すべてのプロジェクトベースのスナップショット操作の URI は /api/storage/v1/pools/{pool}/projects/{project} で始まります。
すべてのファイルベースのスナップショット操作の URI は /api/storage/v1/pools/{pool}/projects/{project}/filesystems/{filesystem} で始まります。
すべての LUN ベースのスナップショット操作の URI は /api/storage/v1/pools/{pool}/projects/{project}/luns/{lun} で始まります。
|
アプライアンス上の使用可能なスナップショットを一覧表示します。リクエスト URI に応じて、リストにはプロジェクト、ファイルシステム、または LUN のスナップショットが含まれます。
|
リクエストの例:
GET /api/storage/v1/pools/gold/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/gold/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/gold/projects/default/snapshots Content-Type: application/json {"name": "initial-backup"}
レスポンスの例:
HTTP/1.1 201 Created Content-Type: application/json Location: /pools/gold/projects/default/ snapshot/initial-backup { "snapshot": { "name": "initial-backup", "numclones": 0, "creation": "20130610T21:00:49", "collection": "local", "project": "default", "canonical_name": "gold/local/default@initial-backup", "usage": { "unique": 0.0, "loading": false, "data": 145408.0 }, "type": "snapshot", "id": "a26abd24-e22b-62b2-0000-000000000000", "pool": "gold" } }
既存のスナップショットの名前を変更します。
リクエスト URI - スナップショット、現在のスナップショット名
リクエスト本文 - 新しいスナップショット名を含む名前パラメータを持つ JSON オブジェクト
リクエストの例:
PUT /api/storage/v1/pools/gold/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/gold/projects/default/snapshot/initial-backup
既存のスナップショットから新しいファイルシステムまたは LUN を作成します。
ファイルシステムのクローン作成のリクエスト URI:
PUT /pools/{pool}/projects/{project}/filesystems/{share}/snapshots/{snap}/clone
クローンボリューム:
PUT /pools/{pool}/projects/{project}/luns/{lun}/snapshots/{snapshot}/clone
|
リクエストの本文には、次のプロパティーを持つ JSON オブジェクトが含まれます。
|
リクエストの例:
PUT /api/storage/v1/pools/gold/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/gold/projects/rest/filesystem/snap01clone01 Content-Type: application/json; charset=utf-8 { "filesystem": { "origin": { "project": "default", "share": "fs01", "snapshot": "snap01", "pool": "gold", "collection": "local" }, "href": "/api/storage/v1/pools/gold/projects/rest/filesystems/snap01clone01", "mountpoint": "/export/snap01clone01", "compression": "gzip-9", "source": { "compression": "local", ... }, ... "canonical_name": "gold/local/rest/snap01clone01" } }
スナップショットのロールバックでは、ソースのファイルシステムまたは LUN が、スナップショットが作成されたときの状態に戻されます。応答に成功すると、HTTP ステータス 202 (Accepted) が JSON 形式のスナップショットプロパティーとともに返されます。
ファイルシステムスナップショットのロールバック:
PUT /pools/{pool}/projects/{project}/filesystems/{share}/snapshots/{snap}/rollback
LUN スナップショットのロールバック:
PUT /pools/{pool}/projects/{project}/luns/{lun}/snapshots/{snapshot}/rollback
|
リクエストの例:
PUT /api/storage/v1/pools/gold/projects/default/filesystems/fs-01 /snapshots/initial-backup/rollback
レスポンスの例:
HTTP/1.1 202 Accepted Location: /pools/gold/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": "gold/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": "gold" } }
スナップショットの DELETE コマンドを実行すると、システムからプロジェクト、ファイルシステム、または LUN のスナップショットが削除されます。
|
|
スナップショットに NDMP ホールドがある場合、?confirm=true を DELETE コマンドに追加する必要があります。ただし、これは NDMP の操作に悪影響を及ぼす可能性があります。詳細については、Oracle ZFS Storage Appliance 管理ガイド、Release OS8.6.x の NDMP 構成を参照してください。
例
DELETE /pools/gold/projects/default/filesystems/fs-01/snapshots/initial-backup?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"}}
ファイルシステムまたはボリュームの依存を一覧表示します。
|
|
リクエストの例:
GET /api/storage/v1/pools/gold/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/gold/projects/rest/filesystems/snap01clone01", "share": "snap01clone01" }, { "project": "rest", "href": "/api/storage/v1/pools/gold/projects/rest/filesystems/snap01clone02", "share": "snap01clone02" }, { "project": "rest", "href": "/api/storage/v1/pools/gold/projects/rest/filesystems/snap01clone03", "share": "snap01clone03" } ] }