Cloud Volumes Service
本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

Cloud Volumes API

貢獻者

透過Web UI提供的Cloud Volumes功能也可透過RESTful API取得。API可讓您建立及管理雲端磁碟區、並開發資源配置指令碼和工具。

尋找API URL、API金鑰和秘密金鑰

您需要取得Cloud Volumes API URL、API金鑰和Secret金鑰、才能執行API呼叫。

步驟
  1. 在儲存頁面或使用者名稱下的下拉式功能表中、按一下「* API access*(* API存取*)」。

  2. 記錄Cloud Volumes API URL、API金鑰和Secret金鑰。

列出可用的API

儲存頁面會顯示您可以使用的可用API。

步驟
  1. 按一下儲存頁面上的* API documentation *。

    頁面會列出可用的API。

  2. 捲動頁面以查看可用的API。

    API會依功能列出、例如:

    • 《Volume》(Volume)

    • 「我的最大目標」

    • 《太老了》

    • "快照"

  3. 若要取得如何使用API呼叫的詳細資料和範例、請選取該功能、然後按一下下列其中一個動作:

    • 「Get」:讀取

    • 「POST」:建立

    • 「PUT」:更新或修改

    • 「刪除」:破壞

使用Cloud Volumes API

本節說明如何使用Cloud Volumes API。這些範例使用Linux Bash Shell的Curl。您需要將「<API_URL>'、「<API_key>'」和「<secret _key>'」取代為您從記錄的值 尋找API URL、API金鑰和秘密金鑰

語法

'* curl -s -H Accept:application/json -H "Content-type: application/json"-H API-key:<API_key>-H secret key:<secret _key>-X [Get、POST、PUT、DELETE ]<API_URL>/v2/<command>*

範例

列出磁碟區

下列範例顯示所有磁碟區的相關資訊:

註 透過「jq」傳送命令可改善「json」輸出的格式。您可能需要在系統上安裝「jq」。
curl -s -H accept:application/json -H "Content-type: application/json" -H api-key:<api_key> -H secret-key:<secret_key> -X GET <api_url>/v2/Volumes | jq

列出特定Volume的詳細資料

每個Volume都有一個名為「volumeId」的ID、例如「07c9ab6c-b655-a9fe-f904-b9b97ef9baaa」。在API呼叫中包含ID、可提供特定Volume的詳細資料:

curl -s -H accept:application/json -H "Content-type: application/json" -H api-key:<api_key> -H secret-key:<secret_key> -X GET <api_url>/v2/Volumes/<volumeId> | jq

建立Volume

以下範例使用「POST」呼叫、在「us-west-1」區域建立名為「Test」的Volume、其「分配容量」為100 GB、並使用「NFSv3」匯出:

curl -s -H accept:application/json -H "Content-type: application/json" -H api-key:<api_key> -H secret-key:<secret_key> -X POST <api_url>/v2/Volumes -d '
{
	"name": "Test",
	"creationToken": "grahams-test-volume3",
	"region": "us-west-1",
	"serviceLevel": "standard",
	"quotaInBytes": 100000000000,
	"exportPolicy": {"rules": [{"ruleIndex": 1,"allowedClients": "0.0.0.0/0","unixReadOnly": false,"unixReadWrite": true,"cifs": false,"nfsv3": true,"nfsv4": false}]},
	"protocolTypes": ["NFSv3"],
	"labels": ["test"]
}'

正在更新磁碟區

以下範例使用「PUT」呼叫來更新名為「Test」的磁碟區、將服務層級變更為「Extreme」、並將分配的容量變更為600 GB:

curl -s -H accept:application/json -H "Content-type: application/json" -H api-key:<api_key> -H secret-key:<secret_key> -X PUT <api_url>/v2/Volumes/<volumeId> -d '
{
	"serviceLevel": "extreme",
	"quotaInBytes": 600000000000
}'

刪除Volume

以下範例使用「刪除」呼叫來刪除由「volumeId」指定的Volume:

curl -s -H accept:application/json -H "Content-type: application/json" -H api-key:<api_key> -H secret-key:<secret_key> -X DELETE <api_url>/v2/Volumes/<volumeId>
重要 請謹慎使用。此API呼叫會刪除Volume及其所有資料。

建立快照

以下範例使用「POST」呼叫來建立特定Volume的快照、稱為「快照」:

curl -s -H accept:application/json -H "Content-type: application/json" -H api-key:<api_key> -H secret-key:<secret_key> -X POST <api_url>/v2/Volumes/<volumeId>/Snapshots -d '
{
	"name": "<snapshot-name>"
}'

