파일 시스템 작업은 파일 시스템 공유를 나열하고 관리합니다. 모든 명령의 범위는 지정된 스토리지 풀 또는 프로젝트로 지정됩니다.
{service_uri}/pools/{pool}/project/{project}
|
각 파일 시스템은 프로젝트의 등록 정보를 포함하고 있으며 다음 파일 시스템별 등록 정보도 포함하고 있습니다.
|
파일 시스템 나열 명령은 지정된 풀 또는 프로젝트의 모든 파일 시스템을 표시합니다.
질의 매개변수 - 필터 – 프로젝트 내의 등록 정보가 해당 값 안에 동일한 필터 문자열을 포함하도록 요구하는 단순한 문자열 일치 필터입니다.
|
요청 예:
GET /api/storage/v1/pools/gold/projects/proj-01/filesystems HTTP/1.1 Host: zfs-storage.example.com Accept: application/json
성공한 요청은 JSON 형식의 파일 시스템 등록 정보 배열과 함께 HTTP 상태 200(OK)을 반환합니다.
결과 예:
HTTP/1.1 200 OK Content-Type: application/json { “filesystems”: [{ “name”: “filesystem-01”, “project”: “proj-01”, “pool”: “gold”, ... }, { “name”: “filesystem-02”, “project”: “proj-01”, “pool”: “gold”, ... }] }
모든 풀 및 프로젝트의 모든 파일 시스템 목록도 지원됩니다. 이 경우 URI는 /api/storage/v1/filesystems가 됩니다.
"abcd" 문자열을 해당 등록 정보의 일부로 사용하여 모든 파일 시스템을 가져오는 요청의 예:
GET /api/storage/v1/filesystems?filter=abcd HTTP/1.1 Host: zfs-storage.example.com Accept: application/json
파일 시스템 가져오기 명령은 지정된 풀 또는 프로젝트의 단일 파일 시스템 등록 정보를 반환합니다.
|
이름이 "proj-01"인 프로젝트를 나열하는 요청의 예:
GET /api/storage/v1/pools/gold/projects/proj-01 HTTP/1.1 Host: zfs-storage.example.com 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/grape", "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": "platinum/local/default/grape", "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": "platinum", "quota_snap": true, "name": "grape", "checksum": "fletcher4", "project": "default", "sharesftp": "", "nbmand": false, "reservation_snap": true, "sharedav": "", "rstchown": true } }
파일 시스템 만들기 명령은 지정된 스토리지 풀 또는 프로젝트에 있는 지정된 이름의 파일 시스템을 만듭니다. 기본 등록 정보가 지정된 새 파일 시스템이 반환됩니다.
|
요청 매개변수:
name - 새 파일 시스템을 만들려면 파일 시스템 이름을 제공해야 합니다.
filesystem properties – 파일 시스템 등록 정보 또는 프로젝트 등록 정보에 나열된 등록 정보를 초기 값으로 설정할 수 있습니다.
이름이 "share-01"이고 사용자 "joe"가 소유한 파일 시스템을 만드는 요청의 예:
POST /api/storage/v1/pools/gold/projects/proj-01/filesystems HTTP/1.1 Host: zfs-storage.example.com Content-Type: application/json Accept: application/json { “name”: “share-01”, “owner”: “joe” }
성공한 만들기는 새 파일 시스템의 URI를 포함하는 위치 헤더와 함께 HTTP 상태 201(Created)을 반환합니다. 본문은 JSON 형식의 모든 파일 시스템 등록 정보를 포함합니다.
응답 예:
HTTP/1.1 201 Created Content-Type: application/json Location: /api/storage/v1/pools/gold/projects/proj-01/filesystems/share-01 { “filesystem”: { “name”: “share-01”, “pool”: “gold”, “collection”: “local”, “project”: “proj-01”, “owner”: “joe” ... } }
파일 시스템 수정 명령은 기존 파일 시스템의 속성을 변경합니다. 성공한 응답은 HTTP 상태 202(Accepted)를 반환하고 모든 파일 시스템 등록 정보를 나열합니다.
요청 매개변수 - 파일 시스템 등록 정보 – 파일 시스템 또는 프로젝트 등록 정보를 수정할 수 있습니다.
|
파일 시스템 이름을 "share-01"에서 "new-name"으로 변경하고 소유자를 "nobody"로 변경하는 요청의 예:
PUT /api/storage/v1/pools/gold/projects/proj-01/filesystems/share-01 HTTP/1.1 Host: zfs-storage.example.com Content-Type: application/json Accept: application/json { “name”: “new-name”, “owner”: “nobody”, }
응답 예:
HTTP/1.1 202 Accepted Content-Type: application/json Location: http://zfs-storage.example.com:215 /pools/gold/projects/proj-01/filesystems/share-01 { “filesystem”: { “name”: “new-name”, “pool”: “gold”, “collection”: “local”, “project”: “proj-01”, “owner”: “nobody” ... } }
파일 시스템 삭제 명령은 지정된 풀 또는 프로젝트의 단일 파일 시스템을 제거합니다.
|
요청 예:
DELETE /api/storage/v1/pools/gold/projects/proj-01/filesystems/share-01 HTTP/1.1 Host: zfs-storage.example.com Accept: application/json
성공한 삭제는 HTTP 상태 204(No Content)를 반환합니다.
응답 예:
HTTP/1.1 204 No-Content
사용자 또는 그룹 쿼터는 각각 POST 또는 PUT 요청을 사용하여 만들거나 수정할 수 있습니다. 파일 시스템 사용 리소스에 대한 GET 요청은 프로젝트에 대한 사용자당 또는 그룹당 사용량 데이터를 가져오는 데 사용됩니다.