redis+keepalived高可用搭建

一、Redis高可用部署及监控

目录

【相关资料脚本配置文件在此文件夹内】

 

Redis达到的目的:  1、主拥有读写权限,从拥有读和复制的权限。

sentinel达到的目的:1、监控主从redis,

2、当其中一个redis宕机遇到故障后自动切换主从关系。

一、Redis Sentinel简介

二、硬件需求

三、拓扑结构

1、单M-S结构

2、双M-S结构

3、优劣对比

四、配置部署

1、Redis配置

2、Redis Sentinel配置

3、启动服务

4、故障模拟检测

五、备份恢复

1、备份策略

2、灾难恢复

六、运维监控

1、安全监控

2、性能监控

修改人:向焱word标色部分全为修改

安装redis:【安装包在文件夹内】

wget http://go.rritw.com/download.redis.io/releases/redis-2.8.3.tar.gz

1、安装依赖包

yum –yinstall gcc-c++ tcl

2、上传redis包

cd/mnt/

rz   [选择包的位置  如果服务器内没有上传工具可以安装一个 yum –y install lrzsz]

tarzxvf redis-2.8.3.tar.gz -C /usr/local/redis-2.8.3/

cd /usr/local/redis-2.8.3/

make&& make install

 

接下来就往下看!!!
一、           Redis Sentinel简介

 

Redis Sentinel是redis自带的集群管理工具,主要功能有

·         监控(Monitoring): Redis Sentinel实时监控主服务器和从服务器运行状态。

·         提醒(Notification):当被监控的某个 Redis 服务器出现问题时, RedisSentinel 可以向系统管理员发送通知, 也可以通过 API 向其他程序发送通知。

·         自动故障转移(Automatic failover): 当一个主服务器不能正常工作时,RedisSentinel 可以将一个从服务器升级为主服务器, 并对其他从服务器进行配置,让它们使用新的主服务器。当应用程序连接到Redis 服务器时, Redis Sentinel会告之新的主服务器地址和端口。

Redis Sentinel 是一个分布式系统, 你可以在架构中运行多个 Sentinel 进程,这些进程通过相互通讯来判断一个主服务器是否断线,以及是否应该执行故障转移。

在配置Redis Sentinel时,至少需要有1个Master和1个Slave。当Master失效后,RedisSentinel会报出失效警告,并通过自动故障转移将Slave提升为Master,并提供读写服务;当失效的Master恢复后,Redis Sentinel会自动识别,将Master自动转换为Slave并完成数据同步。

通过Redis Sentinel可以实现Redis零手工干预并且短时间内进行M-S切换,减少业务影响时间。

二、           硬件需求

 

为了预防单节点故障,需要至少两台服务器,配置要求一致。


CPU


内存


磁盘


>2 CORES


>16 GB


>100 GB

三、           拓扑结构

 

在两个服务器中分别都部署Redis和Redis Sentinel。当Master中的Redis出现故障时(Redis进程终止、服务器僵死、服务器断电等),由Redis Sentinel将Master权限切换至Slave Redis中,并将只读模式更改为可读可写模式。应用程序通过RedisSentinal确定当前Master Redis位置,进行重新连接。

根据业务模式,可以制定两种拓扑结构:单M-S结构和双M-S结构。如果有足够多的服务器,可以配置多M-S结构。

1、单M-S结构

单M-S结构特点是在Master服务器中配置Master Redis(Redis-1M)和Master Sentinel(Sentinel-1M)。Slave服务器中配置Slave Redis(Redis-1S)和Slave Sentinel(Sentinel-1S)。其中 Master Redis可以提供读写服务,但是Slave Redis只能提供只读服务。因此,在业务压力比较大的情况下,可以选择将只读业务放在Slave Redis中进行。

                             

2、双M-S结构

双M-S结构的特点是在每台服务器上配置一个Master Redis,同时部署一个Slave Redis。由两个Redis Sentinel同时对4个Redis进行监控。两个Master Redis可以同时对应用程序提供读写服务,即便其中一个服务器出现故障,另一个服务器也可以同时运行两个Master Redis提供读写服务。缺点是两个Master redis之间无法实现数据共享,不适合存在大量用户数据关联的应用使用。

 

3、优劣对比

两个结构各有优缺点,分别适用于不同的应用场景:

