lvs(nat、dr、keekalived、双机热备、rsync远程同步)

一、lvs-nat模式的实现
1、实验前环境准备
三台服务器,一台作为director,两台作为real server,director有一个外网网卡和一个内网ip,两个real server,并且需要把两个real server的内网网关设置为director的内网IP
2、两个real server上都安装tomcat服务
3、在director上添加一个网卡(使用桥接模式)
在这里插入图片描述
在这里插入图片描述

4、查看uuid和mac地址
[root@x4d000007 /]# uuidgen ens37
8b9f10b7-c9e6-479e-92e4-5a1e96c39f3b
[root@x4d000007 /]# cat /sys/class/net/ens37/address
00:0c:29:4e:7e:c3
5、修改配置文件
[root@x4d000007 network-scripts]# cp ifcfg-ens33 ifcfg-ens37
[root@x4d000007 network-scripts]# vi ifcfg-ens37
在这里插入图片描述

6、重启网卡
[root@x4d000007 network-scripts]# systemctl restart network
7、安装上httpd
[root@x4d000007 /]# yum install httpd -y
8、director上安装ipvsadm
[root@x4d000007 /]# yum install -y ipvsadm
9、编辑nat脚本
[root@x4d000007 /]# vi /usr/local/sbin/lvs_nat.sh
#! /bin/bash

director服务器上开启路由转发功能:

echo 1 > /proc/sys/net/ipv4/ip_forward

关闭 icmp 的重定向

echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/ens33/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/ens37/send_redirects

director设置 nat 防火墙

iptables -t nat -F
iptables -t nat -X
iptables -t nat -A POSTROUTING -s 77.0.0.0/24 -j MASQUERADE
#director设置 ipvsadm
IPVSADM=’/sbin/ipvsadm’
$IPVSADM -C
$IPVSADM -A -t 192.168.100.48:80 -s wrr
$IPVSADM -a -t 192.168.100.48:80 -r 77.0.0.5:8080 -m -w 1
$IPVSADM -a -t 192.168.100.48:80 -r 77.0.0.6:8080 -m -w 1
10、授权并执行
[root@x4d000007 /]# cd /usr/local/sbin/
[root@x4d000007 sbin]# chmod a+x lvs_nat.sh
[root@x4d000007 sbin]# ./lvs_nat.sh
11、查看ipvsadm配置规则并保存
[root@x4d000007 sbin]# ipvsadm -ln
[root@x4d000007 sbin]# ipvsadm --save > /etc/sysconfig/ipvsadm
12、进入查看
[root@x4d000007 sbin]# vi /etc/sysconfig/ipvsadm
13、重启服务并设置开机自启
[root@x4d000007 sbin]# systemctl restart ipvsadm.service
[root@x4d000007 /]# systemctl restart httpd
[root@x4d000007 /]# systemctl enable httpd
14、进入到两台real server中,分别配置(设置网关的 IP 为 director 的内网 IP)
[root@localhost /]# echo web1 >/usr/local/tomcat7.0/webapps/apps/index.html
[root@localhost /]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
[root@localhost /]# systemctl restart network

[root@x4d000006 apps]# echo web2 >/usr/local/tomcat7.0/webapps/apps/index.html
[root@x4d000006 apps]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
[root@x4d000006 apps]# systemctl restart network
15、测试成功(有些浏览器可能会保存cookie值会轮询失败,换个浏览器就行)
在这里插入图片描述
在这里插入图片描述

二、DR模式
一定要关闭selinux
[root@x4d000005 network-scripts]# getenforce
Enforcing
[root@x4d000005 network-scripts]# setenforce 0
1、修改网卡配置文件并重启
[root@x4d000007 network-scripts]# cp ifcfg-ens33 ifcfg-ens33:0
[root@x4d000007 network-scripts]# vi ifcfg-ens33:0
[root@x4d000007 network-scripts]# ifup ifcfg-ens33:0
在这里插入图片描述

2、director上安装ipvsadm
[root@x4d000007 /]# yum install -y ipvsadm
3、配置路由
[root@x4d000007 ~]# route add -host 77.0.0.77 dev ens33:0
4、配置负载均衡
[root@x4d000007 network-scripts]# echo 1 > /proc/sys/net/ipv4/ip_forward
[root@x4d000007 network-scripts]# ipvsadm -At 77.0.0.77:80 -s wrr
[root@x4d000007 network-scripts]# ipvsadm -at 77.0.0.77:80 -r 77.0.0.5:8080 -g -w 5
[root@x4d000007 network-scripts]# ipvsadm -at 77.0.0.77:80 -r 77.0.0.6:8080 -g -w 1
5、保存
[root@x4d000007 network-scripts]# ipvsadm --save > /etc/sysconfig/ipvsadm
6、查看规则
[root@x4d000007 network-scripts]# ipvsadm -ln
在这里插入图片描述

