모든 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은 JSON 형식의 LUN 등록 정보와 함께 HTTP 상태 200(OK)을 반환합니다.
결과 예:
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은 JSON 형식의 LUN 등록 정보와 함께 HTTP 상태 200(OK)을 반환합니다.
결과 예:
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 매개변수가 사용됩니다.
스토리지 풀 이름
프로젝트 이름
요청 매개변수:
name – 새 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" } }
성공한 만들기는 새 LUN의 URI를 포함하는 위치 헤더와 함께 HTTP 상태 201(Created)을 반환합니다. 본문은 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