UBSIO-BoostIO 配置说明
本文档说明 UBSIO-BoostIO 的 bio.conf 配置项和 TLS 认证配置。软件安装与启动流程请参见安装部署指南。
bio.conf 配置项
根据业务使用情况和待安装部署的环境,设置 /etc/boostio/bio.conf 中的相关配置项。
| 归属模块 | 配置项名称 | 简要描述 | 默认值 | 合法值/区间 | 注意事项 |
|---|---|---|---|---|---|
| Log | bio.log.level | 日志打印级别。 | info | debug info warn trace error | - |
| Net | bio.net.data.ip_mask | IP地址段。 | 127.0.0.1/24 | *.*.*.*/#,其中*为0 ~ 255,#为0 ~ 32 | 使用JuiceFS跑大数据业务时,该字段需要和/etc/hosts中的主机名对应的IP保持一致。 |
| bio.net.data.listen_port | 业务面网络通信端口号。 | 7201 | 7201 ~ 7800 | - | |
| bio.net.data.protocol | 网络协议。 | tcp | rdma tcp | - | |
| bio.net.rpc.data.busy_polling_mode | RPC开启busy-polling标记。 | false | true false | 仅RDMA协议生效。 | |
| bio.net.rpc.data.workers_count | RPC数据面工作核数。 | 4 | 1 ~ 16 | - | |
| bio.net.request.executor.thread.num | 接收端请求处理线程数。 | 8 | 8 ~ 256 | - | |
| bio.net.request.executor.queue.size | 接收端请求处理队列深度。 | 1024 | 1024 ~ 65535 | - | |
| bio.net.ipc.data.busy_polling_mode | IPC开启busy-polling标记。 | false | true false | - | |
| bio.net.ipc.data.workers_count | IPC数据面工作核数。 | 4 | 1 ~ 128 | - | |
| bio.net.tls.enable.switch | 网络安全开关。 | true | true false | 关闭后可能会引入信息安全问题、仿冒等风险,请谨慎操作。 分离部署时调用UBS IO服务初始化接口传入的enableTls参数需要和该配置项保持一致。 | |
| bio.net.tls.ca.cert.path | CA证书文件路径。 | /path/CA/cacert.pem | 默认值仅作为示例。 | 安全开关打开则需要为有效路径,安全开关关闭则不解析该配置项。 | |
| bio.net.tls.ca.crl.path | 吊销列表文件路径。 | - | - | 可以为空,不为空时,安全开关打开且需要校验证书是否被吊销时为有效路径,安全开关关闭则不解析该配置项。 | |
| bio.net.tls.server.cert.path | 服务端证书文件路径。 | /path/server/servercert.pem | 默认值仅作为示例。 | 安全开关打开时则需要为有效路径,安全开关关闭则不解析该配置项。 | |
| bio.net.tls.server.key.path | 服务端证书私钥文件路径。 | /path/server/serverkey.pem | 默认值仅作为示例。 | 安全开关打开时则需要为有效路径,安全开关关闭则不解析该配置项。 | |
| bio.net.tls.server.key.pass.path | 工作证书私钥口令的密文的文件路径。 | - | - | 可以为空,为空时需要提供未加密的私钥文件。不为空时安全开关打开时则需要为有效路径,安全开关关闭则不解析该配置项。 在加密私钥的时候,私钥口令建议满足复杂度要求。同时满足以下要求: 口令长度至少8个字符。 口令需要包含如下至少两种字符的组合。 至少一个小写字母 至少一个大写字母 至少一个数字 至少一个特殊字符:`~!@#$%^&*()-_=+\|[{}];:'"",<.>/? 和空格 | |
| bio.net.tls.server.decrypter.lib.path | 安全解密函数so文件路径。 | - | - | 可以为空,为空时需要提供明文口令。不为空时安全开关打开时则需要为有效路径,安全开关关闭则不解析该配置项。 | |
| bio.net.tls.server.ssl.lib.dir | openssl so文件所在目录路径。 | - | - | 为空时,使用系统路径下的so文件。 不为空时,安全开关打开时则需要为有效路径,安全开关关闭则不解析该配置项。 | |
| Cache | bio.cache.qos.enable | 流量控制开关。 | true | false true | 流量控制开关打开会影响到极限性能,建议性能用例场景关闭。 |
| bio.data.crc.enable | 数据完整性校验开关。 | false | false true | 数据完整性校验开关打开会增加数据读写时延,建议在问题定位场景使用。 | |
| bio.segment.size_in_mb | 缓存资源粒度。 | 4 | 1 ~ 16 | 单位MB。 | |
| bio.mem.size_in_gb | 缓存资源内存容量。 | 50 | 0 ~ 512 | 禁止配置超过系统内存。 单位GB。 配置为0表示该节点不具备缓存功能。 | |
| bio.disk.path | 缓存资源磁盘列表。 | /dev/sdxx:/dev/sdyy | - | 多个磁盘路径用冒号隔开,当前版本支持最多4块磁盘。 | |
| bio.rcache.evict_water_level | 读缓存淘汰水位。 | 90 | 0 ~ 100 | 表示使用读缓存百分比。 | |
| bio.cache.mem_read_write_ratio | 内存读写资源配比。 | 5:5 | 0 ~ 10:10 ~ 0 | - | |
| bio.cache.disk_read_write_ratio | 磁盘读写资源配比。 | 5:5 | 0 ~ 10:10 ~ 0 | - | |
| bio.work.scene | 应用场景标记。 | none | none bigdata | 可选,默认为none none:不存在使用约束。 bigdata:大数据场景,其主要区别是IO强制对齐。 | |
| bio.work.io.alignsize | IO对齐数据大小。 | 1 | 1 ~ 4194304 | 可选,单位B。 | |
| bio.wcache.evict_water_level | 写缓存淘汰水位。 | 0 | 0 ~ 100 | 可选,默认为0,表示使用写缓存资源百分比。 | |
| bio.wcache.negotiate.delay | 淘汰协商延迟。 | 100 | 50 ~ 1000 | 可选,默认100,单位ms。前台写性能敏感场景需要将该值调大,淘汰延迟增大;前台写性能不敏感可使用较小值,更快淘汰。 | |
| bio.trace.enable | 流程统计开关。 | true | false true | 流程统计开关打开会影响到极限性能,建议性能用例场景关闭。 | |
| Underfs | bio.underfs.file_system_type | 后端存储系统类型。 | ceph | ceph hdfs | - |
| bio.underfs.ceph.cfg.path | Ceph配置文件路径。 | /etc/ceph/ceph.conf | 不为空。 | 选择ceph后必填选项,需要是真实存在的路径。 | |
| bio.underfs.ceph.cluster | Ceph集群名称。 | ceph | 不为空。 | 选择ceph后必填选项。 | |
| bio.underfs.ceph.user | Ceph用户。 | client.admin | 不为空。 | 选择ceph后必填选项。 | |
| bio.underfs.ceph.pool | Ceph数据池。 | 0:jfspool0,1:jfspool1 | 不为空。 | 选择ceph后必填选项,多个参数用英文逗号隔开。 | |
| bio.underfs.hdfs.name_node | hadoop的NameNode。 | default:0 | *.*.*.*/#,*为0 ~ 255,#为0 ~ 65535 | 可选,默认为default:0,格式:IP地址:端口号,表示使用hadoop配置文件中的IP地址和端口号。 | |
| bio.underfs.hdfs.working_path | 文件在hdfs系统的存放路径。 | /hdfs | 路径名长度小于或等于255的合法路径。 | 可选,默认为/hdfs。 | |
| CM | bio.cm.initial.nodes_count | 集群初始化期望节点数。 | 2 | 2 ~ 256 | - |
| bio.cm.copy_num | 数据冗余度。 | 2 | 2 | 当前版本仅支持双副本。 | |
| bio.cm.pts_count | 分区视图数量。 | 16 | 2 ~ 8192 | - | |
| bio.cm.register_timeout_sec | ZooKeeper心跳检测超时时间。 | 20 | 10 ~ 60 | 单位s。 | |
| bio.cm.register_perm_timeout_sec | 永久故障超时时间。 | 60 | 60 ~ 600 | 单位s。 | |
| bio.cm.zk_host | ZooKeeper服务节点信息。 例如3节点ZK集群:127.0.0.1:2181,127.0.0.2:2181,127.0.0.3:2181。 | - | 不为空 | ZooKeeper使用的网段需要和业务IP地址网段保持一致。 | |
| Prometheus | bio.prometheus.exposer | Prometheus Server的地址和端口号。 | - | *.*.*.*:#,*为0 ~ 255,#为0 ~ 65535 | 可选 |
| bio.prometheus.scrape_interval_sec | Prometheus采样频率。 | 15 | - | 可选,单位s。 |
TLS 认证配置
开启Server端TLS认证
注意事项
如需开启TLS认证,则UBS IO集群中的所有计算节点均需开启TLS认证。
安装部署完成后,需手动删除安装过程中用于集群节点间通信的公钥。
生成加密口令之前建议关闭系统历史记录功能。口令生成后可重新启用该功能。
用户导入的私钥最好进行加密,否则会有安全风险。
证书安全要求:
- 需使用业界公认安全可信的非对称加密算法、密钥长度、Hash算法、证书格式等。
- 应处于有效期内。
TLS加密配置有如下三种使用方式。
- (推荐)提供包含指定签名的解密函数so,提供加密后的口令和加密私钥,根据解密函数对口令进行解密。
- 不提供解密函数so,提供明文口令和加密私钥。
- 不提供解密函数so和口令,仅提供未加密的私钥。
前提条件
UBS IO已经安装成功,需给予Server用户相应的权限读取下面文件。首先获取TLS认证需要的文件,如表1所示。
| 文件 | 说明 |
|---|---|
| CA文件 | 一个自签名的证书,可以签发其它证书。格式为:PEM(*.pem)。 |
| 吊销证书列表文件 | 给出吊销证书列表文件,格式为:PEM(*.crl)。可选,如无吊销证书,可以没有此文件。 |
| Server端的证书 | 由CA签发的证书,保证在有效期内。格式为:PEM chain(*.pem)。 |
| Server端的证书对应的已加密私钥文件 | 要与Server端证书对应,Server安装用户要知道这个私钥文件的口令。格式为:PEM encrypted(*.pem)。如果配置未加密私钥,则口令和解密函数文件应配置为空。 |
| Server端的私钥口令文件 | 可选,加密后的私钥口令存储文件,口令长度不超过10000字节。不进行配置则需要私钥文件未加密。 |
| Server端的解密库 | 可选,配置则使用用户提供的包含解密函数的so。不进行配置需提供明文口令。 |
| 对应存放libssl.so libcrtpto.so文件 | 可选,配置则使用用户提供的版本。配置为空则默认使用/usr/lib64路径。 |
操作步骤
- 修改bio.conf配置文件。
- 打开网络安全开关。请参见UBSIO-BoostIO 配置项,将bio.net.tls.enable.switch配置为true。
- 请参见表1,将准备好的相关证书的路径写入到配置文件中的相应选项。
开启Client端TLS认证
注意事项
- 分离部署时才需要此步骤,TLS开关(enableTls)由用户传入,建议用户开启TLS认证,UBS IO所有节点的TLS认证开启和关闭保持统一。
- 集群中所有的Client端和Server端需要同步开启或关闭TLS认证,否则会连接失败。
- 多用户访问UBS IO服务时,每个用户使用的证书可以是不同的,但需要满足都由同一个CA签发。
- Client和Server的所有节点应使用相同的加密配置方式。
前提条件
UBS IO已经安装成功,需给予Client用户相应的权限读取下面文件。首先获取TLS认证需要的文件,如表1所示。
| 文件 | 说明 |
|---|---|
| CA文件 | 一个自签名的证书,可以签发其它证书。格式为:PEM(*.pem)。 |
| 吊销证书列表文件 | 给出吊销证书列表文件,格式为:PEM(*.crl)。可选,如无吊销证书,可以没有此文件。 |
| Client端的证书 | 由CA签发的证书,保证在有效期内。格式为:PEM chain(*.pem)。 |
| Client端的证书对应的私钥文件 | 要与Client端证书对应,安装用户要知道这个私钥文件的口令。格式为:PEM encrypted(*.pem)。如果配置未加密私钥,则口令和解密函数文件应配置为空 |
| Client端的私钥口令文件 | 可选,加密或未加密后的私钥口令存储文件,口令长度不超过10000字节。不进行配置则需要私钥文件未加密。 |
| Client端的解密库 | 可选,配置则使用用户提供的包含解密函数的so。不进行配置需提供明文口令。 |
| 对应存放libssl.so libcrtpto.so文件 | 可选,配置则使用用户提供的版本。配置为空则默认使用/usr/lib64路径。 |
操作步骤
获取相应的软件包。
调用初始化接口即可获取表1的文件。详情请参见 UBSIO-BoostIO API 参考的 BioInitialize 章节。
configTLS涉及到的参数的成员如下: uint8_t enable; // switch char certificationPath[PATH_MAX]; // certification path char caCerPath[PATH_MAX]; // caCer path char caCrlPath[PATH_MAX]; // caCrl path char privateKeyPath[PATH_MAX]; // private key path char privateKeyPassword[PATH_MAX]; // private key password char decrypterLibPath[PATH_MAX]; // decrypter lib path char opensslLibDir[PATH_MAX]; // openssl lib dir path
文档捉虫