Go to main content

Oracle® ZFS Storage Appliance RESTful API ガイド、Release OS8.8.x

印刷ビューの終了

更新: 2021 年 8 月
 
 

プロジェクトの操作

プロジェクトの操作はすべて、特定のプールへスコープ指定できます。すべてのプロジェクトを対象に操作するコマンドでは URI の後ろに /projects を追加し、1 つのプロジェクトを対象に操作するコマンドでは /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 が成功すると、HTTP コード 200 (OK) が JSON 形式のプロジェクトプロパティーの配列とともに返されます。

結果例:

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 が成功すると、HTTP コード 200 (OK) が JSON 形式のプロジェクトプロパティーとともに返されます。

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 の本文リクエストパラメータ:

  • 名前 – プロジェクトを作成するには、プロジェクト名を指定する必要があります。

  • プロジェクトプロパティー – 任意のプロジェクトプロパティーを新しいプロジェクトの初期値として設定できます。

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

プロジェクトの使用状況

プロジェクトの使用状況リソースの取得リクエストは、プロジェクトのユーザー当たりまたはグループ当たりの使用状況データの取得に使用できます。