文档首页/ 云备份 CBR/ API参考/ API/ 存储库/ 创建存储库 - CreateVault
更新时间:2026-10-20 GMT+08:00
分享

创建存储库 - CreateVault

功能介绍

创建存储库

授权信息

账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限。

  • 如果使用角色与策略授权,具体权限要求请参见权限和授权项。
  • 如果使用身份策略授权,当前API调用无需身份策略权限。

URI

POST /v3/{project_id}/vaults

表1 路径参数

参数

是否必选

参数类型

描述

project_id

是

String

参数解释:

项目ID,获取方法请参见获取项目ID

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

是

String

参数解释:

用户Token。

通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

表3 请求Body参数

参数

是否必选

参数类型

描述

vault

是

VaultCreate object

参数解释:

存储库创建参数,可以设置存储库的名称,规格等属性

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

表4 VaultCreate

参数

是否必选

参数类型

描述

backup_policy_id

否

String

参数解释:

备份策略ID,用于指定自动备份时的备份策略,获取方法请参见获取备份策略ID

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

billing

是

BillingCreate object

参数解释:

创建存储库运营参数,包括存储库的大小,存储的资源的类型等属性

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

description

否

String

参数解释:

存储库的描述

约束限制:

不涉及

取值范围:

最大支持255个字符,但不能包含“<”,“>”

默认取值:

不涉及

name

是

String

参数解释:

存储库名称。

取值范围:

只能由中文、字母、数字、“_”、“-”组成,最大支持64个字符。默认取值不涉及。

resources

是

Array of ResourceCreate objects

参数解释:

绑定的备份资源

约束限制:

不涉及

取值范围:

未在创建时绑定资源填[],最大支持同时绑定255个资源

默认取值:

不涉及

tags

否

Array of VaultTagReq objects

参数解释:

标签列表,标签由标签键和标签值组成,便于用户管理资源

约束限制:

tags中最多包含10个key。

  • tags不允许为空列表。

  • tags中key不允许重复。

取值范围:

不涉及

默认取值:

不涉及

enterprise_project_id

否

String

参数解释:

企业项目ID,获取方法请参见获取企业项目ID

约束限制:

不涉及

取值范围:

不涉及

默认取值:

默认为‘0’

auto_bind

否

Boolean

参数解释:

是否支持自动挂载,开启时会根据挂载规则,自动绑定资源进行备份

约束限制:

不涉及

取值范围:

  • true:支持自动挂载

  • false:不支持自动挂载

默认取值:

false

bind_rules

否

VaultBindRules object

参数解释:

自动挂载的规则,可以设置根据标签自动绑定资源的规则

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

auto_expand

否

Boolean

参数解释:

功能说明:是否开启存储库自动扩容能力(只支持按需存储库)

约束限制:

不涉及

取值范围:

true:支持自动扩容

false:不支持自动扩容

默认取值:

false

threshold

否

Integer

参数解释:

存储库容量阈值,存储库已用容量和总容量的百分比超过该值,如果smn_notify为开,将发送相关通知

约束限制:

不涉及

取值范围:

[1, 100],代表已用容量占总容量的1%-100%

默认取值:

80

smn_notify

否

Boolean

参数解释:

是否发送smn通知开关

约束限制:

不涉及

取值范围:

  • true:发送smn通知

  • false:不发送smn通知

默认取值:

true

backup_name_prefix

否

String

参数解释:

备份名称前缀,设置后该存储库自动备份产生的备份副本都将携带该备份名称前缀

约束限制:

不涉及

取值范围:

最大支持32个字符

默认取值:

不涉及

demand_billing

否

Boolean

参数解释:

存储库使用是否允许超出容量

约束限制:

只有创建包周期存储库时才允许该值为true

取值范围:

  • false: 存储库不允许超出容量使用

  • true: 存储库允许超出容量使用

默认取值:

false

sys_lock_source_service

否

String

参数解释:

