Go to main content

Oracle® ZFS Storage Appliance RESTful API ガイド、Release 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
大/小文字の区別の設定: mixedsensitive、または insensitive
group
string
グループ名
normalization
string
正規化
permissions
string
ファイルシステムの権限
project
string
プロジェクト名
quota_snap
boolean
割り当て制限にスナップショットを含めるフラグ
reservation_snap
boolean
予約にスナップショットを含めるフラグ
shadow
string
データ移行ソース
errors
string
データ移行エラー
sharesmb_name
string
SMB シェアの名前
source
オブジェクト
プロジェクト継承プロパティー
usage
オブジェクト
ファイルシステムの使用状況情報
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

リクエストに成功すると、HTTP ステータス 200 (OK) が JSON 形式のファイルシステムプロパティーの配列とともに返されます。

結果例:

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 が成功すると、HTTP ステータス 200 (OK) が JSON 形式のファイルシステムプロパティーとともに返されます。

結果例:

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

ファイルシステム名

リクエストパラメータ:

  • 名前 – 新しいファイルシステムを作成するには、ファイルシステム名を指定する必要があります。

  • ファイルシステムプロパティー – ファイルシステムプロパティーまたはプロジェクトプロパティーに一覧表示された任意のプロパティーを初期値として設定できます。

リクエストの例 (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"
}

作成に成功すると、HTTP ステータス 201 (Created) が、新しいファイルシステムの URI を含むロケーションヘッダーとともに返されます。本文には、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 リクエストは、プロジェクトのユーザー当たりまたはグループ当たりの使用状況データの取得に使用できます。