Centos配置Keepalived 做双机热备切换
Centos配置Keepalived 做双机热备切换
系统环境:************************************************************两台服务器都装了 CentOS-5.2-x86_64 系统,安装了 Squid 服务。
Virtual IP : 192.168.30.20Squid1+Real Server 1 :网卡地址 (eth0):192.168.30.12Squid2+Real Server 2 :网卡地址 (eth0):192.168.30.13************************************************************软件列表:keepalived/software/keepalived-1.1.17.tar.gz openssl-develyum install openssl-devel***************************************************************配置:配置基于高可用 keepalived, 确定 LVS 使用 DR 模式1. 安装配置 keepalived1.1 安装# yum install openssl-devel ;安装 keepalived 依赖软件#ln -s /usr/src/kernels/`uname -r`-`uname -m`/ /usr/src/linux ;建立内核链接,编译 keepalived 支持 lvs 时需要#tar zxvf keepalived-1.1.17.tar.gz#cd keepalived-1.1.17#./configure --prefix=/usr --sysconf=/etcKeepalived configuration------------------------Keepalived version : 1.1.17Compiler : gccCompiler flags : -g -O2Extra Lib : -lpopt -lssl -lcryptoUse IPVS Framework : Yes ; 注意编译时一定要支持 lvsIPVS sync daemon support : YesUse VRRP Framework : YesUse LinkWatch : NoUse Debug flags : No#make#make install1.2 编辑 keepalived 配置文件#Vi /etc/keepalived/keepalived.confglobal_defs {notification_email {test@}notification_email_from root@localhostsmtp_server 127.0.0.1smtp_connect_timeout 30router_id LVS_DEVEL}vrrp_instance VI_1 {state MASTER # 备份服务器上将 MASTER 改为 BACKUPinterface eth0 # HA 监测网络接口virtual_router_id 51 # 主、备机的 virtual_router_id 必须相同priority 100 # 主、备机取不同的优先级,主机值较大,备份机值较小advert_int 2 # VRRP Multicast 广播周期秒数authentication {auth_type PASS #VRRP 认证方式auth_pass 1111 #VRRP 口令字}virtual_ipaddress {192.168.30.20 # VRRP HA 虚拟地址如果有多个VIP,继续换行填写}}virtual_server 192.168.30.20 80 {delay_loop 2 # 每隔 6 秒查询 realserver 状态lb_algo rr #lvs 算法lb_kind DR # Direct Routepersistence_timeout 50 # 同一IP 的连接60 秒内被分配到同一台realserver protocol TCP # 用 TCP 协议检查 realserver 状态real_server 192.168.30.12 80 {weight 3 #(权重)TCP_CHECK {connect_timeout 10 #(10秒无响应超时)nb_get_retry 3delay_before_retry 3connect_port 80}}real_server 192.168.30.13 80 {weight 3 #(权重)TCP_CHECK {connect_timeout 10 #(10秒无响应超时)nb_get_retry 3delay_before_retry 3connect_port 80}}}1.3 BACKUP 服务器同上配置,先安装 lvs 再按装 keepalived, 仍后配置 /etc/keepalived/keepalived.conf ,只需将红色标示的部分改一下即可 .global_defs {notification_email {test@}notification_email_from root@localhostsmtp_server 127.0.0.1smtp_connect_timeout 30router_id LVS_DEVEL}vrrp_instance VI_1 {state BACKUP # 备份服务器上将 MASTER 改为 BACKUPinterface eth0 # HA 监测网络接口virtual_router_id 51 # 主、备机的 virtual_router_id 必须相同priority 99 # 主、备机取不同的优先级,主机值较大,备份机值较小advert_int 2 # VRRP Multicast 广播周期秒数authentication {auth_type PASS #VRRP 认证方式auth_pass 1111 #VRRP 口令字}virtual_ipaddress {192.168.30.20 # VRRP HA 虚拟地址}}virtual_server 192.168.30.20 80 {delay_loop 2 # 每隔 6 秒查询 realserver 状态lb_algo rr #lvs 算法lb_kind DR # Direct Routepersistence_timeout 50 # 同一IP 的连接60 秒内被分配到同一台realserver protocol TCP # 用 TCP 协议检查 realserver 状态real_server 192.168.30.12 80 {weight 3 #(权重)TCP_CHECK {connect_timeout 10 #(10秒无响应超时)nb_get_retry 3delay_before_retry 3connect_port 80}}real_server 192.168.30.13 80 {weight 3 #(权重)TCP_CHECK {connect_timeout 10 #(10秒无响应超时)nb_get_retry 3delay_before_retry 3connect_port 80}}}2. 配置虚地址 : vi /etc/sysconfig/network-scripts/ifcfg-lo 添加DEVICE=lo:0IPADDR=192.168.30.20NETMASK=255.255.255.255ONBOOT=yesNAME=loopback3. 关闭 RealServer 的 ARP ,或者编辑 /etc/sysctl.conf, 修改系统变量net.ipv4.conf.eth0.arp_ignore=1net.ipv4.conf.eth0.arp_announce=1net.ipv4.ip_forward = 1#sysctl –p :使配置生效4. 启动 keepalived 服务#service httpd start#/etc/init.d/keepalived start查看keepalived的安装位置:# find / -name keepalived将keepalived作为服务添加到chkconfig中,并设置开机启动# chkconfig --add keepalived# chkconfig --level 35 keepalived on# chkconfig --list keepalivedkeepalived 0:关闭 1:关闭 2:关闭 3:启用 4:关闭 5:启用 6:关闭“各等级”包括2、3、4、5等级等级0表示:表示关机等级1表示:单用户模式等级2表示:无网络连接的多用户命令行模式等级3表示:有网络连接的多用户命令行模式等级4表示:不可用等级5表示:带图形界面的多用户模式等级6表示:重新启动5. 测试 lvs 服务是否正常5.1 通过浏览器访问http://192.168.30.20是否正常多次刷新浏览器,在主 LVS 上看连接数变化5.2 停止主 LVS 上的 keepalived 看看备份 keepalived 是否正常接管服务注:realserver如果为windows主机的话需要安装microsoft loopback,设置IP为VIP 确认之后搜索注册表,关键字"VIP"把搜到结果的每项里面的subnet mask都改成255.255.255.255然后重启即可。
有两台服务器如何做双机热备
有两台服务器如何做双机热备双机热备是一种常见的服务器配置方式,可以提高系统的可用性和容错性。
通过配置两台服务器,当其中一台服务器出现故障时,另一台服务器可以立即接管工作,确保系统的连续性和稳定性。
本文将介绍如何进行双机热备配置,以及配置过程中需要注意的问题。
一、双机热备的基本原理双机热备的基本原理是将两台服务器配置为主备关系。
其中一台服务器作为主服务器(Master),负责处理用户请求和业务逻辑;另一台服务器作为备服务器(Backup),处于待命状态,等待接管主服务器的工作。
主备服务器之间通过网络进行通信,保持数据的同步和一致性。
二、双机热备的配置步骤1. 确定主备服务器的角色和IP地址:首先需要确定哪台服务器将担任主服务器,以及每台服务器的IP地址。
主服务器通常配置为具备更高性能的服务器,而备服务器则配置为相对较低性能的服务器。
2. 安装并配置操作系统:在两台服务器上安装并配置相同版本的操作系统,确保操作系统的版本和配置相同,以保证数据的一致性。
常见的操作系统包括Windows Server和Linux等。
3. 安装并配置数据库和应用程序:根据实际需求,在主备服务器上安装并配置相同版本的数据库和应用程序。
数据库和应用程序的版本、配置和数据结构需要保持一致,以确保数据的同步和一致性。
4. 配置网络和通信:配置主备服务器之间的网络和通信,确保主备服务器可以相互通信并进行数据同步。
可以使用局域网(LAN)或广域网(WAN)进行通信,常见的网络通信协议包括TCP/IP等。
5. 配置双机热备软件:选择并安装适用于双机热备的软件,常见的软件包括Heartbeat、Keepalived和Pacemaker等。
这些软件可以监控主服务器的运行状态,一旦主服务器发生故障,备服务器可以立即接管。
6. 测试和验证:在配置完成后,进行测试和验证,确保主备服务器能够正常工作。
可以模拟主服务器宕机的情况,观察备服务器是否能够顺利接管,并能够继续处理用户请求和业务逻辑。
centos7安装配置LVS+keepalived高可用
centos7安装配置LVS+keepalived⾼可⽤Centos7-Lvs+Keepalived架构LVS+Keepalived介绍1 、 LVSLVS 是⼀个开源的软件,可以实现 LINUX 平台下的简单负载均衡。
LVS 是 Linux Virtual Server 的缩写,意思是 Linux 虚拟服务器。
⽬前有三种 IP 负载均衡技术( VS/NAT 、 VS/TUN 和 VS/DR );⼋种调度算法( rr,wrr,lc,wlc,lblc,lblcr,dh,sh )。
2 、 keepalivedKeepalived 是运⾏在 lvs 之上,是⼀个⽤于做双机热备( HA )的软件,它的主要功能是实现真实机的故障隔离及负载均衡器间的失败切换,提⾼系统的可⽤性。
运⾏原理keepalived 通过选举(看服务器设置的权重)挑选出⼀台热备服务器做 MASTER 机器, MASTER 机器会被分配到⼀个指定的虚拟 ip ,外部程序可通过该 ip 访问这台服务器,如果这台服务器出现故障(断⽹,重启,或者本机器上的 keepalived crash 等), keepalived 会从其他的备份机器上重选(还是看服务器设置的权重)⼀台机器做 MASTER 并分配同样的虚拟 IP ,充当前⼀台 MASTER 的⾓⾊。
选举策略选举策略是根据,完全按照权重⼤⼩,权重最⼤( 0 ~ 255 )的是 MASTER 机器,下⾯⼏种情况会触发选举。
1. keepalived 启动的时候;2. master 服务器出现故障(断⽹,重启,或者本机器上的 keepalived crash 等,⽽本机器上其他应⽤程序 crash 不算);3. 有新的备份服务器加⼊且权重最⼤。
配置实例lvs_vip : 172.16.10.188lvs1+keepalived 主: 172.16.10.102lvs2+keepalived 备: 172.16.10.142nginx1 : 172.16.10.162nginx2 : 172.16.10.167安装 ipvsadm 和 keepalived# yum -y install ipvsadm keepalived修改 keepalived 主的配置# vim/etc/keepalived/keepalived.confglobal_defs{notification_email{******@ #报警接收⼈,多个写多⾏}notification_email_from ******@ #报警发件⼈smtp_server #发送email时使⽤的smtp服务器地址smtp_connect_timeout 30 #smtp超时时间router_id LVS1 #表⽰运⾏keepalived服务器的⼀个标识,发邮件时显⽰在邮件主题的信息}#不使⽤SYNCGroup的话,如果路由有2个⽹段,⼀个内⽹,⼀个外⽹,每个⽹段开启⼀个VRRP实例,假设VRRP配置为检查内⽹,那么当外⽹出现问题时,VRRP会认为⾃⼰是健康的,则不会发送Master和Backup的切换,从⽽导致问题,SyncGroup可以把两个实例都放⼊SyncGroup,这样的话,Group⾥任何⼀个实例出现问题都会发⽣切换vrrp_sync_grouptest {group{loadbalance}}vrrp_instanceloadbalance {state MASTER #指定keepalived的⾓⾊,MASTER表⽰此主机是主服务器,BACKUP表⽰此主机是备⽤服务器interface eno16777736 #指定HA监测⽹络的接⼝lvs_sync_daemon_inteface eno16777736 #负载均衡器之间的监控接⼝,类似于HA HeartBeat的⼼跳线virtual_router_id 38 #虚拟路由标识,这个标识是⼀个数字,同⼀个vrrp实例使⽤唯⼀的标识。
使用keepalived实现对mysql主从复制的主备自动切换
keepalived实现对mysql主从复制的主备自动切换使用MySQL+keepalived是一种非常好的解决方案,在MySQL-HA环境中,MySQL 互为主从关系,这样就保证了两台MySQL数据的一致性,然后用keepalived实现虚拟IP,通过keepalived自带的服务监控功能来实现MySQL故障时自动切换。
实验环境中用两台主机搭建了一个mysql主从复制的环境,两台机器分别安装了keepalived,用一个虚IP实现mysql服务器的主备自动切换功能.模拟环境:VIP:192.168.1.197 :虚拟IP地址Master:192.168.1.198 :主数据库IP地址Slave:192.168.1.199 :从数据库IP地址备注:MySQL的主从同步配置不在此文档中说明(前提:主从同步已完成)安装步骤:1、keepalived的安装Yum install -y keepalivedChkconfig keepalived on2、keepalived.conf文件的配置Master:keepalived.confvi /etc/keepalived/keepalived.conf! Configuration File for keepalivedglobal_defs {notification_email {kenjin@}notification_email_from kenjin@smtp_connect_timeout 3smtp_server router_id MySQL-ha}vrrp_script check_run { #声明vrrp_script 的函数check_run script "/root/keepalived_check_mysql.sh" #监控MySQL的脚本interval 5}vrrp_sync_group VG1 {group {VI_1}}vrrp_instance VI_1 {state MASTER #指定主服务器节点为主节点,备用节点上设置需一致interface eth0 #指定虚拟IP的网络接口virtual_router_id 88 #VRRP组名,两个节点的设置必须一样,以指明各个节点属于同一VRRP组priority 100 #主节点的优先级(1-254之间),备用节点必须比主节点优先级低。
利用heartbeat实现三台主机自动切换网络参数(两主一备)
利用heartbeat实现三台主机自动切换网络参数(IP、MAC、Hostname)一、环境node0 eth0:192.168.32.30 service vip1:192.168.32.21 VMAC1:00:1E:68:1E:99:5Eeth1:10.160.100.30 heart RMAC:00:18:8B:8E:04:E2node1 eth0:192.168.32.31 service vip1:192.168.32.21 VMAC1:00:1E:68:1E:99:5Eeth1:10.160.100.31 heart vip2:192.168.32.22 VMAC2:00:1E:68:1E:88:5ERMAC:00:1E:68:1E:19:5Enode2 eth0:192.168.32.32 service vip2:192.168.32.22 VMAC2:00:1E:68:1E:88:5Eeth1:10.160.100.32 heart RMAC:00:1E:68:1E:16:7E实验要求:1、当node0的网络出现故障时,node1自动切换将自己的ip、hostname、mac 地址改成vip1、vman1、 nodevir1;故障恢复后node0自动切换回来,将自己的ip、hostname、mac改成vip1、vman1、nodevir,node1恢复自身的网络参数2、当node2的网络出现故障时,node1自动切换将自己的ip、hostname、mac 地址改成vip2、vman2、 nodevir2;故障恢复后node0自动切换回来,将自己的ip、hostname、mac改成vip2、vman2、nodevir2,node1 恢复自身的网络参数二、heartbeat安装(三台node操作一样)1、安装libnet[root@node1 ~]# tar -zxvf libnet-1.1.4.tar.gz[root@node1 ~]# cd libnet-1.1.4[root@node1 libnet-1.1.4]# ./configure[root@node1 libnet-1.1.4]# make;make install#libnet是一个高层次API工具,使用heartbeat需要用到他2、安装heartbeat[root@node1 ~]# tar -zxvf heartbeat-2.1.3.tar.gz[root@node1 ~]# cd heartbeat-2.1.3[root@node1 heartbeat-2.1.3]# ./ConfigureMe configure --disable-swig --disable-snmp-subagent[root@node1 heartbeat-2.1.3]# make ; make install[root@node1 heartbeat-2.1.3]# cp doc/ha.cf doc/haresource doc/anthkeys /etc/ha.d/[root@node1 heartbeat-2.1.3]# cp ldirectord/ldiretord.cf /etc/ha.d/ [root@node1 heartbeat-2.1.3]# grouadd -g 694 haclient[root@node1 heartbeat-2.1.3]# useradd -u 694 -g 694 hacluster#heartbeat的安装包中默认包含ldirectord插件,该插件主要用于管理负载均衡,为保证ldirectord可用还行安装perl-Mailtools三、配置1 node0配置1.1 创建网络参数修改脚本(/etc/ha.d/resource.d/Remac1)[root@node0 resource.d]# vim /etc/ha.d/resource.d/Remac1 #Remac1也可存放在/etc/rc.d/init.d目录#!/bin/bash#discription : Start Real ServerVMAC=00:1E:68:1E:99:5ERMAC=00:1E:68:1E:19:5EGATEWAY=192.168.32.254. /etc/rc.d/init.d/functionscase "$1" instart)echo "Replace eth0's Real Mac addr to Virtual Mac addr"/sbin/ifconfig eth0 down/sbin/ifconfig eth0 hw ether $VMAC/sbin/ifconfig eth0 up/sbin/ifconfig eth0 192.168.32.21 broadcast 192.168.32.255 netmask 255.255.255.0/bin/hostname nodevir/sbin/route add default gw $GATEWAY;;stop)echo "Restore eth0's Real Mac addr"/sbin/ifconfig eth0 down/sbin/ifconfig eth0 hw ether $RMAC/sbin/ifconfig eth0 up/sbin/ifconfig eth0 192.168.32.31 broadcast 192.168.32.255 netmask 255.255.255.0/bin/hostname node1/sbin/route add default gw $GATEWAY;;*)echo "Usage : $0 {start|stop}"exit 1esac1.2 heartbeat主配置文件(/etc/ha.d/ha.cf)[root@node1 ha.d]# vim /etc/ha.d/ha.cf#debugfile /var/log/ha-debuglogfile /var/log/ha-log#指名heartbeat的日志存放位置。
Centos 5.2+MYSQL+heartbeat双机互备
当前大多网站采用Linux +MYSQL+APACHE+PHP这种经典配置,如何防止单点失败造成的整个网站的不可用是网站管理者必须要考虑的问题,其中数据库的高可用性(Database server’s high availability)是重中之重。
对于数据库的高可用性,各商业软件的厂商都有各自的解决方案,比如Oracle OPS server和IBM DB2 (share-nothing architecture)。
最近MYSQL AB也发布了MYSQL cluster 软件,使用与IBM DB2类似的技术。
MySQL cluster可能会是日后最理想的方案,但是从资源、可集成度方面考虑,给出一个简单实用的方案借鉴。
本文介绍的是性价比比较高的一种: 使用Heartbeat 2.0配置Linux高可用性集群,同时使用Heartbeat也可以实现简单的web集群。
二、实现原理通过Linux HA 软件heartbeat 实现IP的自动漂移,即当一台服务器宕机后,浮动IP(整个cluster的对外IP )自动漂移到另外一台服务器。
通过Mysql自身的replication 实现不同机器上多个数据库的同步整体性能此方案将会降低MYSQL 1%左右的性能,可用性及数据安全性将大有提高,同时服务器的切换对终端使用者是透明的,终端应用不需要进行更改。
所需硬件:安装有双网卡的配置大致相同的服务器或工作机两台一条交叉网线(用于双机对连的心跳线)Linux HA 软件heartbeat (只支持两个节点),安装盘里集成的有这个软件的rpm包软件主页:[url]/[/url]Mysql软件软件主页:[url]/[/url]安装步骤:1、安装MYSQL#cd /opt#useradd mysql -d /usr/local/mysql -s /sbin/nologin#tar -zxvf mysql-5.1.29-rc.tar.gz#cd mysql-5.1.29-rc# ./configure --prefix=/usr/local/mysql --with-mysqld-user=mysql --without-debug --with-big-tables --with-charset=gbk--with-collation=gbk_chinese_ci --with-extra-charsets=all--with-pthread --enable-thread-safe-client --enable-assembler--without-isam --without-innodb --without-ndb-debug --with-mysqli #make && make install#/usr/local/mysql/bin/mysql_install_db //初始化数据库#chown -R mysql.mysql /usr/local/mysql/ //设置目录宿主#cp /usr/local/mysql/share/mysql/f /etc/f //复制配置文件#cp support-files/mysql.server /etc/rc.d/init.d/mysqld //设置启动文件#chmod 700 /etc/rc.d/init.d/mysqld#/usr/local/mysql/bin/mysqld_safe --user=mysql &#/etc/rc.d/init.d/mysqld start在启动mysql时报错查看日志发现以下错误:将/etc/f文件中的skip-federated注释掉即可#chkconfig --add mysqld#chkconfig --level 2345 mysqld on#ln -s /usr/local/mysql/bin/mysql /sbin/mysql#ln -s /usr/local/mysql/bin/mysqladmin /sbin/mysqladmin#mysqladmin –u root password 1q2w3e //设置root 密码#配置库文件搜索路径#echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf#ldconfig#添加/usr/local/mysql/bin到环境变量PATH中#export PATH=$PATH:/usr/local/mysql/binmysqlB也按以上的方式进行安装2、mysqlA设置设置同步数据库:在这里我就用test数据库来做测试,在test数据库里新建一个data表,并添加一些数据,具体操作如下:#mysql –u root –p1q2w3emysql> create table data(name VARCHAR(20), address VARCHAR(50), phoneVARCHAR(20));mysql>insert into data(name,address,phone) values('jhone','beijing','138000000'); mysql>select * from data;设置数据库同步帐户:mysql>GRANT REPLICATION SLAVE,REPLICATIONCLIENT,RELOAD,SUPER ON *.* TO 'backup'@'10.0.0.2' IDENTIFIED BY 'qawsed';(授与从10.0.0.2主机上登录用户backup数据复制权限,4.02版本以前用:GRANT FILE ON *.* TO backup@10.0.0.2 IDENTIFIED BY 'qawsed';) mysql>flush privileges;修改配置文件:停止mysql服务[root@mysqlA opt]#service mysqld stop建立用于更新日志的目录,并给于mysql的权限[root@mysqlA opt]# mkdir /var/log/mysql[root@mysqlA opt]# chown mysql.mysql /var/log/mysql/更改Mysql配置文件/etc/f[root@mysqlA opt]# vi /etc/fserver-id=1 //服务器ID号log-bin=mysql-binlog-bin=/var/log/mysql/updatelog //启用更新日志binlog-do-db=test //表示需要备份的数据库是test这个数据库replicate-same-server-idmaster-host=10.0.0.2 //指定主服务器IPmaster-user=backup //指定在主服务器上可以同步的帐号master-password=qawsed //指定帐号对应的密码master-connect-retry=60 //断点重试间隔为60秒replicate-do-db=test //表示同步test数据库binlog-ignore-db=mysql //不同步mysql数据库把test进行备份[root@mysqlA opt]# service mysqld start //先启动mysql[root@mysqlA opt]# /usr/local/mysql/bin/mysqldump -h localhost -u root -p1q2w3e test >test.sql[root@mysqlA opt]#scp test.sql root@10.0.0.2:/opt //(将test.sql 复制到mysqlB的/opt目录下)至此mysqlA服务器上有关mysql的设置已完成,下一步开始配置mysqlB设置mysqlB设置数据库同步帐户:mysql>GRANT REPLICATION SLAVE,REPLICATIONCLIENT,RELOAD,SUPER ON *.* TO 'backup'@'10.0.0.1' IDENTIFIED BY 'qawsed';(授与从10.0.0.1主机上登录用户backup数据复制权限,4.02版本以前用:GRANT FILE ON *.* TO backup@10.0.0.1 IDENTIFIED BY 'qawsed';) mysql>flush privileges;修改配置文件:停止mysql服务[root@mysqlA opt]#service mysqld stop建立用于更新日志的目录,并给于mysql的权限[root@mysqlA opt]# mkdir /var/log/mysql[root@mysqlA opt]# chown mysql.mysql /var/log/mysql/更改Mysql配置文件/etc/f[root@mysqlA opt]# vi /etc/fserver-id=2 //服务器ID号log-bin=mysql-binlog-bin=/var/log/mysql/updatelog //启用更新日志binlog-do-db=test //表示需要备份的数据库是test这个数据库replicate-same-server-idmaster-host=10.0.0.1 //指定主服务器IPmaster-user=backup //指定在主服务器上可以同步的帐号master-password=qawsed //指定帐号对应的密码master-connect-retry=60 //断点重试间隔为60秒replicate-do-db=test //表示同步test数据库binlog-ignore-db=mysql //不同步mysql数据库还原从mysqlA备份过的test.sql#service mysqld start# mysql -u root -p1q2w3e test <test.sql重启两边的mysql服务查询配置Show Slave status:此处Slave_IO_Running ,Slave_SQL_Running 都应该是yes,表示从库的I/O,Slave_SQL线程都正确开启.在Mysql中可通过以下命令来查看主从状态show master status 查看master状态show slave status 查看slave状态show processlist G 查看当前进程stop slave 暂时停止slave进程start slave 开始slave进程在primary服务器上MySQL命令符下输入:mysql>show master status;mysql>show slave status\G;如果出现以错误:解决办法:在/etc/f 的[mysqld]下面加上replicate-same-server-id 参数到此mysql的双机互备已基本完成,在两台服务器的mysql数据库中任意添加数据,都可以同步到对端服务器上安装配置heartbeat:Heartbeat下载地址如下:[url]/repositories/server:/ha-clusterin g:/lha-2.1/CentOS_5/i386/[/url]下载对应的版本,在此我的系统是centos 5.2rpm -ivh libnet-1.1.2.1-2.1.i386.rpmrpm -ivh heartbeat-pils-2.1.4-2.1.i386.rpmrpm -ivh --nodeps heartbeat-stonith-2.1.4-2.1.i386.rpmrpm -ivh --nodeps heartbeat-2.1.4-2.1.i386.rpmrpm -ivh --nodeps heartbeat-devel-2.1.4-2.1.i386.rpmrpm -ivh --nodeps heartbeat-ldirectord-2.1.4-2.1.i386.rpmrpm -ivh ipvsadm-1.24-8.1.i386.rpm配置HA的各配置文件:复制配置文件[root@mysqlA opt]# cp/usr/share/doc/packages/heartbeat/authkeys /etc/ha.d/[root@mysqlA opt]# cp/usr/share/doc/packages/heartbeat/haresources /etc/ha.d/[root@mysqlA opt]# cp /usr/share/doc/packages/heartbeat/ha.cf /etc/ha.d/配置心跳的加密方式:authkeys[root@mysqlA opt]#vi /etc/ha.d/authkeys#如果使用双机对联线(双绞线),可以配置如下:auth 11 crc#存盘退出,然后[root@mysqlA opt]#chmod 600 authkeys配置心跳的监控:haresources[root@mysqlA opt]#vi /etc/ha.d/haresources#各主机这部分应完全相同。
深信服负载均衡主备双机配置
深信服负载均衡主备双机一、主备双机配置界面主备』设置双机热备功能。
界面如下图所示:名称』自定义设备的名称,方便区分当前哪台设备处于主模式。
状态』中[启用]用来启用双机,[禁用]用来禁用双机。
『超时时间』当在超时时间内备机一直无法收到主机发送的心跳包,则认为主机超时,备机主动切换成主机。
『通信介质』选择连接双机的接口,可以用串口和空闲的网口。
选择网口后,需要为该网□配置一个IP地址,只要不与正在使用的IP地址冲突即可。
建议选择网□作为通信介质,通过网口来做双机切换比串口切换花费的时间短。
通信介质选择网口,则可以实现会话同步。
『MAC同步』用于设置双机切换是否同步MAC地址。
『同步网□列表』用于设置切换双机的时候同步哪些接□的MAC地址,需要开启MAC同步才会显示该选项。
『通信介质故障检测』通过网络数据包来检测对端是否存在,避免两台设备成为主机导致IP冲突。
两台设备的通信介质故障检测网□需要接到同一个广播域,可以选择已经使用的网□,也可以选择空闲网□,选择空闲网□需要设置IP地址。
界面如下:同步配置』点击向备机同步配置。
故障切换』用于设置双机切换条件,符合此处设置的条件则进行主备切换,界面如下:『状态』用于设置是否启用双机故障切换检测,『检测类型』分为『掉线检测』、『ARP检测』、『健康检查』3种,设置后点击添加可以组合使用多种检测方法,[删除可以取消选中的检测方法。
『掉线检测』当检测到网口物理状态不正常则进行切换。
『ARP检测』AD设备向选择的接□发送ARP广播,如果监视主机里填写的IP地址有回应ARP,则判断正常。
该监视主机地址需要填写与AD设备接□同一网段的地址。
界面如下:『健康检查』通过网络接□处设置的链路健康检查机制来检测,当选择健康检查后,只有启用了链路健康检查的链路才可选,界面如下:故晖切换状态检刪类型 检测列克切换条件主备状态』分为“主机”、“备机”,可通过右边的切换按钮进行主备切换。
基于keepalived故障转移(双机热备)
目录第一章keepalived安装 (1)第二章配置节点主机 (3)第三章虚拟IP漂移测试 (4)第四章通过ARP测试 (5)第五章基于WEB的应用的测试 (6)第一章keepalived安装1、进入10.210.32.37群集主机安装操作系统、挂载光盘镜像、配置本地yum 源节点1-IP:10.210.32.41节点2-IP:10.210.32.42虚拟漂移地址:10.210.32.462、进入keepalived官网下载keepalived安装包,下载下载1.4.13、将keepalived分别上传到两个节点的/home/kp文件夹下mkdir kpchmod 775 kp4、解压keepalived安装包5、安装keepalived指定安装路径./configure –prefix=/usr/local/keepalived(提前在/usr/local/ 下建立目录keepalived,并chmod权限)6、安装openssl包安装完毕,提示openssl包未安装我们需要安装openssl-devel的开发包7、再次运行第5步安装脚本提示未安装ipvs包,同样需要安装libnl和libnl-3两个开发包提示头错误,需要安装libnfnetlink的devel包Yum 源里并没有libnl的包,需要去网上下载,放在/home/kp目录下,再进行安装8、再次运行第5步安装脚本提示成功安装9、进入安装目录#cd /usr/local/keepalived查看子目录的完整性,一般包含4个子目录至此,keepalived安装完毕,同样的步骤安装10.210.32.42即可第二章配置节点主机1、配置MASTER主机(10.210.32.41)将keepalived配置文件拷贝到/etc目录下面,因为启动的时候是进入/etc目录下面去获取配置信息#cd /usr/local/keepalived/etc/#cp –r keepalived /etc/ 整体将拷贝到/etc下面2、配置keepalived.conf文件进入/etc/keepalived/ 目录下面只有两个文件,一个是keepalived,一个是samples#vi keepalived.conf! Configuration File for keepalivedglobal_defs {#将global defs,此函数为配置邮件的函数,可以暂时注释掉,保留前后大括号即可# notification_email {# acassen@firewall.loc# failover@firewall.loc# sysadmin@firewall.loc# }# notification_email_from Alexandre.Cassen@firewall.loc# smtp_server 192.168.200.1# smtp_connect_timeout 30# router_id LVS_DEVEL# vrrp_skip_check_adv_addr# vrrp_strict# vrrp_garp_interval 0# vrrp_gna_interval 0}vrrp_instance VI_1 {state MASTER #主机MASTER,备机为BACKUPinterface eth0 #网卡信息一定写对,不一定全是eth0virtual_router_id 51 #主、备的值都要写成一致51,表示属于同一个虚拟路由priority 90 #根据权重的不同,决定主备,备机一定要小于主机advert_int 1 #写成一样authentication {auth_type PASS #认证的方式写一样auth_pass 1111 #密码写一样}virtual_ipaddress {10.210.32.46 # 虚拟IP,漂移使用}}2、配置BACKUP主机(红色为需要修改的地方)vrrp_instance VI_1 {state BACKUP#主机MASTER,备机为BACKUPinterface eth0 #网卡信息一定写对,不一定全是eth0virtual_router_id 51 #主、备的值都要写成一致51,表示属于同一个虚拟路由priority 89 #根据权重的不同,决定主备,备机一定要小于主机advert_int 1 #写成一样authentication {auth_type PASS #认证的方式写一样auth_pass 1111 #密码写一样}virtual_ipaddress {10.210.32.46 # 虚拟IP,漂移使用}}第三章虚拟IP漂移测试1、启动keepalived服务#cd /usr/local/keepalived/sbin#./keepalived2、查看keepalived进程,正常启动的keepalived有三个进程ps aux | grep keepalived3、杀掉keepalived进程Killall keepalived4、漂移测试(1)、在10.208.0.212上长ping虚拟IPPing 10.210.32.46 –t(2)、关掉10.210.32.41上的keepalived再ping虚拟IP,观察ping数据包是否中断,如果中断,证明IP漂移不成功,如果能ping通,则证明IP已经漂移(3)、关掉10.210.32.42上的keepalived,至此,MASTER和BACKUP都已经关闭再ping 虚拟IP没有故障转移节点了,当然是无法ping通虚拟IP了第四章通过ARP测试1、#ip a 查看虚拟IP2、同理、killall keeplived all,即可看到10.210.32.46消失输入arp-a即可查看到两个IP地址来源于一张网卡第五章基于WEB的应用的测试1、安装nginx略分别在MASTER和BACKUP启动nginx#/usr/local/keepalived/sbin/nginx2、修改静态页面文件,方便测试3、MASTER——BACKUP的切换测试(1)、上图可以看见虚拟IP10.210.32.46目前在10.210.32.42节点上(2)、停止10.210.32.42上的keepalived的服务,再访问10.210.32.46,结果如下图,指向了10.210.32.41上(3)至此,WEB测试完毕。
dockerNginxLVSkeepalived搭建分布式双机主从热备
dockerNginxLVSkeepalived搭建分布式双机主从热备概述准备在虚拟机的centos7上搭建搭建docker+Nginx+LVS+keepalived搭建分布式双机主从热备,其架构图如下安装docker(如已经安装,请忽略)yum install docker #该命令安装过程中的提示一律填 y 再回车即可安装好docker后设置docker开机启动systemctl start docker.servicesystemctl enable docker.servicedocker 里面安装Nginx直接拿最新的nginx镜像docker pull nginx镜像是否成功下载使用下面命令查看是否存在nginx镜像docker images切换到当前用户跟目录,然后建立一个nginx目录,并在nginx 目录下新建nginx_master和nginx_backup; 然后分别在这两个文件夹下建立conf, logs, html 三个文件夹(这里之所以要建立nginx_backup是因为方便到时候虚拟机克隆,也可以不建立nginx_backup)先建立启动一个nginx容器docker run -d --name nginx nginx切换目录到nginx_master目录下,然后将docker下的nginx 容器的nginx.conf和conf.d文件copy到nginx_master nginx_backup 的conf下docker cp nginx:/etc/nginx/nginx.conf $PWD/confdocker cp nginx:/etc/nginx/conf.d $PWD/conf复制完成后删除刚才启动nginx容器docker stop nginxdocker rm nginxdocker ps -a复制完成后在nginx_master目录下查看复制完成后的目录结构ll $PWD/*在nginx_master/html目录下新建一个index.html文件,随便输入文字关闭防火墙systemctl stop firewalld.service禁止防火墙开机启动systemctl disable firewalld.service确保文件创建好后,就可以按照下面命令创建nginx容器docker run -d -p 80:80 -p 443:443 --name nginx_master --restart=always --privileged=true -v /root/nginx/nginx_master/html:/usr/share/nginx/html -v /root/nginx/nginx_master/conf/nginx.conf:/etc/nginx/nginx.con f -v /root/nginx/nginx_master/conf/conf.d:/etc/nginx/conf.d -v /root/nginx/nginx_master/logs:/var/log/nginx nginx# 以上是命令,下面是命令的解析-d # 表示在一直在后台运行容器-p 80:80 # 对端口进行映射,将本地80端口映射到容器内部的80端口--name # 设置创建的容器名称-v # 将本地目录(文件)挂载到容器指定目录;--restart=always是重启策略,当docker服务重启后,容器也会自动启动(必须,否则后面启动虚拟机,需要手动启动nginx)--privileged=true 使创建的容器拥有root权限(必须,没有的话,启动nginx报错,说没有权限)如果启动的时候不带上–privileged=true,会出现 nginx: [alert]could not open error log file: open() “/var/log/nginx/error.log” failed (13: Permission denied)启动完查看容器的启动状态是否正常docker ps -a启动完,访问nginx_master的nginx,看看是否能访问到index.html的内容安装keepalived安装命令yum install keepalived -y查看是否安装成功,使用如下命令能看到版本号,表示成功rpm -q -a keepalived使用yum命令安装keepalived成功后,在/etc/keepalived目录下有keepalived.conf配置文件,高可用配置就是主要配置该文件主机的keepalived.conf的配置内容如下! Configuration File for keepalivedglobal_defs {notification_email {*************}************************************smtp_server smtp_connect_timeout 30router_id LVS_DEVELvrrp_skip_check_adv_addrvrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0}vrrp_script chk_nginx {script '/root/keepalived/nginx_check.sh' # 检查nginx状态的脚本interval 2weight 3}vrrp_instance VI_1 {state MASTER #备份服务器上将MASTER改为BACKUPinterface ens33 #这个需要根据你服务器的网卡进行选择,我这里是ens33virtual_router_id 51 #这个id必须与备机的id一样priority 100 #备份服务上将100改为小于100,可配置成90 advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.247.120 #这个IP前三位最后与服务器的IP前三位相同,有多个vip可在下面继续增加}track_script {chk_nginx}}切换到当前用户目录空间,建立一个keepalived目录,这个目录存放的是nginx是否正常启动的检测脚本进入keepalived目录,创建nginx_check.sh文件,文件内容如下#!/bin/bash#version 0.0.1#A=`ps -C nginx --no-header |wc -l`if [ $A -eq 0 ];thensystemctl restart dockersleep 3if [ `ps -C nginx --no-header |wc -l` -eq 0 ];thensystemctl stop keepalivedfifi# 脚本说明:当nginx进程不存在时,会自动重启docker服务,docker服务启动时会自动启动nginx容器;再次检查nginx进程,如果不存在,就停止keepalived服务,然后NGINX_BACKUP主机会自动接替NGINX_MASTER的工作。
Keepalived双机热备(LVS+Keepalived高可用性群集)
Keepalived双机热备(LVS+Keepalived高可用性群集)一,根据实验要求规划网络拓扑。
注:根据实验要求搭建网络拓扑,具体规划如图。
二,配置Keepalived双机热备主(备)服务器。
注:安装相关支持软件包,编译安装Keepalind。
主配置文件在/etc/keepalived/keepalived.conf注:配置主Keepalived服务器。
Notification_email 是邮件相关信息,以邮件的方式向管理员发送程序相关的信息,这里可以不做修改。
Router_id本服务器的名称。
Vrrp_instance 定义一个实例。
State 热备状态MASTER为主,SLAVE为备份。
Interface 承载VIP地址的物理接口。
Virtual_router_id 虚拟服务器的ID号,一个实例中的所有服务器的Virtual_router_id要保持一致。
Priority 优先级,最高为100。
Advert_int 通告时间间隔(秒)。
Authentication 认证方式,同一个实例的个服务器要保持一致。
Virtual_ipaddress漂移地址(VIP)。
注:备份(热备)服务器的配置,需要修改的地方有本服务器名称,热备状态和优先级。
(这里使用的是eth5网卡)注:在主(热备)服务器上可以查看到VIP。
注:备份(热备)服务器上面查看不到VIP。
三,搭建WEB服务器。
注:搭建两台WEB服务器,IP分别为192.168.1.4和192.168.1.5。
四,部署LVS+Keepalived高可用性群集。
注:修改内核参数,群集相关请参考“LVS负载均衡群集”。
注:修改Keepalived服务器配置,添加虚拟web服务器(主备服务器的配置一样即可)。
Virtual_server 虚拟服务器IP(即VIP)lb_algo 负载调度算法。
Lb_kind群集类型。
Real_server指定真实WEB服务器IP及服务(端口号)。
linux keepalived vip 切换原理
linux keepalived vip 切换原理
Keepalived是一个高可用性的解决方案,它使用虚拟IP(VIP)
来实现在多个服务器之间进行故障转移。
当一台服务器宕机或者出现
故障时,其他服务器会自动接管其VIP,继续提供服务。
在这个过程中,Keepalived会实时监控服务器的状态,并根据预设的规则和策略进行
故障转移。
其切换原理如下:
1.主备切换:
每个Keepalived设备都有一个VIP,其中有一个设备被配置为主设备,另一个被配置为备份设备。
2.VRRP路由守护进程:
它是一个由Keepalived执行的进程,用于检查VIP和备用服务
器是否正常运行。
3.活动和备用VRRP路由守护进程的切换:
当主设备宕机时,VIP将从主设备移动到备用设备,VRRP路由守
护进程自动从主设备切换到备用设备。
4. ARP劫持:
当备用设备被提拔为主设备时,它会通过广播ARP请求来更改网
络拓扑,将VIP的MAC地址与其IP地址进行映射。
其他设备在收到这
个ARP请求后会更新自己的缓存,确保能够正确访问VIP。
5.恢复:
一旦主设备回到正常状态,它将重新接手原本的VIP和VRRP路
由守护进程。
这个过程将自动进行,不会对系统造成任何停机时间。
综上所述,Keepalived的VIP切换原理是基于VRRP路由协议、ARP劫持和后台进程监控等技术实现的。
它可以高效、快速地实现服务器的故障转移,确保系统的高可用性和稳定性。
keepalived双机热备nginx的配置方法
keepalived双机热备nginx的配置⽅法nginx⽬前是我最常⽤的反向代理服务,线上环境为了能更好的应对突发情况,⼀般会使⽤keepalived双机热备nginx或者使⽤docker跑nginx集群,keepalived是⽐较传统的⽅式,虽然⽤docker跑nginx集群更⽅便,但传统的⽅式总是有他的可取之处,并且多学⼀些东西也很好。
以后也会写如何使⽤docker跑nginx集群。
环境准备: 2台centos: 192.168.0.105 和192.168.0.118, 虚拟IP(VIP)为192.168.0.119配置keepavlived 分别在105和118上安装keepalivedyum install keepalived 准备⼼跳⾓本 keepalived的配置相当灵活,可以定时执⾏⾓本命令,⽤于⼼跳检查,⽐如,我们访问nginx发现nginx不可访问时,就关闭keepalived,从⽽切换到从nginx来实现不间断的服务⽀持。
vi /etc/keepalived/keepalived.conf#!/bin/bashcount=0for (( k=0; k<2; k++ ))docheck_code=$( curl --connect-timeout 3 -sL -w "%{http_code}\\n" http://localhost:81 -o /dev/null )if [ "$check_code" != "200" ]; thencount=count +1continueelsecount = 0breakfidoneif [ "$count" != "0" ]; thenkillall keepalivedexit 1elseexit 0fi 设置118机器上的keepalived为主节点,105机器上的keepalived为从节点,它们两个的配置⽂件差不太多vi /etc/keepalived/keepalived.conf 118机器keepalived的配置⽂件! Configuration File for keepalivedvrrp_script chk_nginx {script "/etc/keepalived/check_nginx.sh" # ⼼跳检测⾓本interval 2 #脚本执⾏间隔,每2s检测⼀次weight -5 #脚本结果导致的优先级变更,检测失败(脚本返回⾮0)则优先级 -5fall 3 #检测连续2次失败才算确定是真失败。
Linux 中keepalived双机热备
一按拓扑图搭建好存储设备
二安拓扑搭建好web节点服务器
三配置主调度服务keepalived服务器1安装工具
2安装ipvsadm为了一会查看
3安装keepalived源码包
4添加系统服务开启服务
5编写keepalived配置文件
5.1配置文件说明
6重新启动keepalived服务查看虚拟ip
四配置次调度服务keepalived服务器
1安装工具
2安装ipvsadm为了一会查看
3安装keepalived源码包
4添加系统服务开启服务
5编写keepalived配置文件
6在客户段测试ping能ping通
7去主调度器把主调度器的课keepalived服务关掉
8再在客户端上ping还能同
9去次调度服务上查看虚拟ip
10再在主调度器上开启服务查看虚拟ip
11再在此服务器上验证查看虚拟ip。
服务器双机热备方案(二)
服务器双机热备方案(二)引言概述:服务器双机热备方案旨在确保服务器系统的高可用性和容错性。
本文将重点介绍一种有效的服务器双机热备方案(二)的实施细节,该方案通过采用主备切换、故障检测和数据同步等关键功能,提供了服务器系统在发生故障时的无缝切换和数据保护能力。
正文内容:1. 主备切换功能- 实现主机与备机之间的自动切换,并在主机故障时快速将备机接管。
- 采用心跳检测机制,及时探测主机状态,以确保主备机状态同步。
- 利用负载均衡技术,使流量在主备机之间平衡分担,提高系统的整体性能。
2. 故障检测功能- 使用故障检测模块监控服务器状态,包括硬件故障、网络故障等。
- 实时检测服务器运行状态,并将故障信息报警通知管理员。
- 根据故障情况执行相应的处理策略,如自动切换到备机、重启服务器等。
3. 数据同步功能- 使用数据同步机制确保主备机之间的数据实时同步。
- 利用增量同步技术,减少数据传输量和同步时间。
- 设计数据冲突解决方案,保证数据的一致性和完整性。
4. 灾难恢复功能- 配置灾难恢复模块以应对重大故障和灾难事件。
- 建立灾难恢复计划,包括数据备份、灾难恢复演练等环节。
- 针对不同灾难情况制定灵活有效的应急措施,最大限度地减少系统故障带来的影响。
5. 性能优化功能- 优化服务器配置,提升系统性能,包括硬件配置、网络优化等方面。
- 针对性能瓶颈进行深入分析和优化,提高系统的响应速度和吞吐量。
- 使用监控工具实时监测服务器性能,并根据监控结果进行优化调整。
总结:通过实施服务器双机热备方案(二),可以确保服务器系统具备高可用性和容错性。
主备切换功能、故障检测功能、数据同步功能、灾难恢复功能和性能优化功能的综合应用,使得服务器系统在故障发生时能够迅速实现自动切换,并提供数据保护和灾难恢复能力。
不仅如此,通过性能优化功能的实施,服务器系统还能提供更好的性能表现,为用户提供更好的服务体验。
深信服负载均衡主备双机配置
深信服负载均衡主备双机一、主备双机配置界面『主备』设置双机热备功能。
界面如下图所示:『名称』自定义设备的名称,方便区分当前哪台设备处于主模式。
『状态』中[启用]用来启用双机,[禁用]用来禁用双机。
『超时时间』当在超时时间内备机一直无法收到主机发送的心跳包,则认为主机超时,备机主动切换成主机。
『通信介质』选择连接双机的接口,可以用串口和空闲的网口。
选择网口后,需要为该网口配置一个IP地址,只要不与正在使用的IP地址冲突即可。
建议选择网口作为通信介质,通过网口来做双机切换比串口切换花费的时间短。
通信介质选择网口,则可以实现会话同步。
『MAC同步』用于设置双机切换是否同步MAC地址。
『同步网口列表』用于设置切换双机的时候同步哪些接口的MAC地址,需要开启MAC 同步才会显示该选项。
『通信介质故障检测』通过网络数据包来检测对端是否存在,避免两台设备成为主机导致IP冲突。
两台设备的通信介质故障检测网口需要接到同一个广播域,可以选择已经使用的网口,也可以选择空闲网口,选择空闲网口需要设置IP地址。
界面如下:『同步配置』点击向备机同步配置。
『故障切换』用于设置双机切换条件,符合此处设置的条件则进行主备切换,界面如下:『状态』用于设置是否启用双机故障切换检测,『检测类型』分为『掉线检测』、『ARP检测』、『健康检查』3的检测方法。
『掉线检测』当检测到网口物理状态不正常则进行切换。
『ARP检测』AD设备向选择的接口发送ARP广播,如果监视主机里填写的IP地址有回应ARP,则判断正常。
该监视主机地址需要填写与AD设备接口同一网段的地址。
界面如下:『健康检查』通过网络接口处设置的链路健康检查机制来检测,当选择健康检查后,只有启用了链路健康检查的链路才可选,界面如下:『主备状态』分为“主机”、“备机”,可通过右边的切换按钮进行主备切换。
界面如下:『升级模式』升级模式在有升级需要时才手动启用,启用时不会发生主备切换,并且不会同步配置。
服务器双机热备教程
服务器双机热备教程服务器双机热备是一种提高服务器可用性和可靠性的技术手段,也被称为高可用性集群。
本文将详细介绍服务器双机热备的原理、配置步骤和注意事项。
一、原理介绍服务器双机热备的原理是将两台服务器配置为主备关系,主服务器负责处理用户请求,备服务器处于待机状态。
当主服务器发生故障或不可用时,备服务器会自动接管主服务器的工作,并继续提供服务,从而实现服务器的高可用性。
主备服务器之间通过心跳检测来监测对方的状态,常用的心跳检测方式有互ping和RS-232串口心跳。
当主服务器的心跳检测失败时,备服务器会发起切换请求,使其自己成为主服务器继续提供服务。
二、配置步骤1. 硬件准备:购买两台相同配置的服务器,确保服务器的硬件能够支持双机热备功能。
2. 系统安装:安装相同的操作系统和服务程序,并对操作系统进行适当的优化和调整。
3. 安装双机热备软件:选择适合的双机热备软件并进行安装配置。
常用的双机热备软件有Heartbeat、Keepalived等。
4. 配置主备服务器间的网络连接:可以通过专用网络线缆连接主备服务器的网口,实现高速、可靠的通信。
5. 配置双机热备软件:根据双机热备软件的要求进行配置,包括指定主服务器和备服务器,设置心跳检测方式和间隔时间等。
6. 测试和监控:进行功能测试,确保主备服务器间的切换正常可靠。
同时,配备监控系统,实时监控服务器的状态和性能。
三、注意事项1. 选择合适的双机热备软件:不同的双机热备软件有不同的特点和适用场景,需要根据自身需求选择适合的软件。
2. 确保硬件可靠性:服务器双机热备技术可以提高服务器的可用性,但如果硬件故障,双机热备也无法起到作用。
因此,选择可靠的服务器硬件非常重要。
3. 定期测试和演练:定期进行主备服务器间的切换测试,以确保切换过程的可靠性和服务的连续性。
同时,定期进行双机热备的演练,提高操作的熟练度。
4. 注意数据同步和一致性:主备服务器之间需要进行数据同步,以保证切换过程中数据的一致性。
keepalived切换原理
keepalived切换原理在网络架构中,高可用性是一个重要的指标,以确保业务持续稳定地运行。
keepalived正是一种可以实现高可用性的解决方案,它通过VIP(virtual IP)做到了负载均衡和故障转移。
在本文中,我们将详细探讨keepalived切换原理。
keepalived切换原理分为两部分,一个是检测机制,一个是切换机制。
①检测机制keepalived在运行时会在主服务器和备服务器之间建立一个虚拟地址,这个虚拟地址就是VIP。
当主服务器出现故障时,keepalived 会将VIP移至备服务器,使得备服务器成为新的主服务器,从而实现故障转移。
为了确保能够及时检测到主服务器的故障,keepalived采用了以下两种检测方法:心跳检测:通过周期性地发送ICMP、UDP或TCP请求到主服务器的虚拟IP地址,从而检查主服务器是否正常运行。
接口检测:通过周期性地检查本地网卡接口的状态,同时向远程IP发送ICMP请求,来检查网络连通性是否正常,从而确保主服务器可以正常工作。
当检测到主服务器出现故障时,keepalived会进行切换操作。
②切换机制当检测到主服务器宕机或者不能正常工作时,keepalived会自动将备服务器的VIP设置为实际的IP地址,以实现自动备机切换。
keepalived切换过程如下:1.备服务器会先对VIP进行arp广播,告诉所有的交换机/路由器新的VIP地址是自己。
2.交换机/路由器此时会将VIP的MAC地址映射为备服务器的MAC 地址,从而保证了VIP的正确路由。
3.此时备服务器成为新的主服务器,开始接管业务。
4.主服务器恢复正常工作时,keepalived会再次进行切换,让主服务器重新成为主服务器。
总的来说,keepalived切换原理是通过周期性地检测主服务器的工作状态,并在主服务器宕机或发生故障时,自动切换到另一台服务器,将VIP地址进行更新,使备机接管业务。
在实际的生产环境中,keepalived切换原理已经得到了广泛的应用,在网络架构中起着重要的作用。
双机热备方案 (2)
双机热备方案1. 什么是双机热备方案双机热备方案(Dual Machine Hot Standby Solution),是一种常见的高可用性解决方案,用于确保系统的持续可用性和故障切换能力。
通过将系统部署在两台物理或虚拟服务器上,并根据特定的配置和策略将请求分发到其中一台服务器,当其中一台服务器发生故障时,另一台服务器会立即接管请求处理,以确保系统的高可用性。
2. 双机热备方案的组成双机热备方案一般包含以下几个关键组件:2.1. 负载均衡器负载均衡器(Load Balancer)用于将请求分发到多台服务器,以实现负载的均衡和高可用性。
负载均衡器可以采用硬件设备,例如F5 BIG-IP等,也可以采用软件实现,例如Nginx 等。
负载均衡器需要配置健康检查机制,以在服务器发生故障时自动剔除不可用的服务器。
2.2. 双机热备服务器双机热备服务器是指两台物理或虚拟服务器,一台作为主服务器(Primary Server),另一台作为备份服务器(Backup Server)。
主服务器负责处理客户端的请求,而备份服务器处于等待状态,监控主服务器的可用性。
当主服务器发生故障时,备份服务器会立即接管请求处理,并成为新的主服务器。
2.3. 数据同步机制为了保证双机热备方案的可用性,主服务器和备份服务器之间需要建立数据同步机制,确保数据的一致性。
数据同步可以采用多种方式,例如数据库复制、文件同步等。
常见的方案包括MySQL的主从复制、文件同步工具如rsync等。
2.4. 心跳检测和故障切换为了能够及时发现主服务器的故障,并进行故障切换,双机热备方案需要使用心跳检测机制。
心跳检测可以通过网络传输心跳包或者定时发送请求的方式实现。
当备份服务器检测到主服务器故障后,会触发故障切换机制,将备份服务器切换为主服务器,以继续提供服务。
3. 双机热备方案的优势双机热备方案具有以下几个主要优势:3.1. 高可用性双机热备方案可以大大提高系统的可用性,当主服务器发生故障时,备份服务器可以立即接管请求处理,几乎不会对用户产生影响。
两台linux完美实现双机热备
两台linux完美实现双机热备ip1:192.168.1.240 ha1ip2:192.168.1.241 ha2物理磁盘10g系统分区5gdisk:/dev/sda1(一个2G的分区)disk:/dev/sda2(一个2G的分区)通过drbd,挂在每台机器上的sdb1这块分区将成为咱们“存储”。
let's go !++++++现在开始两台机器配置一样++++++1.设定hostsvi /etc/hosts192.168.1.240 ha1192.168.1.241 ha2注意:比如在1.11这台机器上。
drbd1是你执行hostname命令看到的,而不是随手一写的哟:)2.安装并配置drbd1).安装drbd。
你可以去/drbd/下载最新的版本。
本文为了方便直接从ubuntu的源进行安装更新apt源apt-get updateapt-get install drbd8-utils drbd8-module-source build-essential module-assistant module-assistant auto-install drbd8磁盘分区cfdisk /dev/sdasda2:2Gsda3:2G创建分区后重启2).创建配置文件备机上文件从主机上拷贝如果用apt-get或者yum的方式安装的话,会默认创建配置文件,而编译安装则不会。
不管直接清空或改名,写入以下内容。
vi /etc/drbd.confcommon{syncer{rate 500M;}resource r0{protocol C;startup { wfc-timeout 30; degr-wfc-timeout 120; } disk{on-io-error detach;}on ha1{device /dev/drbd0;disk /dev/sda2;address 192.168.1.240:7788;meta-disk internal;}on ha2{device /dev/drbd0;disk /dev/sda2;address 192.168.1.241:7788;meta-disk internal;}}resource r1{protocol C;startup { wfc-timeout 30; degr-wfc-timeout 120; } disk{on-io-error detach;}on ha1{device /dev/drbd1;disk /dev/sda3;address 192.168.1.240:7789;meta-disk internal;}on ha2{device /dev/drbd1;disk /dev/sda3;address 192.168.1.241:7789;meta-disk internal;}}3)创建资源修改hosts文件Vi /etc/hosts192.168.1.240 ha1192.168.1.241 ha2drbdadm create-md r0 #r0为刚才配置文件里的资源名drbdadm create-md r1 #r1为刚才配置文件里的资源名会提示三个疑问,如果你英文还可以的话,可以阅读一下,不然的话,直接回车。
redis+keepalived实现双机热备
Redis+keepalived实现双机热备一.简介安装使用centos 6.6(64)Master 172.18.2.235Slave 172.18.2.236Vip 172.18.2.200编译环境 yum -y install gcc gcc+ gcc-c++ openssl openssl-devel pcre pcre-devel当 Master 与 Slave 均运作正常时, Master负责服务,Slave负责Standby;当 Master 挂掉,Slave 正常时, Slave接管服务,同时关闭主从复制功能;当 Master 恢复正常,则从Slave同步数据,同步数据之后关闭主从复制功能,恢复Master身份,于此同时Slave等待Master同步数据完成之后,恢复Slave身份。
然后依次循环。
需要注意的是,这样做需要在Master与Slave上都开启本地化策略,否则在互相自动切换的过程中,未开启本地化的一方会将另一方的数据清空,造成数据完全丢失二.安装Gperftools安装tar xzvf gperftools-2.1.tar.gzcd gperftools-2.1. ./configure --enable-frame-pointersmakemake installmv /usr/local/lib/libtcmalloc.so.4 /usr/lib64/Keepalived安装tar xf keepalived-1.2.12.tar.gzcd keepalived-1.2.12./configuremake && make installcp /usr/local/etc/rc.d/init.d/keepalived /etc/init.d/cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/chmod +x /etc/init.d/keepalivedchkconfig –add keepalivedmkdir /etc/keepalivedln –s /usr/local/sbin/keepalived /usr/sbinRedis安装tar xf redis-2.8.10.tar.gzcd redis2.8.10mkdir –p /opt/redismake PREFIX=/opt/redis USE_TCMALLOC=yes FORCE_LIBC_MALLOC=yes install 三.配置创建配置文件夹以及文件mkdir -p /opt/redis/etcmkdir -p /opt/redis/runmkdir -p /opt/redis/data/6379mkdir -p /opt/redis/logcp /root/redis-2.8.10/redis.conf /opt/redis/etc/redis.confmv /opt/redis/etc/redis.conf /opt/redis/etc/redis_6379.conf修改配置文件:vim /opt/redis/etc/redis_6379.confdaemonize yespidfile /opt/redis/run/redis_6379.piddir /opt/redis/data/6379logfile /opt/redis/log/redis_6379.log创建服务管理脚本vim /etc/init.d/redis#!/bin/shPATH="/opt/redis/bin:$PATH"EXEC="/opt/redis/bin/redis-server"CLIEXEC="/opt/redis/bin/redis-cli"PIDFILE="/opt/redis/run/redis_6379.pid"CONF="/opt/redis/etc/redis_6379.conf"REDISPORT="6379"case "$1" instart)if [ -f $PIDFILE ]thenecho "$PIDFILE exists, process is already running or crashed." elseecho "Starting Redis server..."$EXEC $CONFfi;;stop)if [ ! -f $PIDFILE ]thenecho "$PIDFILE does not exist, process is not running."elsePID=$(cat $PIDFILE)echo "Stopping ..."$CLIEXEC -p $REDISPORT shutdownwhile [ -x /proc/${PID} ]doecho "Waiting for Redis to shutdown ..."sleep 1doneecho "Redis stopped."fi;;*)echo "Usage: $0 {start|stop}" >&2exit 1;;esac授权 chmod +x /etc/init.d/redisvim /etc/sysctl.conf在最后添加以下节点:vm.overcommit_memory = 1#sysctl –p启动redis/etc/init.d/redis start验证ps aux | grep redis首先在master上创建如下配置mkdir –p /etc/keepalivedvim /etc/keepalived/keepalived.confvrrp_script chk_redis {script "/etc/keepalived/scripts/redis_check.sh" ###监控脚本 interval 2 ###监控时间}vrrp_instance VI_1 {state MASTER ###设置为MASTERinterface eth0 ###监控网卡virtual_router_id 51priority 101 ###权重值authentication {auth_type PASS ###加密auth_pass redis ###密码}track_script {chk_redis ###执行上面定义的chk_redis}virtual_ipaddress {172.18.2.200 ###VIP}notify_master /etc/keepalived/scripts/redis_master.shnotify_backup /etc/keepalived/scripts/redis_backup.shnotify_fault /etc/keepalived/scripts/redis_fault.shnotify_stop /etc/keepalived/scripts/redis_stop.sh}vim /etc/keepalived/scripts/redis_master.sh#!/bin/bashREDISCLI="/opt/redis/bin/redis-cli"LOGFILE="/var/log/keepalived-redis-state.log"echo "[master]" >> $LOGFILEdate >> $LOGFILEecho "Being master...." >> $LOGFILE 2>&1echo "Run SLAVEOF cmd ..." >> $LOGFILE$REDISCLI SLAVEOF 172.18.2.236(slave) 6379 >> $LOGFILE 2>&1 sleep 10 #延迟10秒以后待数据同步完成后再取消同步状态echo "Run SLAVEOF NO ONE cmd ..." >> $LOGFILE$REDISCLI SLAVEOF NO ONE >> $LOGFILE 2>&1vim /etc/keepalived/scripts/redis_backup.sh#!/bin/bashREDISCLI="/opt/redis/bin/redis-cli"LOGFILE="/var/log/keepalived-redis-state.log"echo "[backup]" >> $LOGFILEdate >> $LOGFILEecho "Being slave...." >> $LOGFILE 2>&1sleep 15 #延迟15秒待数据被对方同步完成之后再切换主从角色echo "Run SLAVEOF cmd ..." >> $LOGFILE$REDISCLI SLAVEOF 172.18.2.236(slave) 6379 >> $LOGFILE 2>&1 在slave上创建如下文件:vim /etc/keepalived/keepalived.confvrrp_script chk_redis {script "/etc/keepalived/scripts/redis_check.sh" ###监控脚本 interval 2 ###监控时间}vrrp_instance VI_1 {state BACKUP ###设置为BACKUPinterface eth0 ###监控网卡virtual_router_id 51priority 100 ###比MASTRE权重值低authentication {auth_type PASSauth_pass redis ###密码与MASTRE相同}track_script {chk_redis ###执行上面定义的chk_redis }virtual_ipaddress {172.18.2.200 ###VIP}notify_master /etc/keepalived/scripts/redis_master.shnotify_backup /etc/keepalived/scripts/redis_backup.shnotify_fault /etc/keepalived/scripts/redis_fault.shnotify_stop /etc/keepalived/scripts/redis_stop.sh}vim /etc/keepalived/scripts/redis_master.sh#!/bin/bashREDISCLI="/opt/redis/bin/redis-cli"LOGFILE="/var/log/keepalived-redis-state.log"echo "[master]" >> $LOGFILEdate >> $LOGFILEecho "Being master...." >> $LOGFILE 2>&1echo "Run SLAVEOF cmd ..." >> $LOGFILE$REDISCLI SLAVEOF 172.18.2.235(master) 6379 >> $LOGFILE 2>&1 sleep 10 #延迟10秒以后待数据同步完成后再取消同步状态echo "Run SLAVEOF NO ONE cmd ..." >> $LOGFILE$REDISCLI SLAVEOF NO ONE >> $LOGFILE 2>&1vim /etc/keepalived/scripts/redis_backup.sh#!/bin/bashREDISCLI="/opt/redis/bin/redis-cli"LOGFILE="/var/log/keepalived-redis-state.log"echo "[backup]" >> $LOGFILEdate >> $LOGFILEecho "Being slave...." >> $LOGFILE 2>&1sleep 15 #延迟15秒待数据被对方同步完成之后再切换主从角色echo "Run SLAVEOF cmd ..." >> $LOGFILE$REDISCLI SLAVEOF 172.18.2.235 6379 >> $LOGFILE 2>&1以下脚本分别在master和slave上创建mkdir /etc/keepalived/scriptsvim /etc/keepalived/scripts/redis_check.sh#!/bin/bashALIVE=`/opt/redis/bin/redis-cli PING`if [ "$ALIVE" == "PONG" ]; thenecho $ALIVEexit 0elseecho $ALIVEexit 1fivim /etc/keepalived/scripts/redis_fault.sh#!/bin/bashLOGFILE=/var/log/keepalived-redis-state.log echo "[fault]" >> $LOGFILEdate >> $LOGFILEvim /etc/keepalived/scripts/redis_stop.sh#!/bin/bashLOGFILE=/var/log/keepalived-redis-state.log echo "[stop]" >> $LOGFILEdate >> $LOGFILE授执行权 chmod +x /etc/keepalived/scripts/*.sh四.测试在msater和slave上分别启动redis;/etc/init.d/redis start分别启动keepalived/etc/init.d/keepalived start在master上执行 ip a虚拟IP已经绑定了在master上执行/etc/init.d/redis stop 查看slave看到了吧秒级切换。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
系统环境:************************************************************两台服务器都装了 CentOS-5.2-x86_64 系统,安装了 Squid 服务。
Virtual IP : 192.168.30.20Squid1+Real Server 1 :网卡地址 (eth0):192.168.30.12Squid2+Real Server 2 :网卡地址 (eth0):192.168.30.13************************************************************软件列表:keepalived/software/keepalived-1.1.17.tar.gz openssl-develyum install openssl-devel***************************************************************配置:配置基于高可用 keepalived, 确定 LVS 使用 DR 模式1. 安装配置 keepalived1.1 安装# yum install openssl-devel ;安装 keepalived 依赖软件#ln -s /usr/src/kernels/`uname -r`-`uname -m`/ /usr/src/linux ;建立内核链接,编译 keepalived 支持 lvs 时需要#tar zxvf keepalived-1.1.17.tar.gz#cd keepalived-1.1.17#./configure --prefix=/usr --sysconf=/etcKeepalived configuration------------------------Keepalived version : 1.1.17Compiler : gccCompiler flags : -g -O2Extra Lib : -lpopt -lssl -lcryptoUse IPVS Framework : Yes ; 注意编译时一定要支持 lvsIPVS sync daemon support : YesUse VRRP Framework : YesUse LinkWatch : NoUse Debug flags : No#make#make install1.2 编辑 keepalived 配置文件#Vi /etc/keepalived/keepalived.confglobal_defs {notification_email {test@}notification_email_from root@localhostsmtp_server 127.0.0.1smtp_connect_timeout 30router_id LVS_DEVEL}vrrp_instance VI_1 {state MASTER # 备份服务器上将 MASTER 改为 BACKUPinterface eth0 # HA 监测网络接口virtual_router_id 51 # 主、备机的 virtual_router_id 必须相同priority 100 # 主、备机取不同的优先级,主机值较大,备份机值较小advert_int 2 # VRRP Multicast 广播周期秒数authentication {auth_type PASS #VRRP 认证方式auth_pass 1111 #VRRP 口令字}virtual_ipaddress {192.168.30.20 # VRRP HA 虚拟地址如果有多个VIP,继续换行填写}}virtual_server 192.168.30.20 80 {delay_loop 2 # 每隔 6 秒查询 realserver 状态lb_algo rr #lvs 算法lb_kind DR # Direct Routepersistence_timeout 50 # 同一IP 的连接60 秒内被分配到同一台realserver protocol TCP # 用 TCP 协议检查 realserver 状态real_server 192.168.30.12 80 {weight 3 #(权重)TCP_CHECK {connect_timeout 10 #(10秒无响应超时)nb_get_retry 3delay_before_retry 3connect_port 80}}real_server 192.168.30.13 80 {weight 3 #(权重)TCP_CHECK {connect_timeout 10 #(10秒无响应超时)nb_get_retry 3delay_before_retry 3connect_port 80}}}1.3 BACKUP 服务器同上配置,先安装 lvs 再按装 keepalived, 仍后配置 /etc/keepalived/keepalived.conf ,只需将红色标示的部分改一下即可 .global_defs {notification_email {test@}notification_email_from root@localhostsmtp_server 127.0.0.1smtp_connect_timeout 30router_id LVS_DEVEL}vrrp_instance VI_1 {state BACKUP # 备份服务器上将 MASTER 改为 BACKUPinterface eth0 # HA 监测网络接口virtual_router_id 51 # 主、备机的 virtual_router_id 必须相同priority 99 # 主、备机取不同的优先级,主机值较大,备份机值较小advert_int 2 # VRRP Multicast 广播周期秒数authentication {auth_type PASS #VRRP 认证方式auth_pass 1111 #VRRP 口令字}virtual_ipaddress {192.168.30.20 # VRRP HA 虚拟地址}}virtual_server 192.168.30.20 80 {delay_loop 2 # 每隔 6 秒查询 realserver 状态lb_algo rr #lvs 算法lb_kind DR # Direct Routepersistence_timeout 50 # 同一IP 的连接60 秒内被分配到同一台realserver protocol TCP # 用 TCP 协议检查 realserver 状态real_server 192.168.30.12 80 {weight 3 #(权重)TCP_CHECK {connect_timeout 10 #(10秒无响应超时)nb_get_retry 3delay_before_retry 3connect_port 80}}real_server 192.168.30.13 80 {weight 3 #(权重)TCP_CHECK {connect_timeout 10 #(10秒无响应超时)nb_get_retry 3delay_before_retry 3connect_port 80}}}2. 配置虚地址 : vi /etc/sysconfig/network-scripts/ifcfg-lo 添加DEVICE=lo:0IPADDR=192.168.30.20NETMASK=255.255.255.255ONBOOT=yesNAME=loopback3. 关闭 RealServer 的 ARP ,或者编辑 /etc/sysctl.conf, 修改系统变量net.ipv4.conf.eth0.arp_ignore=1net.ipv4.conf.eth0.arp_announce=1net.ipv4.ip_forward = 1#sysctl –p :使配置生效4. 启动 keepalived 服务#service httpd start#/etc/init.d/keepalived start查看keepalived的安装位置:# find / -name keepalived将keepalived作为服务添加到chkconfig中,并设置开机启动# chkconfig --add keepalived# chkconfig --level 35 keepalived on# chkconfig --list keepalivedkeepalived 0:关闭 1:关闭 2:关闭 3:启用 4:关闭 5:启用 6:关闭“各等级”包括2、3、4、5等级等级0表示:表示关机等级1表示:单用户模式等级2表示:无网络连接的多用户命令行模式等级3表示:有网络连接的多用户命令行模式等级4表示:不可用等级5表示:带图形界面的多用户模式等级6表示:重新启动5. 测试 lvs 服务是否正常5.1 通过浏览器访问http://192.168.30.20是否正常多次刷新浏览器,在主 LVS 上看连接数变化5.2 停止主 LVS 上的 keepalived 看看备份 keepalived 是否正常接管服务注:realserver如果为windows主机的话需要安装microsoft loopback,设置IP为VIP 确认之后搜索注册表,关键字"VIP"把搜到结果的每项里面的subnet mask都改成255.255.255.255然后重启即可。