超节点

版本:24.03 LTS SP3

UBSIO-BoostIO 配置说明 ​

本文档说明 UBSIO-BoostIO 的 bio.conf 配置项和 TLS 认证配置。软件安装与启动流程请参见安装部署指南。

bio.conf 配置项 ​

根据业务使用情况和待安装部署的环境,设置 /etc/boostio/bio.conf 中的相关配置项。

UBSIO-BoostIO 配置项

归属模块配置项名称简要描述默认值合法值/区间注意事项
Logbio.log.level日志打印级别。info
debug
info
warn
trace
error
-
Netbio.net.data.ip_maskIP地址段。127.0.0.1/24*.*.*.*/#,其中*为0 ~ 255,#为0 ~ 32使用JuiceFS跑大数据业务时,该字段需要和/etc/hosts中的主机名对应的IP保持一致。
bio.net.data.listen_port业务面网络通信端口号。72017201 ~ 7800-
bio.net.data.protocol网络协议。tcp
rdma
tcp
-
bio.net.rpc.data.busy_polling_modeRPC开启busy-polling标记。false
true
false
仅RDMA协议生效。
bio.net.rpc.data.workers_countRPC数据面工作核数。41 ~ 16-
bio.net.request.executor.thread.num接收端请求处理线程数。88 ~ 256-
bio.net.request.executor.queue.size接收端请求处理队列深度。10241024 ~ 65535-
bio.net.ipc.data.busy_polling_modeIPC开启busy-polling标记。false
true
false
-
bio.net.ipc.data.workers_countIPC数据面工作核数。41 ~ 128-
bio.net.tls.enable.switch网络安全开关。true
true
false

关闭后可能会引入信息安全问题、仿冒等风险,请谨慎操作。
分离部署时调用UBS IO服务初始化接口传入的enableTls参数需要和该配置项保持一致。
bio.net.tls.ca.cert.pathCA证书文件路径。/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.diropenssl so文件所在目录路径。--为空时,使用系统路径下的so文件。
不为空时,安全开关打开时则需要为有效路径,安全开关关闭则不解析该配置项。
Cachebio.cache.qos.enable流量控制开关。true
false
true
流量控制开关打开会影响到极限性能,建议性能用例场景关闭。
bio.data.crc.enable数据完整性校验开关。false
false
true
数据完整性校验开关打开会增加数据读写时延,建议在问题定位场景使用。
bio.segment.size_in_mb缓存资源粒度。41 ~ 16单位MB。
bio.mem.size_in_gb缓存资源内存容量。500 ~ 512
禁止配置超过系统内存。
单位GB。
配置为0表示该节点不具备缓存功能。
bio.disk.path缓存资源磁盘列表。/dev/sdxx:/dev/sdyy-多个磁盘路径用冒号隔开,当前版本支持最多4块磁盘。
bio.rcache.evict_water_level读缓存淘汰水位。900 ~ 100表示使用读缓存百分比。
bio.cache.mem_read_write_ratio内存读写资源配比。5:50 ~ 10:10 ~ 0-
bio.cache.disk_read_write_ratio磁盘读写资源配比。5:50 ~ 10:10 ~ 0-
bio.work.scene应用场景标记。none
none
bigdata
可选,默认为none
none:不存在使用约束。
bigdata:大数据场景,其主要区别是IO强制对齐。
bio.work.io.alignsizeIO对齐数据大小。11 ~ 4194304可选,单位B。
bio.wcache.evict_water_level写缓存淘汰水位。00 ~ 100可选,默认为0,表示使用写缓存资源百分比。
bio.wcache.negotiate.delay淘汰协商延迟。10050 ~ 1000可选,默认100,单位ms。前台写性能敏感场景需要将该值调大,淘汰延迟增大;前台写性能不敏感可使用较小值,更快淘汰。
bio.trace.enable流程统计开关。true
false
true
流程统计开关打开会影响到极限性能,建议性能用例场景关闭。
Underfsbio.underfs.file_system_type后端存储系统类型。ceph
ceph
hdfs
-
bio.underfs.ceph.cfg.pathCeph配置文件路径。/etc/ceph/ceph.conf不为空。选择ceph后必填选项,需要是真实存在的路径。
bio.underfs.ceph.clusterCeph集群名称。ceph不为空。选择ceph后必填选项。
bio.underfs.ceph.userCeph用户。client.admin不为空。选择ceph后必填选项。
bio.underfs.ceph.poolCeph数据池。0:jfspool0,1:jfspool1不为空。选择ceph后必填选项,多个参数用英文逗号隔开。
bio.underfs.hdfs.name_nodehadoop的NameNode。default:0*.*.*.*/#,*为0 ~ 255,#为0 ~ 65535可选,默认为default:0,格式:IP地址:端口号,表示使用hadoop配置文件中的IP地址和端口号。
bio.underfs.hdfs.working_path文件在hdfs系统的存放路径。/hdfs路径名长度小于或等于255的合法路径。可选,默认为/hdfs。
CMbio.cm.initial.nodes_count集群初始化期望节点数。22 ~ 256-
bio.cm.copy_num数据冗余度。22当前版本仅支持双副本。
bio.cm.pts_count分区视图数量。162 ~ 8192-
bio.cm.register_timeout_secZooKeeper心跳检测超时时间。2010 ~ 60单位s。
bio.cm.register_perm_timeout_sec永久故障超时时间。6060 ~ 600单位s。
bio.cm.zk_hostZooKeeper服务节点信息。
例如3节点ZK集群:127.0.0.1:2181,127.0.0.2:2181,127.0.0.3:2181。
-不为空ZooKeeper使用的网段需要和业务IP地址网段保持一致。
Prometheusbio.prometheus.exposerPrometheus Server的地址和端口号。-*.*.*.*:#,*为0 ~ 255,#为0 ~ 65535可选
bio.prometheus.scrape_interval_secPrometheus采样频率。15-可选,单位s。