单M-S结构适用于不同用户数据存在关联,但应用可以实现读写分离的业务模式。Master主要提供写操作,Slave主要提供读操作,充分利用硬件资源。

双(多)M-S结构适用于用户间不存在或者存在较少的数据关联的业务模式,读写效率是单M-S的两(多)倍,但要求故障时单台服务器能够承担两个Mater Redis的资源需求。

 

 

四、           配置部署

 

单M-S结构和双M-S结构配置相差无几,下面以双M-S结构配置为例。

192.168.100.220 [server1M]  redis6379  redis-1M redis-2S sentinel-1M

                          redis7379 

192.168.100.221 [server1S]   redis6379  redis-2M redis-1S sentinel-1S

                          redis7379

1、Redis配置

1)Master Redis配置

在Server-1M[100.220]上配置Redis-1M

# viredis-1M.conf

## masterredis-1M

## daemonize默认为no,修改为yes,启用后台运行

daemonize yes

# Redis 默认pid 文件位置redis.pid

#当运行多个 redis 服务时,需要指定不同的 pid 文件和端口

pidfile redis-1M.pid

##端口号

port 6379

##验证口令

requirepass*************

masterauth*************

#绑定可连接Redis的IP地址,不设置将处理所有请求

# bind 127.0.0.1

#客户端连接的超时时间,单位为秒,超时后会关闭连接(0为不设置)

timeout 0

#日志记录等级

loglevel notice

#设置数据库的个数

databases 16

#日志刷新策略(Master禁用)

#save 900 1

#save 300 10

#save 60 10000

#是否使用压缩镜像备份

rdbcompressionyes

#镜像备份文件的文件名

dbfilename redis-1M_dump.rdb

#镜像备份路径,默认值为 ./

dir/redis/backup

#设置该数据库为其他数据库的从数据库,主库无需设置

#slaveof

# slaveof

#指定与主数据库连接时需要的密码验证,主库无需设置

#masterauth

#masterauth

#如果 slave-serve-stale-data 设置成 ‘no‘,slave会返回"SYNC withmaster in #progress"错误信息,但 INFO和SLAVEOF命令除外。

slave-serve-stale-datayes

#客户端连接访问口令

# requirepassfoobared

#限制同时连接的客户数量,防止过多的client导致内存耗尽。如果有足够内存可以不进行#设置

#maxclients10000

#设置redis能够使用的最大内存。

# maxmemory

##启用增量(Master禁用)

appendonly no

#增量日志文件名,默认值为appendonly.aof

appendfilenameappendonly.aof

#设置对 appendonly.aof 文件进行同步的频率

#always 表示每次有写操作都进行同步,everysec 表示对写操作进行累积,每秒同步一次。

#no表示等操作系统进行数据缓存同步到磁盘,都进行同步,everysec 表示对写操作进行累#积,每秒同步一次

appendfsynceverysec

#是否重置Hash表

#设置成yes后redis将每100毫秒使用1毫秒CPU时间来对redis的hash表重新hash,##可降低内存的使用。当使用场景有较为严格的实时性需求,不能接受Redis时不时的对请##求有2毫秒的延迟的话,把这项配置为no。如果没有这么严格的实时性要求,可以设置为 #yes,能够尽可能快的释放内存。

activerehashingyes

##Slave开启只读模式

slave-read-onlyyes

======================================================================================================================================

在Server-1S[100.221]上配置Redis-2M

# viredis-2M.conf

## master redis-2M

# Redis 默认pid 文件位置redis.pid

#当运行多个 redis 服务时,需要指定不同的 pid 文件和端口

pidfile redis-2M.pid

#镜像备份文件的文件名

dbfilename redis-1M_dump.rdb

#日志刷新策略(Slave启用)

save 900 1

save 300 10

save 60 10000

#-----------------其他参数与redis-1M保持一致-----------------

daemonize yes

#....

 ======================================================================================================================================

2)Slave Redis配置

在Server-1S [100.221]上配置Redis-1S

# Redis 默认pid 文件位置redis.pid

#当运行多个 redis 服务时,需要指定不同的 pid 文件和端口

pidfile redis-1S.pid

##端口号

port 7379

#镜像备份文件的文件名

dbfilename redis-1S_dump.rdb

#设置该数据库为其他数据库的从数据库,主库无需设置

Slaveof 192.168.100.220 6379

##启用增量(Master禁用)

