跳到主要内容

数据编排

Curvine 提供 UFS(统一文件系统)视图来管理所有支持的分布式存储系统,包括 S3、HDFS 等。

挂载

Curvine 支持通过挂载到不同的 Curvine 路径来连接多个 UFS 源。Curvine 不提供默认的 UFS 配置,这意味着如果您要从 UFS 加载数据,必须先挂载 UFS 源。

mount-arch

Curvine 将挂载表持久化到元数据中,因此 Curvine 重启时无需重新挂载。但必须遵循一些规则。

  • 不允许挂载到根路径。
  • 挂载路径下不允许挂载其他 UFS。
  • 相同的挂载路径不能挂载到不同的 UFS。

挂载命令:

bin/cv mount <UFS_PATH> <CV_PATH> [OPTIONS]
  • ufs_path:UFS 路径,例如 s3://bucket/path。
  • curvine_path:Curvine 路径,例如 /ufs/path。
  • options:可选参数,例如 --config--provider--ttl-ms--write-type 等。

示例:

bin/cv mount s3://ai/xuen-test /s3 \
--config s3.endpoint_url=http://hostname.com \
--config s3.region_name=cn \
--config s3.credentials.access=access_key \
--config s3.credentials.secret=secret_key \
--config s3.path_style=true
提示

您可以在 UFS 挂载后使用 命令行、API 访问 ufs 目录、文件,但除非您加载特定路径,否则 ufs 数据不会自动同步到 curvine。

挂载参数

参数类型默认值说明示例
--config <key=value>repeatedUFS 后端参数--config s3.endpoint_url=http://...
--updateboolfalse更新已存在挂载--update
--check-path-consistbooltrue要求 UFS 路径与 Curvine 路径保持一致映射--check-path-consist=false
--read-verify-ufsboolfalsemtime / len 校验缓存读取结果--read-verify-ufs
--ttl-msduration7d挂载级 TTL24h, 7d, 30d
--replicasint继承默认值副本数覆盖3
--block-sizesize继承默认值块大小覆盖64MB, 128MB, 256MB
--storage-typeenum继承默认值存储介质类型mem / ssd / disk
--write-typeenumfs_mode挂载写入模式cache_mode / fs_mode
--providerenumauto强制指定后端实现auto / oss-hdfs / opendal

挂载模式

写入模式

当前 main 分支只有两种写入模式:

模式行为适用场景
cache_mode写入直接落到底层 UFS,Curvine 主要承担统一访问与缓存读取层数据主存仍在 UFS 的场景
fs_mode优先写入 Curvine 命名空间;首次挂载 fs_mode 路径时可能触发元数据 resync以 Curvine 管理缓存文件系统视图的场景

读取校验

当前用于读侧校验的用户可见开关是 --read-verify-ufs

模式行为
关闭信任缓存与统一文件系统默认回退逻辑
开启读前按 UFS 元数据(mtime 与文件长度)校验缓存
备注

对于 s3://... 挂载,CLI 会自动从 URI 提取 s3.bucket_name;对于 hdfs://... 挂载,CLI 会自动推导 hdfs.namenodehdfs.root。如果出现 Kerberos 配置但缺少 hdfs.kerberos.ccacheKRB5CCNAME,CLI 会给出警告。

统一访问

UFS 挂载后,Curvine 提供了一个统一的文件系统视图,您可以像访问 Curvine 文件系统一样访问 UFS 文件系统; 客户端、命令行工具、fuse等都可以通过统一的路径访问 UFS 文件系统。

提示
  • Curvine 不缓存 UFS 元数据,因此不存在访问数据一致性问题。从 Curvine访问 UFS 和直接访问 UFS 没有区别。 当 Curvine 缓存数据读取失败时,自动回退到UFS读取数据。
  • 如果使用 cv 命令,可以通过 --cache-only 临时关闭统一访问,只查看已缓存在 Curvine 中的文件。详见 CLI 页面

关闭统一访问

如果您不想使用统一访问,可以添加、修改如下配置:

[client]
enable_unified_fs = false