TLS 认证配置 ​

开启Server端TLS认证 ​

注意事项

  • 如需开启TLS认证,则UBS IO集群中的所有计算节点均需开启TLS认证。

  • 安装部署完成后,需手动删除安装过程中用于集群节点间通信的公钥。

  • 生成加密口令之前建议关闭系统历史记录功能。口令生成后可重新启用该功能。

    用户导入的私钥最好进行加密,否则会有安全风险。

    证书安全要求:

    • 需使用业界公认安全可信的非对称加密算法、密钥长度、Hash算法、证书格式等。
    • 应处于有效期内。
  • TLS加密配置有如下三种使用方式。

    • (推荐)提供包含指定签名的解密函数so,提供加密后的口令和加密私钥,根据解密函数对口令进行解密。
    • 不提供解密函数so,提供明文口令和加密私钥。
    • 不提供解密函数so和口令,仅提供未加密的私钥。

前提条件

UBS IO已经安装成功,需给予Server用户相应的权限读取下面文件。首先获取TLS认证需要的文件,如表1所示。

表 1 开启Server端TLS认证所需文件列表

文件说明
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路径。

操作步骤

  1. 修改bio.conf配置文件。
  2. 打开网络安全开关。请参见UBSIO-BoostIO 配置项,将bio.net.tls.enable.switch配置为true。
  3. 请参见表1,将准备好的相关证书的路径写入到配置文件中的相应选项。

开启Client端TLS认证 ​

注意事项

  • 分离部署时才需要此步骤,TLS开关(enableTls)由用户传入,建议用户开启TLS认证,UBS IO所有节点的TLS认证开启和关闭保持统一。
  • 集群中所有的Client端和Server端需要同步开启或关闭TLS认证,否则会连接失败。
  • 多用户访问UBS IO服务时,每个用户使用的证书可以是不同的,但需要满足都由同一个CA签发。
  • Client和Server的所有节点应使用相同的加密配置方式。

前提条件

UBS IO已经安装成功,需给予Client用户相应的权限读取下面文件。首先获取TLS认证需要的文件,如表1所示。

表 1 开启Client端TLS认证所需文件列表

文件说明
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. 获取相应的软件包。

  2. 调用初始化接口即可获取表1的文件。详情请参见 UBSIO-BoostIO API 参考的 BioInitialize 章节。

    config
    TLS涉及到的参数的成员如下:
    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