appendonly yes

#-----------------其他参数与redis-1M保持一致-----------------

daemonize yes

#……

======================================================================================================================================

在Server-1M[100.220]上配置Redis-2S

# Redis 默认pid 文件位置redis.pid

#当运行多个 redis 服务时,需要指定不同的 pid 文件和端口

pidfile redis-2S.pid

##端口号

port 7379

#镜像备份文件的文件名

dbfilename redis-2S_dump.rdb

#设置该数据库为其他数据库的从数据库,主库无需设置

slaveof 192.168.100.221 6379

#-----------------其他参数与redis-2M保持一致-----------------

daemonize yes

#……

======================================================================================================================================

2、Redis Sentinel配置

在Server-1M[100.220]上配置Sentinel-1M

vi sentinel-1M.conf

#Master redis-1M

#hostnameserver-1M

#ip 192.168.100.220

#端口号

port 26379

sentinel monitor server-1M 192.168.100.220 6379 1

sentinel down-after-milliseconds server-1M 5000

sentinel failover-timeout server-1M 900000

sentinel can-failover server-1M yes

sentinel parallel-syncs server-1M 1

#Master redis-1S

#hostnameserver-1S

#ip 192.168.100.221

sentinel monitor server-1S 192.168.100.221 6379 1

sentinel down-after-milliseconds server-1S 5000

sentinel failover-timeout server-1S 900000

sentinel can-failover server-1S yes

sentinel parallel-syncs server-1S 1

======================================================================================================================================

在Server-1S[100.221]上配置Sentinel-1S

#Master redis-1M

#hostnameserver-1M

#ip 192.168.100.221

#端口号

port 27379

sentinel monitor server-1M 192.168.100.220 6379 1

sentinel down-after-milliseconds server-1M 5000

sentinel failover-timeout server-1M 900000

sentinel can-failover server-1M yes

sentinel parallel-syncs server-1M 1

#Master redis-1S

#hostnameserver-1S

#ip 192.168.100.221

sentinel monitor server-1S 192.168.100.221 6379 1

sentinel down-after-milliseconds server-1S 5000

sentinel failover-timeout server-1S 900000

sentinel can-failover server-1S yes

sentinel parallel-syncs server-1S 1

======================================================================================================================================

3、启动服务

Server-1M启动redis

redis-serverredis1M.conf

redis-serverredis2S.conf

Server-1S启动redis

redis-serverredis2M.conf

redis-serverredis1S.conf

启动100.220的sentinel

cd/usr/local/redis-2.8.3/src/ && ./redis-sentinel/usr/local/redis-2.8.3/sentinel-1M.conf && ps -ef | grep redis

启动100.221的sentinel

cd/usr/local/redis-2.8.3/src/ && ./redis-sentinel /usr/local/redis-2.8.3/sentinel-1S.conf&& ps -ef | grep redis

======================================================================================================================================

3-1、停止服务

100.220停止redis

redis-cli-h 127.0.0.1 -p 6379 shutdown && ps -ef | grep redis

redis-cli-h 127.0.0.1 -p 7379 shutdown && ps -ef | grep redis

100.221停止redis

redis-cli-h 127.0.0.1 -p 6379 shutdown && ps -ef | grep redis

redis-cli-h 127.0.0.1 -p 7379 shutdown && ps -ef | grep redis

杀死所有redis服务pkill -9 redis

======================================================================================================================================

3-2、链接100.220 redis

redis-cli-h 127.0.0.1 -p 6379【连接后输入参数 INFO Replication查看主从关系】

redis-cli-h 127.0.0.1 -p 7379【连接后输入参数 INFO Replication查看主从关系】


链接100.221 redis

redis-cli-h 127.0.0.1 -p 6379【连接后输入参数 INFO Replication查看主从关系】

redis-cli-h 127.0.0.1 -p 7379【连接后输入参数 INFO Replication查看主从关系】

3-3、启动sentinel

100.220启动sentinel

cd /usr/local/redis-2.8.3/src/ && ./redis-sentinel/usr/local/redis-2.8.3/sentinel-1M.conf && ps -ef | grep redis

100.221启动sentinel

cd /usr/local/redis-2.8.3/src/ && ./redis-sentinel /usr/local/redis-2.8.3/sentinel-1S.conf&& ps -ef | grep redis

======================================================================================================================================

