Go to main content

Oracle® ZFS Storage Appliance RESTful API 설명서, 릴리스 OS8.8.x

인쇄 보기 종료

업데이트 날짜: 2021년 8월
 
 

프로젝트 작업

모든 프로젝트 작업의 범위를 지정된 풀로 설정할 수 있습니다. 모든 프로젝트에서 작동하는 명령은 URI에 /projects를 추가하고 단일 프로젝트에서 작동하는 명령은 /projects/project를 추가합니다.

표 44  프로젝트 명령
요청
경로 /api/storage/v{1|2}에 추가
설명
GET
/projects
모든 프로젝트를 나열합니다.
GET
/pools/pool/projects
프로젝트를 나열합니다.
GET
/pools/pool/projects?snaps=true
스냅샷을 포함하여 모든 프로젝트를 나열합니다.
GET
/pools/pool/projects/project
프로젝트 세부정보를 가져옵니다.
POST
/pools/pool/projects
프로젝트를 만듭니다.
PUT
/pools/pool/projects/project
프로젝트를 수정합니다.
DELETE
/pools/pool/projects/project
프로젝트를 삭제합니다.
GET
/pools/pool/projects/project/usage/groups
프로젝트 그룹 사용량을 가져옵니다.
GET
/pools/pool/projects/project/usage/groups/group
지정된 그룹에 대한 프로젝트 사용량을 가져옵니다.
GET
/pools/pool/projects/project/usage/users
프로젝트 사용자 사용량을 가져옵니다.
GET
/pools/pool/projects/project/usage/users/user
지정된 사용자에 대한 프로젝트 사용량을 가져옵니다.

다음 표는 프로젝트 리소스 내에 있는 편집 가능한 등록 정보의 목록을 보여 줍니다.

표 45  프로젝트 등록 정보
등록 정보
유형
설명
aclinherit
string
ACL 상속 동작("discard", "noallow", "restricted", "passthrough", "passthrough-x", "passthrough-mode-preserve")
aclmode
string
모드 변경 시 ACL 동작("discard", "mask", "passthrough")
atime
boolean
읽기 시 액세스 시간 업데이트 플래그
canonical_name
string
표준 이름
checksum
string
블록 체크섬("fletcher2", "fletcher4", "sha256")
compression
string
데이터 압축 설정("off", "lzjb", "gzip-2", "gzip", "gzip-9")
copies
number
추가 복제 복사본 수
creation
datetime
프로젝트(또는 LUN, 파일 시스템) 생성 날짜 및 시간
dedup
boolean
데이터 중복 플래그
default_group
string
프로젝트 기본 파일 시스템 그룹: "other"
default_permissions
string
프로젝트 기본 파일 시스템 권한 "700"
default_sparse
boolean
프로젝트 기본 LUN 스파스 데이터 플래그
default_user
string
프로젝트 기본 파일 시스템 사용자: "nobody"
default_volblocksize
number
프로젝트 기본 LUN 블록 크기: 8192
default_volsize
number
프로젝트 기본 LUN 크기
exported
boolean
내보냄 플래그
logbias
string
동기식 쓰기 바이어스("latency", "throughput")
mountpoint
string
마운트 지점 기본값 공유 "/export/proj-01"
name
string
프로젝트 이름
nbmand
boolean
비블로킹 필수 잠금 플래그
nodestroy
boolean
삭제 금지 플래그
quota
number
바이트 단위의 프로젝트 쿼터 크기
origin
string
원점 복제
pool
string
풀 이름
readonly
boolean
데이터는 true로 설정된 경우 읽기 전용임
recordsize
string
데이터베이스 레코드 크기 "128k"
reservation
number
데이터 예약 크기
rstchown
boolean
소유권 변경 제한 플래그
secondarycache
string
보조 캐시 사용량("all", "metadata", "none")
sharedav
string
HTTP 공유("off", "rw", "ro")
shareftp
string
FTP 공유("off", "rw", "ro")
sharenfs
string
NFS 공유("off", "on", "ro", "rw")
sharesftp
string
SFTP 공유("off", "rw", "ro")
sharesmb
string
SMB/CIFS 공유("off", "rw", "ro")
sharetftp
string
TFTP 공유("off", "rw", "ro")
snapdir
string
.zfs/snapshot 가시성("hidden", "visible")
snaplabel
string
예약된 스냅샷 레이블
vscan
boolean
바이러스 검사 플래그

프로젝트 나열

이 명령은 지정된 풀의 모든 프로젝트를 나열합니다. 요청은 스토리지 풀 이름인 단일 URI 매개변수를 사용합니다. 반환된 각 프로젝트는 위에 나열된 수정 가능한 등록 정보 목록은 물론 풀 이름, 생성 시간, 로딩 상태, 복제 작업 및 데이터 사용량도 포함합니다.


주 -  depth 질의 매개변수와 match_property-name=value 질의 매개변수는 지원되지 않습니다.

요청 매개변수: filter – 프로젝트 내의 등록 정보가 해당 값 안에 동일한 필터 문자열을 포함하도록 요구하는 단순한 문자열 일치 필터입니다.

요청 예:

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

get에 성공하면 JSON 형식의 프로젝트 등록 정보 배열과 함께 HTTP 코드 200(OK)이 반환됩니다.

