建立一個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不存在。 |
訪問錯誤中心查看更多錯誤碼。
變更歷史
更多資訊,參考變更詳情。