---
title: 安装BoostIO
description: "- BoostIO分为分离部署、融合部署、独立部署场景，融合部署场景使用上层调用组件用户(例如：juiceadmin：juicegroup)统一安装BoostIO Server和SDK，分离部署和独立部署场景需要创建server端用户(例如：bioadmin：biogroup)安装BoostIO Server，使用上层调用组件用户安装BoostIO SDK。应避免使用root用户安装，否则存在安全风险。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/252RC1/sds/kunpengboostio_feature_013.html
sourcePath: /source/zh/kunpengboostkithistory/252RC1/sds/kunpengboostio_feature_013.html
indexId: 15d18e5dd6c4d29a04a7cb835582d3c1c289f49f5acab4c6eb0fd686adf0b25176
---
# 安装BoostIO

- BoostIO分为分离部署、融合部署、独立部署场景，融合部署场景使用上层调用组件用户(例如：juiceadmin：juicegroup)统一安装BoostIO Server和SDK，分离部署和独立部署场景需要创建server端用户(例如：bioadmin：biogroup)安装BoostIO Server，使用上层调用组件用户安装BoostIO SDK。应避免使用root用户安装，否则存在安全风险。
- Ceph和HDFS通信由用户配置，建议用户使用安全通信链路保证通信安全。


#### 创建BoostIO Server运行用户

在BoostIO组件安装的节点上执行以下命令创建用户。