用于标识SMB服务,支持传入SMB和空

约束限制:

不涉及

取值范围:

  • SMB:标识为SMB服务调用

  • 空字符串:表示为普通服务调用

默认取值:

不涉及

locked

否

Boolean

参数解释:

用于标识当前存储库是否已锁定,锁定的存储库不支持解锁,关于备份锁定的详细信息,请参考开启备份锁定

约束限制:

不涉及

取值范围:

  • true:锁定存储库

  • false:不锁定存储库

默认取值:

不涉及

availability_zone

否

String

参数解释:

存储库可用区信息

约束限制:

不涉及

取值范围:

最大支持32字符

默认取值:

不涉及

表5 BillingCreate

参数

是否必选

参数类型

描述

cloud_type

否

String

参数解释:

云类型

约束限制:

不涉及

取值范围:

public:公有云; hybrid: 混合云

默认取值:

public

consistent_level

是

String

参数解释:

存储库规格

约束限制:

不涉及

取值范围:

app_consistent: 应用一致性,crash_consistent: 崩溃一致性

默认取值:

不涉及

object_type

是

String

参数解释:

对象类型

约束限制:

不涉及

取值范围:

支持"server", "disk", "turbo", "workspace", "vmware", "rds"和"file"共七种。server:云服务器,disk:云硬盘,turbo:文件系统,workspace:云桌面,vmware:VMware,rds:关系型数据库,file:文件

默认取值:

不涉及

protect_type

是

String

参数解释:

保护类型

约束限制:

不涉及

取值范围:

backup:备份,replication:复制

默认取值:

不涉及

size

是

Integer

参数解释:

资源容量大小,单位GB

约束限制:

不涉及

取值范围:

10-10485760

默认取值:

不涉及

charging_mode

否

String

参数解释:

计费模式

约束限制:

不涉及

取值范围:

取值范围:post_paid:按需,pre_paid:包年包月

默认取值:

默认值为post_paid

period_type

否

String

参数解释:

订购周期单位

约束限制:

charging_mode参数为pre_paid时period_type参数会生效,并且period_type参数为必选

取值范围:

  • month:月

  • year:年

默认取值:

不涉及

period_num

否

Integer

参数解释:

订购周期数

约束限制:

charging_mode为pre_paid时period_num参数会生效,并且period_num参数为必选

取值范围:

[1-9],代表定义一到九个周期

默认取值:

不涉及

is_auto_renew

否

Boolean

参数解释:

到期后是否自动续期

约束限制:

不涉及

取值范围:

  • true:到期后自动续期

  • false:到期后不自动续期

默认取值:

不涉及

is_auto_pay

否

Boolean

参数解释:

是否自动付费

约束限制:

不涉及

取值范围:

  • true:下单后自动付费

  • false:下单后不自动付费

默认取值:

false

console_url

否

String

参数解释:

云服务console_url。 订购订单支付完成后,客户可以通过此URL跳转到云服务Console页面查看信息

约束限制:

仅手动支付时涉及

取值范围:

不涉及

默认取值:

不涉及

is_multi_az

否

Boolean

参数解释:

存储库是否具有多AZ属性,即底层备份是否为多AZ备份

约束限制:

不涉及

取值范围:

  • true:存储库具有多AZ属性

  • false:存储库不具有多AZ属性

默认取值:

false

表6 ResourceCreate

参数

是否必选

参数类型

描述

extra_info

否

ResourceExtraInfo object

参数解释:

资源附加信息,用于设置需要备份的卷以及不需要备份的卷等属性

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

id

是

String

参数解释:

待备份资源ID,获取方法请参见查询存储库绑定资源信息,查询资源可保护性

约束限制:

需要该资源暂未绑定到存储库中,且属于可备份的状态

取值范围:

不涉及

默认取值:

不涉及

type

是

String

参数解释:

待备份资源的类型,用于指定待备份的资源类型,不同类型对应不同的云服务资源。

