---
title: 安装BoostIO
description: "- BoostIO分为分离部署、融合部署、独立部署场景，融合部署场景使用上层调用组件用户（例如：juiceadmin:juicegroup）统一安装BoostIO Server和SDK，分离部署和独立部署场景需要创建Server端用户（例如：bioadmin:biogroup）安装BoostIO Server，使用上层调用组件用户安装BoostIO SDK。应禁止使用root用户安装，使用root等特权账号运行程序时，如果程序遭到入侵攻击，攻击者可以利用该程序的高级运行权限来对整个系统造成危害。"
url: https://www.hikunpeng.com/document/detail/zh/boostsds/BoostIO/kunpengboostio_feature_013.html
sourcePath: /source/zh/boostsds/BoostIO/kunpengboostio_feature_013.html
indexId: 94c9bb998baa39b45144bda04a3b9938cefe5a6d1d676880ed568e673586220259
---
# 安装BoostIO

- BoostIO分为分离部署、融合部署、独立部署场景，融合部署场景使用上层调用组件用户（例如：juiceadmin:juicegroup）统一安装BoostIO Server和SDK，分离部署和独立部署场景需要创建Server端用户（例如：bioadmin:biogroup）安装BoostIO Server，使用上层调用组件用户安装BoostIO SDK。应禁止使用root用户安装，使用root等特权账号运行程序时，如果程序遭到入侵攻击，攻击者可以利用该程序的高级运行权限来对整个系统造成危害。
- Ceph和HDFS通信由用户配置，建议用户使用安全通信链路保证通信安全。

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

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

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

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


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

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端最大10MB，Server端最大50MB，循环进行计数统计，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官网(https://docs.ceph.com/en/latest/rados/configuration/auth-config-ref/#keys)。

5. 在ZooKeeper Server节点上执行命令清理BoostIO集群信息（以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. 登录至安装节点，并上传软件包BoostKit-boostsds-boostio-1.1.0.zip至任意可用目录下。
2. 安装软件包

```
rpm -ivh --nodeps BoostKit-boostsds-boostio-1.1.0.zip
```


  安装后会在“/home”目录下得到

  BoostIO_{version}_Linux-{arch}_release.tar.gz以及解压tar包后的boostio目录，目录结构参照表2。 表2 软件包目录结构 目录 目录内文件夹 说明 BoostIO bin 可执行文件。 conf 配置文件。 lib 二进制依赖库。 include 对外头文件。 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 | hseceasy可执行文件，用于加密。 |
| 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 | 日志打印级别。 | 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保持一致。 |
| 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.pathPosix | 工作证书私钥口令的密文的文件路径。 | /path/server/server.keypass | 默认值仅作为示例。 | 安全开关打开时则需要为有效路径，安全开关关闭则不解析该配置项。 在加密私钥的时候，私钥口令建议满足复杂度要求。同时满足以下要求： 口令长度至少8个字符。 口令需要包含如下至少两种字符的组合。 至少一个小写字母 至少一个大写字母 至少一个数字 至少一个特殊字符：\`~!@\#$%^&\*()\-\_=+\\|[{}];:'"",<.>/? 和空格 |
| 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 true | 流量控制开关打开会影响到极限性能，建议性能用例场景关闭。 |
| Cache | bio.data.crc.enable | 数据完整性校验开关。 | false | false true | 数据完整性校验开关打开会增加数据读写时延，建议在问题定位场景使用。 |
| 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 true | 流程统计开关打开会影响到极限性能，建议性能用例场景关闭。 |
| 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服务节点信息。 例如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 | 可选 |
| Prometheus | bio.prometheus.scrape\_interval\_sec | Prometheus采样频率。 | 15 | \- | 可选，单位s。 |


4. 配置host_ip_list文件。

  a. 打开host_ip_list文件。

```
vim boostio/scripts/host_ip_list
```


  b. 按“i”进入编辑模式，在host_ip_list文件中增加以下内容（根据实际情况填写）。

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


  c. 按“ESC”键，输入:wq!，按“Enter”保存并退出编辑。
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”下。
