$ goosefs nsUsage: goosefs ns [generic options][create <namespace> <CosN/Chdfs path> <--wPolicy <1-6>> <--rPolicy <1-5>> [--readonly] [--shared] [--secret fs.cosn.userinfo.secretId=<AKIDxxxxxxx>] [--secret fs.cosn.userinfo.secretKey=<xxxxxxxxxx>] [--attribute fs.ofs.userinfo.appid=1200000000][--attribute fs.cosn.bucket.region=<ap-xxx>/fs.cosn.bucket.endpoint_suffix=<cos.ap-xxx.myqcloud.com>]][delete <namespace>][help [<command>]][ls [-r|--sort=option|--timestamp=option]][setPolicy [--wPolicy <1-6>] [--rPolicy <1-5>] <namespace>][setTtl [--action delete|free] <namespace> <time to live>][stat <namespace>][unsetPolicy <namespace>][unsetTtl <namespace>]
指令 | 说明 |
create | 用于创建命名空间,将一个远端存储系统(UFS)映射到命名空间中;支持在创建命名空间时设置读写缓存策略;需要传入有权限的密钥信息(secretId、secretKey)。 |
delete | 用于删除指定命名空间。 |
ls | 用于列出指定命名空间的详细信息,例如挂载点、UFS 路径、创建时间、缓存策略、TTL 信息等。 |
setPolicy | 用于设置指定命名空间的缓存策略。 |
setTtl | 用于设置指定命名空间的 TTL。 |
stat | 用于提供指定命名空间的描述性信息,例如挂载点、UFS 路径、创建时间、缓存策略、TTL 信息、持久化状态、用户组、ACL、最后一次访问时间、修改时间等。 |
unsetPolicy | 用于重置指定命名空间的缓存策略。 |
unsetTtl | 用于重置指定命名空间的 TTL。 |
# 将 COS 存储桶 example-bucket 映射到 test_cos 命名空间中$ goosefs ns create test_cos cosn://example-bucket-1250000000/ --wPolicy 1 --rPolicy 1 --secret fs.cosn.userinfo.secretId=AKIDxxxxxxx --secret fs.cosn.userinfo.secretKey=xxxxxxxxxx --attribute fs.cosn.bucket.region=ap-guangzhou --attribute fs.cosn.bucket.endpoint_suffix=cos.ap-guangzhou.myqcloud.com# 将 COS 存储桶 example-bucket 的 example-prefix 目录映射到 test_cos_prefix 命名空间中$ goosefs ns create test_cos_prefix cosn://example-bucket-1250000000/example-prefix/ --wPolicy 1 --rPolicy 1 --secret fs.cosn.userinfo.secretId=AKIDxxxxxxx --secret fs.cosn.userinfo.secretKey=xxxxxxxxxx --attribute fs.cosn.bucket.region=ap-guangzhou --attribute fs.cosn.bucket.endpoint_suffix=cos.ap-guangzhou.myqcloud.com# 将 云HDFS 文件系统 f4ma0l3qabc-Xy3 映射到 test_chdfs 命名空间中$ goosefs ns create test_chdfs ofs://f4ma0l3qabc-Xy3/ --wPolicy 1 --rPolicy 1 --attribute fs.ofs.userinfo.appid=1250000000
$ goosefs fs ls /test_cos
$ goosefs ns delete test_cosDelete the namespace: test_cos
$goosefs ns setPolicy [--wPolicy <1-6>] [--rPolicy <1-5>] <namespace>
策略名字 | 行为 | 对应 Write_Type | 数据安全性 | 写效率 |
MUST_CACHE(1) | 数据仅存储在 GooseFS,不会写入远端存储系统中。 | MUST_CACHE | 不可靠 | 高 |
TRY_CACHE(2) | 缓存有空间时就写入 GooseFS 中,缓存如果没空间则直接写入到底层存储中。 | TRY_CACHE | 不可靠 | 中 |
CACHE_THROUGH(3) | 尽量缓存数据,同时同步写入远端存储系统。 | CACHE_THROUGH | 可靠 | 低 |
THROUGH(4) | 数据不存储在 GooseFS,直接写远端存储系统。 | THROUGH | 可靠 | 中 |
ASYNC_THROUGH(5) | 数据写入 GooseFS 中,并异步刷新到远端存储系统。 | ASYNC_THROUGH | 弱可靠 | 高 |
MUST_CACHE
变更到CACHE_THROUGH
后,如果未调用persist
指令持久化数据,那么即将淘汰的数据无法写入到底层,会出现丢失的情况。策略名字 | 行为 | 元数据同步 | 对应 Read_Type | 数据一致性 | 读效率 | 是否缓存数据 |
NO_CACHE(1) | 不缓存数据,直接从远端存储系统中读数据。 | NO | NO_CACHE | 强一致 | 低 | 否 |
CACHE(2) | 元数据访问行为:如果命中缓存时,元数据以 Master 中的为准,不会主动从底层同步元数据。 数据流访问行为:数据流的 ReadType 采用 CACHE 策略。 | Once | CACHE | 弱一致 | 命中:高 未命中:低 | 是 |
CACHE_PROMOTE(3) | 元数据访问行为:与 CACHE 模式相同。 数据流访问行为:数据流的 ReadType 采用 CACHE_PROMOTE 策略。 | Once | CACHE_PROMOTE | 弱一致 | 命中:高 未命中:低 | 是 |
CACHE_CONSISTENT_PROMOTE(4) | 元数据行为:每次读取操作前均先同步远端存储系统 UFS 上的元数据,如果 UFS 中不存在,则抛出异常 Not Exists。 数据流访问行为:数据流的 ReadType 采用 CACHE_PROMOTE 策略,命中以后,缓存到最热的缓存介质中。 | Always | CACHE | 强一致 | 命中:中 未命中:低 | 是 |
CACHE_CONSISTENT(5) | 元数据行为:与 CACHE_CONSISTENT_PROMOTE 相同。 数据流访问行为:数据流的 ReadType 采用 CACHE 策略,即 CACHE 命中,不会在不同的介质层中移动数据。 | Always | CACHE_PROMOTE | 强一致 | 命中:中 未命中:低 | 是 |
写缓存策略 | 读缓存策略 | 策略组合表现 |
CACHE_THROUGH(3) | CACHE_CONSISTENT(5) | 缓存和远端存储系统数据强一致。 |
CACHE_THROUGH(3) | CACHE(2) | 写强一致性,读最终一致性。 |
ASYNC_THROUGH(5) | CACHE_CONSISTENT(5) | 写最终一致性,读强一致性。 |
ASYNC_THROUGH(5) | CACHE(2) | 读写最终一致性。 |
MUST_CACHE(1) | CACHE(2) | 只从缓存中读数据。 |
$ goosefs ns setPolicy --wPolicy 3 --rPolicy 5 test_cos
$ goosefs ns unsetPolicy test_cos
$ goosefs ns setTtl [--action delete|free] <namespace> <time to live>
$ goosefs ns setTtl --action free test_cos 60000
goosefs.user.file.metadata.sync.interval=<INTERVAL>
goosefs fs ls -R -Dgoosefs.user.file.metadata.sync.interval=0 <path to sync>
goosefs.user.file.metadata.sync.interval=1m
访问模式 | 元数据同步周期 | 说明 | |
所有文件请求都经过 GooseFS | | -1 | - |
绝大部分文件请求都经过 GooseFS | 使用 HDFS 作为 UFS | 推荐使用热更新或者按路径更新 | 如果 HDFS 的更新特别频繁,推荐将更新周期设置为-1,禁止更新 |
| 使用 COS 作为 UFS | 推荐按照路径配置更新周期 | 按照不同目录配置不同的更新周期,可以缓解元数据同步的压力 |
| 上传文件请求一般不经过 GooseFS | 使用 HDFS 作为 UFS | 推荐按照路径配置更新周期 |
| | 使用 COS 作为 UFS | 推荐按照路径配置更新周期 |
本页内容是否解决了您的问题?