創建一個CPFS文件系統與源端存儲的數據流動。
接口說明
-
基礎操作
- CPFS 2.2.0 及以上版本、CPFS 智算版 2.4.0 及以上版本支持數據流動。
- CPFS、CPFS 智算版狀態為運行中,才能創建數據流動。
- 一個文件存儲 CPFS 或者 CPFS 智算版文件系統最大允許創建 10 個數據流動。
- 創建數據流動一般耗時 2~5 分鐘,您可通過 DescribeDataFlows 檢查數據流動創建是否完成。
-
權限
創建數據流動時,文件存儲 CPFS 會獲取
AliyunServiceRoleForNasOssDataflow
和AliyunServiceRoleForNasEventNotification
兩個服務關聯角色。更多信息,請參見 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 空間和管理能力。
- 當文件系統類型為 CPFS 時,創建數據流動時該 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 智算版使用說明
-
源端存儲
- 源端存儲僅支持 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代碼示例。
授權信息
下表是API對應的授權信息,可以在RAM權限策略語句的Action
元素中使用,用來給RAM用戶或RAM角色授予調用此API的權限。具體說明如下:
- 操作:是指具體的權限點。
- 訪問級別:是指每個操作的訪問級別,取值為寫入(Write)、讀取(Read)或列出(List)。
- 資源類型:是指操作中支持授權的資源類型。具體說明如下:
- 對于必選的資源類型,用背景高亮的方式表示。
- 對于不支持資源級授權的操作,用
全部資源
表示。
- 條件關鍵字:是指云產品自身定義的條件關鍵字。
- 關聯操作:是指成功執行操作所需要的其他權限。操作者必須同時具備關聯操作的權限,操作才能成功。
操作 | 訪問級別 | 資源類型 | 條件關鍵字 | 關聯操作 |
---|---|---|---|---|
nas:CreateDataFlow | create | *DataFlow acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId} |
| 無 |
請求參數
名稱 | 類型 | 必填 | 描述 | 示例值 |
---|---|---|---|---|
FileSystemId | string | 是 | 文件系統 ID。
說明
國際站不支持 CPFS。
| cpfs-099394bd928c**** |
FsetId | string | 否 | Fileset ID。 說明
當文件系統類型為 CPFS 時,該參數必填。
| fset-1902718ea0ae**** |
SourceStorage | string | 是 | 源端存儲的訪問地址。格式: 其中:
說明
| oss://178321033379****:bucket-01 |
SourceSecurityType | string | 否 | 源端存儲的安全保護類型,如果源端存儲必須通過安全保護訪問,請指定源端存儲的安全保護類型。取值:
| SSL |
Throughput | long | 否 | 數據流動的傳輸帶寬上限,單位: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 | long | 否 | 自動更新間隔時間,每隔該時間間隔,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/ |
返回參數
示例
正常返回示例
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不存在。 |
訪問錯誤中心查看更多錯誤碼。
變更歷史
變更時間 | 變更內容概要 | 操作 |
---|---|---|
2024-09-09 | OpenAPI 錯誤碼發生變更 | 查看變更詳情 |
2024-05-31 | OpenAPI 錯誤碼發生變更 | 查看變更詳情 |
2024-02-29 | OpenAPI 錯誤碼發生變更、OpenAPI 入參發生變更 | 查看變更詳情 |