约束限制:

不涉及

取值范围:

OS::Nova::Server:云服务器; OS::Cinder::Volume:云硬盘;OS::Ironic::BareMetalServer:裸金属服务器;OS::Sfs::Turbo:SFS Turbo文件系统;OS::Workspace::DesktopV2:云桌面。

默认取值:

不涉及

name

否

String

参数解释:

资源名称

约束限制:

不涉及

取值范围:

长度限制:0-255字符

默认取值:

不涉及

表7 ResourceExtraInfo

参数

是否必选

参数类型

描述

exclude_volumes

否

Array of strings

参数解释:

需要排除备份的卷ID列表,列表元素为String类型的UUID。

约束限制:

仅在多盘备份特性中有效,排除不需要备份的磁盘。当虚拟机新绑定磁盘时,也能继续排除之前设置不用备份的卷。

取值范围:

不涉及

默认取值:

不涉及

表8 VaultTagReq

参数

是否必选

参数类型

描述

key

是

String

参数解释:

标签的键,用于标识和分类资源。

约束限制:

创建时,如果请求体中存在重复key则报错,如果数据库存在就覆盖。

取值范围:

key最大长度为36个字符且不能为空字符串,前后空格会被丢弃。

key不能包含非打印字符ASCII(0-31),“=”,“*”,“<”,“>”,“\”,“,”,“|”,“/”。

key只能由中文,字母,数字,“-”,“_”组成。

默认取值:

不涉及

value

是

String

参数解释:

标签的值,用于描述存储库资源的具体属性

约束限制:

添加标签时value必填

取值范围:

最大长度43字符且允许为空,前后空格会自动去除但是value不能包含非打印字符及= * < > \ , | /等特殊符号。

默认取值:

不涉及

表9 VaultBindRules

参数

是否必选

参数类型

描述

tags

否

Array of BindRulesTags objects

参数解释:

按标签过滤自动绑定的资源

约束限制:

不涉及

取值范围:

最小长度:0

最大长度:5

默认取值:

不涉及

表10 BindRulesTags

参数

是否必选

参数类型

描述

key

是

String

参数解释:

标签的键,用于标识和分类存储库资源

约束限制:

不涉及

取值范围:

key不能包含非打印字符ASCII(0-31),“=”,“*”,“<”,“>”,“\”,“,”,“|”,“/”。

key只能由中文,字母,数字,“-”,“_”组成。

默认取值:

不涉及

value

是

String

参数解释:

标签的值,与键配合使用,用于更精确地标识和分类存储库资源

约束限制:

不涉及

取值范围:

value不能包含非打印字符ASCII(0-31),“=”,“*”,“<”,“>”,“\”,“,”,“|”,“/”。

value只能由中文,字母,数字,“-”,“_”,“.”组成。

默认取值:

不涉及

响应参数

状态码:200

表11 响应Body参数

参数

参数类型

描述

vault

VaultCreateResource object

存储库查询返回对象(仅按需创建时显示)

orders

Array of CbcOrderResult objects

包周期创建订单信息(仅包周期创建时显示)

retCode

Integer

包周期订购结果(仅包周期创建时显示)

errText

String

包周期创建错误信息(仅包周期创建时显示)

error_code

String

包周期创建错误码(仅包周期创建时显示)

表12 VaultCreateResource

参数

参数类型

描述

billing

Billing object

运营信息

description

String

存储库自定义描述信息,不能包含“<”,“>”,最大支持255个字符。

id

String

存储库ID,取值范围不涉及。

name

String

参数解释:

存储库名称。

取值范围:

只能由中文、字母、数字、“_”、“-”组成,最大支持64个字符。

project_id

String

项目ID,取值范围不涉及。

provider_id

String

存储库资源类型id,取值范围不涉及。

resources

Array of ResourceResp objects

存储库资源

tags

Array of Tag objects

存储库标签

enterprise_project_id

String

