- 存储
- 分布式文件系统
- 对象存储
- 云原生
【免费下载链接】cubefs
cloud-native distributed storage
Access 是 CubeFS 纠删码存储(Blobstore)体系中的接入模块,对外提供数据上传、下载、删除等核心读写接口,是对象存储数据平面与底层 EC 存储引擎之间的关键网关。本文以官方配置文档 access.md 为骨架,逐层拆解 Access 的一级/二级/三级配置结构、全部参数默认值与使用要点,并结合仓库源码(blobstore/access/目录)说明参数在底层代码中的生效机制,帮助读者在部署、调优与故障排查时做到"知其然,更知其所以然"。
一、Access 模块定位与配置体系总览
Access 模块的主要职责是处理数据的上传(Put)、下载(Get)、删除(Delete)以及空间分配(Alloc)等请求。在代码层面,其 HTTP 服务路由在 blobstore/access/service.go 中注册:
POST/PUT /put:上传数据流,按大小与哈希参数写入 EC 存储;POST /putat:把数据写到一个已指定的 blob 位置(clusterid/volumeid/blobid);POST /alloc:为待写入的数据分配 volume 空间;POST /get:按 location 拉取数据流;POST /delete、DELETE /deleteblob:删除数据;POST /sign:签名相关操作。
Access 的配置基于公共配置(即 base.md 描述的服务器端口、日志、审计日志、认证等通用项),本模块的配置说明主要聚焦于 Access 的私有配置。从源码结构看,Access 的配置对象定义在 blobstore/access/server.go,由三个顶级字段构成:
type Config struct { cmd.Config // 公共配置(端口、日志、审计等) ServiceRegister consul.Config `json:"service_register"` Stream stream.StreamConfig `json:"stream"` Limit stream.LimitConfig `json:"limit"` }启动时通过config.Init("f", "", "access.conf")加载配置文件(见 blobstore/access/service.go),默认读取access.conf,也支持用-f参数指定配置文件路径。
二、第一级配置项
| 配置项 | 说明 | 是否必填 |
|---|---|---|
| 公共配置项 | 参见 基本服务配置 base.md | 是 |
| service_register | 服务注册信息,配置后可用于 Access 服务发现 | 是 |
| limit | 单机限流配置 | 否 |
| stream | Access 主配置项,包含以下二级配置 | 是 |
其中service_register与limit在 Access 服务启动时分别驱动两个关键组件:consul.ServiceRegister(服务注册到 Consul)与stream.NewLimiter(构建限流器),可参考 blobstore/access/server.go。若consul_addr为空,RegisterService会直接跳过注册逻辑(blobstore/access/server.go)。
公共配置(base)要点回顾
公共配置是各模块共用的基础配置,Access 同样继承。核心字段包括:
{ "max_procs": 0, "bind_addr": ":9500", "shutdown_timeout_s": 30, "auditlog": { "logdir": "./run/auditlog/access", "chunkbits": 0, "rotate_new": false, "log_file_suffix": ".log" }, "auth": { "enable_auth": false, "secret": "" }, "log": { "level": "info", "filename": "./run/logs/access.log", "maxsize": 1024, "maxage": 7, "maxbackups": 7, "compress": true } }bind_addr:HTTP 服务监听地址;max_procs:>0时调用runtime.GOMAXPROCS限制进程 CPU 数,0表示使用系统默认(blobstore/cmd/cmd.go)。shutdown_timeout_s:优雅退出超时,<=0时使用默认值(blobstore/cmd/cmd.go)。log各字段语义:level(debug/info/warn/error/panic/fatal)、maxsize(单文件最大 MB)、maxage(保留天数)、maxbackups(保留文件数)、compress(是否压缩备份)。maxsize/maxage/maxbackups未配置时默认分别为 1024、7、7(blobstore/cmd/cmd.go)。
三、第二级 stream 配置:Access 的核心调优点
stream是 Access 的"主配置项",在源码中对应 blobstore/access/stream/stream.go 定义的StreamConfig结构体。原文档给出的完整参数表如下:
| 配置项 | 说明 | 是否必填 / 默认值 |
|---|---|---|
| idc | 服务所属 IDC | 必填 |
| max_blob_size | 文件分段 blob 大小 | 否,默认 4MB |
| mem_pool_size_classes | 文件读写内存控制 | 否 |
| code_mode_put_quorums | 重置 codemode 的 put quorum | 否 |
| code_mode_get_ordered | 配置 codemode get 分片按序 | 否 |
| code_mode_get_ignore_idc | 配置 codemode get 分片忽略 idc 距离 | 否 |
| encoder_concurrency | EC 编码/解码并发度 | 否,默认 1000 |
| encoder_enableverify | 是否开启 EC 编解码校验 | 否,默认开启 |
| min_read_shards_x | EC 读并发下载分片数 | 否,默认 1,越大容错越高但带宽消耗越大 |
| read_data_only_timeout_ms | 直读分片数据超时 | 否,默认 3000ms |
| shard_crc_write_disable | 是否校验写入 blobnode 的数据 CRC | 否,默认 false(即校验写入分片数据) |
| shard_crc_read_enable | 是否校验从 blobnode 读出的数据 CRC | 否,默认 false(即不校验读取分片数据) |
| disk_punish_interval_s | 临时标记坏盘周期 | 否,默认 60s |
| volume_punish_interval_s | 临时标记坏 volume 周期 | 否,默认 60s |
| service_punish_interval_s | 临时标记坏服务周期 | 否,默认 60s |
| shardnode_punish_interval_s | 临时标记坏 shardnode 周期 | 否,默认 60s |
| alloc_retry_times | 分配 volume 重试次数 | 否,默认 3 |
| alloc_retry_interval_ms | 分配 volume 重试等待毫秒 | 否,默认 100ms |
| shardnode_retry_times | shardnode 重试次数 | 否,默认 3 |
| shardnode_retry_interval_ms | shardnode 重试等待毫秒 | 否,默认 200ms |
| blobnode_config | Blobnode RPC 配置 | 参考 rpc.md |
| proxy_config | Proxy RPC 配置 | 参考 rpc.md |
| shardnode_config | Shardnode RPC 配置 | 参考 rpc2.md |
| cluster_config | 主集群配置 | 必填,见三级配置 |
3.1 idc 与 max_blob_size
idc是必填项,源码confCheck中cfg.IDC == ""会直接报错"idc config can not be null"(blobstore/access/stream/stream.go),同时它会被注入ClusterConfig.IDC,用于多 IDC 场景下的就近读写。max_blob_size默认值为1 << 22,即 4MB(blobstore/access/stream/config_defaulter.go)。对象数据会被切分为不超过该大小的多个 blob,再按 codemode 拆分为 EC 分片存储。
3.2 mem_pool_size_classes:内存池分级
mem_pool_size_classes以 JSON 对象的 key 表示内存分配阶梯(字节),value 表示该档位的数量上限,负值表示不限制(当前 Access 并未启用数量限制)。默认配置如下:
{ "2048": -1, "65536": -1, "524288": -1, "2097152": 10240, "8389632": 4096, "16777216": 1024, "33554432": 512, "67108864": 64 }未配置时,源码会回退到getDefaultMempoolSize()(blobstore/access/stream/config_defaulter.go),覆盖 2KiB ~ 32MiB 共 10 档,全部不限制数量。该内存池在NewStreamHandler中通过resourcepool.NewMemPool(cfg.MemPoolSizeClasses)创建(blobstore/access/stream/stream.go),用于文件读写过程中的缓冲复用,可显著减少大对象读写时的内存分配与 GC 压力。需要注意的是,EC 编码会引入放大:例如config_defaulter.go头部注释给出了不同 blob 大小与 EC15P12/EC6P6/EC16P20L2/EC6P10L2/EC3P3 等模式下的实际编码缓冲区尺寸(如 4MiB blob 在 EC15P12 下约需 7.2MiB),因此内存档位设置需结合 codemode 放大率评估。
3.3 codemode 相关:put_quorums / get_ordered / get_ignore_idc
这三个配置项用于精细调整 EC 编解码策略:
code_mode_put_quorums:重置某种 codemode 的写入 quorum(即可容忍多少个分片写入失败仍算成功)。源码confCheck会校验每个 quorum 的合法性:必须满足quorum >= N + L + 1且quorum <= 该模式总分片数,否则报错"invalid put quorum"(blobstore/access/stream/stream.go)。示例中"1": 24即把 codemode 1(EC15P12)的写入 quorum 设为 24(N=15, M=12, AZCount=3,默认 quorum 恰为 24,见 blobstore/common/codemode/codemode.go)。code_mode_get_ordered:按 volume unit 顺序读取分片,用于减少 Reed-Solomon 逆矩阵缓存占用。源码注释给出量级参考:单 AZ 下 EC24P8 的C(32,8)=10518300个矩阵,逆矩阵内存可能高达约 51GB,按序读取可显著降低此类开销(blobstore/access/stream/stream.go)。code_mode_get_ignore_idc:跨 IDC 读取时忽略 IDC 距离约束,适用于跨机房读取场景。
常用 codemode 编号与参数(取自 blobstore/common/codemode/codemode.go):
| codemode 编号 | 名称 | N/M/L | AZ 数 | 默认 PutQuorum |
|---|---|---|---|---|
| 1 | EC15P12 | 15/12/0 | 3 | 24 |
| 2 | EC6P6 | 6/6/0 | 3 | 11 |
| 3 | EC16P20L2 | 16/20/2 | 2 | 34 |
| 4 | EC6P10L2 | 6/10/2 | 2 | 14 |
| 11 | EC3P3 | 3/3/0 | 1 | 5 |
| 12 | EC10P4 | 10/4/0 | 1 | 13 |
| 14 | EC12P9 | 12/9/0 | 3 | 20 |
| 15 | EC24P8 | 24/8/0 | 1 | 30 |
这也是完整示例中"1":24 / "2":11 / "3":34 / "4":14与各 codemode 默认 quorum 一一对应的原因。可扩展 codemode 由集群管理器(clustermgr)下发,Access 启动时会通过clustermgr.LoadExtendCodemode加载并校验(blobstore/access/stream/stream.go)。
3.4 EC 编码与读取调优
encoder_concurrency:EC 编解码并发度,默认 1000;encoder_enableverify:编解码后是否校验,默认开启,二者共同决定 CPU 密集的 Reed-Solomon 计算资源的占用与正确性保障。min_read_shards_x:EC 读时并发下载的分片数("X" 含义为在最低要求分片数之上额外多拉取的分片),默认 1。数值越大容错性越高(某几个分片失败也能重组),但带宽消耗越大。read_data_only_timeout_ms:直读分片数据的超时,默认 3000ms,超时后触发惩罚与重试机制。shard_crc_write_disable/shard_crc_read_enable:写/读 blobnode 时是否做数据 CRC 校验。默认写校验(false 表示不关闭,即校验)、读不校验(false 表示不开启)。CRC 校验可发现数据损坏,但会带来额外计算开销,可结合数据安全级别权衡。
3.5 惩罚(punish)与重试(retry)机制
当磁盘、volume、服务或 shardnode 出现故障时,Access 会将其"临时标记"为不可用,并在周期过后尝试恢复,避免在已知故障点上反复失败。相关参数均与惩罚周期相关:
disk_punish_interval_s/volume_punish_interval_s/service_punish_interval_s/shardnode_punish_interval_s:默认均为 60s。alloc_retry_times/alloc_retry_interval_ms:分配 volume 失败后的重试次数与间隔,默认 3 次 / 100ms。shardnode_retry_times/shardnode_retry_interval_ms:shardnode 操作重试,默认 3 次 / 200ms。
上述默认值集中定义在 blobstore/access/stream/config_defaulter.go。注意源码中的默认判定采用"非正数则回退默认"策略(blobstore/util/defaulter/defaulter.go 的LessOrEqual:*val <= 0时写入默认值),因此显式配置为0或负数并不表示"禁用",而是会回退到默认值。
3.6 RPC 子配置:blobnode_config / proxy_config / shardnode_config
这三项分别配置 Access 与 Blobnode、Proxy、Shardnode 通信的 RPC 客户端参数:
blobnode_config、proxy_config属于"单点多点通用 RPC 配置"(HTTP 协议),其字段包括client_timeout_ms(请求超时)、body_bandwidth_mbps(读 body 带宽,默认 1MBps)、body_base_timeout_ms(读 body 基准时间,实际最大读 body 时间为body_base_timeout_ms + size/body_bandwidth_mbps)以及transport_config(Go http 库 transport 细节,一般可忽略,v3.2.1 起提供默认值:max_conns_per_host:10、max_idle_conns:1000、max_idle_conns_per_host:10、idle_conn_timeout_ms:10000)。多点负载均衡版 LbClient 还支持hosts、backup_hosts、host_try_times、try_times、fail_retry_interval_s(<=0表示不摘除节点,默认 -1)、max_fails_period_s,详见 rpc.md。shardnode_config走的是新一代 rpc2 框架(基于 smux 多路复用),retry会被限制为不超过 1,因为流式 blob 读写自身已实现重试(blobstore/access/stream/stream.go)。rpc2 的Client结构包含connector(network/dial_timeout/max_session_per_address/max_stream_per_session 等)、timeout/request_timeout/response_timeout、auth与lb(hosts/backup_hosts/host_try_times/fail_retry_interval_s/max_fails_period_s),详见 rpc2.md。未配置shardnode_config时,Access 会退化为传统模式,将 delete/repair 消息按比例写向 blobnode(delete_into_shardnode_percentage等配置失效置 0)。
客户端超时也有默认值兜底:clustermgr 3000ms、proxy 5000ms、blobnode 5000ms(blobstore/access/stream/config_defaulter.go)。
3.7 熔断器配置(源码补充)
虽然原文档表格未单列,但StreamConfig中还包含两组 Hystrix 熔断配置:alloc_command_config(分配命令)与rw_command_config(读写命令),未配置时由confCheck写入默认值(blobstore/access/stream/stream.go)。默认值包括:allocator 超时 30s、最大并发 10240、错误率阈值 50%;blobnode 读写超时 600s、最大并发 102400、错误率阈值 80% 等(blobstore/access/stream/config_defaulter.go)。当后端节点持续高错误率时,熔断器会快速失败以保护系统,避免雪崩。
四、第三级 cluster_config 配置
cluster_config是必填项,对应源码 blobstore/access/controller/cluster.go 的ClusterConfig结构体:
| 配置项 | 说明 | 是否必填 / 默认值 |
|---|---|---|
| region | 区域信息 | 必填,配置后不可更改 |
| region_magic | 用于编码文件位置(location)的 CRC 字段 | 必填,配置后不可更改;一旦变更所有 location 将失效 |
| consul_agent_addr | 获取集群信息的 Consul 地址 | 否 |
| consul_token | 获取集群信息的 Consul token | 否 |
| consul_token_file | 获取集群信息的 Consul token 文件 | 否 |
| cluster_reload_secs | 同步集群信息周期 | 否,默认 3s |
| service_reload_secs | 同步服务信息周期 | 否,默认 3s |
| shard_reload_secs | 同步 shardnode 周期 | 否,默认 3s |
| load_disk_interval_s | 加载坏盘周期 | 否,默认 300s |
| disk_punish_threshold | 磁盘惩罚阈值 | 否,默认 3 |
| disk_punish_valid_interval_s | 磁盘惩罚有效秒数 | 否,默认 30s |
| disk_memory_expiration_s | 磁盘内存过期秒数 | 否,默认 0(不过期) |
| service_punish_threshold | 服务惩罚阈值 | 否,默认 3 |
| service_punish_valid_interval_s | 服务惩罚有效秒数 | 否,默认 30s |
| volume_memcache_size | 内存缓存大小 | 否,默认 1048576(1M) |
| volume_memcache_punish_size | 内存缓存惩罚大小 | 否,默认 1024 |
| volume_memcache_expiration_ms | 内存缓存过期毫秒 | 否,默认 120000(2 分钟) |
| volume_punish_threshold | volume 惩罚阈值 | 否,默认 10 |
| volume_punish_interval_s | volume 惩罚间隔秒数 | 否,默认 600 |
| clustermgr_client_config | Clustermgr RPC 配置 | 参考 rpc.md |
4.1 region 与 region_magic:不可变的身份标识
region与region_magic必须配对且一经部署不可更改:region_magic参与文件位置(location)的 CRC 编码,一旦变更,历史上所有已编码的 location 都将失效,导致数据无法定位。源码中security.InitWithRegionMagic(cfg.Stream.ClusterConfig.RegionMagic)在服务创建时即用 region magic 初始化密钥校验(blobstore/access/server.go),ClusterConfig注释也明确提示 "magic cannot change if one region was deployed"(blobstore/access/controller/cluster.go)。示例中region与region_magic都写为"region",生产环境务必替换为真实区域标识并长期固定。
4.2 集群信息同步
cluster_reload_secs/service_reload_secs/shard_reload_secs:控制集群、服务、shardnode 信息的本地缓存刷新周期,默认均 3s。consul_agent_addr:配置后 Access 通过 Consul Agent 拉取集群拓扑;也可以像示例配置那样在clusters字段直接静态指定集群(cluster_id+hosts列表 + 每集群space配置)。源码confCheck强制要求consul 与 clusters 二者至少配置一个:"consul or clusters can not all be empty"(blobstore/access/stream/stream.go);若配置了 consul,NewClusterController会构造 Consul KV 客户端并周期性加载集群信息(blobstore/access/controller/cluster.go)。clustermgr_client_config:与 clustermgr 通信的 RPC 配置,示例中展示了带认证的transport_config(enable_auth:true+secret)与dial_timeout_ms、client_timeout_ms的写法。
4.3 惩罚与缓存参数在源码中的落点
- 磁盘/服务惩罚阈值与有效期的默认值(3 / 30s)由
NewServiceController通过defaulter.IntegerEqual与defaulter.IntegerLessOrEqual写入(blobstore/access/controller/service.go),load_disk_interval_s默认 300s,由独立协程周期执行loadBrokenDisks()(blobstore/access/controller/service.go)。 - volume 相关缓存默认值(1M 容量 / 1024 惩罚容量 / 2 分钟过期 / 阈值 10 / 间隔 600s)在
NewVolumeGetter中兜底(blobstore/access/controller/volume.go),其中volume_memcache_expiration_ms为-1时表示不过期。volume 缓存用于减少对 proxy/clustermgr 的查询压力,惩罚缓存用于记录近期失败 volume。
五、配置示例逐段精讲
5.1 service_register:服务注册
字段说明:
consul_addr:Access 服务注册到的 Consul 地址;service_ip:Access 服务绑定的 IP;node:主机名;health_port:Consul 健康检查端口范围(v3.2.1 起支持)。
{ "consul_addr": "127.0.0.1:8500", "service_ip": "127.0.0.1", "node": "access-node1", "health_port": [9700, 9799] }该配置对应consul.Config,由consul.ServiceRegister(cfg.BindAddr, &cfg.ServiceRegister)执行注册(blobstore/access/server.go)。health_port是一个区间,Access 会在其中探测可用端口用于 Consul 健康检查,避免与其他进程端口冲突。
5.2 limit:单机限流
字段说明:
reader_mbps:单机上传带宽(MB/s);writer_mbps:单机下载带宽(MB/s);name_rps:各接口的 RPS 限制。
{ "name_rps": { "alloc": 0, "put": 100, "putat": 0, "get": 0, "delete": 0, "sign": 0 }, "reader_mbps": 100, "writer_mbps": 1000 }name_rps的 key 与路由一一对应:alloc / put / putat / get / delete / sign,取值为 0 表示不限制。该配置结构体定义在 blobstore/access/stream/limiter.go(NameRps、ReaderMBps、WriterMBps)。底层实现上,Reader/Writer包装了golang.org/x/time/rate令牌桶:读取或写入超过速率时,ReserveN计算延迟并通过定时器阻塞等待,同时在 trace span 上记录_tagLimitedW延迟标签(blobstore/access/stream/limiter.go)。限流器以中间件形式挂载在全部路由前:rpc.Use(service.Limit)(blobstore/access/service.go)。
5.3 mem_pool_size_classes:内存分级
key 为内存分配阶梯(字节),value 为数量上限,负数表示不限制(Access 当前未启用数量限制):
{ "2048": -1, "65536": -1, "524288": -1, "2097152": 10240, "8389632": 4096, "16777216": 1024, "33554432": 512, "67108864": 64 }5.4 完整示例(可直接作为生产模板)
原文档给出的完整示例覆盖了全部核心配置,这里原样继承并补充字段注释:
{ "max_procs": 0, "shutdown_timeout_s": 30, "log": { "level": "info", "filename": "./run/logs/access.log", "maxsize": 1024, "maxage": 7, "maxbackups": 7, "compress": true }, "bind_addr": ":9500", "service_register": { "consul_addr": "127.0.0.1:8500", "service_ip": "127.0.0.1", "node": "access-node1", "health_port": [9700, 9799] }, "limit": { "name_rps": { "put": 100 }, "reader_mbps": 100, "writer_mbps": 1000 }, "stream": { "idc": "idc", "max_blob_size": 4194304, "mem_pool_size_classes": { "2048": -1, "65536": -1, "524288": -1, "2097152": 10240, "8389632": 4096, "16777216": 1024, "33554432": 512, "67108864": 64 }, "code_mode_put_quorums": { "1": 24, "2": 11, "3": 34, "4": 14 }, "code_mode_get_ordered": { "12": true, "15": true }, "code_mode_get_ignore_idc": { "14": true }, "alloc_retry_times": 3, "alloc_retry_interval_ms": 100, "encoder_concurrency": 1000, "encoder_enableverify": true, "min_read_shards_x": 1, "read_data_only_timeout_ms": 3000, "shard_crc_write_disable": false, "shard_crc_read_enable": false, "cluster_config": { "region": "region", "region_magic": "region", "cluster_reload_secs": 3, "service_reload_secs": 3, "clustermgr_client_config": { "client_timeout_ms": 3000, "transport_config": { "auth": { "enable_auth": true, "secret": "secret key" }, "dial_timeout_ms": 2000 } }, "consul_agent_addr": "127.0.0.1:8500" }, "disk_punish_interval_s": 60, "service_punish_interval_s": 60, "blobnode_config": { "client_timeout_ms": 10000 }, "proxy_config": { "client_timeout_ms": 5000 } } }六、最小可用配置与运行验证
仓库自带的精简示例 blobstore/cmd/access/access.conf 展示了一种不依赖 Consul、静态指定集群的最小配置方式:
{ "bind_addr": ":9500", "log": { "level": "info", "filename": "./run/logs/access.log" }, "auditlog": { "logdir": "./run/auditlog/access" }, "stream": { "idc": "z0", "cluster_config": { "region": "test-region", "clusters": [ {"cluster_id":1,"hosts":["http://127.0.0.1:9998","http://127.0.0.1:9999","http://127.0.0.1:10000"]} ] } } }该示例只声明了必填项(idc、region、clusters或 consul),其余参数全部走默认值,适合本地联调。启动方式为blobstore/cmd下的 Access 可执行程序,加载-f access.conf后即可监听bind_addr提供服务。
运行期可通过管理接口验证配置生效情况:GET /access/status返回限流状态(limit)、内存池状态(pool)、当前生效配置(config)、集群信息(clusters)与 proxy 服务列表(services)(blobstore/access/server.go),是排查"配置是否按预期加载、集群是否连通"的第一入口。
七、参数生效机制小结
Access 配置的默认值逻辑统一由 blobstore/util/defaulter/defaulter.go 提供,核心规则如下:
Equal:值为 0 时写入默认值(如max_blob_size);LessOrEqual:值不大于 0 时写入默认值(如encoder_concurrency、cluster_reload_secs、各惩罚周期、RPC 超时等);IntegerLessOrEqual/IntegerEqual/IntegerLess:对整型分别执行上述语义(如volume_memcache_size、disk_punish_threshold等)。
因此在配置文件中显式写 0 或负数并不能禁用这些项,而是会回退为默认值;真正想要"放宽/收紧"某行为时,应填写大于默认值的明确数值。了解这一规则,可以避免在调优时出现"配置了却无效"的困惑。
总结
Access 的配置体系可以概括为三层:第一层(公共配置 +service_register+limit+stream)决定模块基本形态;第二层(stream)覆盖 EC 编解码、内存池、限流重试、惩罚熔断与下游 RPC 的全部读写行为;第三层(cluster_config)绑定区域身份与集群信息同步。掌握 access.md 中的参数表,并对照 stream.go、config_defaulter.go、service.go、volume.go 等源码理解默认值兜底与惩罚/熔断机制,即可在生产环境中准确部署与调优 Access 模块。
- 存储
- 分布式文件系统
- 对象存储
- 云原生
【免费下载链接】cubefs
cloud-native distributed storage
相关推荐
CubeFS Blobstore Access 模块状态管理指南:从 `/access/status` 接口到运行时监控
CubeFS Blobstore Access 模块状态管理指南:从 /access/status 接口到运行时监控 导读 :本文聚焦 CubeFS 云原生分布
存储分布式文件系统对象存储云原生CubeFS BlobStore Access 模块配置详解:接入网关的核心参数与实战调优
CubeFS BlobStore Access 模块配置详解:接入网关的核心参数与实战调优 导读 Access 是 CubeFS BlobStore(纠删码存储
存储分布式文件系统对象存储云原生CubeFS BlobStore Access 服务状态管理接口实战:`/access/status` 源码级解析
CubeFS BlobStore Access 服务状态管理接口实战: /access/status 源码级解析 Access 是 CubeFS BlobSto
存储分布式文件系统对象存储云原生
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考