跳到主要内容

配置参考

本章介绍curvine配置项的详细说明。

集群配置

配置项默认值描述
format_mastertrue控制是否格式化 Master 元数据存储
format_workertrue控制是否格式化 Worker 数据存储
testingfalse标记是否处于测试模式,测试模式下数据流会被禁用
cluster_idcurve集群的唯一标识符

master配置项

配置项默认值描述
master.hostnamelocalhostMaster 服务的主机名,可通过环境变量 CURVINE_MASTER_HOSTNAME 覆盖
master.rpc_port8995Master 服务的 RPC 端口
master.web_port9000Master 服务的 Web 端口
master.io_threads32Master 服务的 I/O 线程数
master.worker_threadscpu核心数 * 2Master 服务的工作线程数
master.io_timeout10mMaster 网络读写数据超时时间
master.io_close_idletrue是否关闭空闲连接
master.meta_dir./fs-meta元数据存储目录
master.meta_disable_waltrue是否禁用 RocksDB 的预写日志(WAL)
master.meta_compression_typenone元数据存储的压缩类型
master.meta_db_write_buffer_size0元数据存储的数据库写缓冲区大小
master.meta_write_buffer_size64MB元数据存储的写缓冲区大小
master.min_block_size1024 * 1024最小block_size大小
master.max_block_size100 * 1024 * 1024 * 1024最大block_size大小
master.min_replication1最小副本数
master.max_replication100最大副本数
master.max_path_len8000最大路径长度
master.max_path_depth1000最大路径深度
master.retry_cache_enabletrue是否启用文件系统请求重试缓存
master.retry_cache_size100_000重试缓存的大小
master.retry_cache_ttl10m重试缓存的过期时间
master.block_report_limit1000块报告限制,允许的每次最多上报的block数量
master.worker_policylocalWorker 选择策略,默认local,优先选择和客户端所有节点的worker
master.executor_threads10master后台任务执行器线程数
master.executor_channel_size1000master后台任务执行器通道大小
master.heartbeat_check_interval5mMaster 检查 Worker 心跳的间隔时间
master.heartbeat_interval3sWorker 发送心跳的间隔时间
master.audit_logging_enabledtrue是否启用审计日志
master.log{level: "info", log_dir: "stdout"}master日志配置,默认输出到stdout

journal 配置

配置项默认值描述
enabletrue若启用 raft 日志同步,日志将进行同步;若禁用,相当于单机系统
group_nameraft-groupraft 组名称
rpc_port8996RPC 端口号
io_threads8I/O 线程数量
worker_threads8工作线程数量
message_size200消息大小
journal_addrs{id: 1, hostname: "localhost", port: 8996}Master 候选节点地址列表
journal_dir./journalraft 日志存储目录
writer_debugfalse写操作是否启用调试模式,启用后会打印每条日志
writer_channel_size0journal 写入时的缓冲区队列大小,默认使用无界队列
writer_flush_batch_size1000写操作批量刷新的条目数量
writer_flush_batch_ms100写操作批量刷新的时间间隔(毫秒)
snapshot_interval6h快照创建间隔
snapshot_entries100_000创建快照后生成的条目数量
snapshot_read_chunk_size1024 * 1024快照读取块大小
conn_retry_max_duration_ms0连接重试的最大持续时间(毫秒)
conn_retry_min_sleep_ms10 * 1000连接重试的最小休眠时间(毫秒)
conn_retry_max_sleep_ms10 * 1000连接重试的最大休眠时间(毫秒)
rpc_close_idlefalse是否关闭空闲的 RPC 连接
rpc_retry_max_duration_ms60 * 1000RPC 请求重试的最大持续时间(毫秒)
rpc_retry_min_sleep_ms20 * 1000RPC 请求重试的最小休眠时间(毫秒)
rpc_retry_max_sleep_ms20 * 1000RPC 请求重试的最大休眠时间(毫秒)
conn_timeout_ms30 * 1000连接超时时间(毫秒),默认 30 秒
io_timeout_ms60 * 1000套接字数据读写超时时间(毫秒),默认 60 秒
conn_size1连接共享时可用的连接数量
raft_poll_interval_ms100raft 轮询间隔(毫秒)
raft_tick_interval_ms1000raft 心跳间隔(毫秒)
raft_election_tick10raft 选举超时周期数
raft_heartbeat_tick3raft 心跳超时周期数
raft_min_election_ticks10raft 最小选举超时周期数
raft_max_election_ticks30raft 最大选举超时周期数
raft_check_quorumtrue是否检查法定人数
raft_max_size_per_msg1024 * 1024每条消息的最大大小
raft_max_inflight_msgs256未确认消息的最大数量
raft_max_committed_size_per_ready16 * 1024 * 1024每次 ready 状态的最大提交大小
raft_retry_cache_size100_000raft 请求重试缓存大小,防止重复请求
raft_retry_cache_ttl10mraft 请求重试缓存的过期时间
retain_checkpoint_num3保存的检查点数量
ignore_replay_errorfalse是否忽略日志重放过程中的错误

worker配置项

配置项默认值描述
worker.dir_reserved0目录保留空间配置
worker.data_dirvec![]Worker 数据目录列表
worker.io_slow_threshold300msWorker I/O 操作慢阈值,超过该时间视为慢操作
worker.io_threads32Worker 网络 I/O 线程数量
worker.worker_threadscpu核心数 * 2Worker 工作线程数量
worker.io_timeout10mWorker 网络读写数据超时时间
worker.io_close_idlefalse是否关闭空闲连接,因客户端未实现心跳机制,默认不关闭;用keepalive检查连接有效性
worker.scheduler_threads2后台调度任务线程数量
worker.executor_threads10后台异步任务线程数量
worker.executor_channel_size1000后台异步任务队列大小
worker.log{level: "info", log_dir: "stdout"}worker日志配置,默认输出到stdout