云备份企业项目ID,获取方法可参考查询企业项目列表接口。

auto_bind

Boolean

功能说明:是否支持自动挂载。

取值范围:

  • true:支持自动挂载

  • false:不支持自动挂载

bind_rules

VaultBindRules object

绑定规则

user_id

String

用户id,取值范围不涉及。

created_at

String

创建时间,例如:"2020-02-05T10:38:34.209782",取值范围不涉及。

auto_expand

Boolean

功能说明:是否开启存储库自动扩容能力(只支持按需存储库)。取值范围:true:支持自动扩容;false:不支持自动扩容。

smn_notify

Boolean

功能说明:是否发送smn通知开关。

取值范围:

  • true:发送smn通知

  • false:不发送smn通知

threshold

Integer

功能说明:存储库容量阈值,存储库已用容量和总容量的百分比超过该值,如果smn_notify为开,将发送相关通知。

取值范围:[1, 100]。

backup_name_prefix

String

备份名称前缀,设置后该存储库自动备份产生的备份副本都将携带该备份名称前缀。最大支持32个字符。

demand_billing

Boolean

是否允许使用超出存储库容量

  • true:允许使用超出存储库容量

  • false:不允许使用超出存储库容量

cbc_delete_count

Integer

存储库删除次数,取值范围不涉及。

frozen

Boolean

存储库是否冻结

  • true:存储库冻结

  • false:存储库未冻结

sys_lock_source_service

String

用于标识SMB服务,支持传入SMB和空。

SMB:标识为SMB服务调用

空字符串:表示为普通服务调用

locked

Boolean

功能说明:用于标识当前存储库是否已锁定,锁定的存储库不支持解锁。

关于备份锁定的详细信息,请参考"开启备份锁定"。

取值范围:

  • true:锁定存储库

  • false:不锁定存储库

availability_zone

String

存储库可用区信息,最大支持32字符。

表13 Billing

参数

参数类型

描述

allocated

Integer

参数解释:

已分配容量,单位GB

取值范围:

10-10485760

charging_mode

String

参数解释:

计费模式

取值范围:

post_paid:按需,pre_paid:包年包月

cloud_type

String

参数解释:

云类型

取值范围:

public:公有云; hybrid: 混合云

consistent_level

String

参数解释:

存储库规格

取值范围:

app_consistent: 应用一致性,crash_consistent: 崩溃一致性

object_type

String

参数解释:

对象类型

取值范围:

支持"server", "disk", "turbo", "workspace", "vmware", "rds"和"file"共七种。server:云服务器,disk:云硬盘,turbo:文件系统,workspace:云桌面,vmware:VMware,rds:关系型数据库,file:文件。

order_id

String

参数解释:

订单ID

取值范围:

格式为UUID

product_id

String

参数解释:

产品ID

取值范围:

格式为UUID

protect_type

String

参数解释:

保护类型

取值范围:

backup:备份,replication:复制

size

Integer

参数解释:

容量,单位MB

取值范围:

10-10485760

spec_code

String

参数解释:

规格编码

取值范围:

云服务备份存储库:vault.backup.server.normal;云硬盘备份存储库:vault.backup.volume.normal;文件备份存储库:vault.backup.turbo.normal

status

String

参数解释:

存储库状态

取值范围:

  • available: 可用

  • lock: 锁定

  • frozen: 冻结

  • deleting: 删除中

  • error: 异常

storage_unit

String

参数解释:

存储库桶名

取值范围:

不涉及

used

Integer

参数解释:

已使用容量,单位MB

取值范围:

不涉及

frozen_scene

String

参数解释:

冻结场景,说明具体冻结原因

取值范围:

  • POLICE:公安冻结场景

  • ARREAR:欠费场景

  • ILLEGAL:违规冻结场景

  • VERIFY:客户未实名认证冻结场景

  • DELETE_ACCOUNT:退订删除场景

is_multi_az

Boolean

