Centos配置Keepalived_做双机热备切换
- 格式:docx
- 大小:22.99 KB
- 文档页数:9
系统环境:************************************************************两台服务器都装了 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然后重启即可。
详解centos7中配置keepalived⽇志为别的路径keepalived 安装:cd <keepalived_sourcecode_path>./configure --prefix=/usr/local/keepalivedmake && make installmkdir /etc/keepalivedmkdir /etc/keepalived/scriptscp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/cp /root/keepalived-2.0.6/keepalived/etc/init.d/keepalived /etc/init.d/cp /usr/local/keepalived/sbin/keepalived /sbin/keepalivedcp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/chmod +x /etc/init.d/keepalived由于在默认状态下keepalived的⽇志会写⼊到/var/log/message中,我们需要将此剥离出来。
在centos 6下可以:(1)⾸先修改/etc/sysconfig/keepalived⽂件,注释掉如下,添加如下:#KEEPALIVED_OPTIONS="-D"KEEPALIVED_OPTIONS="-D -d -S 0"(2)其次修改 /etc/rsyslog.conf ⽂件,添加如下:local0.* /var/log/keepalived.log在centos 7 下,还需要修改/lib/systemd/system/keepalived.service ⽂件:centos 7使⽤。
有两台服务器如何做双机热备双机热备是一种常见的服务器配置方式,可以提高系统的可用性和容错性。
通过配置两台服务器,当其中一台服务器出现故障时,另一台服务器可以立即接管工作,确保系统的连续性和稳定性。
本文将介绍如何进行双机热备配置,以及配置过程中需要注意的问题。
一、双机热备的基本原理双机热备的基本原理是将两台服务器配置为主备关系。
其中一台服务器作为主服务器(Master),负责处理用户请求和业务逻辑;另一台服务器作为备服务器(Backup),处于待命状态,等待接管主服务器的工作。
主备服务器之间通过网络进行通信,保持数据的同步和一致性。
二、双机热备的配置步骤1. 确定主备服务器的角色和IP地址:首先需要确定哪台服务器将担任主服务器,以及每台服务器的IP地址。
主服务器通常配置为具备更高性能的服务器,而备服务器则配置为相对较低性能的服务器。
2. 安装并配置操作系统:在两台服务器上安装并配置相同版本的操作系统,确保操作系统的版本和配置相同,以保证数据的一致性。
常见的操作系统包括Windows Server和Linux等。
3. 安装并配置数据库和应用程序:根据实际需求,在主备服务器上安装并配置相同版本的数据库和应用程序。
数据库和应用程序的版本、配置和数据结构需要保持一致,以确保数据的同步和一致性。
4. 配置网络和通信:配置主备服务器之间的网络和通信,确保主备服务器可以相互通信并进行数据同步。
可以使用局域网(LAN)或广域网(WAN)进行通信,常见的网络通信协议包括TCP/IP等。
5. 配置双机热备软件:选择并安装适用于双机热备的软件,常见的软件包括Heartbeat、Keepalived和Pacemaker等。
这些软件可以监控主服务器的运行状态,一旦主服务器发生故障,备服务器可以立即接管。
6. 测试和验证:在配置完成后,进行测试和验证,确保主备服务器能够正常工作。
可以模拟主服务器宕机的情况,观察备服务器是否能够顺利接管,并能够继续处理用户请求和业务逻辑。
双机热备解决方案简介双机热备是一种常见的高可用性解决方案,通过在两台服务器之间进行数据同步和状态同步,实现在主服务器故障时快速切换到备服务器,从而确保系统的持续可用性。
在本文档中,将介绍双机热备的原理、实施步骤和常见问题解决方案。
原理双机热备的原理是将主服务器和备服务器通过网络连接起来,通过定期同步数据和状态,以便备服务器能够准确地为主服务器提供备份服务。
当主服务器出现故障时,备服务器将立即接管主服务器的工作,并提供相同的服务,以保证系统的可用性。
具体的原理如下: 1. 主服务器和备服务器通过一个交换机或路由器进行网络连接。
2. 定期将主服务器的数据和状态同步到备服务器上,可以使用文件同步工具、数据库复制等技术实现。
3. 备服务器处于待命状态,随时可以接管主服务器的服务。
4. 当主服务器出现故障时,备服务器立即接管主服务器的服务,并通知管理员进行处理。
实施步骤要实施双机热备解决方案,需要进行以下步骤:步骤一:选取适合的硬件设备为了实现双机热备,首先需要选取适合的硬件设备,例如服务器、网络交换机等。
这些硬件设备应具备高可靠性和性能。
步骤二:配置网络环境在选取合适的硬件设备后,需要配置网络环境。
主服务器和备服务器应通过可靠的网络连接起来,并保证网络延迟较低和带宽较大,以确保数据和状态的快速同步。
步骤三:选择并配置数据同步及状态同步方式选择和配置合适的数据同步和状态同步方式是双机热备的关键。
可以根据具体需求选择文件同步工具、数据库复制等技术来实现数据和状态的同步。
步骤四:验证双机热备方案在配置完数据同步和状态同步后,需要进行验证双机热备方案是否生效。
可以通过模拟主服务器故障的方式来验证备服务器是否能够成功接管主服务器的服务。
步骤五:监控和管理备服务器在双机热备方案生效后,需要对备服务器进行监控和管理。
通过实时监控备服务器的状态和性能,及时发现和解决问题,确保备服务器的可靠性和可用性。
常见问题解决方案在实施双机热备方案过程中,可能会遇到一些常见的问题。
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实例使⽤唯⼀的标识。
当前大多网站采用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#各主机这部分应完全相同。
Nginx+keepalived+heartbeat双机热备份配置手册正文目录1 双机热备简介 (3)2 双机热备安装与配置 (4)2.1 安装环境和软件版本说明 (4)2.2 系统安装 (4)2.3 JDK环境安装配置 (4)2.4 MYSQL安装配置 (6)2.4.1 基本安装配置 (6)2.4.2 数据库双机互备 (7)2.5 反向代理服务器NGINX的安装配置 (9)2.6 KEEPALIVED安装配置 (13)2.7 HEARTBEAT的安装配置 (15)2.8 APACHE-TOMCAT安装配置 (18)3 CENTOS下安装配置的改动 (20)3.1 NGINX (20)3.2 KEEPALIVED (23)3.3 HEARTBEAT (26)3.4 添加SHELL脚本 (29)1 双机热备简介双机热备及负载均衡配置图如下所示2 双机热备安装与配置2.1 安装环境和软件版本说明系统:Linux Ubuntu 10.10JDK环境:jdk-6u31-linux-i586方向代理服务器Nginx:nginx-0.7.67探测服务器状态软件Keepalived:keepalived-1.1.17Web服务器:Apache-tomcat:apache-tomcat-6.0.35数据库MySQL:mysql-5.1.612.2 系统安装2.3 JDK环境安装配置1 、安装jdk 程序最新版本jdk: jdk-6u31-linux-i586.bin进入usr 目录: cd /usr在当前目录创建目录java : mkdir java将jdk 安装文件复制到java 目录下:cp /usr/software/ jdk-6u31-linux-i586.bin /usr/java给安装程序赋予权限:chmod +x jdk-6u31-linux-i586.bin 执行安装命令:./ jdk-6u31-linux-i586.bin安装成功后,在java 目录下会出现jdk1.6.0_31 的目录。
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 切换原理
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的配置⽅法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次失败才算确定是真失败。
系统环境:************************************************************两台服务器都装了 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 BACKUP # 全部都是BACKUPinterface eth0 # HA 监测网络接口virtual_router_id 51 # 主、备机的 virtual_router_id 必须相同priority 100 # 主、备机取不同的优先级,主机值较大,备份机值较小advert_int 2 # VRRP Multicast 广播周期秒数nopreempt #主机上用,如果切换后主机起来不再切换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 wrr #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 # 全部为 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.安装ipvsadmyum install ipvsadm新建个ipvsadm.sh#!/bin/bashRIP1=192.168.123.101RIP2=192.168.123.102VIP1=192.168.123.100/sbin/ifconfig eth0:0 $VIP1 broadcast $VIP1 netmask 255.255.0.0 up/sbin/route add -host $VIP1 dev eth0:0echo "1" >/proc/sys/net/ipv4/ip_forward/sbin/ipvsadm -C#set LVS apache/sbin/ipvsadm -A -t $VIP1:80 -s node/sbin/ipvsadm -a -t $VIP1:80 -r $RIP1:80 -g/sbin/ipvsadm -a -t $VIP1:80 -r $RIP2:80 -g./ipvsadm.sh startservice ipvsadm startipvsadm-save====================================================================================================== 3. 关闭 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然后重启即可。