worker 加载数据配置:

配置项默认值描述
worker.load.task_status_report_interval_ms5000进度报告间隔(毫秒)
worker.load.task_read_chunk_size_bytes1024 * 1024默认块大小(字节)
worker.load.task_transfer_buffer_count16默认缓冲区缓存数量
worker.load.task_timeout_seconds3600任务超时时间(秒),-1 表示无超时
worker.load.task_transfer_max_concurrent_tasks5最大并发任务数

客户端配置

配置项默认值描述
client.master_addrslocalhost:8995主节点地址列表
client.hostnamelocalhost客户端所在机器的主机名,某些场景需设置以识别客户端和工作节点是否在同一机器
client.io_threads16客户端 I/O 线程数量
client.worker_threadscpu核心数 * 2客户端工作线程数量
client.replicas1默认副本数量
client.block_size128MBblock大小(字节),实际值从 block_size_str 转换而来
client.write_chunk_size128KB写入缓冲区大小
client.write_chunk_num8写入缓冲队列长度
client.read_chunk_size128KB读取缓冲区大小
client.read_chunk_num32读取缓冲队列长度
client.read_parallel1读取文件的并行度
client.read_slice_size0读取切片大小(字节),默认值为 read_chunk_size * read_chunk_num
client.close_reader_limit20在随机读取场景中,若检测到因 seek 操作导致block切换超过此值,将缓存所有块读取器
client.short_circuittrue是否启用短路功能
client.storage_typedisk默认存储类型
client.ttl_ms0默认数据缓存时间(毫秒)
client.ttl_actionnone缓存到期后的操作
client.auto_cache_enabledfalse是否启用自动缓存功能,启用后从外部文件系统读取文件时会自动向主节点提交加载请求并缓存文件
client.auto_cache_ttl7d自动缓存的默认生存时间,格式为数字加单位或纯数字(秒)
client.conn_retry_max_duration_ms2 * 60 * 1000连接重试的最大持续时间(毫秒)
client.conn_retry_min_sleep_ms300连接重试的最小休眠时间(毫秒)
client.conn_retry_max_sleep_ms10 * 1000连接重试的最大休眠时间(毫秒)
client.rpc_retry_max_duration_ms5 * 60 * 1000RPC 请求重试的最大持续时间(毫秒)
client.rpc_retry_min_sleep_ms300RPC 请求重试的最小休眠时间(毫秒)
client.rpc_retry_max_sleep_ms30 * 1000RPC 请求重试的最大休眠时间(毫秒)
client.rpc_close_idletrue是否关闭空闲的 RPC 连接
client.conn_timeout_ms30 * 1000连接超时时间(毫秒)
client.rpc_timeout_ms120 * 1000RPC 请求超时时间(毫秒)
client.data_timeout_ms5 * 60 * 1000数据传输超时时间(毫秒)
client.master_conn_pool_size1主节点连接池大小,经测试 3 个连接性能最佳,默认值为 1
client.enable_read_aheadtrue是否启用预读功能
client.read_ahead_len0预读长度(字节),默认值为 read_chunk_size * read_chunk_num
client.drop_cache_len0丢弃缓存长度(字节)
client.failed_worker_ttl_str10mworker节点黑名单过期时间

fuse配置

配置项默认值描述
fuse.debugfalse是否输出请求响应日志
fuse.io_threads32I/O 线程数量
fuse.worker_threadsCPU核心 * 2工作线程数量
fuse.mnt_path/curvine-fuse挂载路径
fuse.fs_path/指定挂载点访问文件系统的根路径
fuse.mnt_number1挂载点数量
fuse.mnt_per_task0(若为 0 会初始化为 io_threads 的值)每个挂载点可读写数据的任务数量
fuse.clone_fdtrue是否启用 clone fd 功能
fuse.fuse_channel_size0Fuse 请求队列大小,0使用无界队列
fuse.stream_channel_size0读写文件请求队列大小,0使用无界队列
fuse.fuse_opts[]挂载配置,需传递给 Linux 内核
fuse.umask022覆盖文件系统在 st_mode 中设置的权限位,以八进制表示
fuse.uidsys::get_uid()用户 ID
fuse.gidsys::get_gid()用户组 ID
fuse.auto_cachefalse是否启用自动缓存
fuse.read_dir_fill_inotrue遍历目录时是否填充 fuse 节点 ID
fuse.entry_timeout1.0名称搜索缓存时间(秒)
fuse.negative_timeout0.0缓存否定查找的超时时间(秒),0 表示禁用
fuse.attr_timeout1.0文件和目录属性的缓存时间(秒)
fuse.ac_attr_timeout1.0自动缓存刷新时文件属性缓存的超时时间(秒)
fuse.ac_attr_timeout_set1.0自动缓存刷新时文件属性缓存的超时时间(秒)
fuse.rememberfalse文件系统是否记住已打开的文件和目录
fuse.max_background256文件系统中后端任务的最大并发执行数
fuse.congestion_threshold192拥塞阈值
fuse.node_cache_size200000inode缓存容量
fuse.node_cache_timeout1hinode缓存存活时间
fuse.direct_iotrue文件和目录相关选项,是否启用直接 I/O
fuse.kernel_cachefalse文件和目录相关选项,是否启用内核缓存
fuse.cache_readdirfalse文件和目录相关选项,是否缓存目录读取结果
fuse.non_seekablefalse文件和目录相关选项,是否为不可查找模式
fuse.log{level: "info", log_dir: "stdout"}fuse日志配置,默认输出到stdout