mirror of
https://github.com/cubefs/cubefs.git
synced 2026-08-02 02:00:56 +00:00
190 lines
8.1 KiB
Markdown
Executable File
190 lines
8.1 KiB
Markdown
Executable File
# BlobNode 配置
|
||
|
||
`BlobNode` 是单机存储引擎模块,主要负责组织数据落盘、磁盘读取数据、磁盘删除数据以及后台任务的执行等。
|
||
|
||
BlobNode的配置是基于[公有配置](./base.md),以下配置说明主要针对于BlobNode的私有配置。
|
||
|
||
## 配置说明
|
||
|
||
### 关键配置
|
||
|
||
| 配置项 | 说明 | 必需 |
|
||
|:-----------------|:------------------------------------------|:----|
|
||
| 公有配置 | 如服务端口、运行日志以及审计日志等,参考[基础服务配置](./base.md)章节 | 是 |
|
||
| disks | 要注册的磁盘路径列表 | 是 |
|
||
| disable_sync | 是否关闭磁盘sync,值为true表示关闭sync,可以提高写性能 | 否 |
|
||
| rack | 所在机架编号,clustermgr打开机架隔离时需要此字段 | 否 |
|
||
| host | 本机的blobnode服务地址,需要注册到clustermgr | 是 |
|
||
| must_mount_point | 校验注册路径是否是挂载路径,生产环境建议打开 | 否 |
|
||
| data_qos | 数据qos分层限流,生产环境建议打开 | 否 |
|
||
| meta_config | 元数据相关配置,包含rocksdb的cache大小等 | 否 |
|
||
| clustermgr | clustermgr的服务地址信息等 | 是 |
|
||
|
||
### 全部配置
|
||
```json
|
||
{
|
||
"cluster_id": "集群id",
|
||
"idc": "机房",
|
||
"rack": "机架",
|
||
"host": "服务地址ip:端口",
|
||
"dropped_bid_record": {
|
||
"dir": "下线的bid记录目录",
|
||
"chunkbits": "n: 单个文件大小,2的n次方字节"
|
||
},
|
||
"disks": [
|
||
{
|
||
"auto_format": "是否自动创建目录",
|
||
"disable_sync": "是否关闭磁盘sync",
|
||
"path": "数据存放目录",
|
||
"max_chunks": "单盘最大的chunk数量限制"
|
||
},
|
||
{
|
||
"auto_format": "同上",
|
||
"disable_sync": "同上",
|
||
"path": "同上:每个磁盘都需要配置,会注册到clustermgr",
|
||
"max_chunks": "同上"
|
||
}
|
||
],
|
||
"disk_config": {
|
||
"disk_reserved_space_B": "单盘保留大小,可写空间会减去该值,默认60GB",
|
||
"compact_reserved_space_B": "留给压缩的单盘保留大小,默认20GB",
|
||
"chunk_protection_M": "release chunk的保护周期,最后修改时间到此刻没有超过保护周期则不允许release",
|
||
"chunk_compact_interval_S": "compact的定时任务周期",
|
||
"chunk_clean_interval_S": "chunk清理的定时任务周期",
|
||
"chunk_gc_create_time_protection_M": "清理chunk时判断创建时间的保护周期",
|
||
"chunk_gc_modify_time_protection_M": "清理chunk时判断修改时间的保护周期",
|
||
"disk_usage_interval_S": "更新磁盘空间使用情况的定时任务周期",
|
||
"disk_clean_trash_interval_S": "磁盘清理垃圾数据的定时任务周期",
|
||
"disk_trash_protection_M": "磁盘垃圾数据的保护周期",
|
||
"allow_clean_trash": "是否允许清理垃圾",
|
||
"disable_modify_in_compacting": "压缩中是否不允许修改chunk",
|
||
"compact_min_size_threshold": "chunk大小满足压缩条件的最小值",
|
||
"compact_trigger_threshold": "chunk size达到该值触发压缩",
|
||
"compact_empty_rate_threshold": "chunk空洞率达到该值允许压缩",
|
||
"need_compact_check": "压缩完成后,是否巡检压缩前后的blob,确保压缩前后数据一致",
|
||
"allow_force_compact": "是否允许接口强制进行压缩,跳过压缩条件",
|
||
"compact_batch_size": "执行压缩时每一批次的bid数量",
|
||
"metric_report_interval_S": "metric上报的定时任务周期",
|
||
"set_default_switch": "是否默认设置开关.建议该项填true,会设置need_compact_check,allow_force_compact,allow_clean_trash",
|
||
"must_mount_point": "数据存放目录是否强制是挂载点",
|
||
"must_mount_point_meta": "如果配置了 meta_root_prefix,开启 must_mount_point_meta 后会检查每个磁盘的元数据目录是否为挂载点,默认值 false",
|
||
"iostat_file_dryrun": "是否开启IO统计文件模拟运行, 默认值 false",
|
||
"enable_delete_shard_verify": "删除时是否开启shard校验, 默认值 false",
|
||
"wait_pending_req_interval_sec": "等待挂起请求的时间间隔, 默认值10秒",
|
||
"block_buffer_size": "块缓冲区大小, 默认值64KB",
|
||
"batch_buffer_size": "批量缓冲区大小, 默认值1MB",
|
||
"batch_buffer_hole_threshold": "批量缓冲区空洞阈值, 默认值256KB",
|
||
"write_thread_cnt": "限制写线程个数, 默认值4",
|
||
"read_thread_cnt": "限制读线程个数, 默认值4",
|
||
"delete_thread_cnt": "限制删线程个数, 默认值2",
|
||
"background_thread_cnt": "后台线程个数, 默认值2",
|
||
"write_queue_depth": "写队列深度, 默认值64",
|
||
"read_queue_depth": "读队列深度, 默认值64",
|
||
"delete_queue_depth": "删除队列深度, 默认值32",
|
||
"background_queue_depth": "后台队列深度, 默认值32",
|
||
"data_qos": {
|
||
"read_mbps": "单盘普通读业务IO带宽",
|
||
"write_mbps": "单盘普通写业务IO带宽",
|
||
"background_mbps": "单盘后台任务IO带宽"
|
||
}
|
||
},
|
||
"meta_config": {
|
||
"meta_root_prefix": "配置统一的meta数据存放目录,可以配置到ssd盘提高元数据读写速度,默认不配置",
|
||
"support_inline": "是否开启小文件内联写到元数据存rocksdb",
|
||
"tinyfile_threshold_B": "小文件阈值,可以配置小于等于128k",
|
||
"sync": "是否开启磁盘sync",
|
||
"cache_size": "lru缓存大小"
|
||
},
|
||
"clustermgr": {
|
||
"hosts": "clustermgr服务地址"
|
||
},
|
||
"blobnode": {
|
||
"client_timeout_ms": "后台任务用到的blobnode client的超时时间"
|
||
},
|
||
"scheduler": {
|
||
"host_sync_interval_ms": "后台任务用到的scheduler client的后端节点同步时间"
|
||
},
|
||
"heartbeat_interval_S": "向clustermgr发送心跳的时间间隔, 默认值30秒",
|
||
"chunk_report_interval_S": "chunk上报的时间间隔, 默认值60秒",
|
||
"chunk_gc_interval_S": "chunk gc的时间间隔, 默认值30分钟",
|
||
"chunk_protection_period_S": "过期epoch chunk判断创建时间的保护周期, 默认值48小时",
|
||
"clean_expired_stat_interval_S": "清理过期统计的时间间隔, 默认值60分钟",
|
||
"disk_status_check_interval_S": "磁盘状态检查的时间间隔, 默认值2分钟",
|
||
"delete_qps_limit_per_disk": "单盘删除的并发数控制",
|
||
"shard_repair_concurrency": "后台任务shard repair的并发数控制",
|
||
"flock_filename": "进程文件锁路径"
|
||
}
|
||
```
|
||
|
||
### 示例配置
|
||
```json
|
||
{
|
||
"bind_addr": ":8889",
|
||
"log": {
|
||
"level": 2
|
||
},
|
||
"cluster_id": 10001,
|
||
"idc": "bjht",
|
||
"rack": "HT02-B11-F4-402-0406",
|
||
"host": "http://127.0.0.1:8889",
|
||
"dropped_bid_record": {
|
||
"dir": "/home/service/ebs-blobnode/_package/dropped_bids/",
|
||
"chunkbits": 29
|
||
},
|
||
"disks": [
|
||
{"auto_format": true,"disable_sync": true,"path": "/home/service/var/data1"},
|
||
{"auto_format": true,"disable_sync": true,"path": "/home/service/var/data2"}
|
||
],
|
||
"disk_config": {
|
||
"set_default_switch": true,
|
||
"must_mount_point": true,
|
||
"data_qos": {
|
||
"read_mbps": 100,
|
||
"write_mbps": 60,
|
||
"background_mbps": 20
|
||
}
|
||
},
|
||
"meta_config": {
|
||
"sync": false
|
||
},
|
||
"clustermgr": {
|
||
"hosts": [
|
||
"http://10.39.30.78:9998",
|
||
"http://10.39.32.224:9998",
|
||
"http://10.39.32.234:9998"
|
||
],
|
||
"transport_config": {
|
||
"max_conns_per_host": 4,
|
||
"auth": {
|
||
"enable_auth": false,
|
||
"secret": "b2e5e2ed-6fca-47ce-bfbc-5e8f0650603b"
|
||
}
|
||
}
|
||
},
|
||
"blobnode": {
|
||
"client_timeout_ms": 5000
|
||
},
|
||
"scheduler": {
|
||
"host_sync_interval_ms": 3600000
|
||
},
|
||
"chunk_protection_period_S": 600,
|
||
"delete_qps_limit_per_disk": 64,
|
||
"shard_repair_concurrency": 100,
|
||
"flock_filename": "/home/service/ebs-blobnode/_package/run/blobnode.0.flock",
|
||
"auditlog": {
|
||
"logdir": "/home/service/ebs-blobnode/_package/run/auditlog/ebs-blobnode",
|
||
"chunkbits": 29,
|
||
"log_file_suffix": ".log",
|
||
"backup": 10,
|
||
"filters": [
|
||
{"should": {"match": {"path": ["list", "metrics", "/shard/get/"]}}}
|
||
],
|
||
"metric_config": {
|
||
"idc": "bjht",
|
||
"team": "ocs",
|
||
"set_default_switch": true
|
||
}
|
||
}
|
||
}
|
||
```
|