Go to main content

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

印刷ビューの終了

更新: 2021 年 8 月
 
 

LUN 操作

LUN またはボリュームの操作はすべて、指定されたプールまたはプロジェクトにスコープ指定されます。次の LUN コマンドを使用できます。

表 48  ボリュームのコマンド
リクエスト
パス /api/storage/v{1|2} の後ろに追加
説明
GET
/luns
すべての LUN を一覧表示します
GET
/pools/pool/projects/project/luns
LUN を一覧表示します
GET
/pools/pool/projects/project/luns?snaps=true
スナップショットを含む、すべての LUN を一覧表示します
GET
/pools/pool/projects/project/luns/lun
LUN の詳細を取得します
POST
/pools/pool/projects/project/luns
LUN を作成します
PUT
/pools/pool/projects/project/luns/lun
LUN を変更します
DELETE
/pools/pool/projects/project/luns/lun
LUN を破棄します

次の表に、LUN プロパティーを示します。ボリュームは、プロジェクトのプロパティーを継承またはオーバーライドすることもできます。

表 49  ボリュームのプロパティー
プロパティー
説明
assignednumber
数値または数値のリスト
割り当てられた LU 番号。複数のイニシエータグループに提示される場合、型は数値のリストです。
複数のイニシエータグループに提示される場合、assignednumberinitiatorgroups は同じ順序で並べられます。たとえば、assignednumber リストの最初の項目は、initiatorgroups リストの最初の項目に関連します。
fixednumber
boolean
現在の値で LU 番号を修正するフラグ
initiatorgroups
文字列のリスト
イニシエータグループ。
LUN が複数のイニシエータグループに提示される場合、assignednumberinitiatorgroups は同じ順序で並べられます。たとえば、assignednumber リストの最初の項目は、initiatorgroups リストの最初の項目に関連します。
lunguid
string
STMF の GUID
lunumber
数値または文字列
LU 番号。数字または auto のどちらか。
project
string
プロジェクト名 (変更不可)
source
オブジェクト
プロパティーのソース (local または inherited) を一覧表示します
sparse
boolean
シンプロビジョニングを有効にするフラグ
status
string
論理ユニットのステータス: online または offline
targetgroup
string
ターゲットグループ
usage
オブジェクト
LUN 使用状況の統計を一覧表示します
volblocksize
number
ボリュームのブロックサイズ
volsize
number
ボリュームのサイズ
writecache
boolean
書き込みキャッシュを有効にするフラグ

一部のプロパティーは、プロジェクトから継承することもできます。ソースオブジェクトは、これらのプロパティーのそれぞれを一覧表示し、プロパティーが LUN にとってローカルなものであるか、それともプロジェクトから継承されたものであるかを特定します。デフォルトでは、これらのプロパティーはプロジェクトから継承されます。設定されると、LUN にとってローカルになります。ソースオブジェクトは変更できません。ソースを継承されたものに戻すには、プロパティーを設定解除します。

圧縮を設定解除する JSON リクエストの例:

{"unset": ["compression"]}

LUN を一覧表示します

LUN の一覧表示コマンドを実行すると、指定されたプールまたはプロジェクト内で使用可能な LUN のリストが返されます。


注 -  depth 問合せパラメータおよび match_property-name=value 問合せパラメータはサポートされていません。

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

pool

ストレージプール名

project

プロジェクト名

filesystem

ファイルシステム名

プロジェクト proj-01 内の LUN を一覧表示するリクエストの例:

GET /api/storage/v1/pools/p1/projects/proj-01/luns HTTP/1.1
Host: zfs-storage.example.com:215
Accept: application/json

get が成功すると、HTTP ステータス 200 (OK) が JSON 形式の LUN プロパティーとともに返されます。

結果例:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "luns": [{
        "id": "fa4ac6fb-0bcc-d2e3-0000-000000000000",
        "name": "vol-01"
        ...
    }, {
         "id": "690ae407-7c4d-b5d2-0000-000000000000",
         "name": "vol-01",
         ....
    }]
}

LUN の取得

LUN の取得コマンドを実行すると、指定されたプールまたはプロジェクト内の単一の LUN のプロパティーが返されます。

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

pool

ストレージプール名

project

プロジェクト名

lun

LUN の名前

リクエストの例 (「vol-01」という名前の LUN を取得する):

GET /api/storage/v1/pools/p1/projects/proj-01/lun/vol-01 HTTP/1.1
Host: zfs-storage.example.com:215
Accept: application/json

get が成功すると、HTTP ステータス 200 (OK) が JSON 形式の LUN プロパティーとともに返されます。

結果例:

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

