スナップショットの操作はすべて、指定されたプールまたはプロジェクトにスコープ指定されます。スナップショット操作は、ファイルシステムまたは 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 クラウドサービスを参照してください。
|
アプライアンス上の使用可能なスナップショットを一覧表示します。リクエスト URI に応じて、リストにはプロジェクト、ファイルシステム、または LUN のスナップショットが含まれます。
|
リクエストの例:
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 パラメータを使用します。
ソースプール名
ソースプロジェクト名
ファイルシステムスナップショットのソースシェア名
LUN スナップショットのソースシェア名
ソーススナップショット名
ファイルシステムのクローン作成:
PUT /pools/pool/projects/project/filesystems/share/snapshots/snapshot/clone
ボリュームのクローン作成:
PUT /pools/pool/projects/project/luns/lun/snapshots/snapshot/clone
リクエストの本文には、次のプロパティーを持つ JSON オブジェクトが含まれます。
|
リクエストの例:
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 パラメータを使用します。
ソースプール名
ソースプロジェクト名
ファイルシステムスナップショットのソースファイルシステム名
LUN スナップショットのソース LUN 名
ソーススナップショット名
ファイルシステムスナップショットのロールバック:
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 パラメータを使用します。
ソースプール名
ソースプロジェクト名
ソースファイルシステム名
LUN の名前
ソーススナップショット名
プロジェクトスナップショットの削除:
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=true を DELETE コマンドに追加してください。ただし、これは 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 パラメータを使用します。
システムのストレージプール名
プロジェクト名
ファイルシステム名
LUN の名前
スナップショット名
ファイルシステムの依存の一覧表示:
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" } ] }