결과 예:

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

{
    "projects": [{
        "name": "proj-01",
        ...
    }, {
        "name": "proj-02",
        ...
    }
}

모든 풀의 모든 프로젝트 목록도 지원됩니다. URI는 /projects 경로만 포함합니다.

backup을 해당 등록 정보의 일부로 사용하여 모든 프로젝트를 가져오는 요청의 예:

GET /projects?filter=backup HTTP/1.1
Host: zfs-storage.example.com:215
Accept: application/json

프로젝트 등록 정보 가져오기

이 명령은 지정된 풀의 단일 프로젝트에 대한 등록 정보를 나열합니다. 성공한 get은 JSON 형식의 프로젝트 등록 정보와 함께 HTTP 코드 200(OK)을 반환합니다.

zfs-storage-1 풀에 이름이 proj-01인 프로젝트를 나열하는 요청의 예:

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

결과 예:

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

{
    "project": {
        "default_volblocksize": 8192.0,
        "logbias": "latency",
        "creation": "20130411T20:02:35",
        "nodestroy": false,
        "dedup": false,
        "sharenfs": "on",
        "sharesmb": "off",
        "default_permissions": "700",
        "mountpoint": "/export",
        "snaplabel": "",
        "id": "042919bb-0882-d903-0000-000000000000",
        "readonly": false,
        "rrsrc_actions": [],
        "compression": "off",
        "sharetftp": "",
        "default_sparse": false,
        "snapdir": "hidden",
        "aclmode": "discard",
        "copies": 1,
        "aclinherit": "restricted",
        "shareftp": "",
        "canonical_name": "zfs-storage-1/local/default",
        "recordsize": 131072.0,
        "usage": {
            "available": 1758424767306.0,
            "loading": false,
            "quota": 0.0,
            "snapshots": 0.0,
            "compressratio": 100.0,
            "child_reservation": 0.0,
            "reservation": 0.0,
            "total": 45960.0,
            "data": 45960.0
        },
        "default_volsize": 0.0,
        "secondarycache": "all",
        "collection": "local",
        "exported": true,
        "vscan": false,
        "reservation": 0.0,
        "atime": true,
        "pool": "p1",
        "default_user": "nobody",
        "name": "default",
        "checksum": "fletcher4",
        "default_group": "other",
        "sharesftp": "",
        "nbmand": false,
        "sharedav": "",
        "rstchown": true
    }
}

프로젝트 만들기

프로젝트 만들기 명령은 지정된 스토리지 풀에 있는 지정된 이름의 프로젝트를 만듭니다. 요청은 스토리지 풀 이름인 단일 URI 매개변수를 사용합니다. 기본 등록 정보가 지정된 새 프로젝트가 반환됩니다.

JSON 본문 요청 매개변수:

  • name – 프로젝트를 만들려면 프로젝트 이름을 제공해야 합니다.

  • 프로젝트 등록 정보 – 프로젝트 등록 정보를 새 프로젝트의 초기 값으로 설정할 수 있습니다.

이름이 proj-01인 프로젝트를 만드는 요청의 예:

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

{
    "name": "proj-01",
    "sharenfs": "ro"
}

성공한 만들기는 새 프로젝트의 URI를 포함하는 위치 헤더와 함께 HTTP 상태 201(Created)을 반환합니다. 본문은 JSON 형식의 모든 프로젝트 등록 정보를 포함합니다.

결과 예:

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

{
    "project": {
        "name": "proj-01",
        "href": "/api/storage/v1/pools/p1/projects/proj-01",
        "mountpoint": "/export/acme/zfs-storage-1",
        ...
    }
}

프로젝트 수정

프로젝트 수정 명령은 기존 프로젝트의 속성을 변경합니다. 다음 URI 매개변수가 사용됩니다.

pool

스토리지 풀 이름

project

프로젝트 이름

요청 매개변수: 프로젝트 등록 정보 – 프로젝트 등록 정보를 새 프로젝트의 초기 값으로 설정할 수 있습니다.

프로젝트 이름을 proj-01에서 new-name으로 변경하는 요청의 예:

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

{
    "name": "new-name",
    "sharenfs": "rw",
    "compression": "gzip-9"
}

성공한 응답은 HTTP 상태 202(Accepted)를 반환하고 모든 프로젝트 등록 정보를 나열합니다.

결과 예:

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

{
    "project": {
        "name": "new-name",
        "sharenfs": "rw",
        "compression: "gzip-9",
         ...
    }
}

프로젝트 삭제

프로젝트 삭제 명령은 지정된 풀의 단일 프로젝트를 제거합니다. 다음 URI 매개변수가 사용됩니다.

pool

스토리지 풀 이름

project

프로젝트 이름

지연된 업데이트 "비동기 데이터 세트 삭제(OS8.7.0)"가 수락된 경우 스토리지 풀에서 회수할 공간을 모니터하려면 pools/pool에 대한 GET 명령을 입력합니다. async_destroy_reclaim_space 등록 정보에 대한 공간을 기록해 두십시오. 작업이 완료되면 0이 표시됩니다.

요청 예:

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

프로젝트 사용량

Get 요청 프로젝트 사용량 리소스를 통해 프로젝트에 대해 사용자별 또는 그룹별로 사용량 데이터를 가져올 수 있습니다.