LVS+Keepalived集群

ops/2024/10/21 1:58:14/

Keepalived双机热备

Keepalived实现原理刨析

Keepalived采用VRRP热备份协议实现Linux服务器的多机热备功能

Keepalived案例分析

Keepalived可以实现多机热备,每个热备组可有多台服务器

双机热备的故障切换是由虚拟IP地址的漂移来实现,适用于各种应用服务器‘

实现基于web服务的双机热备

  • 漂移地址:192.168.10.72
  • 主、备服务器:192.168.10.73、192.168.10.74
  • 提供的应用服务:Web

LVS+Keepalived高可用性

配置主调度器

安装keepalived

[root@localhost ~]# systemctl stop NetworkManager
[root@localhost ~]# setenforce 0
[root@localhost ~]# systemctl stop firewalld[root@localhost ~]# yum -y install keepalived ipvsadm
[root@localhost ~]# systemctl enable keepalived

主服务器keepalived的配置

[root@localhost keepalived]# cp keepalived.conf keepalived.conf.bak[root@localhost keepalived]# vi keepalived.conf
global_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.loc#vrrp_strict            //抢占模式smtp_server 192.168.200.1smtp_connect_timeout 30router_id LVS_01        //路由id
}vrrp_instance VI_1 {state MASTER            //热备状态,MASTER表示服务器interface ens33        //承载VIP地址的物理接口virtual_router_id 51    //虚拟路由的IDpriority 100           //优先级advert_int 1authentication {auth_type PASS        //连接方式auth_pass 1111        //密码}virtual_ipaddress {        //指定漂移地址192.168.10.172}
}virtual_server 192.168.10.172 80 {delay_loop 6lb_algo rr           //调度算法lb_kind DR           //nat_mask 255.255.255.0
!    persistence_timeout 50protocol TCPreal_server 192.168.10.103 80 {weight 1TCP_CHECK {connect_port 80        //连接端口connect_timeout 3nb_get_retry 3delay_before_retry 3}}real_server 192.168.10.104 80 {weight 1TCP_CHECK {connect_port 80connect_timeout 3nb_get_retry 3delay_before_retry 3}}}

主内核参数的配置

[root@localhost ~]# vi /etc/sysctl.conf
…………
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
[root@localhost ~]# sysctl -p

开启主服务器的keepalived服务

[root@localhost ~]# systemctl start keepalived
[root@localhost keepalived]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:be:c5:4c brd ff:ff:ff:ff:ff:ffinet 192.168.10.101/24 brd 192.168.10.255 scope global noprefixroute ens33valid_lft forever preferred_lft foreverinet 192.168.10.172/32 scope global ens33valid_lft forever preferred_lft foreverinet6 fe80::fc95:68f1:8f59:7f55/64 scope link noprefixroute valid_lft forever preferred_lft forever

配置从调度器

从调度器keepalived安装

[root@localhost ~]# systemctl stop NetworkManager
[root@localhost ~]# setenforce 0
[root@localhost ~]# systemctl stop firewalld[root@localhost ~]# yum -y install keepalived ipvsadm
[root@localhost ~]# systemctl enable keepalived

从调度器keepalived的配置

[root@localhost ~]# cd /etc/keepalived/
[root@localhost keepalived]# cp keepalived.conf keepalived.conf.bak[root@localhost keepalived]# vi keepalived.conf
global_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.loc#vrrp_strictsmtp_server 192.168.200.1smtp_connect_timeout 30router_id LVS_02
}vrrp_instance VI_1 {state BACKUP                //热备状态,BACKUP表示从服务器interface ens33virtual_router_id 51priority 99                //从服务器的优先级要低于主服务器advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.10.172}
}virtual_server 192.168.10.172 80 {delay_loop 6lb_algo rrlb_kind DRnat_mask 255.255.255.0
!    persistence_timeout 50protocol TCPreal_server 192.168.10.101 80 {weight 1TCP_CHECK {connect_port 80connect_timeout 3nb_get_retry 3delay_before_retry 3}}real_server 192.168.10.102 80 {weight 1TCP_CHECK {connect_port 80connect_timeout 3nb_get_retry 3delay_before_retry 3}}}

 从服务器内核参数的配置

[root@localhost ~]# vi /etc/sysctl.conf
在末尾添加:
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
[root@localhost ~]# sysctl -p

开启从服务器的keepalived服务

[root@localhost keepalived]# systemctl start keepalived

服务器池配置

两个web服务器节点配置

(1)网络配置

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-lo ifcfg-lo:0
[root@localhost network-scripts]# vi ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.10.172
NETMASK=255.255.255.255
ONBOOT=yes[root@localhost network-scripts]# systemctl restrt network
[root@localhost network-scripts]# vi /etc/rc.local
route add -host 192.168.10.172 dev lo:0
[root@localhost ~]# route add -host 192.168.10.172 dev lo:0

(2)httpd服务安装

[root@localhost ~]# yum -y install httpd
[root@localhost ~]# vim /var/www/html/index.html
test web1 //两个web节点服务器要看出差别即可test web2

(3)内核参数设置

(3)内核参数的设置
[root@localhost ~]# vi /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2

(4)启动httpd服务

[root@localhost ~]# systemctl start httpd

测试LVS+Keepalived高可用性

在客户端使用脚本测试

[root@localhost ~]# for i in $(seq 10); do curl 192.168.10.172  ;done
test web01
test web02
test web01
test web02
test web01

http://www.ppmy.cn/ops/55820.html

相关文章

paraview将raw数据转为vtk

ParaView 是一个强大的可视化工具&#xff0c;可以转换各种数据格式&#xff0c;包括将原始数据转换为 VTK 文件格式。以下是一个简单的 Python 脚本&#xff0c;使用 ParaView Python 接口来转换 raw 数据为 VTK 文件&#xff1a; # 导入ParaView模块 import paraview from p…

ARTS Week 36

unsetunsetAlgorithmunsetunset 本周的算法题为 1528. 重新排列字符串 给你一个字符串 s 和一个 长度相同 的整数数组 indices 。 请你重新排列字符串 s &#xff0c;其中第 i 个字符需要移动到 indices[i] 指示的位置。 返回重新排列后的字符串。 img 示例 1&#xff1a;输入&…

VPN是什么?

VPN&#xff0c;全称Virtual Private Network&#xff0c;即“虚拟私人网络”&#xff0c;是一种在公共网络&#xff08;如互联网&#xff09;上建立加密、安全的连接通道的技术。简单来说&#xff0c;VPN就像是一条在公共道路上铺设的“秘密隧道”&#xff0c;通过这条隧道传输…

ruoyi实用性美化记录

一、将tab页中操作区的底色变为亮灰色 ruoyi-ui/src/layout/index.vue 中 <app-main/>改为<app-main style"background: #EEE"/> 二、对应的将form加上底色加边角弧度 ruoyi-ui/src/assets/styles/ruoyi.scss .el-form{border-radius: 3px;padding:…

「媒体邀约」天津媒体资源?媒体邀约宣传报道

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 媒体宣传加速季&#xff0c;100万补贴享不停&#xff0c;一手媒体资源&#xff0c;全国100城线下落地执行。详情请联系胡老师。 天津拥有丰富的媒体资源&#xff0c;利用这些资源进行有效…

python爬虫入门(一)之HTTP请求和响应

一、爬虫的三个步骤&#xff08;要学习的内容&#xff09; 1、获取网页内容 &#xff08;HTTP请求、Requests库&#xff09; 2、解析网页内容 &#xff08;HTML网页结构、Beautiful Soup库&#xff09; 3、存储或分析数据 b站学习链接&#xff1a; 【【Python爬虫】爆肝两…

【Linux】文件系统6——理解文件操作

目录 1.文件的读取 1.1.目录 1.2.文件 1.3.目录树读取 1.4.文件系统大小与磁盘读取性能 2.增添文件 2.1.数据的不一致&#xff08;Inconsistent&#xff09;状态 2.2.日志式文件系统&#xff08;Journaling filesystem&#xff09; 3.Linux文件系统的运行 4、文件的删…

java花店管理系统eclipse开发mysql数据库

1 绪论 1.1 系统开发目的 随着人们物质生活水平和经济水平的不断提高&#xff0c;室内绿化布置、家庭园艺装饰、礼仪鲜花等日益受到重视和青睐&#xff0c;以及送鲜花给亲朋好友来表达自己的情谊。传统的花店对于信息的管理的主要方式是基于文本、表格等纸质手工处理&#xf…