检测同步

Master日志检查:

[28162] 10 Nov23:32:11.810 * DB loaded from append only file: 0.000 seconds

[28162] 10 Nov23:32:11.810 * The server is now ready to accept connections on port 6379

[28162] 10 Nov23:32:35.360 * Slave ask for synchronization

[28162] 10 Nov23:32:35.360 * Starting BGSAVE for SYNC

[28162] 10 Nov23:32:35.361 * Background saving started by pid 28170

[28170] 10 Nov23:32:35.373 * DB saved on disk

[28170] 10 Nov23:32:35.375 * RDB: 0 MB of memory used by copy-on-write

[28162] 10 Nov23:32:35.437 * Background saving terminated with success

[28162] 10 Nov23:32:35.438 * Synchronization with slave succeeded

 

Slave日志检查:

[28091] 10 Nov23:27:15.908 * DB loaded from append only file: 0.001 seconds

[28091] 10 Nov23:27:15.908 * The server is now ready to accept connections on port 6389

[28091] 10 Nov23:27:15.944 * Connecting to MASTER...

[28091] 10 Nov23:27:15.947 * MASTER <-> SLAVE sync started

[28091] 10 Nov23:27:15.951 * Non blocking connect for SYNC fired the event.

[28091] 10 Nov23:27:15.952 * Master replied to PING, replication can continue...

[28091] 10 Nov23:27:15.990 * MASTER <-> SLAVE sync: receiving 50 bytes from master

[28091] 10 Nov23:27:15.990 * MASTER <-> SLAVE sync: Loading DB in memory

[28091] 10 Nov23:27:15.991 * MASTER <-> SLAVE sync: Finished with success

[28091] 10 Nov23:27:15.993 * Background append only file rewriting started by pid 28094

[28094] 10 Nov23:27:15.998 * SYNC append only file rewrite performed

[28094] 10 Nov23:27:15.998 * AOF rewrite: 0 MB of memory used by copy-on-write

[28091] 10 Nov23:27:16.047 * Background AOF rewrite terminated with success

[28091] 10 Nov23:27:16.047 * Parent diff successfully flushed to the rewritten AOF (0 bytes)

[28091] 10 Nov23:27:16.048 * Background AOF rewrite finished successfully

注:

故障模拟测试:

1.先杀死100.220上的主redis1M

redis-cli –h 192.168.100.220 -6379 shutdown&& ps –ef | grep redis

2.查看端口是否杀死,杀死后sentinel文件会自动发生改变,自动更改redis的配置文件。

3.链接100.221输入redis-cli -h 127.0.0.1 -p 7379 INFOReplication检查主从状态

4.此时再次恢复100.220上的主redis1M,100.220变为从redis。

4、故障模拟检测

模拟redis-1M(Master 192.168.100.220 6379)故障,sentinel自动检测状态,然后切换至redis-1S(Slave 192.168.100.221 6389),并将redis-1M转移为redis-1S的slave,状态为+sdown。

[28156] 11 Nov00:42:48.431 # +sdown masterserver-1M 192.168.100.220 6379

[28156] 11 Nov00:42:48.431 # +odown masterserver-1M 192.168.100.220 6379 #quorum 1/1

[28156] 11 Nov00:42:56.570 # +failover-detected masterserver-1M 192.168.100.220 6379

[28156] 11 Nov00:42:56.670 # +failover-end masterserver-1M 192.168.100.220 6379

[28156] 11 Nov00:42:56.670 # +switch-masterserver-1M 192.168.100.220 6379 192.168.100.2216389

[28156] 11 Nov00:42:57.055 * +sentinel sentinel 192.168.84.128:26389 192.168.100.221 [email protected] 192.168.100.221 6389

[28156] 11 Nov00:43:01.688 # +sdown slave 192.168.84.129:6379 192.168.100.220 6379 @server-1M192.168.100.221 6389

 

 

五、           备份恢复

1、备份策略

Redis提供两种相对有效的备份方法:RDB和AOF。

RDB是在某个时间点将内存中的所有数据的快照保存到磁盘上,在数据恢复时,可以恢复备份时间以前的所有数据,但无法恢复备份时间点后面的数据。

AOF是以协议文本的方式,将所有对数据库进行过写入的命令(及其参数)记录到 AOF 文件,以此达到记录数据库状态的目的。优点是基本可以实现数据无丢失(缓存的数据有可能丢失),缺点是随着数据量的持续增加,AOF文件也会越来越大。

