前提:redis中,主从切换场景中,没有绝对的主和从,只有初始化的主和从,然后当主down后,从就变成主了,而主即使连接上,也是从,不会变为主
1、redis-server的主备关系:
需要配置的机器,以及主备关系如下
master:10.118.36.10
slave1:10.118.36.74
slave2:10.118.36.161
2、修改redis-server的配置文件:
切换到redis的根目录
# cd /home/admin/Downloads/redis-3.0.3
master配置不变,
两台slave修改配置文件(# vi redis-3.0.3/redis.conf),添加如下语句,其余用默认配置:
slaveof 10.118.36.10 6379
3、修改redis-sentinel的配置文件(# vi redis-3.0.3/sentinel.conf),但是这里我使用一个新的文件(# vi redis-3.0.3/sentinel-test.conf): 切换到redis的根目录
# cd /home/admin/Downloads/redis-3.0.3
# vi redis-3.0.3/sentinel-test.conf
三台机器配置相同,如下:
############################代码区域,begin############################
sentinel monitor MyMaster 10.118.36.10 6379 1
sentinel down-after-milliseconds MyMaster 5000
sentinel failover-timeout MyMaster 900000
sentinel parallel-syncs MyMaster 2
############################代码区域,end############################
4、启动redis-server服务和redis-sentinel服务 切换到redis的根目录
# cd /home/admin/Downloads/redis-3.0.3
前段时间,由于项目需要,安装keepalived,需要安装依赖包openssl-devel,可是无奈服务器不允许使用网络,无法使用yum安装,所以研究了下如何离线安装,进入了很多坑,所以记录分享下
声明:此文仅为其中一种方法,不要自己将思维局限于这一种方式
前提:基于redhat 6.5或者CentOS 6.5
软件包(由yum缓存中提取的):
http://pan.baidu.com/s/1dDHIEGD
rpm -e --nodeps keyutils-libs-1.4-4.el6.x86_64
rpm -ivh keyutils-libs-1.4-5.el6.x86_64.rpm
rpm -ivh keyutils-libs-devel-1.4-5.el6.x86_64.rpm
rpm -ivh libsepol-devel-2.0.41-4.el6.x86_64.rpm
rpm -e --nodeps libselinux-2.0.94-5.3.el6_4.1.x86_64 删除以后就再也装不上了,所以切勿执行。。。。,恢复,取消此操作,继续测试
rpm -e --nodeps libselinux-utils-2.0.94-5.3.el6_4.1.x86_64
rpm -Uvh libselinux-2.0.94-5.8.el6.x86_64.rpm 安装成功,由此绕过之前5步出错的bug,
rpm -ivh libselinux-devel-2.0.94-5.8.el6.x86_64.rpm
rpm -e --nodeps krb5-libs-1.10.3-10.el6_4.6.x86_64
rpm -ivh krb5-libs-1.10.3-42.el6.x86_64.rpm
rpm -e --nodeps libcom_err-1.41.12-18.el6.x86_64
rpm -ivh libcom_err-1.41.12-22.el6.x86_64.rpm
rpm -ivh libcom_err-devel-1.41.12-22.el6.x86_64.rpm
rpm -ivh krb5-devel-1.10.3-42.el6.x86_64.rpm
rpm -ivh zlib-devel-1.2.3-29.el6.x86_64.rpm
rpm -e --node
下载redis的安装包:http://download.redis.io/releases/redis-3.0.3.tar.gz
由于我的系统是刚装的,所以需要安装gcc才能编译成功,建议大家都先安装下gcc再安装文件
离线安装gcc方法,请看末尾
yum install gcc
然后再按照下面的方式执行
Installation
Download, extract and compile Redis with:
$ wget http://download.redis.io/releases/redis-3.0.3.tar.gz
$ tar xzf redis-3.0.3.tar.gz
$ cd redis-3.0.3
$ make
The binaries that are now compiled are available in the src
directory. Run Redis with:
$ src/redis-server
You can interact with Redis using the built-in client:
$ src/redis-cli
redis> set foo bar
OK
redis> get foo
"bar"
离线安装GCC方法
# rpm -ivh mpfr-2.4.1-6.el6.x86_64.rpm # rpm -ivh ppl-0.10.2-11.el6.x86_64.rpm # rpm -ivh cpp-4.4.7-4.el6.x86_64.rpm # rpm -ivh cloog-ppl-0.15.7-1.2.el6.x86_64.rpm # rpm -ivh gcc-4.4.7-4.el6.x86_64.rpm
离线包:http://pan.baidu.com/s/1i3lg73Z
by 刘迎光@萤火虫工作室
OpenBI交流群:495266201
MicroService 微服务交流群:217722918
mail: liuyg#liuyingguang.cn
博主首页(防止爬虫):http://blog.liuyingguang.cn
OpenBI问答社区:http://openbi.liuyingguang.cn/
下载keepalived
http://www.keepalived.org/software/
首先检查安装openssl-devel
yum install openssl-devel
# ./configure --prefix=/usr/local/keepalived --with-kernel-dir=/usr/src/kernels/2.6.32-279.el6.x86_64
当出现如下字样
Keepalived configuration
------------------------
Keepalived version : 1.2.19
Compiler : gcc
Compiler flags : -g -O2
Extra Lib : -lssl -lcrypto -lcrypt
Use IPVS Framework : Yes
IPVS sync daemon support : Yes
IPVS use libnl : No
fwmark socket support : Yes
Use VRRP Framework : Yes
Use VRRP VMAC : Yes
SNMP support : No
SHA1 support : No
Use Debug flags : No
执行安装命令
# make
# make install
设置keepalived开机启动脚本
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
chkconfig keepalived on
新建一个配置文件,默认keepalived启
150812 23:38:24 [ERROR] WSREP: Permission denied
150812 23:38:24 [ERROR] WSREP: failed to open gcomm backend connection: 13: error while trying to listen 'tcp://0.0.0.0:4567?socket.non_blocking=1', asio error 'Permission denied': 13 (Permission denied)
at gcomm/src/asio_tcp.cpp:listen():777
150812 23:38:24 [ERROR] WSREP: gcs/src/gcs_core.cpp:long int gcs_core_open(gcs_core_t*, const char*, const char*, bool)():206: Failed to open backend connection: -13 (Permission denied)
150812 23:38:24 [ERROR] WSREP: gcs/src/gcs.cpp:long int gcs_open(gcs_conn_t*, const char*, const char*, bool)():1379: Failed to open channel 'galera_cluster' at 'gcomm://192.168.100.220': -13 (Permission denied)
150812 23:38:24 [ERROR] WSREP: gcs connect failed: Permission denied
150812 23:38:24 [ERROR] WSREP: wsrep::connect() failed: 7
150812 23:38:24 [ERROR] Aborting
原因:
由于开启了SELINUX。
解决方法:
编辑文件/etc/sysconfig/selinux
把SELINUX设为disabled
重启后就会忽略selinux,或者直接执行命令
setenforce 0
立即生效。
by 刘迎光@萤火虫工作室
OpenBI交流群:495266201
MicroService 微服务交