7、重启ipvsadm
[root@x4d000007 network-scripts]# systemctl restart ipvsadm
8、在两台server上配置虚拟网卡(两台配置相同)
[root@x4d000005 network-scripts]# cp ifcfg-lo ifcfg-lo:0
[root@x4d000005 network-scripts]# vi ifcfg-lo:0
[root@x4d000005 network-scripts]# ifup ifcfg-lo:0
在这里插入图片描述

9、添加路由
[root@x4d000005 network-scripts]# route add -host 77.0.0.77 dev lo:0
10、重定向
[root@x4d000005 network-scripts]# echo “1” > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@x4d000005 network-scripts]# echo “2” > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@x4d000005 network-scripts]# echo “1” > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@x4d000005 network-scripts]# echo “2” > /proc/sys/net/ipv4/conf/all/arp_announce
11、测试成功
在这里插入图片描述

三、Lvs-dr Keepalived(四台机子)
1、在两台director上安装keepalived和ipvsadm
[root@localhost /]# yum install ipvsadm keepalived -y
2、转发配置
[root@localhost /]# echo 1 > /proc/sys/net/ipv4/ip_forward
3、配置keepalived
[root@localhost /]# vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived
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 LVS1 #lvs的名称
vrrp_skip_check_adv_addr

vrrp_strict #需注释,否则无法ping通

vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state MASTER #从主机使用BACKUP
interface ens33
virtual_router_id 51 //vrrp组名
priority 100 //优先级调整,从主机小于master
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
77.0.0.77 #虚拟ip
}
}
virtual_server 77.0.0.77 80 {
delay_loop 6
lb_algo wrr #轮询模式
lb_kind DR #LVS模式
persistence_timeout 0
protocol TCP

real_server 77.0.0.5 80 {
    weight 1
   TCP_CHECK {
        connect_timeout 10
        nb_get_retry 3
        delay_before_retry 3
    }
}

}
real_server 77.0.0.6 80 {
weight 1
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
}
} }
注:启动keepalived必须先主后从
[root@localhost /]# systemctl restart keepalived
4、另外两台后端机子上配置虚拟网卡
[root@localhost network-scripts]# cp ifcfg-lo ifcfg-lo:0
[root@localhost network-scripts]# vi ifcfg-lo:0
在这里插入图片描述

[root@localhost network-scripts]# ifup ifcfg-lo:0
5、安装httpd
[root@x4d000005 /]# yum install -y httpd
[root@localhost /]# systemctl restart httpd
6、测试成功
在这里插入图片描述
在这里插入图片描述

四、双机热备(准备两台机子配置)
1、安装keepalived和ipvsadm
[root@x4d000005 /]# yum install ipvsadm keepalived -y
2、转发配置
[root@x4d000006 /]# echo 1 > /proc/sys/net/ipv4/ip_forward
3、配置虚拟网卡
[root@x4d000006 network-scripts]# cp ifcfg-lo ifcfg-lo:0
[root@x4d000006 network-scripts]# vi ifcfg-lo:0
[root@x4d000006 network-scripts]# ifup ifcfg-lo:0
在这里插入图片描述

4、编辑keepalived配置文件(可以不用配置虚拟网卡)
[root@x4d000005 /]# vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived
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 LVS1 #lvs的名称
vrrp_skip_check_adv_addr

vrrp_strict #需注释,否则无法ping通

vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state MASTER #从主机使用BACKUP
interface ens33
virtual_router_id 51 //vrrp组名
priority 100 //优先级调整,从主机小于master
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
77.0.0.22 #虚拟ip
}
}
virtual_server 77.0.0.22 80 {
delay_loop 6
lb_algo wrr #轮询模式
lb_kind DR #LVS模式
persistence_timeout 0
protocol TCP

real_server 77.0.0.5 80 {
    weight 1
   TCP_CHECK {
        connect_timeout 10
        nb_get_retry 3
        delay_before_retry 3
    }
}

}
real_server 77.0.0.6 80 {
weight 1
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
}
}
}
5、测试成功
在这里插入图片描述
在这里插入图片描述

