Go to main content

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

인쇄 보기 종료

업데이트 날짜: 2021년 8월
 
 

파일 시스템 작업

파일 시스템 작업은 파일 시스템 공유를 나열하고 관리합니다. 모든 명령의 범위는 지정된 스토리지 풀 또는 프로젝트로 지정됩니다.

service_uri/pools/pool/project/project
표 46  파일 시스템 명령
요청
경로 /api/storage/v{1|2}에 추가
설명
GET
/filesystems
모든 파일 시스템을 나열합니다.
GET
/pools/pool/projects/project/filesystems
지정된 파일 시스템을 나열합니다.
GET
/pools/pool/projects/project/filesystems?snaps=true
스냅샷을 포함하여 모든 파일 시스템을 나열합니다.
GET
/pools/pool/projects/project/filesystems/filesystem
파일 시스템 세부정보를 가져옵니다.
POST
/pools/pool/projects/project/filesystems
파일 시스템을 만듭니다.
PUT
/pools/pool/projects/project/filesystems/filesystem
파일 시스템을 수정합니다.
DELETE
/pools/pool/projects/project/filesystems/filesystem
파일 시스템을 삭제합니다.
GET
/pools/pool/projects/project/filesystems/filesystem/usage/groups
파일 시스템 그룹 사용량을 가져옵니다.
GET
/pools/pool/projects/project/filesystems/filesystem/usage/groups/group
지정된 그룹에 대한 파일 시스템 사용량을 가져옵니다.
POST
/pools/pool/projects/project/filesystems/filesystem/usage/groups
파일 시스템 그룹 쿼터를 만듭니다.
PUT
/pools/pool/projects/project/filesystems/filesystem/usage/groups/name
파일 시스템 그룹 쿼터를 수정합니다.
GET
/pools/pool/projects/project/filesystems/filesystem/usage/users
파일 시스템 사용자 사용량을 가져옵니다.
GET
/pools/pool/projects/project/filesystems/filesystem/usage/users/user
지정된 사용자에 대한 파일 시스템 사용량을 가져옵니다.
POST
/pools/pool/projects/project/filesystems/filesystem/usage/users
파일 시스템 사용자 쿼터를 만듭니다.
PUT
/pools/pool/projects/project/filesystems/filesystem/usage/users/name
파일 시스템 사용자 쿼터를 수정합니다.
GET
/pools/pool/projects/project/filesystems/filesystem/shadow/errors
섀도우 마이그레이션 오류를 나열합니다.

각 파일 시스템은 프로젝트의 등록 정보를 포함하고 있으며 다음 파일 시스템별 등록 정보도 포함하고 있습니다.

표 47  파일 시스템 등록 정보
등록 정보
유형
설명
casesensitivity
string
대소문자 구분 설정(mixed, sensitive 또는 insensitive)
group
string
그룹 이름
normalization
string
정규화
permissions
string
파일 시스템 권한
project
string
프로젝트 이름
quota_snap
boolean
쿼터에 스냅샷을 포함하는 플래그
reservation_snap
boolean
예약에 스냅샷을 포함하는 플래그
shadow
string
데이터 마이그레이션 소스
errors
string
데이터 마이그레이션 오류
sharesmb_name
string
SMB 공유의 이름
source
object
프로젝트 상속 등록 정보
usage
object
파일 시스템 사용량 정보
user
string
공유를 소유하는 사용자 이름
utf8only
boolean
비UTF-8을 거부하는 플래그

파일 시스템 나열

파일 시스템 나열 명령은 지정된 풀 또는 프로젝트의 모든 파일 시스템을 표시합니다.


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

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

파일 시스템 나열 명령은 다음 URI 매개변수를 사용합니다.

pool

스토리지 풀 이름

project

프로젝트 이름

요청 예:

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

성공한 요청은 JSON 형식의 파일 시스템 등록 정보 배열과 함께 HTTP 상태 200(OK)을 반환합니다.

결과 예:

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

{
    "filesystems": [{
        "name": "filesystem-01",
        "project": "proj-01",
        "pool": "p1",
        ...
    }, {
        "name": "filesystem-02",
        "project": "proj-01",
        "pool": "p1",
        ...
    }]
}

모든 풀 및 프로젝트의 모든 파일 시스템 목록도 지원됩니다. 이 경우 URI는 /api/storage/v{1|2}/filesystems가 됩니다.

"abcd" 문자열을 해당 등록 정보의 일부로 사용하여 모든 파일 시스템을 가져오는 요청의 예:

GET /api/storage/v1/filesystems?filter=abcd HTTP/1.1
Host: zfs-storage.example.com:215
Accept: application/json

파일 시스템 가져오기

파일 시스템 가져오기 명령은 지정된 풀 또는 프로젝트의 단일 파일 시스템 등록 정보를 반환합니다. 다음 URI 매개변수가 사용됩니다.

pool

스토리지 풀 이름

project

프로젝트 이름

filesystem

파일 시스템 이름

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

GET /api/storage/v1/pools/p1/projects/proj-01 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

