파일 시스템 작업은 파일 시스템 공유를 나열하고 관리합니다. 모든 명령의 범위는 지정된 스토리지 풀 또는 프로젝트로 지정됩니다.
{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 요청은 프로젝트에 대한 사용자당 또는 그룹당 사용량 데이터를 가져오는 데 사용됩니다.