五、rsync远程同步命令
1、原理
rsync是一个远程数据同步工具,可以通过LAN/WAN快速同步多台主机间的文件,rsync使用所谓的“rsync算法”来使本地和远程两个主机的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。
2、功能
(1)作为命令,实现本地–远程文件同步
(2)作为服务,实现本地–远程文件同步
3、特点
可以镜像保存整个目录树和文件系统,可以保留原有的权限(permission,mode),owner,group,时间(修改时间,modify time),软硬链接,文件属性(attributes)信息等,传输效率高,使用同步算法,只比较变化的,支持匿名传输,方便网络镜像,也可以做验证,加强安全。
4、同类服务
(1)同步:刷新文件系统缓存,强制将修改过的数据块写入磁盘,并且更新超快
(2)异步:将数据先放到缓冲区,再周期性(一般是30s)的去同步到磁盘
(3)远程同步:remote synchronous
5、操作
本地同步:rsync -av /etc/passwd /tmp/1.txt
远程同步::rsync -av /tmp/1.txt 192.168.36.131:/tmp/2.txt
[root@x4d000005 /]# ssh-keygen 必须设置目标地址免密登陆(一路回车)
[root@x4d000005 tmp]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@77.0.0.6 远程拷贝到其他主机上
[root@x4d000005 tmp]# ssh root@77.0.0.6 远程登录到77.0.0.6主机上

rsync通过ssh方式同步
推送文件
方式1:rsync /etc/passwd 192.168.36.131:/tmp/cc.txt
方式2:rsync -av /etc/passwd 192.168.36.131:/tmp/cc.txt
拉取文件:
rsync -av /etc/passwd 192.168.36.131:/tmp/cc.txt
rsync -avP 192.168.36.131:/tmp/cc.txt /tmp/123.txt
指定端口:rsync -avp -e “ssh -p 22” /etc/passwd 192.168.36.131:/tmp/cc.txt
注:rsync通过服务的方式同步需要安装xinetd
6、例子
服务器配置:
(1)安装xinetd和rsync服务
[root@x4d000006 /]# yum install -y xinetd
[root@x4d000006 /]# yum -y install rsync
(2)修改配置文件
[root@x4d000006 /]# vi /etc/rsyncd.conf (前面为全局模块参数,后面wwwroot为共享模块参数)

uid = root
gid = root

use chroot = yes

max connections = 4

pid file = /var/run/rsyncd.pid

exclude = lost+found/

transfer logging = yes

timeout = 900

ignore nonreadable = yes

dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2

[ftp]

path = /home/ftp

comment = ftp export area

address = 77.0.0.5
port = 873
hosts allow = *
use chroot = yes
max connections = 5
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsync.log
motd file = /etc/rsyncd.motd
[wwwroot]
path = /var/www/html
comment = rsync wwwroot of www.baidu.com
read only = yes
list = yes
uid = root
gid = root
auth users = backuper
secrets file = /etc/rsync.passwd

(3)创建弹出信息
[root@localhost /]# echo "welcome to backup server " > /etc/rsyncd.motd
(4)创建密码文件
[root@localhost /]# vi /etc/rsync.passwd
在这里插入图片描述
(5)修改权限
[root@localhost /]# chmod 600 /etc/rsync.passwd
[root@localhost /]# chmod 777 /etc/rsyncd.conf
(6)重启并设置开机自启
[root@x4d000005 /]# vi /etc/xinetd.conf
在这里插入图片描述

[root@localhost /]# systemctl restart xinetd
[root@localhost /]# systemctl enable xinetd
[root@localhost /]# rsync --daemon
(7)安装httpd服务
[root@x4d000006 /]# yum install -y httpd
客户端配置:
(1)创建并编辑密码文件
[root@x4d000006 /]# vi /etc/rsyncpass.txt
在这里插入图片描述
(2)授权
[root@x4d000006 /]# chmod 600 /etc/rsyncpass.txt
(3)编写测试页面(内容随便写)
[root@x4d000006 tmp]# cd /opt
[root@x4d000006 opt]# vi index.html
(4)安装rsync
[root@x4d000006 opt]# yum install -y rsync
(5)拷贝成功
[root@x4d000006 opt]# rsync -avL backuper@77.0.0.5::wwwroot /tmp/ --password-file=/etc/rsyncpass.txt
在这里插入图片描述

多台服务器同步工作:(inotify)
在服务器端
(1)安装插件,拖入inotify软件包
[root@x4d000005 opt]# yum install -y lrzsz
(2)安装编译环境
[root@x4d000005 opt]# yum install -y gcc* cc*
(3)解压并进入目录编译
[root@x4d000005 opt]# tar xzf inotify-tools-3.13.tar.gz
[root@x4d000005 opt]# cd inotify-tools-3.13
[root@x4d000005 inotify-tools-3.13]# ./configure 预编译
[root@x4d000005 inotify-tools-3.13]# make -j 4 编译
[root@x4d000005 inotify-tools-3.13]# make install 安装
(4)查看帮助
[root@x4d000005 inotify-tools-3.13]# inotifywait -h
(5)监控指定目录
[root@x4d000005 inotify-tools-3.13]# inotifywait -mrq -e create,move,delete,modify,attrib /var/www/html/
进入/var/www/html目录创建aaa目录监控成功
在这里插入图片描述
(6)编写触发脚本(参考)
[root@x4d000005 opt]# vi a.sh
#!/bin/bash
echo aaa bbb ccc |while read a b c
do
echo $a
echo $b
echo $c
Done