在保证数据安全的情况下,尽量避免因备份数据消耗过多的Redis资源,采用如下备份策略:

Master端:不采用任何备份机制

Slave端:采用AOF(严格数据要求时可同时开启RDB),每天将AOF文件备份至备份服务器。

为了最大限度减少Master端的资源干扰,将备份相关全部迁移至Slave端完成。同时这样也有缺点,当Master挂掉后,应用服务切换至Slave端,此时的Slave端的负载将会很大。目前Redis不支持RDB和AOF参数动态修改,需要重启Redis生效,希望能在新的版本中实现更高效的修改方式。

2、灾难恢复

·         当Master端Redis服务崩溃(包含主机断电、进程消失等),Redis sentinel将Slave切换为读写状态,提供生产服务。通过故障诊断修复Master,启动后会自动加入Sentinel并从Slave端完成数据同步,但不会切换。

·         当Master

和Slave同时崩溃(如机房断电),启动服务器后,将备份服务器最新的AOF备份拷贝至Master端,启动Master。一切完成后再启动Slave。

 

六、           运维监控

 

目前针对redis的监控比较少见,主要有redis-live、dredis等。但这些工具对redis性能消耗比较严重,实时监控比较困难。

redis的监控可以简单分为安全监控和性能监控。安全监控可以通过redis sentinel的输出日志判断Master和Slave的状态;性能监控需要收集redis的性能参数进行评估。因此二者并不冲突,通过shell脚本可以实现轻量级的监控,缺点是没有可视化的实时图表。

1、安全监控

Redis sentinel的输出日志简洁而且内容很丰富,包含redis的实时状态、故障切换时间以及sentinel自身的状态,并且针对故障消除也有详细的记录。通过对sentinel日志挖掘,找出故障时刻进行及时报警,并通知管理员。

由于sentinel默认不启用日志记录,可以通过以下方法记录日志:

visentinel-1M.sh

LOG=/redis/redis-2.8..3/log/sentinel-1M.log

redis-server/redis/redis-2.8.3/sentinel-1M.conf  --sentinel >>$LOG &

sentinel_monitor

#---------------------------------------------------------------------------------------

#--                           Redissentinel logmonitor                              --

#--                                                                                   --

#-- VERSION :1.0   Completed at2013-11-12                                           --

#-- SUPPORT : redis 2.6 orlater                                                      --

#-- FUNCTION:Sentinel logmonitor                                                     --

#--AUTHOR  : Icecream                                                               --

#---------------------------------------------------------------------------------------

脚本内容请联系作者。

如有报错信息,通过Email通知管理员,并将日志信息写入监控日志。

通过crontab定期调用sentinel_monitor.sh进行日志监控:

##每分钟执行一次

* * * * */redis/redis-2.8.3/log/sentinel_monitor.sh >/dev/null 2>&1

##每五分钟执行一次

*/5 * * * */redis/redis-2.8.3/log/sentinel_monitor.sh >/dev/null 2>&1

监控日志输出样例:

-------------------------------------------------------------------------------

2013-11-11 17:46:01  SentinelMonitor

-------------------------------------------------------------------------------

IP       :192.168.100.220

HOSTNAME :ice11g1

SENTINEL :sentinel-1M

ERRORS   :

[30220] 11 Nov 17:39:32.557 # +sdown slave192.168.100.220:6379 192.168.100.220 6379 @ ice11g1 192.168.100.221 6389

[30220] 11 Nov 17:45:23.388 *+demote-old-slave slave 192.168.84.129:6379 192.168.84.129 6379 @ ice11g1192.168.100.221 6389

[30220] 11 Nov 17:45:23.587 # -sdown slave192.168.84.129:6379 192.168.100.220 6379 @ ice11g1 192.168.100.221 6389

[30220] 11 Nov 17:45:33.426 * +slave slave192.168.100.220:6379 192.168.100.220 6379 @ ice11g1 192.168.100.221 6389

-------------------------------------------------------------------------------

-------------------------------------------------------------------------------

2013-11-11 17:47:01  SentinelMonitor

-------------------------------------------------------------------------------

IP       :192.168.100.220

HOSTNAME :ice11g1

SENTINEL :sentinel-1M