{
    "lun": {
        "logbias": "latency",
        "creation": "20130423T21:31:17",
        "nodestroy": false,
        "dedup": false,
        "rrsrc_actions": [],
        "id": "e3045406-319b-cf7a-0000-000000000000",
        "writecache": false,
        "compression": "off",
        "copies": 1,
        "stmfguid": "600144F0D8E0AE4100005176FDA60001",
        "source": {
            "compression": "default",
            "checksum": "inherited",
            "logbias": "default",
            "dedup": "default",
            "copies": "default",
            "exported": "inherited",
            "rrsrc_actions": "inherited",
            "secondarycache": "default"
        },
        "canonical_name": "p1/local/default/disk1",
        "snaplabel": "",
        "usage": {
            "available": 881469214720.0,
            "loading": false,
            "snapshots": 0.0,
            "compressratio": 100.0,
            "total": 1073758208.0,
            "data": 1073758208.0
        },
        "secondarycache": "all",
        "collection": "local",
        "exported": true,
        "volsize": 1073741824.0,
        "pool": "p1",
        "volblocksize": 8192,
        "checksum": "fletcher4",
        "project": "default",
        "sparse": false
    }
}

新しい LUN の作成

このコマンドを実行すると、新しい LUN が作成されます。新しい LUN に対してサイズまたはクローニングソースを指定する必要があります。

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

pool

ストレージプール名

project

プロジェクト名

リクエストのパラメータ:

  • 名前 – 新しい LUN を作成するには、LUN 名を指定する必要があります。

  • ボリュームプロパティー – LUN プロパティーまたはプロジェクトプロパティーに一覧表示された任意のプロパティーを初期値として設定できます。

リクエストの例:

POST /api/storage/v1/pools/p1/projects/proj-01/luns HTTP/1.1
Host: zfs-storage.example.com:215
Accept: application/json

Request JSON:
{
        name : "vol-001",           // Volume name (required)

        size : 500000,              // New Volume size
        blocksize : 8192,           // New Volume block size
        sparse : true,              // New Volume sparse data flag

        initiatorgroup : 'default', // Initiator group name
        targetgroup : 'default',    // Target group name
        lunumber : 'auto',          // Volume LU number
        status : 'online',          // Initial Status ('online', 'offline')
        fixednumber : false,

        "source": {
            "snapshot_id" : "76b8950a-8594-4e5b-8dce-0dfa9c696358",
            "snapshot": "/pool-001/local/proj-001/snap-001"
        }
}

作成に成功すると、HTTP ステータス 201 (Created) が、新しい LUN の URI を含むロケーションヘッダーとともに返されます。本文には、JSON 形式の LUN プロパティーがすべて含まれます。

結果例:

HTTP/1.1 201 Created
Content-Type: application/json
Location: http://zfs-storage.example.com:215
          /pools/p1/projects/proj-01/luns/vol-001

{
    "lun": {
        "name": "vol-001",
        ...
    }
}

LUN の変更

LUN の変更コマンドは、既存の LUN の属性を変更します。

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

pool

ストレージプール名

project

プロジェクト名

lun

LUN の名前

リクエストパラメータ: ボリュームプロパティー – 任意の LUN プロパティーまたはプロジェクトプロパティーを変更できます。

LUN 名を vol-01 から new-name に変更するリクエストの例:

POST /api/storage/v1/pools/p1/projects/proj-01/luns/vol-01 HTTP/1.1
Host: zfs-storage.example.com:215
Content-Type: application/json
Accept: application/json

{
    "name": "new-name",
}

応答に成功すると、HTTP ステータス 202 (Accepted) が返され、すべての LUN プロパティーが一覧表示されます。

結果例:

HTTP/1.1 201 Created
Content-Type: application/json
Location: /api/storage/v1/pools/p1/projects/proj-01/luns/new-name

{
    "lun": {
        "name": "new-name",
        "pool": "p1",
        "collection": "local",
        "project": "proj-01",
        ...
    }
}

LUN の削除

LUN の削除コマンドを実行すると、指定されたプールまたはプロジェクト内の単一の LUN が削除されます。

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

pool

ストレージプール名

project

プロジェクト名

lun

LUN の名前

ストレージプール内の回収されるべき領域の量をモニターするには、pools/pool に対する GET コマンドを入力します。プロパティー async_destroy_reclaim_space の領域の量に注目します。操作が完了すると、0 が表示されます。

リクエストの例:

DELETE /pools/p1/projects/proj-01/luns/lun-01 HTTP/1.1
Host: zfs-storage.example.com:215
Accept: application/json

get が成功すると、HTTP ステータス 204 (No Content) が返されます。

結果例:

HTTP/1.1 204 No-Content