系統配置
大約 5 分鐘
系統配置
磁盤陣列
配置建議
IoTDB對磁盤陣列配置沒有嚴格運行要求,推薦使用多個磁盤陣列存儲IoTDB的數據,以達到多個磁盤陣列并發寫入的目標,配置可參考以下建議:
- 物理環境
系統盤:建議使用2塊磁盤做Raid1,僅考慮操作系統自身所占空間即可,可以不為IoTDB預留系統盤空間
數據盤
建議做Raid,在磁盤維度進行數據保護
建議為IoTDB提供多塊磁盤(1-6塊左右)或磁盤組(不建議將所有磁盤做成一個磁盤陣列,會影響 IoTDB的性能上限) - 虛擬環境
建議掛載多塊硬盤(1-6塊左右) - 在部署 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全部空間 | 默認 | |
| ...... | ||||
網絡配置
- 關閉防火墻
# 查看防火墻
systemctl status firewalld
# 關閉防火墻
systemctl stop firewalld
# 永久關閉防火墻
systemctl disable firewalld- 保證所需端口不被占用
(1)集群占用端口的檢查:在集群默認配置中,ConfigNode 會占用端口 10710 和 10720,DataNode 會占用端口 6667、10730、10740、10750 、10760、9090、9190、3000請確保這些端口未被占用。檢查方式如下:
lsof -i:6667 或 netstat -tunp | grep 6667
lsof -i:10710 或 netstat -tunp | grep 10710
lsof -i:10720 或 netstat -tunp | grep 10720
#如果命令有輸出,則表示該端口已被占用。(2)集群部署工具占用端口的檢查:使用集群管理工具opskit安裝部署集群時,需打開SSH遠程連接服務配置,并開放22號端口。
yum install openssh-server #安裝ssh服務
systemctl start sshd #啟用22號端口- 保證服務器之間的網絡相互連通
其他配置
- 將系統 swap 優先級降至最低
echo "vm.swappiness = 0">> /etc/sysctl.conf
# 一起執行 swapoff -a 和 swapon -a 命令是為了將 swap 里的數據轉儲回內存,并清空 swap 里的數據。
# 不可省略 swappiness 設置而只執行 swapoff -a;否則,重啟后 swap 會再次自動打開,使得操作失效。
swapoff -a && swapon -a
# 在不重啟的情況下使配置生效。
sysctl -p
# swap的已使用內存變為0
free -m- 設置系統最大打開文件數為 65535,以避免出現 "太多的打開文件 "的錯誤。
#查看當前限制
ulimit -n
# 臨時修改
ulimit -n 65535
# 永久修改
echo "* soft nofile 65535" >> /etc/security/limits.conf
echo "* hard nofile 65535" >> /etc/security/limits.conf
#退出當前終端會話后查看,預期顯示65535
ulimit -n軟件依賴
安裝 Java 運行環境 ,Java 版本 >= 1.8,請確保已設置 jdk 環境變量。(V1.3.2.2 及之上版本推薦直接部署JDK17,老版本JDK部分場景下性能有問題,且datanode會出現stop不掉的問題)
#下面以在centos7,使用JDK-17安裝為例:
tar -zxvf jdk-17_linux-x64_bin.tar #解壓JDK文件
Vim ~/.bashrc #配置JDK環境
{ export JAVA_HOME=/usr/lib/jvm/jdk-17.0.9
export PATH=$JAVA_HOME/bin:$PATH
} #添加JDK環境變量
source ~/.bashrc #配置環境生效
java -version #檢查JDK環境