调用CreateFileSystem接口创建文件系统。

接口说明

CreateFileSystem接口用于创建文件系统实例。

请确保在使用该接口前,已充分了解NAS产品的收费方式和价格

创建实例需要通过实名认证,您可以参见账号实名认证相关文档完成认证。

创建实例时,您还需要注意以下几点:

以下是各实例类型的创建示例:

  • 创建通用型NAS
    java
        public void createFileSystem(IAcsClient client) throws Exception{
            CreateFileSystemRequest request = new CreateFileSystemRequest();
            request.setFileSystemType("standard");  //创建通用型NAS
            request.setStorageType(storageType);  //Performance(性能型) or Capacity(容量型)
            request.setProtocolType(protocolType);  //NFS or SMB
            request.setZoneId(zoneId);  //可用区
            request.setDescription(description);  //文件系统描述
    
            CreateFileSystemResponse response = client.getAcsResponse(request);
            response.getFileSystemId();  //获取NAS实例ID
        }
    
  • 创建极速型NAS
    java
        public void createFileSystem(IAcsClient client) throws Exception{
            CreateFileSystemRequest request = new CreateFileSystemRequest();
            request.setFileSystemType("extreme");  //创建极速型NAS
            request.setChargeType(chargeType);  //PayAsYouGo(按量付费),Subscription(包年包月)
            request.setDuration(1);  //若ChargeType=Subscription,则Duration必填,单位是月
            request.setCapacity(capacity);  //指定容量,参考上述实例规格
            request.setBandwidth(bandwidth);  //指定吞吐,参考上述实例规格
            request.setStorageType(storageType);  //standard(标准型) or advance(高级型)
            request.setProtocolType(protocolType);  //NFS(目前极速型NAS只支持NFS)
            request.setEncryptType(encryptType);  //指定是否加密
            request.setSnapshotId(snapshotId);  //指定是否从已有快照创建NAS
            request.setZoneId(zoneId);  //可用区
            request.setClientToken(clientToken);  //指定客户端ClientToken,以此保证本次API请求的幂等性
            request.setDryRun(dryRun);  //通过指定该参数为true,可以实现创建NAS资源的预检判断,比如判断库存是否充足等,指定为true时系统仅做资源预创建的判断,不会生成NAS实例,也不会产生费用
    
            CreateFileSystemResponse response = client.getAcsResponse(request);
            response.getFileSystemId();  //获取NAS实例ID
        }
    
  • 创建并行文件系统CPFS
    java
        public void createFileSystem(IAcsClient client) throws Exception{
            CreateFileSystemRequest request = new CreateFileSystemRequest();
            request.setFileSystemType("cpfs");  //创建并行文件系统CPFS
            request.setChargeType(chargeType);  //PayAsYouGo(按量付费),Subscription(包年包月)
            request.setDuration(1);  //若ChargeType=Subscription,则Duration必填,单位是月
            request.setCapacity(capacity);  //指定容量,参考上述实例规格
            request.setBandwidth(bandwidth);  //指定吞吐,参考上述实例规格
            request.setStorageType(storageType);  //advance(高级型)
            request.setProtocolType(protocolType);  //cpfs(CPFS文件系统,该参数设置为cpfs)
            request.setZoneId(zoneId);  //可用区
            request.setClientToken(clientToken);  //指定客户端ClientToken,以此保证本次API请求的幂等性
            request.setDryRun(dryRun);  //通过指定该参数为true,可以实现创建CPFS资源的预检判断,比如判断库存是否充足等,指定为true时系统仅做资源预创建的判断,不会生成NAS实例,也不会产生费用
    
            CreateFileSystemResponse response = client.getAcsResponse(request);
            response.getFileSystemId();  //获取NAS实例ID
        }
    

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

请求参数

名称 类型 是否必选 示例值 描述
EncryptType Integer 1

是否创建加密文件系统。当FileSystemType=standard或extreme时有效。

使用KMS服务托管密钥,对文件系统落盘数据进行加密存储。在读写加密数据时,无需解密。

取值包括:

  • 0表示不加密。
  • 1表示加密。
ProtocolType String NFS

协议类型。包括:

  • 当FileSystemType=standard或extreme时,必填且有效。取值包括:NFS、SMB。
  • 当FileSystemType=cpfs时,取值:cpfs。
StorageType String Performance

存储类型。包括:

  • 当FileSystemType=standard时,可选值为Performance(性能型)和Capacity(容量型)。
  • 当FileSystemType=extreme时,可选值为standard(标准型)和advance(高级型)。
  • 当FileSystemType=cpfs时,可选值为advance_100(100 MB/s/TiB基线),advance_200(200 MB/s/TiB基线)。
ZoneId String cn-hangzhou-b

可用区ID。可用区是指在同一地域内,电力和网络互相独立的物理区域。

说明
  • 同一地域不同可用区之间的文件系统与ECS云服务器互通。
  • 建议和云服务器ECS在同一可用区,避免跨可用区产生的时延。
FileSystemType String standard

文件系统类型。

  • standard(通用型NAS,默认值)
  • extreme(极速型NAS)
  • cpfs(文件系统CPFS)
ChargeType String PayAsYouGo

计费类型。

  • PayAsYouGo(按量付费)
  • Subscription(包年包月)
Duration Integer 1

包年包月时长。单位是月,当ChargeType=Subscription时必填且有效。当包年包月实例到期时未进行续费,实例到期会自动释放。

Capacity Long 100

文件系统容量。单位是GiB,当FileSystemType=extreme或cpfs时必填且有效。

具体可选规格值请参考购买页面的实际规格:

Bandwidth Long 150

文件系统吞吐上限。单位是MB/s,仅当FileSystemType=cpfs时必填且有效。

具体可选规格值请参考购买页面的实际规格:

SnapshotId String s-xxx

快照ID。可以通过指定该参数实现从指定快照创建NAS实例,目前仅支持极速型NAS。

说明 通过快照创建文件系统,创建的文件系统版本和快照源文件系统版本一致。如果快照的源文件系统版本是1,需要创建版本2性能规格的文件系统,可以先通过快照创建一个文件系统,然后再创建一个新的文件系统,把通过快照创建的文件系统中的数据拷贝到新创建的文件系统,拷贝完成后把业务迁移到新的文件系统即可。
VpcId String vpc-xxx

专有网络ID。指定VpcId和VSwitchId可以在创建文件系统实例的同时预配置好一个默认挂载点。

VSwitchId String vsw-xxx

专有虚拟交换机ID。指定VpcId和VSwitchId,可以在创建文件系统实例时预配置好一个默认挂载点。

Description String 此文件系统的描述。

文件系统描述。长度为2~128个英文或中文字符。必须以大小字母或中文开头,不能以http://https://开头。可以包含数字、半角冒号(:)、下划线(_)或者短划线(-)。

ClientToken String 123e4567-e89b-12d3-a456-42665544****

保证请求幂等性。从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符,且不能超过64个字符。更多详情请参见如何保证幂等性

说明 若您未指定,则系统自动使用API请求的RequestId作为ClientToken标识。每次API请求的RequestId可能不一样。
KmsKeyId String

KMS密钥ID。

DryRun Boolean true

是否对此次创建请求执行预检。预检操作会帮助您检查参数有效性、校验库存等,并不会实际创建实例,也不会产生费用。

取值范围:

  • true:发送检查请求,不会创建实例。检查项包括是否填写了必需参数、请求格式、业务限制和NAS库存。如果检查不通过,则返回对应错误。如果检查通过,则返回200 HttpCode,但FileSystemId为空。
  • false(默认):发送正常请求,通过检查后直接创建实例。

关于API幂等性,您需要注意以下事项:

由于CreateFileSystem接口涉及云资源的创建和费用,您在调用该API时,如果发生请求超时或服务端内部错误,客户端可能会尝试重发请求。您可以在请求中设置ClientToken参数避免多次重试重复下单的问题,以此来保证重试请求的幂等性,这会保证您最多只会创建一笔订单(也可能因网络超时或服务端内部错误,未创建出订单)。

ClientToken参数的详细信息如下所示:

  • ClientToken是一个由客户端生成的唯一的、大小写敏感、不超过64个ASCII字符的字符串。例如:
    ClientToken=123e4567-e89b-12d3-a456-426655440000
  • 如果您提供了一个已经使用过的ClientToken,但其他请求参数有变化,则ECS会返回IdempotentParameterMismatch的错误代码。
    说明 参数SignatureNonce、Timestamp和Signature在重试时是需要变化的。具体原因是ECS使用SignatureNonce防止重放攻击,使用Timestamp标记每次请求时间。所以再次请求必须提供不同的SignatureNonce和Timestamp参数值,同时也会导致Signature值的变化。
  • 添加了ClientToken参数后:
    • 返回结果是200 HTTPCode时,重试后客户端可以得到与上次相同的结果,但对您的服务端状态没有影响。
    • 返回结果是4xx HTTPCode时,如果错误信息没有表明try it later类似的信息,重试永远不会成功,您需要根据错误信息排查问题后修改请求参数后再重试请求。
    • 返回结果是5xx HTTPCode时,表明请求可能是发生网络超时或服务端内部错误,您可以重新发送同一个请求(必须包含相同ClientToken和业务请求参数)以确认请求结果。
  • ClientToken有效期为30天。

返回数据

名称 类型 示例值 描述
FileSystemId String 1ca404****

完成创建的文件系统ID

RequestId String 98696EF0-1607-4E9D-B01D-F20930B68845

请求ID

示例

请求示例

GET https://nas.cn-hangzhou.aliyuncs.com/?Action=CreateFileSystem
&EncryptType=1
&ProtocolType=NFS
&StorageType=Performance
&ZoneId=cn-hangzhou-b
&<公共请求参数>

正常返回示例

XML 格式

<CreateFileSystemResponse>
      <FileSystemId>1ca404****</FileSystemId>
      <RequestId>98696EF0-1607-4E9D-B01D-F20930B68845</RequestId>
</CreateFileSystemResponse>

JSON 格式

{
    "CreateFileSystemResponse": {
        "FileSystemId": "1ca404****",
        "RequestId": "98696EF0-1607-4E9D-B01D-F20930B68845"
    }
}

错误码

HttpCode 错误码 错误信息 描述
400 IdempotentParameterMismatch The same client token was passed in to different parameters. 相同的ClientToken传入了不同的参数。
202 RequestAccepted The request has been accepted by the server. 请求已被后端接受。
400 InvalidParameter.KmsServiceNotEnabled Key Management Service is not enabled. 未启用KMS服务。
403 OperationDenied.InvalidState The operation is not permitted when the status is processing. 状态处理中不允许此操作。
403 InvalidFileSystem.AlreadyExisted The specified file system already exists. 指定的文件系统已存在。
403 Resource.OutOfStock The inventory of the specified zone is insufficient. 指定的可用区库存不足。
400 DryRunOperation The request is validated with DryRun flag set. 请求校验通过。

访问错误中心查看更多错误码。

访问错误中心查看更多错误码。