#!/bin/bash
SRC="/var/www/html/"
DEST=“root@10.0.0.12:/var/www/html/”
inotifywait -mrq -e create,move,delete,modify,attrib $SRC |while read a b c
do
rsync -azP --delete $SRC $DEST
done
(7)授权执行
[root@x4d000005 opt]# chmod a+x a.sh
[root@x4d000005 opt]# ./a.sh
[root@x4d000005 opt]# nohup ./a.sh >output 2>&1 &
(8)在客户端编写测试页面
[root@x4d000006 html]# vi index.html
在这里插入图片描述
(9)安装http服务
[root@x4d000006 opt]# yum install -y httpd
[root@x4d000006 html]# systemctl restart httpd
(10)用客户端测试成功
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用Keepalived实现Jar包的双机热备,需要进行以下步骤: 1. 安装和配置Java环境。 2. 下载和安装Keepalived。 3. 配置Keepalived的主从节点,确保两个节点之间可以互相通信。 4. 将Jar包复制到两个节点上,并确保两个节点上的Jar包版本相同。 5. 创建一个脚本文件,用于启动和停止Jar包。 6. 配置Keepalived的监控脚本,用于检测Jar包是否正常运行。 7. 配置Keepalived的虚拟IP地址和虚拟MAC地址,确保在主节点故障转移时,虚拟IP地址能够自动切换到备节点。 具体的配置步骤如下: 1. 安装和配置Java环境。 在主节点和备节点上都需要安装Java环境,并确保JAVA_HOME和PATH环境变量已经设置。 2. 下载和安装Keepalived。 在主节点和备节点上都需要下载和安装Keepalived。可以使用以下命令在Ubuntu上安装: ``` sudo apt-get install keepalived ``` 3. 配置Keepalived的主从节点。 在主节点和备节点上都需要配置Keepalived的主从节点。可以在/etc/keepalived/keepalived.conf文件中进行配置。以下是一个示例配置文件: ``` ! Configuration File for keepalived global_defs { router_id LVS_DEVEL } vrrp_script chk_jar { script "/etc/keepalived/check_jar.sh" interval 2 weight -20 } vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 100 virtual_ipaddress { 192.168.0.100/24 dev eth0 } track_script { chk_jar } } ``` 在该配置文件中,定义了一个名为chk_jar的监控脚本,用于检测Jar包是否正常运行。vrrp_instance VI_1定义了一个虚拟IP地址(192.168.0.100),并指定了主节点的优先级为100。track_script指定了要监控的脚本。 4. 将Jar包复制到两个节点上,并确保两个节点上的Jar包版本相同。 将Jar包复制到主节点和备节点上,并确保两个节点上的Jar包版本相同。 5. 创建一个脚本文件,用于启动和停止Jar包。 创建一个名为start_jar.sh的脚本文件,并在其中编写启动Jar包的命令。例如: ``` #!/bin/bash java -jar myapp.jar > /dev/null 2>&1 & ``` 创建一个名为stop_jar.sh的脚本文件,并在其中编写停止Jar包的命令。例如: ``` #!/bin/bash killall java ``` 6. 配置Keepalived的监控脚本,用于检测Jar包是否正常运行。 在/etc/keepalived/check_jar.sh中编写检测Jar包的脚本。例如: ``` #!/bin/bash if ps ax | grep -v grep | grep myapp.jar > /dev/null then exit 0 else exit 1 fi ``` 该脚本检测系统中是否有名为myapp.jar的进程在运行。如果有,则返回0;否则返回1。 7. 配置Keepalived的虚拟IP地址和虚拟MAC地址,确保在主节点故障转移时,虚拟IP地址能够自动切换到备节点。 执行以下命令,配置虚拟IP地址和虚拟MAC地址: ``` ip addr add 192.168.0.100/24 dev eth0 ip link set dev eth0 up ip link set eth0 address 00:00:5e:00:01:64 ``` 其中,eth0为网络接口名称,00:00:5e:00:01:64为虚拟MAC地址。 完成以上步骤后,启动Keepalived服务,即可实现Jar包的双机热备

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值