Go to main content

Oracle® ZFS Storage Appliance RESTful API 설명서, 릴리스 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
number 또는 list of numbers
지정된 LU 번호 다중 개시자 그룹에 제공된 경우 유형은 list of numbers입니다.
다중 개시자 그룹에 제공된 경우 assignednumberinitiatorgroups의 순서가 조정됩니다. 예를 들어, assignednumber 목록의 첫번째 항목은 initiatorgroups 목록의 첫번째 항목과 관련이 있습니다.
fixednumber
boolean
LU 번호를 현재 값에 고정하는 플래그.
initiatorgroups
list of strings
개시자 그룹입니다.
LUN이 다중 개시자 그룹에 제공된 경우 assignednumberinitiatorgroups의 순서가 조정됩니다. 예를 들어, assignednumber 목록의 첫번째 항목은 initiatorgroups 목록의 첫번째 항목과 관련이 있습니다.
lunguid
string
STMF GUID입니다.
lunumber
number 또는 string
LU 번호 number 또는 auto입니다.
project
string
프로젝트 이름(변경할 수 없음).
source
object
등록 정보의 소스(local 또는 inherited)를 나열합니다.
sparse
boolean
Thin 프로비저닝을 사용으로 설정하는 플래그.
status
string
논리 장치 상태(online 또는 offline)입니다.
targetgroup
string
대상 그룹
usage
object
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은 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 가져오기 명령은 지정된 풀 또는 프로젝트의 단일 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은 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을 만듭니다. 새 LUN에 대한 크기 또는 복제 소스를 제공해야 합니다.

다음 URI 매개변수가 사용됩니다.

pool

스토리지 풀 이름

project

프로젝트 이름

요청 매개변수:

  • 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 수정 명령은 기존 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