ssdb集群+keepalived搭建实战-2.ssdb安装
环境
操作系统:CentOS Linux release 7.6.1810 (Core)
ssdb:1.9.7
IP:
主: 10.80.2.121
从: 10.80.2.85
vip:10.80.2.156
ssdb编译和安装
参考:SSDB下载和安装
1.下载安装包
进入目录,按照官方文档教程下载安装包:
[root@prodssdb-001 ~]# cd /opt/data
[root@prodssdb-001 data]# wget --no-check-certificate https://github.com/ideawu/ssdb/archive/master.zip
ps:也可使用源作者给出的连接下载安装包:下载链接
2.安装依赖包
根据操作系统版本不同可能存在差异,现给出我使用的依赖包:
[root@localhost ssdb-master]# yum -y install autoconf gcc+ gcc-c++ libtool
3.解压安装
解压安装包:
[root@prodssdb-001 data]# unzip master.zip
[root@prodssdb-001 data]# cd ssdb-master/
[root@prodssdb-001 ssdb-master]# ls
api build.sh ChangeLog deps Dockerfile docs LICENSE Makefile README.md src ssdb.conf ssdb_slave.conf tools version
编译:
[root@prodssdb-001 ssdb-master]# make
[root@prodssdb-001 ssdb-master]# ls
api build.sh deps docs Makefile src ssdb-server tools var_slave
build_config.mk ChangeLog Dockerfile LICENSE README.md ssdb.conf ssdb_slave.conf var version
最后指定安装路径为:/opt/data 执行安装命令:
[root@prodssdb-001 ssdb-master]# sudo make install PREFIX=/opt/data
mkdir -p /opt/data
mkdir -p /opt/data/_cpy_
mkdir -p /opt/data/deps
mkdir -p /opt/data/var
mkdir -p /opt/data/var_slave
cp -f ssdb-server ssdb.conf ssdb_slave.conf /opt/data
cp -rf api /opt/data
cp -rf \
tools/ssdb-bench \
tools/ssdb-cli tools/ssdb_cli \
tools/ssdb-cli.cpy tools/ssdb-dump \
tools/ssdb-repair \
/opt/data
cp -rf deps/cpy /opt/data/deps
chmod 755 /opt/data
chmod -R ugo+rw /opt/data/*
rm -f /opt/data/Makefile
可观察到脚本将自主创建/opt/data目录,将所需文件复制到此路径,并将权限改为755
4.配置启动脚本
ssdb在安装后需要手动配置启动脚本,放置到/etc/init.d目录下:
复制模板到/etc/init.d目录,模板在/opt/data/ssdb-master/tools/ssdb.sh,对于CentOS用户,需要将ssdb.sh重命名为ssdb:
[root@prodssdb-001 init.d]# cat /etc/init.d/ssdb
#!/bin/sh
#
# chkconfig: 2345 64 36
# description: SSDB startup scripts
#
ssdb_root=/opt/data
ssdb_bin=$ssdb_root/ssdb-server
# each config file for one instance
# configs="/data/ssdb_data/test/ssdb.conf /data/ssdb_data/test2/ssdb.conf"
configs="/opt/data/ssdb.conf"
if [ -f /etc/rc.d/init.d/functions ]; then
. /etc/rc.d/init.d/functions
fi
start() {
for conf in $configs; do
$ssdb_bin $conf -s restart -d
done
}
stop() {
for conf in $configs; do
$ssdb_bin $conf -s stop -d
done
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo $"Usage: $0 {start|stop|restart}"
;;
esac
exit $RETVAL
根据系统配置需要修改ssdb_root,configs的值。
使配置生效:
[root@prodssdb-001 init.d]# systemctl daemon-reload
配置完成后就能使用systemctl相关命令,如:
[root@prodssdb-001 data]# systemctl status ssdb
● ssdb.service - SYSV: SSDB startup scripts
Loaded: loaded (/etc/rc.d/init.d/ssdb; bad; vendor preset: disabled)
Active: active (running) since Mon 2019-07-01 09:38:59 CST; 6h ago
Docs: man:systemd-sysv-generator(8)
CGroup: /system.slice/ssdb.service
└─9418 /opt/data/ssdb-server /opt/data/ssdb.conf -s restart -d
Jul 01 09:38:59 ecloud02-carchat-prod-ssdb01 systemd[1]: Starting SYSV: SSDB startup scripts...
Jul 01 09:38:59 ecloud02-carchat-prod-ssdb01 ssdb[9414]: ssdb-server 1.9.7
Jul 01 09:38:59 ecloud02-carchat-prod-ssdb01 ssdb[9414]: Copyright (c) 2012-2015 ssdb.io
Jul 01 09:38:59 ecloud02-carchat-prod-ssdb01 ssdb[9414]: process: 4221 not running
Jul 01 09:38:59 ecloud02-carchat-prod-ssdb01 systemd[1]: Started SYSV: SSDB startup scripts.
基本功能测试:
1.确认安装目录下文件:
[root@prodssdb-001 ssdb-master]# cd /opt/data
[root@prodssdb-001 data]# ls
api deps master.zip ssdb_cli ssdb-cli.cpy ssdb-dump ssdb-repair ssdb_slave.conf var_slave
_cpy_ log.txt ssdb-bench ssdb-cli ssdb.conf ssdb-master ssdb-server var
2.确认启动关闭功能
后台启动:
[root@prodssdb-001 ssdb]# ./ssdb-server -d ssdb.conf
ssdb-server 1.9.7
Copyright (c) 2012-2015 ssdb.io
查看状态:
[root@prodssdb-001 ssdb]# ps -ef |grep ssdb |grep -v grep
root 35279 1 0 17:56 ? 00:00:00 ./ssdb-server -d ssdb.conf
[root@prodssdb-001 ssdb]# netstat -nltp |grep ssdb
tcp 0 0 127.0.0.1:8888 0.0.0.0:* LISTEN 35279/./ssdb-server
停止服务:
[root@prodssdb-001 ssdb]# ./ssdb-server ssdb.conf -s stop
ssdb-server 1.9.7
Copyright (c) 2012-2015 ssdb.io
再次查看状态:
[root@prodssdb-001 ssdb]# ps -ef |grep ssdb |grep -v grep
[root@prodssdb-001 ssdb]# netstat -nltp |grep ssdb
无返回值