请确保所有物理机（存储节点、管理节点、计算节点）和容器内，组biogroup的GID、用户bioadmin的UID没有被占用，如果被占用可能会导致服务不可用。- biogroup的GID为1000。
- bioadmin的UID为9000。
- 如果设置bioadmin用户的密码，复杂度要求如下：

  - 口令长度至少8个字符。
  - 口令必须包含如下至少三种字符的组合：

    - 小写字母。
    - 大写字母。
    - 数字。
    - 特殊字符：`~!@#$%^&*()-_=+\|[{}];:'",<.>/?和空格。
  - 口令和账号不能相同。


1. 创建biogroup用户组。

```
groupadd -g 1000 biogroup
```


2. 在biogroup用户组内创建bioadmin用户。

```
useradd -g 1000 -d /home/bioadmin -u 9000 -m -s /bin/bash bioadmin
```


#### 清理环境（可选）

- 安装前需确保该环境没有安装BoostIO，若环境上已安装BoostIO则需要进行环境清理操作，确保后续安装能够正常进行。
- 建议用户及时清理SDK端未使用的日志文件，避免磁盘耗尽。
- 统计文件SDK端最大10M，SERVER端最大50M，循环进行计数统计，BoostIO重新部署启动后会新生成一个新的统计文件，老的统计文件建议进行清理。


1. 收集需要安装BoostIO节点的IP地址。
2. 为集群中每个节点提供至少一块NVMe SSD存储盘，并将磁盘归属设置为对应安装用户、用户组。

```
chown [server安装用户：server安装用户组]
/dev/nvmexnx
```


3. 首次安装时需创建下列目录并配置权限。
**表1 目录权限配置信息**

| 目录地址 | 属主 | 权限 | 备注 |
| --- | --- | --- | --- |
| /opt/boostio | server安装用户：server安装用户组 | 750 | BoostIO安装部署目录。 |
| /var/log/boostio | server安装用户：server安装用户组 | 750 | BoostIO server端日志目录。 |
| /var/log/boostio/trace | server安装用户：server安装用户组 | 750 | BoostIO统计日志目录。 |
| /home/ip(不同节点与host\_ip\_list文件中的ip相同) | server安装用户：server安装用户组 | 750 | BoostIO安装临时文件存储目录，安装完成后自动清理文件。 |
| /var/log/jfs | sdk安装用户：sdk安装用户组 | 750 | BoostIO SDK端日志目录。 |


4. 配置Ceph密钥环权限。
  BoostIO启动需要读取Ceph Client端密钥，需要对应的权限，可参考Ceph官网建议配置 Ceph官网(https://docs.ceph.com/en/latest/rados/configuration/auth-config-ref/#keys)。

5. 清理BoostIO集群信息，在ZooKeeper server节点上执行命令（以ZooKeeper 3.8.1版本为例），将zk client需要的so文件添加到“{BoostIO_Home}/lib”目录下，并修改属主为server安装用户:server安装用户组，修改权限为550。

```
sh /install_path/apache-zookeeper-3.8.1-bin/bin/zkCli.sh
>>deleteall /cm
```


6. 清理BoostIO磁盘管理元数据信息。

```
dd bs=8k count=1024 if=
/dev/zero
of=
/dev/nvmexnx
```


#### 安装BoostIO

1. 登录至安装节点，并上传软件包BoostIO_{version}_linux-{arch}_release.tar.gz至“/opt”目录下。
2. 解压软件包，解压后目录结构如表2所示。

```
tar -xzvf BoostIO_{
version
}_linux-{
arch
}_release.tar.gz
```


**表2 软件包目录结构**

| 目录 | 目录内文件夹 | 说明 |
| --- | --- | --- |
| BoostIO | bin | 可执行文件。 |
| BoostIO | conf | 配置文件。 |
| BoostIO | lib | 二进制依赖库。 |
| BoostIO | include | 对外头文件。 |
| BoostIO | scripts | 工具脚本。 |


  其中用于安装BoostIO所需的脚本工具放置在scripts目录下，其使用说明如表3所示。

**表3 scripts目录文件说明，建议安装完成后手动删除以下文件**

| 目录 | 脚本工具名称 | 使用描述 | 执行方式 | 参数 |
| --- | --- | --- | --- | --- |
| scripts | hand\_out\_deploy.py | 安装工具脚本。 | hand\_out\_deploy.py [option] | install [pkg\_path] [user] [group] uninstall |
| scripts | host\_ip\_list | 通信IP地址、盘信息配置文件。 | 提供给hand\_out\_deploy.py使用。 | \- |
| scripts | install.sh | 安装执行脚本。 | install.sh [option]。 提供给hand\_out\_deploy.py使用。 | install [user] [group] [install\_path] uninstall |
| scripts | scp\_file.sh | scp命令执行文件。 | 提供给hand\_out\_deploy.py使用。 | \- |
| scripts | ssh\_cmd.sh | ssh命令执行文件。 | 提供给hand\_out\_deploy.py使用。 | \- |


**表4 bin目录文件说明**

| 目录 | 文件名称 | 描述 |
| --- | --- | --- |
| bin | bio\_daemon | BoostIO服务可执行文件。 |
| bin | seceasy\_encrypt | 加密服务可执行文件。 |


**表5 lib目录文件说明**

| 目录 | 文件名称 | 描述 |
| --- | --- | --- |
| lib | libbdm.so | bdm模块共享对象文件，用于磁盘管理。 |
| lib | libbio\_interceptor\_server.so | 桥接服务共享对象文件。 |
| lib | libbio\_sdk.so | BoostIO SDK端共享对象文件。 |
| lib | libbio\_server.so | BoostIO Server端共享对象文件。 |
| lib | libhcom.so | hcom共享对象文件，用于网络传输。 |
| lib | libhcom\_static.a | hcom静态库文件。 |
| lib | libhse\_cryption.so | hsecsasy可执行文件，用于加密。 |
| lib | libock\_interceptor.so | 桥接服务共享对象文件。 |
| lib | libock\_iofwd\_proxy.so | 桥接服务共享对象文件。 |
| lib | libsecurec.a | 加密服务静态库文件。 |
| lib | libexpire\_checker.so | SSL证书检查共享对象文件。 |


3. 配置安装信息。
  根据业务使用情况和待安装部署的环境设置conf目录下bio.conf中的相关配置项，具体配置项说明如表6所示。

**表6 BoostIO配置项**

| 归属模块 | 配置项名称 | 简要描述 | 默认值 | 合法值/区间 | 注意事项 |
| --- | --- | --- | --- | --- | --- |
| Log | bio.log.level | 日志打印级别。 | debug | 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保持一致。 |
| Net | bio.net.data.listen\_port | 业务面网络通信端口号。 | 7201 | 7201 ~ 7800 | \- |
| Net | bio.net.data.protocol | 网络协议。 | tcp | rdma tcp | \- |
| Net | bio.net.rpc.data.busy\_polling\_mode | RPC开启busy\-polling标记。 | false | true false | 仅RDMA协议生效。 |
| Net | bio.net.rpc.data.workers\_count | RPC数据面工作核数。 | 4 | 1 ~ 16 | \- |
| Net | bio.net.request.executor.thread.num | 接收端请求处理线程数。 | 8 | 8 ~ 256 | \- |
| Net | bio.net.request.executor.queue.size | 接收端请求处理队列深度。 | 1024 | 1024 ~ 65535 | \- |
| Net | bio.net.ipc.data.busy\_polling\_mode | IPC开启busy\-polling标记。 | false | true false | \- |
| Net | bio.net.ipc.data.workers\_count | IPC数据面工作核数。 | 4 | 1 ~ 128 | \- |
| Net | bio.net.tls.enable.switch | 网络安全开关。 | true | true false | 关闭后可能会引入信息安全问题、仿冒等风险，请谨慎操作。 分离部署时调用BoostIO服务初始化接口传入的enableTls参数必须和该配置项保持一致。 |
| Net | bio.net.tls.ca.cert.path | CA证书文件路径。 | /path/CA/cacert.pem | 默认值仅作为示例。 | 安全开关打开则需要为有效路径，安全开关关闭则不解析该配置项。 |
| Net | bio.net.tls.ca.crl.path | 吊销列表文件路径。 | \- | \- | 安全开关打开且需要校验证书是否被吊销时为有效路径，安全开关关闭则不解析该配置项。 |
| Net | bio.net.tls.server.cert.path | 服务端证书文件路径。 | /path/server/servercert.pem | 默认值仅作为示例。 | 安全开关打开时则需要为有效路径，安全开关关闭则不解析该配置项。 |
| Net | bio.net.tls.server.key.path | 服务端证书私钥文件路径。 | /path/server/serverkey.pem | 默认值仅作为示例。 | 安全开关打开时则需要为有效路径，安全开关关闭则不解析该配置项。 |
| Net | bio.net.tls.server.key.pass.path | 工作证书私钥口令的密文的文件路径。 | /path/server/server.keypass | 默认值仅作为示例。 | 安全开关打开时则需要为有效路径，安全开关关闭则不解析该配置项。 |
| Net | bio.net.hesc.server.tls.kfs.master.path | 加密工作证书私钥时生成的根密钥路径。 | /path/server/master/kfsa | 默认值仅作为示例。 | 安全开关打开时则需要为有效路径，安全开关关闭则不解析该配置项。 |
| Net | bio.net.hesc.server.tls.kfs.pass.standby.path | 加密工作证书私钥时生成的备份根密钥路径。 | /path/server/standby/kfs | 默认值仅作为示例。 | 安全开关打开时则需要为有效路径，安全开关关闭则不解析该配置项。 |
| Cache | bio.cache.qos.enable | 流量控制开关。 | true | false ture | 流量控制开关打开会影响到极限性能，建议性能用例场景关闭。 |
| Cache | bio.data.crc.enable | 数据完整性校验开关。 | false | false ture | 数据完整性校验开关打开会增加数据读写时延，建议在问题定位场景使用。 |
| Cache | bio.segment.size\_in\_mb | 缓存资源粒度。 | 4 | 1 ~ 16 | 单位MB。 |
| Cache | bio.mem.size\_in\_gb | 缓存资源内存容量。 | 50 | 0 ~ 512 | 禁止配置超过系统内存。 单位GB 配置为0表示该节点不具备缓存功能。 |
| Cache | bio.disk.path | 缓存资源磁盘列表。 | /dev/sdxx:/dev/sdyy | \- | 多个磁盘路径用冒号隔开，当前版本支持最多4块磁盘。 |
| Cache | bio.rcache.evict\_water\_level | 读缓存淘汰水位。 | 90 | 0 ~ 100 | 表示使用读缓存百分比 |
| Cache | bio.cache.mem\_read\_write\_ratio | 内存读写资源配比。 | 5:5 | 0 ~ 10:10 ~ 0 | \- |
| Cache | bio.cache.disk\_read\_write\_ratio | 磁盘读写资源配比。 | 5:5 | 0 ~ 10:10 ~ 0 | \- |
| Cache | bio.work.scene | 应用场景标记。 | none | none bigdata | （可选）默认为none none：不存在使用约束； bigdata：大数据场景，其主要区别是IO强制对齐。 |
| Cache | bio.work.io.alignsize | io对齐数据大小 | 1 | 1 ~ 4194304 | （可选）单位B。 |
| Cache | bio.wcache.evict\_water\_level | 写缓存淘汰水位。 | 0 | 0 ~ 100 | （可选）默认为0，表示使用写缓存资源百分比。 |
| Cache | bio.wcache.negotiate.delay | 淘汰协商延迟 | 100 | 50 ~ 1000 | 可选，默认100，单位ms。前台写性能敏感场景需要将该值调大，淘汰延迟增大；前台写性能不敏感可使用较小值，更快淘汰。 |
| Cache | bio.trace.enable | 流程统计开关 | true | false ture | 流程统计开关打开会影响到极限性能，建议性能用例场景关闭。 |
| Underfs | bio.underfs.file\_system\_type | 后端存储系统类型。 | ceph | ceph hdfs | \- |
| Underfs | bio.underfs.ceph.cfg.path | Ceph配置文件路径。 | /etc/ceph/ceph.conf | 不为空。 | 选择ceph后必填选项，必须是真实存在的路径。 |
| Underfs | bio.underfs.ceph.cluster | Ceph集群名称。 | ceph | 不为空。 | 选择ceph后必填选项。 |
| Underfs | bio.underfs.ceph.user | Ceph用户。 | client.admin | 不为空。 | 选择ceph后必填选项。 |
| Underfs | bio.underfs.ceph.pool | Ceph数据池。 | 0:jfspool0,1:jfspool1 | 不为空。 | 选择ceph后必填选项，多个参数用英文逗号隔开。 |
| Underfs | bio.underfs.hdfs.name\_node | hadoop的NameNode。 | default:0 | \*.\*.\*.\*/\#，\*为0 ~ 255，\#为0 ~ 65535 | （可选）默认为default:0，格式：IP地址:端口号，表示使用hadoop配置文件中的IP地址和端口号。 |
| Underfs | bio.underfs.hdfs.working\_path | 文件在hdfs系统的存放路径。 | /hdfs | 路径名长度小于或等于255的合法路径。 | （可选）默认为/hdfs。 |
| CM | bio.cm.initial.nodes\_count | 集群初始化期望节点数。 | 2 | 2 ~ 256 | \- |
| CM | bio.cm.copy\_num | 数据冗余度。 | 2 | 2 | 当前版本仅支持双副本。 |
| CM | bio.cm.pts\_count | 分区视图数量。 | 16 | 2 ~ 8192 | \- |
| CM | bio.cm.register\_timeout\_sec | ZooKeeper心跳检测超时时间。 | 20 | 10 ~ 60 | 单位s。 |
| CM | bio.cm.register\_perm\_timeout\_sec | 永久故障超时时间。 | 60 | 60 ~ 600 | 单位s。 |
| CM | bio.cm.zk\_host | ZooKeeper服务节点信息。 例如：127.0.0.1:2181, 127.0.0.2:2181,127.0.0.3:2181(3节点zk集群) | \- | 不为空 | ZooKeeper使用的网段必须和业务IP地址网段保持一致。 |
| Prometheus | bio.prometheus.exposer | Prometheus server的地址和端口号 | \- | \*.\*.\*.\*:\#，\*为0 ~ 255，\#为0 ~ 65535 | （可选） |
| Prometheus | bio.prometheus.scrape\_interval\_sec | Prometheus采样频率 | 15 | \- | （可选）单位s。 |


4. 配置host_ip_list文件。

```
cd boostio/scripts
vi host_ip_list
```


  配置内容如下：

```
ip1::BoostIO通信IP1::盘地址1:盘地址2
ip2::BoostIO通信IP2::盘地址1:盘地址2
```


5. 设置磁盘归属用户和用户组。

```
chown [server安装用户:server安装用户组]
盘地址1
chown [server安装用户:server安装用户组]
盘地址2
```


6. 执行安装部署脚本。

```
python3 hand_out_deploy.py install [未解压安装包路径] [server安装用户] [server安装用户组]
```


  openEuler 20.03操作系统中需安装配置Python3以正常运行安装脚本。 集群所有节点使用相同的账户和密码。

  根据回显提示输入server安装用户名和密码。 图1 安装回显信息说明

  安装部署结束，BoostIO相关的文件和目录全部都放置在“/opt/boostio”下。