建立快照原則

以下範例使用「PUT(放置))呼叫來建立特定磁碟區的快照原則:

curl -s -H accept:application/json -H "Content-type: application/json" -H api-key:<api_key> -H secret-key:<secret_key> -X PUT <api_url>/v2/Volumes/<volumeId> -d '
{
	"snapshotPolicy": {
        "dailySchedule": {},
        "enabled": true,
        "hourlySchedule": {
            "minute": 33,
            "snapshotsToKeep": 24
        },
        "monthlySchedule": {},
        "weeklySchedule": {}
    }
}'

列出特定磁碟區的快照

以下範例使用「Get」(取得)呼叫來列出特定Volume的快照:

curl -s -H accept:application/json -H "Content-type: application/json" -H api-key:<api_key> -H secret-key:<secret_key> -X GET <api_url>/v2/Volumes/<volumeId>/Snapshots

還原快照

以下範例使用「POST」呼叫、從「Snapshot Id」和「volumeId」指定的快照中還原磁碟區:

curl -s -H accept:application/json -H "Content-type: application/json" -H api-key:<api_key> -H secret-key:<secret_key> -X POST <api_url>/v2/Volumes/<volumeId>/Revert -d '
{
	"snapshotId": "<snapshotId>"
}'
重要 請謹慎使用。此API呼叫會導致在該快照日期之後寫入的任何資料遺失。

從快照建立新磁碟區

以下範例使用「POST」呼叫、根據「Snapshot Id」指定的現有磁碟區快照來建立新的磁碟區:

curl -s -H accept:application/json -H "Content-type: application/json" -H api-key:<api_key> -H secret-key:<secret_key> -X POST <api_url>/v2/Volumes -d '
{
	"snapshotId": "<snapshotId>",
	"name": "Copy",
	"creationToken": "perfectly-copied-volume",
	"region": "us-west-1",
	"serviceLevel": "extreme",
	"protocolTypes": ["NFSv3"]
}'

刪除快照

以下範例使用「刪除」呼叫來刪除由「快照ID」指定的快照:

curl -s -H accept:application/json -H "Content-type: application/json" -H api-key:<api_key> -H secret-key:<secret_key> -X DELETE <api_url>/v2/Volumes/<volumeId>/Snapshots/<snapshotId>
重要 請謹慎使用。此API呼叫會刪除快照及其所有資料。

加入目錄服務

下列範例使用「POST」通話來加入目錄服務、並提供DNS IP位址、網域、SMB伺服器的NetBios名稱、目錄服務管理員的使用者名稱和密碼、以及組織單位(選用、預設為CN=電腦)。

curl -s -H accept:application/json -H "Content-type: application/json" -H api-key:<api_key> -H secret-key:<secret_key> -X POST <api_url>/v2/Storage/ActiveDirectory -d '
{
	"DNS": "<ip-address>",
	"domain": "<domain>",
	"netBIOS": "<netbios-name>",
	"organizationalUnit": "OU=Cloud Servers,DC=nas-cloud,DC=local",
	"password": "secret",
	"region": "us-west-1",
	"username": "Administrator"
}'

檢視目錄服務整合

以下範例使用「Get」呼叫來顯示目錄服務整合的組態。

curl -s -H accept:application/json -H "Content-type: application/json" -H api-key:<api_key> -H secret-key:<secret_key> -X GET <api_url>/v2/Storage/ActiveDirectory

取消加入目錄服務

以下範例使用「刪除」呼叫取消目錄服務整合。這需要目前加入的UUID、您可以使用上述的「Get」(取得)通話來找到。

註 您無法取消加入使用中的目錄服務;狀態為「使用中」。
curl -s -H accept:application/json -H "Content-type: application/json" -H api-key:<api_key> -H secret-key:<secret_key> -X DELETE <api_url>/v2/Storage/ActiveDirectory/<UUID>

取得效能統計資料

下列範例使用「Get」(取得)呼叫、針對「volumeId」指定的磁碟區、列出特定期間內的讀取和寫入IOPS、處理量及延遲統計資料。

curl -s -H accept:application/json -H "Content-type: application/json" -H api-key:<api_key> -H secret-key:<secret_key> -X GET '<api_url>/v2/Volumes/<volumeId>/PerformanceMetrics?startDate=2021-02-05T09:00&endDate=2021-02-05T09:05&type=READ_IOPS,WRITE_IOPS,TOTAL_THROUGHPUT,AVERAGE_OTHER_LATENCY'