Go to main content
Oracle® ZFS Storage Appliance RESTful API ガイド、Release OS8.6.x

印刷ビューの終了

更新: 2016 年 9 月
 
 

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

スナップショットの操作はすべて、指定されたプールまたはプロジェクトにスコープ指定されます。スナップショット操作は、ファイルシステムまたは 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} で始まります。

表 84  スナップショットおよびクローンのコマンド
リクエスト
パス /api/storage/v1
説明
GET
/snapshots
すべてのローカルスナップショットを一覧表示します
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
新しいプロジェクトの自動スナップショットを作成します
GET
/pools/<pool>/projects /<project>/automatic /<automatic>
指定されたプロジェクトの自動スナップショットプロパティーを取得します
GET
/pools/<pool>/projects /<project>/automatic
すべてのプロジェクト自動スナップショットオブジェクトを一覧表示します
PUT
/pools/<pool>/projects /<project>/automatic /<automatic>
指定されたプロジェクトの自動スナップショットオブジェクトを変更します
DELETE
/pools/<pool>/projects /<project>/automatic /<automatic>
指定された自動オブジェクトを破棄します
POST
/pools/<pool>/projects /<project>/filesystems /<filesystem>/automatic
新しいファイルシステムの自動スナップショットを作成します
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>
指定されたファイルシステムの自動スナップショットオブジェクトを変更します
DELETE
/pools/<pool>/projects /<project>/filesystems /<filesystem>/automatic /<automatic>
指定された自動オブジェクトを破棄します
POST
/pools/<pool>/projects /<project>/luns/<lun>/automatic
新しい LUN の自動スナップショットを作成します
GET
/pools/<pool>/projects /<project>/luns/<lun>/automatic /<automatic>
指定された LUN の自動スナップショットプロパティーを取得します
GET
/pools/<pool>/projects /<project>/luns/<lun>/automatic
すべての LUN の自動スナップショットオブジェクトを一覧表示します
PUT
/pools/<pooll>/projects /<project>/luns/<lun>/automatic /<automatic>
指定された LUN の自動スナップショットオブジェクトを変更します
DELETE
/pools/<pool>/projects /<project>/luns/<lun>/automatic /<automatic>
指定された自動オブジェクトを破棄します

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

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

表 85  スナップショットの一覧表示コマンドの形式
コマンド
/api/storage/v1/pools/{pool}/projects/{project}
プロジェクトスナップショットの一覧表示
/snapshots
ファイルシステムスナップショットの一覧表示
/filesystems/{share}/snapshots
LUN スナップショットの一覧表示
/lun/{share}/snapshots

リクエストの例:

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
表 86  URI パラメータ
パラメータ
説明
pool
ソースプール名
project
ソースプロジェクト名
filesystem
ソースシェア名 (ファイルシステムスナップショットの場合)
lun
ソースシェア名 (LUN スナップショットの場合)
snapshot
ソーススナップショット名

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

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

リクエストの例:

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
表 88  URI パラメータ
パラメータ
説明
pool
ソースプール名
project
ソースプロジェクト名
filesystem
ソースファイルシステム名 (ファイルシステムスナップショットの場合)
lun
ソース LUN 名 (LUN スナップショットの場合)
snapshot
ソーススナップショット名

リクエストの例:

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 のスナップショットが削除されます。

表 89  スナップショットの削除コマンドの形式
コマンド
DELETE /api/storage/v1/pools/{pool}/projects/{project}
指定されたプール名、プロジェクト名、およびスナップショット名のプロジェクトスナップショットを削除
/snapshots/{snapshot_name}
指定されたプール名、プロジェクト名、ファイルシステム名、およびスナップショット名のファイルシステムスナップショットを削除
/filesystems/{share_name}/snapshots/{snapshot_name}
指定されたプール名、プロジェクト名、ファイルシステム名、およびスナップショット名のファイルシステム LUN を削除
/luns/ {lun_name}/snapshots/{snapshot_name}
表 90  URI パラメータ
パラメータ
説明
pool
ソースプール名
project
ソースプロジェクト名
filesystem
ソースファイルシステム名
lun
LUN の名前
snapshot
ソーススナップショット名

スナップショットに NDMP ホールドがある場合、?confirm=trueDELETE コマンドに追加する必要があります。ただし、これは 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"}}

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

ファイルシステムまたはボリュームの依存を一覧表示します。

表 91  スナップショット依存の一覧表示コマンドの形式
コマンド
/api/storage/v1/pools/{pool}/projects/{project}
ファイルシステムの依存の一覧表示
/filesystems/{share}/snapshots/{snapshot}/dependents
ボリューム依存の一覧表示
lun/{lun}/snapshots/{snapshot}/dependents
表 92  URI パラメータ
パラメータ
説明
pool
システムのストレージプールの名前
project
プロジェクト名
filesystem
ファイルシステム名
lun
LUN の名前

リクエストの例:

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"
        }
    ]
}