CreateDataFlow - 创建数据流动
创建一个CPFS通用版或CPFS智算版文件系统与源端存储的数据流动。
接口说明
本接口适用于以下产品:
| 产品 | 文件系统 ID 格式 | 支持数据流动的最低版本 |
| CPFS 通用版 | 以 cpfs- 开头,例如 cpfs-125487**** | 2.2.0 及以上 |
| CPFS 智算版 | 以 bmcpfs- 开头,例如 bmcpfs-0015**** | 2.4.0 及以上 |
:CPFS 通用版和 CPFS 智算版共用同一套 API,但在参数取值和功能支持上有所区别。请根据您使用的产品类型参考相应章节。
-
基础操作
CPFS 通用版、CPFS 智算版文件系统状态为运行中时,才能创建数据流动。
一个 CPFS 通用版或 CPFS 智算版文件系统最多允许创建 10 个数据流动。
创建数据流动一般耗时 2~5 分钟,您可通过 DescribeDataFlows 检查数据流动创建是否完成。
-
权限
创建数据流动时,文件存储 CPFS 会获取
AliyunServiceRoleForNasOssDataflow和AliyunServiceRoleForNasEventNotification两个服务关联角色。更多信息,请参见 CPFS 服务关联角色。 -
CPFS 通用版使用说明
本章节适用于文件系统 ID 以
cpfs-开头的 CPFS 通用版。-
计费
创建数据流动将按照数据流动带宽计费。更多信息,请参见 CPFS 通用版计费说明。
使用自动更新(AutoRefresh)时,需要通过 EventBridge 收集源端 OSS 存储的对象修改事件,事件将产生费用。更多信息,请参见 EventBridge 计费说明。
-
数据流动规格
数据流动带宽(Throughput)支持 600 MB/s、1200 MB/s 和 1500 MB/s 三种规格。数据流动带宽是指该数据流动进行导入或导出数据时能达到的最大传输带宽。
创建一个数据流动,会消耗 1 个文件存储 CPFS 通用版挂载点使用的 vSwitch IP 地址,请您确保该 vSwitch IP 资源充足。
库存查询:当设置 DryRun 为 true 时,可校验创建该规格的数据流动的资源是否满足。
-
Fileset
数据流动的目的端是 CPFS 通用版文件系统中的 Fileset。Fileset 是 CPFS 通用版文件系统中一种新的目录树结构,是在父文件系统中的一个小型文件系统,拥有独立的 inode 空间和管理能力。
创建数据流动时该 Fileset 必须已存在,且不能与其他 Fileset 嵌套。一个 Fileset 上只能创建一个数据流动,对应一个源端存储。
Fileset 内的文件数量上限是 100 万,如果从 OSS Bucket 导入的文件数量超过上限,创建新文件会报错
no space。
说明如果 Fileset 中已存在数据,创建数据流动后,Fileset 内的已有数据会被清空,替换为 OSS 端同步过来的数据。
-
自动更新
配置自动更新(AutoRefresh)后,当源端存储数据发生变化时,变化的元数据会自动同步到 CPFS 通用版文件系统,变化的数据会在用户访问文件时按需加载,或者启动数据流动任务加载数据。
自动更新依赖 EventBridge 收集源端 OSS 存储的对象修改事件。需要先开通 EventBridge 服务。
自动更新的作用范围是 prefix,由参数 RefreshPath 指定。一个数据流动最多可配置 5 个自动更新目录。
自动更新间隔(AutoRefreshInterval)指 CPFS 通用版设置的自动更新时间,检查源端 OSS Bucket 该 prefix 内是否存在数据更新,如果有数据更新则启动自动更新任务。当 OSS 源端的对象修改事件频率超过 CPFS 通用版数据流动处理能力时,自动更新任务会堆积,元数据更新会延迟,数据流动的状态为
Misconfigured,您可以提升数据流动规格,或者降低 OSS 修改频率来解决。在文件存储 CPFS 通用版数据流动对 prefix 配置自动更新时,会在用户侧创建事件总线,并创建源端 OSS Bucket 的 prefix 的事件规则。当源端 OSS Bucket 的 prefix 内发生对象修改后,会在 EventBridge 中产生 OSS 事件,由 CPFS 通用版数据流动处理。
说明文件存储 CPFS 通用版在 EventBridge 创建的事件总线、事件规则带有
Create for cpfs auto refresh的描述,事件总线、事件规则都不能修改或删除,否则自动更新无法正常工作。 -
源端存储
源端存储仅支持 OSS。数据流动的源端存储(SourceStorage)必须是 OSS Bucket。
CPFS 通用版数据流动支持加密和非加密两种方式访问 OSS。选择加密(SSL)方式访问 OSS 时,需确认 OSS Bucket 的传输加密支持加密访问方式。
如果多个 CPFS 通用版的数据流动、或者同一个文件存储 CPFS 通用版的多个数据流动的源端存储是同一个 OSS Bucket,为了防止多个文件存储 CPFS 通用版向同一个源导出数据产生数据冲突,需要该 OSS Bucket 开启版本控制。
不支持跨地域的 OSS 数据流动,OSS Bucket 必须与 CPFS 通用版文件系统在同一个地域。
说明创建数据流动前,您需要先给源端 OSS Bucket 设置标签(key: cpfs-dataflow, value: true),以便 CPFS 通用版数据流动访问该 Bucket 的数据。在数据流动的使用过程中,不能删除和修改该标签,否则 CPFS 通用版数据流动无法访问 Bucket 的数据。
-
-
CPFS 智算版使用说明
本章节适用于文件系统 ID 以
bmcpfs-开头的 CPFS 智算版。-
源端存储
源端存储仅支持 OSS。数据流动的源端存储(SourceStorage)必须是 OSS Bucket。
CPFS 智算版数据流动支持加密和非加密两种方式访问 OSS。选择加密(SSL)方式访问 OSS 时,需确认 OSS Bucket 的传输加密支持加密访问方式。
如果多个 CPFS 智算版的数据流动、或者同一个 CPFS 智算版的多个数据流动的源端存储是同一个 OSS Bucket,为了防止多个 CPFS 智算版向同一个源导出数据产生数据冲突,需要该 OSS Bucket 开启版本控制。
不支持跨地域的 OSS 数据流动,OSS Bucket 必须与 CPFS 智算版文件系统在同一个地域。
CPFS 智算版 2.6.0 及以上版本支持使用跨账号 OSS 进行数据流动的创建。
只有在使用跨账号的 OSS 时,需要设置 account id 参数。
- 使用跨账号的 OSS 时,需要先进行账号授权。具体授权请参考跨账号数据流动授权。
说明
创建数据流动前,您需要先给源端 OSS Bucket 设置标签(key: cpfs-dataflow, value: true),以便 CPFS 智算版数据流动访问该 Bucket 的数据。在数据流动的使用过程中,不能删除和修改该标签,否则 CPFS 智算版数据流动无法访问 Bucket 的数据。
-
数据流动对文件系统的限制
在数据流动关联的文件系统路径中,不可对非空目录执行重命名操作,否则报错 Permission Denied 或者目录非空。
目录、文件名中的特殊字符需要谨慎使用,支持大小写字母、数字、感叹号(!)、短划线(-)、下划线(_)、半角句号(.)、星号(*)和半角圆括号(())。
不支持超长路径,数据流动支持的路径最大长度是 1023 字符。
-
数据流动导入限制
Symlink 类型的文件导入到 CPFS 智算版后,会转变为包含数据的普通文件,并丢失 Symlink 信息。
如果 OSS Bucket 存在多个版本,则只复制最新的版本。
不支持长度大于 255 字节的文件名或子目录名。
-
数据流动导出限制
Symlink 类型的文件在同步到 OSS 后,不会同步 Symlink 所指向的文件,而是会变成一个普通的无数据空白对象。
Hardlink 类型的文件仅作为普通文件同步到 OSS。
Socket、Device、Pipe 类型的文件导出到 OSS Bucket 时,会变成一个普通的无数据空白对象。
不支持长度大于 1023 字符的目录路径。
-
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
调试
授权信息
|
操作 |
访问级别 |
资源类型 |
条件关键字 |
关联操作 |
|
nas:CreateDataFlow |
create |
*DataFlow
|
无 | 无 |
请求参数
|
名称 |
类型 |
必填 |
描述 |
示例值 |
| FileSystemId |
string |
是 |
文件系统 ID。
|
cpfs-099394bd928c**** |
| FsetId |
string |
否 |
Fileset ID。 说明
当文件系统类型为 CPFS 通用版时,该参数必填。 |
fset-1902718ea0ae**** |
| SourceStorage |
string |
是 |
源端存储的访问地址。格式: 其中:
说明
|
oss://178321033379****:bucket-01 |
| SourceSecurityType |
string |
否 |
源端存储的安全保护类型,如果源端存储必须通过安全保护访问,请指定源端存储的安全保护类型。取值:
|
SSL |
| Throughput |
integer |
否 |
数据流动的传输带宽上限,单位:MB/s 。取值:
说明
数据流动的传输带宽必须小于文件系统的 IO 带宽。 当文件系统类型为 CPFS 通用版时,该参数必填。 枚举值:
|
600 |
| Description |
string |
否 |
数据流动的描述。 限制:
|
Bucket01 DataFlow |
| AutoRefreshs |
array<object> |
否 |
自动更新配置信息集合。 说明
当文件系统类型为 CPFS 通用版时,本参数生效。 |
|
|
object |
否 |
|||
| RefreshPath |
string |
否 |
自动更新目录,CPFS 通用版注册源端存储的数据修改事件,检查该目录下的源端数据是否发生更新并自动导入更新的数据。 默认为空,源端存储的任何数据更新不会自动导入 CPFS 通用版,需要通过手动任务导入更新。 限制:
|
/prefix1/prefix2/ |
| AutoRefreshPolicy |
string |
否 |
自动更新策略,源端数据更新以后,数据更新导入到 CPFS 通用版的策略。
说明
当文件系统类型为 CPFS 通用版时,本参数生效。 枚举值:
|
None |
| AutoRefreshInterval |
integer |
否 |
自动更新间隔时间,每隔该时间间隔,CPFS 通用版检查目录内是否存在数据更新,如果有数据更新,启动自动更新任务,单位:分钟。 取值范围:10~525600,默认值:10。 说明
当文件系统类型为 CPFS 通用版时,本参数生效。 |
10 |
| DryRun |
boolean |
否 |
是否对此次创建请求执行预检。 预检操作会帮助您检查参数有效性、校验库存等,并不会实际创建实例,也不会产生费用。 取值:
|
false |
| ClientToken |
string |
否 |
保证请求幂等性,从您的客户端生成一个参数值,确保不同请求间该参数值唯一。 ClientToken 只支持 ASCII 字符,且不能超过 64 个字符。更多信息,请参见如何保证幂等性。 说明
若用户未指定,则系统自动使用 API 请求的 RequestId 作为 ClientToken 标识。每次 API 请求的 RequestId 可能不一样。 |
123e4567-e89b-12d3-a456-42665544**** |
| SourceStoragePath |
string |
否 |
源端存储 Bucket 内的访问路径。限制如下。
说明
当文件系统类型为 CPFS 智算版时,本参数必填。 |
/prefix/ |
| FileSystemPath |
string |
否 |
CPFS 智算版文件系统内的目录。限制如下。
说明
当文件系统类型为 CPFS 智算版时,本参数必填。 |
/path/ |
返回参数
|
名称 |
类型 |
描述 |
示例值 |
|
object |
|||
| RequestId |
string |
请求 ID。 |
473469C7-AA6F-4DC5-B3DB-A3DC0D****3E |
| DataFlowId |
string |
数据流动 ID。 |
df-194433a5be31**** |
示例
正常返回示例
JSON格式
{
"RequestId": "473469C7-AA6F-4DC5-B3DB-A3DC0D****3E",
"DataFlowId": "df-194433a5be31****"
}
错误码
|
HTTP status code |
错误码 |
错误信息 |
描述 |
|---|---|---|---|
| 400 | IllegalCharacters | The parameter contains illegal characters. | 参数非法。 |
| 400 | MissingFsetId | FsetId is mandatory for this action. | 未指定Fileset ID参数。 |
| 400 | MissingSourceStorage | SourceStorage is mandatory for this action. | 未指定SourceStorage参数。 |
| 400 | MissingThroughput | Throughput is mandatory for this action. | 未指定Throughput参数。 |
| 400 | MissingFileSystemId | FileSystemId is mandatory for this action. | 未指定FileSystemId参数。 |
| 400 | InvalidFilesystemVersion.NotSupport | This Api does not support this fileSystem version. | 当前接口不支持该版本文件系统。 |
| 400 | DataFlow.Bucket.RegionUnmatched | The bucket and file system are not in the same region. | bucket和filesystem的region不一致。 |
| 403 | OperationDenied.DependencyViolation | The operation is denied due to dependancy violation. | 进行该操作的条件不满足。 |
| 403 | OperationDenied.NoStock | The operation is denied due to no stock. | |
| 403 | OperationDenied.DependFset | The operation is denied due to invalid fileset state. | 由于fileset状态异常创建数据流动失败。 |
| 403 | OperationDenied.ConflictOperation | The operation is denied due to a conflict with an ongoing operation. | 与当前的文件系统操作冲突导致无法创建数据流动。 |
| 403 | OperationDenied.DependMountpoint | The operation is denied because no mount point is found. | 由于文件系统没有挂载点导致创建数据流动失败。 |
| 403 | OperationDenied.FsetAlreadyInUse | The Fset is already bound to another data flow. | Fset已经被使用。 |
| 403 | OperationDenied.AutoRefreshNotSupport | The operation is denied. Auto refresh is not supported. | 该文件系统不支持自动更新。 |
| 403 | OperationDenied.DependBucketTag | The operation is denied. The OSS Bucket tag cpfs-dataflow is missing. | 由于OSS Bucket未打上cpfs-dataflow标签,创建数据流动失败。 |
| 403 | OperationDenied.DataFlowNotSupported | The operation is not supported. | 该文件系统不支持数据流动。 |
| 403 | InvalidOperation.DeletionProtection | The operation is not allowed due to resource is protected by deletion protection. | 实例处于删除保护中,不能通过控制台或 API 释放实例。 |
| 403 | DataFlow.Bucket.AccessDenied | Bucket access denied. | 数据流动鉴权错误。 |
| 404 | InvalidFileSystem.NotFound | The specified file system does not exist. | 指定的文件系统不存在。 |
| 404 | InvalidThroughput.OutOfBounds | Throughput is out of bounds. | 指定的Throughput不在合法范围中。 |
| 404 | InvalidDescription.InvalidFormat | Description format is invalid. | 指定的描述格式非法。 |
| 404 | InvalidRefreshPath.InvalidParameter | Refresh path is invalid. | 指定的自动更新目录的路径非法。 |
| 404 | InvalidRefreshPath.Duplicated | Refresh path is duplicated. | 指定的自动更新目录的路径重复。 |
| 404 | InvalidRefreshPath.NotFound | Refresh path does not exist. | 指定的自动更新目录不存在。 |
| 404 | InvalidRefreshPolicy.InvalidParameter | Refresh policy is invalid. | 自动更新策略非法。 |
| 404 | InvalidRefreshInterval.OutOfBounds | Refresh interval is out of bounds. | 指定的RefreshInterval不在合法范围中。 |
| 404 | InvalidSourceStorage.Unreachable | Source storage cannot be accessed. | 源端存储无法访问。 |
| 404 | InvalidSourceStorage.NotFound | Source storage is not found. | 指定的源端存储不存在。 |
| 404 | InvalidSourceStorage.NotSupport | Source storage type is not supported. | 指定的源端存储的类型不支持。 |
| 404 | InvalidSourceStorage.PermissionDenied | The source storage access permission is denied. | 无源端存储访问权限,请检查SLR授权、源存储的访问tag。 |
| 404 | InvalidSourceStorage.InvalidRegion | Source storage region is invalid. | 源端存储的区域异常,请检查源端存与CPFS是否在同一个region。 |
| 404 | InvalidSourceStorage.InvalidParameter | Source storage has invalid parameters. | 指定的源端存储路径非法。 |
| 404 | InvalidSourceSecurityType.NotSupport | The source security type is not supported. | 指定的源端存储的安全保护类型不支持。 |
| 404 | InvalidAutoRefresh.TooManyAutoRefreshes | The number of auto refreshes exceeds the limit. | 指定的自动更新配置数量超过限制。 |
| 404 | InvalidSourceStorage.NeedVersioning | Source storage must enable versioning. | 源端存储需要打开多版本功能。 |
| 404 | InvalidFsetId.NotFound | The specified Fileset ID does not exist. | 指定的Fileset不存在。 |
| 404 | DataFlow.Bucket.NotExist | Bucket does not exist. | bucket不存在。 |
访问错误中心查看更多错误码。
变更历史
更多信息,参考变更详情。