系统配置

磁盘阵列

配置建议

IoTDB对磁盘阵列配置没有严格运行要求,推荐使用多个磁盘阵列存储IoTDB的数据,以达到多个磁盘阵列并发写入的目标,配置可参考以下建议:

  1. 物理环境 系统盘:建议使用2块磁盘做Raid1,仅考虑操作系统自身所占空间即可,可以不为IoTDB预留系统盘空间 数据盘 建议做Raid,在磁盘维度进行数据保护 建议为IoTDB提供多块磁盘(1-6块左右)或磁盘组(不建议将所有磁盘做成一个磁盘阵列,会影响 IoTDB的性能上限)
  2. 虚拟环境 建议挂载多块硬盘(1-6块左右)
  3. 在部署 IoTDB 时,建议避免使用 NAS 等网络存储设备。

配置示例

  • 示例1,4块3.5英寸硬盘

因服务器安装的硬盘较少,直接做Raid5即可,无需其他配置。

推荐配置如下:

使用分类 Raid类型 硬盘数量 冗余 可用容量
系统/数据盘 RAID5 4 允许坏1块 3
  • 示例2,12块3.5英寸硬盘

服务器配置12块3.5英寸盘。

前2块盘推荐Raid1作系统盘,2组数据盘可分为2组Raid5,每组5块盘实际可用4块。

推荐配置如下:

使用分类 Raid类型 硬盘数量 冗余 可用容量
系统盘 RAID1 2 允许坏1块 1
数据盘 RAID5 5 允许坏1块 4
数据盘 RAID5 5 允许坏1块 4
  • 示例3,24块2.5英寸盘

服务器配置24块2.5英寸盘。

前2块盘推荐Raid1作系统盘,后面可分为3组Raid5,每组7块盘实际可用6块。剩余一块可闲置或存储写前日志使用。

推荐配置如下:

使用分类 Raid类型 硬盘数量 冗余 可用容量
系统盘 RAID1 2 允许坏1块 1
数据盘 RAID5 7 允许坏1块 6
数据盘 RAID5 7 允许坏1块 6
数据盘 RAID5 7 允许坏1块 6
数据盘 NoRaid 1 损坏丢失 1

操作系统

版本要求

IoTDB支持Linux、Windows、MacOS等操作系统,同时企业版支持龙芯、飞腾、鲲鹏等国产 CPU,支持中标麒麟、银河麒麟、统信、凝思等国产服务器操作系统。

硬盘分区

  • 建议使用默认的标准分区方式,不推荐LVM扩展和硬盘加密。
  • 系统盘只需满足操作系统的使用空间即可,不需要为IoTDB预留空间。
  • 每个硬盘组只对应一个分区即可,数据盘(里面有多个磁盘组,对应raid)不用再额外分区,所有空间给IoTDB使用。

建议的磁盘分区方式如下表所示。

硬盘分类 磁盘组 对应盘符 大小 文件系统类型
系统盘 磁盘组0 /boot 1GB 默认
/ 磁盘组剩余全部空间 默认
数据盘 磁盘组1 /data1 磁盘组1全部空间 默认
磁盘组2 /data2 磁盘组2全部空间 默认
……

网络配置

  1. 关闭防火墙
1. # 查看防火墙
2. systemctl status firewalld
3. # 关闭防火墙
4. systemctl stop firewalld
5. # 永久关闭防火墙
6. systemctl disable firewalld
  1. 保证所需端口不被占用

(1)集群占用端口的检查:在集群默认配置中,ConfigNode 会占用端口 10710 和 10720,DataNode 会占用端口 6667、10730、10740、10750 、10760、9090、9190、3000请确保这些端口未被占用。检查方式如下:

1. lsof -i:6667  或  netstat -tunp | grep 6667
2. lsof -i:10710  或  netstat -tunp | grep 10710
3. lsof -i:10720  或  netstat -tunp | grep 10720
4. #如果命令有输出,则表示该端口已被占用。

(2)集群部署工具占用端口的检查:使用集群管理工具opskit安装部署集群时,需打开SSH远程连接服务配置,并开放22号端口。

1. yum install openssh-server            #安装ssh服务
2. systemctl start sshd                  #启用22号端口
  1. 保证服务器之间的网络相互连通

其他配置

  1. 将系统 swap 优先级降至最低
1. echo "vm.swappiness = 0">> /etc/sysctl.conf
2. # 一起执行 swapoff -a 和 swapon -a 命令是为了将 swap 里的数据转储回内存,并清空 swap 里的数据。
3. # 不可省略 swappiness 设置而只执行 swapoff -a;否则,重启后 swap 会再次自动打开,使得操作失效。
4. swapoff -a && swapon -a
5. # 在不重启的情况下使配置生效。
6. sysctl -p
7. # swap的已使用内存变为0
8. free -m
  1. 设置系统最大打开文件数为 65535,以避免出现 “太多的打开文件 “的错误。
1. #查看当前限制
2. ulimit -n
3. # 临时修改
4. ulimit -n 65535
5. # 永久修改
6. echo "* soft nofile 65535" >>  /etc/security/limits.conf
7. echo "* hard nofile 65535" >>  /etc/security/limits.conf
8. #退出当前终端会话后查看,预期显示65535
9. ulimit -n

软件依赖

安装 Java 运行环境 ,Java 版本 >= 1.8,请确保已设置 jdk 环境变量。(V1.3.2.2 及之上版本推荐直接部署JDK17,老版本JDK部分场景下性能有问题,且datanode会出现stop不掉的问题)

1. #下面以在centos7,使用JDK-17安装为例:
2. tar  -zxvf  jdk-17_linux-x64_bin.tar     #解压JDK文件
3. Vim  ~/.bashrc                           #配置JDK环境
4. {  export JAVA_HOME=/usr/lib/jvm/jdk-17.0.9
5. export PATH=$JAVA_HOME/bin:$PATH
6. }  #添加JDK环境变量
7. source  ~/.bashrc                        #配置环境生效
8. java -version                            #检查JDK环境