{
    "filesystem": {
        "logbias": "latency",
        "creation": "20130423T21:30:34",
        "nodestroy": false,
        "dedup": false,
        "sharenfs": "on",
        "sharesmb": "off",
        "mountpoint": "/export/mnt1",
        "snaplabel": "",
        "id": "424ca2ec-b3fa-df86-0000-000000000000",
        "readonly": false,
        "rrsrc_actions": [],
        "compression": "off",
        "sharetftp": "",
        "source": {
            "logbias": "default",
            "dedup": "default",
            "sharenfs": "inherited",
            "sharesmb": "off",
            "mountpoint": "inherited",
            "rrsrc_actions": "local",
            "compression": "default",
            "sharetftp": "inherited",
            "snapdir": "default",
            "aclmode": "default",
            "copies": "default",
            "aclinherit": "default",
            "shareftp": "inherited",
            "readonly": "default",
            "secondarycache": "default",
            "exported": "inherited",
            "vscan": "default",
            "reservation": "local",
            "atime": "default",
            "recordsize": "default",
            "checksum": "inherited",
            "sharesftp": "inherited",
            "nbmand": "default",
            "rstchown": "default"
        },
        "snapdir": "hidden",
        "aclmode": "discard",
        "copies": 1,
        "aclinherit": "restricted",
        "shareftp": "",
        "canonical_name": "p1/local/default/mnt1",
        "recordsize": 131072.0,
        "usage": {
            "available": 880395477504.0,
            "loading": false,
            "quota": 0.0,
            "snapshots": 18432.0,
            "compressratio": 100.0,
            "reservation": 0.0,
            "total": 50176.0,
            "data": 31744.0
        },
        "secondarycache": "all",
        "collection": "local",
        "exported": true,
        "vscan": false,
        "reservation": 0.0,
        "shadow": "none",
        "atime": true,
        "pool": "p1",
        "quota_snap": true,
        "name": "mnt1",
        "checksum": "fletcher4",
        "project": "default",
        "sharesftp": "",
        "nbmand": false,
        "reservation_snap": true,
        "sharedav": "",
        "rstchown": true,
        "root_acl": {
             "owner@:cC:fd:deny",
             "everyone@:rw:fd:allow",
             "user:admin1:rw:allow",
        }
        "smbshareacl": {
             "owner@:cC:fd:deny",
             "everyone@:rw:fd:allow",
             "user:admin1:rw:allow",
        }
}

파일 시스템 만들기

파일 시스템 만들기 명령은 지정된 스토리지 풀 또는 프로젝트에 있는 지정된 이름의 파일 시스템을 만듭니다. 기본 등록 정보가 지정된 새 파일 시스템이 반환됩니다.

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

pool

스토리지 풀 이름

project

프로젝트 이름

filesystem

파일 시스템 이름

요청 매개변수:

  • name – 새 파일 시스템을 만들려면 파일 시스템 이름을 제공해야 합니다.

  • 파일 시스템 등록 정보 – 파일 시스템 등록 정보 또는 프로젝트 등록 정보에 나열된 등록 정보를 초기 값으로 설정할 수 있습니다.

이름이 share-01이고 사용자 admin1이 소유한 파일 시스템을 만드는 요청의 예:

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

{
    "name": "share-01",
    "root_user": "admin1"
}

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

결과 예:

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

{
    "filesystem": {
        "name": "share-01",
        "pool": "p1",
        "collection": "local",
        "project": "proj-01",
        "root_user": "admin1"
        ...
    }
}

파일 시스템 수정

파일 시스템 수정 명령은 기존 파일 시스템의 속성을 변경합니다. 성공한 응답은 HTTP 상태 202(Accepted)를 반환하고 모든 파일 시스템 등록 정보를 나열합니다.

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

pool

스토리지 풀 이름

project

프로젝트 이름

filesystem

파일 시스템 이름

요청 매개변수: 파일 시스템 등록 정보 – 파일 시스템 또는 프로젝트 등록 정보를 수정할 수 있습니다.

파일 시스템 이름을 share-01에서 new-name으로 변경하고 소유자를 nobody로 변경하는 요청의 예:

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

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

결과 예:

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: http://zfs-storage.example.com:215/pools/p1/projects/proj-01/filesystems/share-01

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

파일 시스템 삭제

파일 시스템 삭제 명령은 지정된 풀 또는 프로젝트의 단일 파일 시스템을 제거합니다.

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

pool

스토리지 풀 이름

project

프로젝트 이름

filesystem

파일 시스템 이름

스토리지 풀에서 회수할 공간을 모니터하려면 pools/pool에 대한 GET 명령을 입력합니다. async_destroy_reclaim_space 등록 정보에 대한 공간을 기록해 두십시오. 작업이 완료되면 0이 표시됩니다.

요청 예:

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

성공한 삭제는 HTTP 상태 204(No Content)를 반환합니다.

결과 예:

HTTP/1.1 204 No-Content

파일 시스템 쿼터 및 사용량

사용자 또는 그룹 쿼터는 각각 POST 또는 PUT 요청을 사용하여 만들거나 수정할 수 있습니다. 파일 시스템 사용 리소스에 대한 GET 요청은 프로젝트에 대한 사용자당 또는 그룹당 사용량 데이터를 가져오는 데 사용됩니다.