LUN またはボリュームの操作はすべて、指定されたプールまたはプロジェクトにスコープ指定されます。次の LUN コマンドを使用できます。
|
次の表に、LUN プロパティーを示します。ボリュームは、プロジェクトのプロパティーを継承またはオーバーライドすることもできます。
|
一部のプロパティーは、プロジェクトから継承することもできます。ソースオブジェクトは、これらのプロパティーのそれぞれを一覧表示し、プロパティーが LUN にとってローカルなものであるか、それともプロジェクトから継承されたものであるかを特定します。デフォルトでは、これらのプロパティーはプロジェクトから継承されます。設定されると、LUN にとってローカルになります。ソースオブジェクトは変更できません。ソースを継承されたものに戻すには、プロパティーを設定解除します。
圧縮を設定解除する JSON リクエストの例:
{"unset": ["compression"]}
LUN の一覧表示コマンドを実行すると、指定されたプールまたはプロジェクト内で使用可能な LUN のリストが返されます。
次の URI パラメータを使用します。
ストレージプール名
プロジェクト名
ファイルシステム名
プロジェクト 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 のプロパティーが返されます。
次の URI パラメータを使用します。
ストレージプール名
プロジェクト名
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 に対してサイズまたはクローニングソースを指定する必要があります。
次の URI パラメータを使用します。
ストレージプール名
プロジェクト名
リクエストのパラメータ:
名前 – 新しい 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 の属性を変更します。
次の URI パラメータを使用します。
ストレージプール名
プロジェクト名
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 が削除されます。
次の URI パラメータを使用します。
ストレージプール名
プロジェクト名
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