本文共 6276 字,大约阅读时间需要 20 分钟。
解决服务器单点故障问题
将多个设备组成一个备份组
通过公用的虚拟IP对外提供服务
同一时刻只有一台设备提供服务,其余设备处于冗余状态
环境准备:
服务器名称 | 作用 | IP地址 |
---|---|---|
Web01 | 第一台网站服务器 | 192.168.1.10 |
Web02 | 第二台网站服务器 | 192.168.1.20 |
Lvs_ha01 | 第一台网站负载均衡和高可用服务器 | 192.168.1.100 |
Lvs_ha02 | 第二台网站负载均衡和高可用服务器 | 192.168.1.200 |
Gateway | 网关(代替路由器) | 192.168.1.1 |
五台服务器,两台Web、两台LVS,都一块网卡设置为vmnet1;剩余一台为网关,需两块网卡,第一块vmnnet1、第二块桥接
1.配置IP地址
vim /etc/sysconfig/network-scrips/ifcfg-eth0DEVICE=eth0TYPE=EthernetONBOOT=yesNM_CONTROLLED=noBOOTPROTO=staticIPADDR=192.168.1.10NETMASK=255.255.255.0GATEWAY=192.168.1.1
cp /etc/sysconfig/network-scrips/ifcfg-lo /etc/sysconfig/network-scrips/ifcfg-lo:0
vim /etc/sysconfig/network-scrips/ifcfg-lo:0DEVICE=lo:0ONBOOT=yesIPADDR=192.168.1.254NETMASK=255.255.255.255
/etc/init.d/network restart
2.配置安装YUM
rm -rf /etc/yum.repos.d/*
vim /etc/yum.repos.d/local.repo[local]name=localbaseurl=file:///mntgpgcheck=0
mount /dev/cdrom /mnt
3.部署httpd
yum -y install httpd && echo "This is Web1" >/var/www/html/index.html
/etc/init.d/httpd start && chkconfig --level 35 httpd on
4.修改内核参数和路由
vim /etc/sysctl.confnet.ipv4.conf.all.arp_ignore = 1net.ipv4.conf.all.arp_announce = 2
sysctl -p
route add -host 192.168.1.254 dev lo:0 && echo "route add -host 192.168.1.254 dev lo:0" >>/etc/rc.local
1.配置IP地址
vim /etc/sysconfig/network-scrips/ifcfg-eth0DEVICE=eth0TYPE=EthernetONBOOT=yesNM_CONTROLLED=noBOOTPROTO=staticIPADDR=192.168.1.20NETMASK=255.255.255.0GATEWAY=192.168.1.1
cp /etc/sysconfig/network-scrips/ifcfg-lo /etc/sysconfig/network-scrips/ifcfg-lo:0
vim /etc/sysconfig/network-scrips/ifcfg-lo:0DEVICE=lo:0ONBOOT=yesIPADDR=192.168.1.254NETMASK=255.255.255.255
/etc/init.d/network restart
2.配置安装YUM
rm -rf /etc/yum.repos.d/*
vim /etc/yum.repos.d/local.repo[local]name=localbaseurl=file:///mntgpgcheck=0
mount /dev/cdrom /mnt
3.部署httpd
yum -y install httpd && echo "This is Web2" >/var/www/html/index.html
/etc/init.d/httpd start && chkconfig --level 35 httpd on
4.修改内核参数和路由
vim /etc/sysctl.confnet.ipv4.conf.all.arp_ignore = 1net.ipv4.conf.all.arp_announce = 2
sysctl -p
route add -host 192.168.1.254 dev lo:0 && echo "route add -host 192.168.1.254 dev lo:0" >>/etc/rc.local
1.配置IP
vim /etc/sysconfig/network-scrips/ifcfg-eth0DEVICE=eth0TYPE=EthernetONBOOT=yesNM_CONTROLLED=noBOOTPROTO=staticIPADDR=192.168.1.100NETMASK=255.255.255.0GATEWAY=192.168.1.1
/etc/init.d/network restart
2.配置YUM并安装依赖包
rm -rf /etc/yum.repos.d/*
vim /etc/yum.repos.d/local.repo[local]name=localbaseurl=file:///mntgpgcheck=0
mount /dev/cdrom /mnt
yum -y install kernel-devel openssl-devel popt-devel ipvsadm
3.安装keepalived
tar zxvf keepalived-1.2.2.tar.gz -C /usr/src/
cd /usr/src/keepalived-1.2.2/
./configure --prefix=/ --with-kernel-dir=/usr/src/kernels/2.6.32-431.el6.x86_64/
make &&make install
chkconfig --add keepalived && chkconfig keepalived on
4.编辑HA配置文件
vim /etc/keepalived/keepalived.confglobal_defs { router_id HA_TEST_R1 ##本服务器的名称}vrrp_instance VI_1 { ##定义VRRP热备实例 state MASTER ##MASTER表示主服务器 interface eth0 ##承载VIP地址的物理接口 virtual_router_id 1 ##虚拟路由器的ID号 priority 100 ##优先级,数值越大优先级越高 advert_int 1 ##通告间隔秒数(心跳频率) authentication { ##认证信息 auth_type PASS ##认证类型 auth_pass 123456 ##密码字串 } virtual_ipaddress { 192.168.1.254 ##指定漂移地址(VIP) }virtual_server 192.168.1.254 80 { delay_loop 15 ##检测时间间隔 lb_algo rr ##LVS调度算法 lb_kind DR ##LVS的模式 protocol TCPreal_server 192.168.1.10 80 { weight 1 ##权值 TCP_CHECK { connect_port 80 ##健康检查端口 connect_timeout 3 ##连接超时时间 nb_get_retry 3 ##重连次数 delay_before_retry 4 ##重连时间 } }real_server 192.168.1.20 80 { weight 1 TCP_CHECK { connect_port 80 connect_timeout 3 nb_get_retry 3 delay_before_retry 4 } }}
5.加载lvs模块
modprobe ip_vs && echo "modprobe ip_vs" >>/etc/rc.local
1.配置IP
vim /etc/sysconfig/network-scrips/ifcfg-eth0DEVICE=eth0TYPE=EthernetONBOOT=yesNM_CONTROLLED=noBOOTPROTO=staticIPADDR=192.168.1.200NETMASK=255.255.255.0GATEWAY=192.168.1.1
/etc/init.d/network restart
2.配置YUM并安装依赖包
rm -rf /etc/yum.repos.d/*
vim /etc/yum.repos.d/local.repo[local]name=localbaseurl=file:///mntgpgcheck=0
mount /dev/cdrom /mnt
yum -y install kernel-devel openssl-devel popt-devel ipvsadm
3.安装keepalived
tar zxvf keepalived-1.2.2.tar.gz -C /usr/src/
cd /usr/src/keepalived-1.2.2/
./configure --prefix=/ --with-kernel-dir=/usr/src/kernels/2.6.32-431.el6.x86_64/
make &&make install
chkconfig --add keepalived && chkconfig keepalived on
4.编辑HA配置文件
scp root@192.168.1.100:/etc/keepalived/keepalived.conf /etc/keepalived/
vim /etc/keepalived/keepalived.confglobal_defs { router_id HA_TEST_R2 ##本服务器的名称}vrrp_instance VI_1 { ##定义VRRP热备实例 state BACKUP ##MASTER表示主服务器,BACKUP代表从 priority 60 ##优先级,数值越大优先级越高
5.加载lvs模块
modprobe ip_vs && echo "modprobe ip_vs" >>/etc/rc.local
1.配置IP
vim /etc/sysconfig/network-scrips/ifcfg-eth0DEVICE=eth0TYPE=EthernetONBOOT=yesNM_CONTROLLED=noBOOTPROTO=staticIPADDR=192.168.1.1NETMASK=255.255.255.0
cp /etc/sysconfig/network-scrips/ifcfg-eth0 /etc/sysconfig/network-scrips/ifcfg-eth1
vim /etc/sysconfig/network-scrips/ifcfg-eth1DEVICE=eth1TYPE=EthernetONBOOT=yesNM_CONTROLLED=noBOOTPROTO=dhcp
/etc/init.d/network restart
2.开启路由转发
vim /etc/sysctl.conf 7 net.ipv4.ip_forward = 1
sysctl -p
3.编写防火墙规则
/etc/init.d/iptables stop
iptables -t nat -I PREROUTING -d 192.168.10.139 -i eth1 (公网接口) -p tcp --dport 80 -j DNAT --to-destination 192.168.1.254:80
/etc/init.d/iptables save && chkconfig --level 35 iptables on
HA1:/etc/init.d/keepalived restart
HA2:/etc/init.d/keepalived restart //重启keepalived服务
IE: //访问公网地址测试故障转移
转载于:https://blog.51cto.com/13770206/2161911