Cloud Volumes Service
简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

Cloud Volumes APIs

贡献者

通过 Web UI 提供的 Cloud Volumes 功能也可通过 RESTful API 获得。通过 API ,您可以创建和管理云卷以及开发配置脚本和工具。

查找 API URL , API 密钥和机密密钥

要运行 API 调用,您需要获取 Cloud Volumes API URL , API 密钥和机密密钥。

步骤
  1. 单击存储页面上的 * API access* 或用户名下拉菜单中的。

  2. 记录 Cloud Volumes API URL , API 密钥和机密密钥。

列出可用的 API

存储页面将显示您可以使用的可用 API 。

步骤
  1. 单击存储页面上的 * API Documents* 。

    此页面将列出可用的 API 。

  2. 滚动浏览页面以查看可用的 API 。

    API 按功能列出,例如:

    • m挂载项

    • s存储

    • s快照

  3. 要获取有关如何使用 API 调用的详细信息和示例,请选择相应功能并单击以下操作之一:

    • GET :读取

    • 发布 :创建

    • PUT :更新或修改

    • delete :销毁

使用 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

列出特定卷的详细信息

每个卷的 ID 均名为 volumeId ,例如, 07c9ab6c-b655-a9fe-f904-b9b97ef9baa 。在 API 调用中包含 ID 可提供特定卷的详细信息:

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

Creating a volume

以下示例使用 post 调用创建一个名为 Test 的卷,位于区域 us-west-1 中,其 Allocated capacity of 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 的卷,将服务级别更改为 ,并将分配的容量更改为 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
}'

Deleting a volume

以下示例使用 Delete 调用删除 volumeId 指定的卷:

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 调用将删除卷及其所有数据。

创建快照

以下示例使用 post 调用为特定卷创建名为 snappy 的快照:

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 调用列出特定卷的快照:

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 调用从 snapshotIdvolumeId 指定的快照还原卷:

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 调用根据 snapshotId 指定的现有卷的快照创建新卷:

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"]
}'

删除快照

以下示例使用 Delete 调用删除 snapshotId 指定的快照:

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=Computers )。

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

正在取消加入目录服务

以下示例使用 Delete 调用取消加入目录服务集成。这需要当前加入的 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'