参数解释:

存储库是否具有多AZ属性,即底层备份是否为多AZ备份

取值范围:

  • true:存储库具有多AZ属性

  • false:存储库不具有多AZ属性

表14 ResourceResp

参数

参数类型

描述

extra_info

ResourceExtraInfoResp object

参数解释:

资源附加信息,包括备份时包含的卷或排除的卷等信息

取值范围:

不涉及

id

String

参数解释:

待备份资源id,需要该资源已经绑定到该存储库中,且属于可备份的状态。

获取方法请参见"查询存储库绑定资源信息","查询资源可保护性"。

取值范围:

取值范围不涉及

name

String

参数解释:

待备份资源名称。

取值范围:

长度为0~255个字符。

protect_status

String

参数解释:

保护状态

取值范围:

  • available: 可用

  • error: 异常

  • protecting: 保护中

  • restoring: 恢复中

  • removing: 删除中

size

Integer

参数解释:

资源已分配容量,单位为GB

取值范围:

不涉及

type

String

参数解释:

待备份资源的类型

取值范围:

待备份资源的类型: OS::Nova::Server:云服务器; OS::Cinder::Volume:云硬盘;OS::Ironic::BareMetalServer:裸金属服务器;OS::Sfs::Turbo:SFS Turbo文件系统;OS::Workspace::DesktopV2:云桌面。

backup_size

Integer

参数解释:

备份副本大小。单位GB。

取值范围:

不涉及

backup_count

Integer

参数解释:

备份副本数量

取值范围:

不涉及

表15 ResourceExtraInfoResp

参数

参数类型

描述

exclude_volumes

Array of strings

参数解释:

需要排除备份的卷ID列表,列表元素为String类型的UUID。

取值范围:

不涉及

表16 Tag

参数

参数类型

描述

key

String

参数解释:

标签的键,用于标识和分类资源。

key最大长度为36个字符且不能为空字符串,前后空格会被丢弃。

key不能包含非打印字符ASCII(0-31),“=”,“*”,“<”,“>”,“\”,“,”,“|”,“/”。

key只能由中文,字母,数字,“-”,“_”组成。

创建时,如果请求体中存在重复key则报错,如果数据库存在就覆盖。

删除时,允许重复key,如果删除的标签不存在,默认处理成功,删除时不对标签字符集范围做校验。

删除时tags结构体不能缺失,key不能为空,或者空字符串。

取值范围:

不涉及

value

String

参数解释:

标签的值,用于描述存储库资源的具体属性。

添加标签时value必填,删除时选填,最大长度43字符且允许为空,前后空格会自动去除。此外,value不能包含非打印字符及= * < > \ , | /等特殊符号。

取值范围:

不涉及

表17 VaultBindRules

参数

参数类型

描述

tags

Array of BindRulesTags objects

参数解释:

按标签过滤自动绑定的资源

取值范围:

最小长度:0

最大长度:5

表18 BindRulesTags

参数

参数类型

描述

key

String

参数解释:

标签的键,用于标识和分类存储库资源

取值范围:

key不能包含非打印字符ASCII(0-31),“=”,“*”,“<”,“>”,“\”,“,”,“|”,“/”。

key只能由中文,字母,数字,“-”,“_”组成。

value

String

参数解释:

标签的值,与键配合使用,用于更精确地标识和分类存储库资源

取值范围:

value不能包含非打印字符ASCII(0-31),“=”,“*”,“<”,“>”,“\”,“,”,“|”,“/”。

value只能由中文,字母,数字,“-”,“_”,“.”组成。

表19 CbcOrderResult

参数

参数类型

描述

cloudServiceId

String

参数解释:

云服务ID

取值范围:

不涉及

orderId

String

参数解释:

订单ID

取值范围:

不涉及

subscribeResult

Integer

参数解释:

订购结果

取值范围:

1:成功;0:失败

resourceId

String

参数解释:

包周期资源预生成资源ID

取值范围:

不涉及

状态码:400

表20 响应Body参数

参数

参数类型

描述

error_code

String

请参见错误码。

error_msg

String

错误信息

请求示例

  • 创建一个云服务器存储库,存储库容量为100G,按需计费,且同时绑定资源和添加标签。

    POST https://{endpoint}/v3/f841e01fd2b14e7fa41b6ae7aa6b0594/vaults
    
    {
      "vault" : {
        "backup_policy_id" : "6dd81d7d-a4cb-443e-b8ed-1af0bd3a261b",
        "billing" : {
          "cloud_type" : "public",
          "consistent_level" : "crash_consistent",
          "object_type" : "server",
          "protect_type" : "backup",
          "size" : 100,
          "charging_mode" : "post_paid",
          "is_auto_renew" : false,
          "is_auto_pay" : false,
          "console_url" : "https://console.demo.com/cbr/?agencyId=97fcd896b7914cb98f553a087232e243&region=testregion/cbr/manager/csbs/vaultList"
        },
        "description" : "vault_description",
        "name" : "vault_name",
        "resources" : [ {
          "extra_info" : {
            "exclude_volumes" : [ "43a320a5-3efd-4568-b1aa-8dd9183cc64b" ]
          },
          "id" : "23a320a5-3efd-4568-b1aa-8dd9183cc64c",
          "type" : "OS::Nova::Server"
        } ],
        "tags" : [ {
          "key" : "key01",
          "value" : "value01"
        } ],
        "enterprise_project_id" : "0"
      }
    }
  • 创建一个云硬盘备份存储库,存储库容量为40G,按需计费。

    POST https://{endpoint}/v3/f841e01fd2b14e7fa41b6ae7aa6b0594/vaults
    
    {
      "vault" : {
        "billing" : {
          "consistent_level" : "crash_consistent",
          "object_type" : "disk",
          "protect_type" : "backup",
          "size" : 40,
          "charging_mode" : "post_paid",
          "is_auto_renew" : false,
          "is_auto_pay" : false
        },
        "name" : "test",
        "resources" : [ ]
      }
    }

响应示例

状态码:200

{
  "vault": {
    "provider_id": "0daac4c5-6707-4851-97ba-169e36266b66",
    "description": "vault_description",
    "tags": [
      {
        "value": "value01",
        "key": "key01"
      }
    ],
    "enterprise_project_id": "397f5075cb6d420cb4eb3a11d8967e12",
    "auto_bind": false,
    "id": "ad7627ae-5b0b-492e-b6bd-cd809b745197",
    "user_id": "38d65be2ecd840d19046e239e841a734",
    "name": "vault_name",
    "billing": {
      "status": "available",
      "used": 0,
      "protect_type": "backup",
      "object_type": "server",
      "allocated": 40,
      "spec_code": "vault.backup.server.normal",
      "size": 100,
      "cloud_type": "public",
      "consistent_level": "crash_consistent",
      "charging_mode": "post_paid"
    },
    "created_at": 2019-05-23T12:51:10.071+00:00,
    "project_id": "fc347bc64ccd4589ae52e4f44b7433c7",
    "resources": [
      {
        "name": "ecs-b977-0002",
        "backup_size": 0,
        "protect_status": "available",
        "backup_count": 0,
        "extra_info": {
          "exclude_volumes": [
            "1855eb9a-2b5e-4938-a9f0-aea08b6f9243",
            "5a51e8b3-2f65-4045-896f-f8ffae14b064"
          ]
        },
        "type": "OS::Nova::Server",
        "id": "23a320a5-3efd-4568-b1aa-8dd9183cc64c",
        "size": 40
      }
    ]
  }
}

状态码

状态码

描述

200

创建存储库成功响应体。按需创建时只有vault对象,包周期创建时只有orders,retCode,errText,error_code对象。

400

Bad Request

错误码

请参见错误码。

相关文档