Skip to content

Tair 最小化配置方法

hurley edited this page Mar 15, 2018 · 2 revisions

Tair 编译安装完成后,目录结构如下:

root@qianyi-centos7 ~ $ tree tair_bin/
tair_bin/
├── do_dump.sh
├── do_upload.sh
├── etc
│   ├── configserver.conf.default
│   ├── dataserver.conf.default
│   └── group.conf.default
├── include
│   ├── ...
├── lib
│   ├── ...
├── sbin
│   ├── tair_cfg_svr
│   ├── tairclient
│   ├── tair_server
│   └── ...
├── set_shm.sh
└── tair.sh

Tair 并不依赖目录位置,所以任意移动或者拷贝到其他位置亦可。

下面以MDB引擎为例配置一个最小化的Tair集群(1 * ConfigServer + 1 * DataServer)

MDB 引擎默认使用共享内存,所以需要查看并设置系统的tmpfs的大小:

# 这里根据实际机器内存情况配置,必须大于Tair使用内存的配置
root@qianyi-centos7 tair_bin $ cat /etc/fstab | grep /dev/shm
tmpfs      /dev/shm      tmpfs   rw,size=1G      0 0
# 修改了 /etc/fstab 之后必须 mount -o remount /dev/shm
root@qianyi-centos7 tair_bin $ df -h | grep /dev/shm
tmpfs           1.0G     0  1.0G    0% /dev/shm

切换到Tair安装目录,拷贝默认配置文件准备修改:

root@qianyi-centos7 tair_bin $ cp etc/configserver.conf.default etc/configserver.conf
root@qianyi-centos7 tair_bin $ cp etc/group.conf.default etc/group.conf
root@qianyi-centos7 tair_bin $ cp etc/dataserver.conf.default etc/dataserver.conf

这台测试机器的IP是10.211.55.9,以下配置请按照实际情况替换。

最终修改的文件 diff 如下,请对照修改。

  • etc/configserver.conf
--- a/etc/configserver.conf.default
+++ b/etc/configserver.conf
@@ -3,8 +3,8 @@
 #

 [public]
-config_server=192.168.1.1:5198
-config_server=192.168.1.2:5198
+config_server=10.211.55.9:5198
+#config_server=192.168.1.2:5198
  • etc/group.conf
--- a/etc/group.conf.default
+++ b/etc/group.conf
@@ -1,5 +1,5 @@
 #group name
-[group_1]
+[group_test]
 # data move is 1 means when some data serve down, the migrating will be start.
 # default value is 0
 _data_move=0
@@ -19,16 +19,16 @@ _accept_strategy=1
 _allow_failover_server=0

 # data center A
-_server_list=192.168.1.1:5191
-_server_list=192.168.1.2:5191
-_server_list=192.168.1.3:5191
-_server_list=192.168.1.4:5191
+_server_list=10.211.55.9:5191
+#_server_list=192.168.1.2:5191
+#_server_list=192.168.1.3:5191
+#_server_list=192.168.1.4:5191

 # data center B
-_server_list=192.168.2.1:5191
-_server_list=192.168.2.2:5191
-_server_list=192.168.2.3:5191
-_server_list=192.168.2.4:5191
+#_server_list=192.168.2.1:5191
+#_server_list=192.168.2.2:5191
+#_server_list=192.168.2.3:5191
+#_server_list=192.168.2.4:5191
  • etc/dataserver.conf
--- a/etc/dataserver.conf.default
+++ b/etc/dataserver.conf
@@ -3,8 +3,8 @@
 #

 [public]
-config_server=192.168.1.1:5198
-config_server=192.168.1.2:5198
+config_server=10.211.55.9:5198
+#config_server=192.168.1.2:5198

 [tairserver]
 #
@@ -25,7 +25,7 @@ mdb_type=mdb_shm
 # shm file prefix, located in /dev/shm/, the leading '/' is must
 mdb_shm_path=/mdb_shm_inst
 # (1<<mdb_inst_shift) would be the instance count
-mdb_inst_shift=3
+mdb_inst_shift=0
 # (1<<mdb_hash_bucket_shift) would be the overall bucket count of hashtable
 # (1<<mdb_hash_bucket_shift) * 8 bytes memory would be allocated as hashtable
 mdb_hash_bucket_shift=24
@@ -39,13 +39,13 @@ mdb_check_granularity_factor=10
 port=5191

 supported_admin=0
-process_thread_num=12
-io_thread_num=12
+process_thread_num=4
+io_thread_num=4
 dup_io_thread_num=1
 #
 #mdb size in MB
 #
-slab_mem_size=4096
+slab_mem_size=512
 log_file=logs/server.log
 pid_file=logs/server.pid

这里 slab_mem_size控制MDB内存池的总大小,mdb_inst_shift 控制实例的个数,每个实例的大小是 slab_mem_size/(1 << mdb_inst_shift) MB,注意这里一个实例必须大于512MB且小于64GB

注意在CentOS 7下,安装目录下的 tair.sh 启动脚本有一行代码需要修改,diff 如下:

--- a/tair.sh
+++ b/tair.sh
@@ -52,7 +52,7 @@ check_shm_size()
   if [ $engine == "mdb" ]
   then
     safety_free_size=500;
-    tmpfs_size=`df -m |grep tmpfs | awk '{print $2}'`
+    tmpfs_size=`df -m |grep /dev/shm | awk '{print $2}'`
     let "safety_size = $tmpfs_size - $safety_free_size"
     slab_mem_size=`grep slab_mem_size $1 | grep -v "#" | awk -F '[ =]' '{print $NF}'`

启动实例:

root@qianyi-centos7 tair_bin $ ./tair.sh start_ds
mdb engine. tmpfs_size: 1024  safety_size: 524  slab_mem_size: 512
root@qianyi-centos7 tair_bin $ ./tair.sh start_cs
root@qianyi-centos7 tair_bin $ ps aux | grep tair
root     21828  1.5  3.0 1519244 30572 pts/0   Sl   14:51   0:00 ./sbin/tair_server -f ./etc/dataserver.conf
root     21866  0.0  0.2 411676  2856 pts/0    Sl   14:51   0:00 ./sbin/tair_cfg_svr -f ./etc/configserver.conf

客户端读写测试:

root@qianyi-centos7 tair_bin $ ./sbin/tairclient -c 10.211.55.9:5198 -g group_test
TAIR> health
              server               status
    10.211.55.9:5191                alive

             migrate              ongoing
         isMigrating                false

              server                 ping
    10.211.55.9:5191             0.204000

TAIR> put key value
put: success
TAIR> get key
KEY: key, LEN: 5
 raw data: value, \76\61\6C\75\65
TAIR> remove key
remove: success.
TAIR> get key
get failed: data not exists.

停止服务:

root@qianyi-centos7 tair_bin $ ./tair.sh stop_ds
root@qianyi-centos7 tair_bin $ ./tair.sh stop_cs
Clone this wiki locally