ERRORS   :

OK,no error in sentinel-1M.log

 

2、性能监控

redis_monitor

#---------------------------------------------------------------------------------------

#--                           Redis  monitor                              --

#--                                                                                   --

#-- VERSION :1.0   Completed at2013-11-12                                           --

#-- SUPPORT : redis 2.6 orlater                                                      --

#-- FUNCTION:redismonitor                                                     --

#--AUTHOR  : Icecream                                                               --

#---------------------------------------------------------------------------------------

脚本内容请联系作者!

脚本输出样例:

[2013-11-15 14:52:31]   9105.54M 116338688 1.05 135.59M

[2013-11-15 14:52:36]   9105.58M 116338688 1.05 135.59M

[2013-11-15 14:52:41]   9 105.58M116338688 1.05 135.59M

[2013-11-15 14:52:46]   9105.58M 116338688 1.05 135.59M

[2013-11-15 14:52:51]   9105.58M 116338688 1.05 135.59M

[2013-11-15 14:52:56]   9105.58M 116338688 1.05 135.59M

[2013-11-15 14:53:01]   9105.54M 116338688 1.05 135.59M

[2013-11-15 14:53:06]   9105.54M 116338688 1.05 135.59M

[2013-11-15 14:53:11]   10105.56M 116338688 1.05 135.59M

[2013-11-15 14:53:16]   10105.60M 116338688 1.05 135.59M

[2013-11-15 14:53:21]   10105.56M 116338688 1.05 135.59M

[2013-11-15 14:53:26]   10105.63M 116338688 1.05 135.59M

[2013-11-15 14:53:31]   10105.60M 116338688 1.05 135.59M

[2013-11-15 14:53:36]   10105.56M 116338688 1.05 135.59M

通过输出日志可以手工绘制曲线图:

修改人:向焱

文章摘自:

http://blog.sina.com.cn/s/blog_75ad98f30101fwqj.html

=======================================================================

二、搭建keepalived主从关系

tar xvf keepalived-1.2.12.tar.gz

cd keepalived-1.2.12

yum -y install openssl

yum -y install popt-devel

./configure --prefix=/usr/local/keepalived

make

make install

cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/

cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

mkdir /etc/keepalived

cd /usr/local/keepalived/etc/keepalived/

cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/

ln -s /usr/local/keepalived/sbin/keepalived /usr/sbin/

chkconfig keepalived on

chkconfig --add keepalived

vim /etc/keepalived/keepalived.conf

主配置文件

! Configuration File for keepalived

global_defs {

notification_email {

[email protected]

}

notification_email_from [email protected]

smtp_server 127.0.0.1

smtp_connect_timeout 30

router_id LVS_DEVEL

}

vrrp_instance VI_1 {

state MASTER

interface eno16777728

virtual_router_id 203

priority 120

advert_int 1

authentication {

auth_type PASS

auth_pass 11113456

}

virtual_ipaddress {

192.168.100.119

}

}

从配置文件

! Configuration File for keepalived

global_defs {

notification_email {

[email protected]

}

notification_email_from [email protected]

smtp_server 127.0.0.1

smtp_connect_timeout 30

router_id LVS_DEVEL

}

vrrp_instance VI_1 {

state BACKUP

interface eno16777728

virtual_router_id 203

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass 11113456

}

virtual_ipaddress {

192.168.100.119

}

}

cd /etc/keepalived/

启动keepalived

/etc/init.d/keepalived start

重启keepalived

/etc/init.d/keepalived restart

关闭keepalived

/etc/init.d/keepalived stop

时间: 2024-10-09 07:01:10

redis+keepalived高可用搭建的相关文章

Redis + keepalived 高可用群集搭建

本次实验环境介绍: 操作系统: Centos 7.3 IP : 192.168.10.10 Centos 7.3 IP : 192.168.10.20  VIP    地址   : 192.168.10.254 软件版本介绍: redis : redis-3.2.8 下载链接: http://download.redis.io/releases/redis-3.2.8.tar.gz keepalived : keepalived-1.2.10  下载链接: http://www.keepaliv

keepalived高可用搭建

- [1. keepalived 简介 ##](#1-keepalived-简介-) - [1. keepalived](#1-keepalived) - [2. 安装keepalived](#2-安装keepalived) - [2. keepalived 高可用配置 ##](#2-keepalived-高可用配置-) - [1. 安装keepalived](#1-安装keepalived) - [2. 配置keepalived以实现虚拟IP绑定](#2-配置keepalived以实现虚拟ip

Ubuntu构建LVS+Keepalived高可用负载均衡集群【生产环境】

1.环境说明: 系统版本:Ubuntu 14.04 LVS1物理IP:14.17.64.2   初始接管VIP:14.17.64.13 LVS2物理IP:14.17.64.3   初始接管VIP:14.17.64.14 真实web服务器IP:14.17.64.4-12 实现效果:去往14.17.64.13或14的报文,转发给14.17.64.4-12中的一台服务器处理,实现负载均衡. 要求1:当一台真实web服务器故障后,自动把该IP从负载均衡中踢除,恢复后自动加入集群. 要求2:当一台LVS服

Ubuntu构建LVS+Keepalived高可用负载均衡集群【生产环境部署】

1.环境说明: 系统版本:Ubuntu 14.04 LVS1物理IP:14.17.64.2   初始接管VIP:14.17.64.13 LVS2物理IP:14.17.64.3   初始接管VIP:14.17.64.14 真实web服务器IP:14.17.64.4-12 实现效果:去往14.17.64.13或14的报文,转发给14.17.64.4-12中的一台服务器处理,实现负载均衡. 要求1:当一台真实web服务器故障后,自动把该IP从负载均衡中踢除,恢复后自动加入集群. 要求2:当一台LVS服

Nginx反向代理,负载均衡,redis session共享,keepalived高可用

相关知识自行搜索,直接上干货... 使用的资源: nginx主服务器一台,nginx备服务器一台,使用keepalived进行宕机切换. tomcat服务器两台,由nginx进行反向代理和负载均衡,此处可搭建服务器集群. redis服务器一台,用于session的分离共享. nginx主服务器:192.168.50.133 nginx备服务器:192.168.50.135 tomcat项目服务器1:192.168.50.137 tomcat项目服务器2:192.168.50.139 redis服

基于keepalived对redis做高可用配置---转载

关于keepalived的详细介绍,请移步本人相关博客:http://wangfeng7399.blog.51cto.com/3518031/1405785 功能 ip地址 安装软件 主redis 10.13.6.13 redis,keepalived 从redis 10.13.6.16 redis,keepalived VIP 10.13.6.17   一.redis主从搭建 1.redis安装 本文通过yum源的安装方式来安装(需要配置epel源),也可以通过源码编译的方式来安装 1 2 [

虚拟机 搭建LVS + DR + keepalived 高可用负载均衡

一:环境说明:   LVS-DR-Master:    10.3.0.82   LVS-DR-Backup:    10.3.0.70   VIP:                10.3.0.60   RealServer1:    10.3.0.69   RealServer1:    10.3.0.83   Centos:5.7    二:安装LVS和Keepalvied软件包   1. 下载相关软件包    mkdir /usr/local/src/lvs    cd /usr/loca

搭建LVS+Keepalived高可用负载集群

搭建LVS+Keepalived高可用负载集群 最近,本屌接到公司的任务,公司新上20台服务器,需要搭建一整套架构来运行公司的业务,其中有应用服务器,认证服务器,数据库服务器等.服务器基础架构中的应用服务器集群要有高可用性,且需要负载均衡.当我接到这个任务的时候,脑子里第一个想法就是LVS+Keepalived. 由于公司资金有限,直接上硬件的负载均衡设备是不可能的了,所以只好使用软件来实现,LVS在负载均衡集群中无疑是一种很好的方案,使用LVS可以同时分发10台以下的设备,用在我们这个项目中是

搭建LVS(DR模式)+Keepalived高可用群集,可跟做!!!

Keepalived的设计目标就是构建高可用的LVS负载均衡群集,可以调用ipvsadm工具来创建虚拟服务器.管理服务器池,而不仅仅用作双机热备.使用Keepalived构建LVS群集更加简便易用,主要优势体现在,对LVS负载调度器实现热备切换.提高可用性,对服务器池中的节点进行健康检查,自动移除失效节点,恢复后再重新加入. 在基于LVS(DR模式)+Keepalived实现的LVS群集结构中,至少包括两台热备的负载调度器,两台以上的节点服务器,本次实验以DR模式的LVS群集为基础,增加一台负载