| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> LVS-DR模式实现负载均衡、心跳检测、高可用 -> 正文阅读 |
|
[系统运维]LVS-DR模式实现负载均衡、心跳检测、高可用 |
目录 一、DR模式实现负载均衡server1为调度器,负载流量均衡(基于4层即传输层进行调度,调度算法有WRR/WLC等,传输协议为TCP/UDP),server2和server3为真实服务器 在server1中安装ipvsadm,用于管理LVS的策略规则,从而调度用户访问 yum install -y ipvsadm 添加一个对外访问的虚拟IP:192.168.122.100即 VIP,提供虚拟服务的ip地址,但最好是独立出来的IP,不要和原IP混用 ipvsadm -A 添加规则;-t tcp协议;-s 调度;rr 轮循 ?server2和server3安装httpd服务,在http服务的默认发布文件index.html分别写入server2、server3并开启服务 yum install -y httpd echo server2 > /var/www/html/index.html systemctl start httpd ?此时在真机使用curl 172.25.7.2/3可以显示server的发布页面,但curl 172.25.33.100没有输出,这是因为LVS-DR集群类型要求,当用户向vip发起请求时,调度器和真实服务器上必须都要有vip,因此需要给server2和server3添加虚拟IP 此时curl 192.168.122.100,轮循访问 调度策略可用 ARP协议ARP协议是将IP地址映射为MAC地址的协议,其在协议上使用ARP请求及ARP应答报文来实现 arp -d是删除ARP缓存列表的命令,可以删除所有的ARP缓存,也可以删除指定的ARP缓存此时使用arp -an可以查看本地ARP缓存的192.168.122.100对应的MAC地址为调度器server1的地址 ?server1(调度器) ?本机 此时curl 192.168.122.100,只有server3,已经不轮循访问,说明此时客户端向vip发起请求时,并没有经过调度器而是直接到达了真实服务器 要想避免这种情况的发生,我们需要防止客户端直接访问真实服务器,所以我们需要禁掉设备的APR响应 在server2和server3上安装ARP防火墙arptables——用于管理内核中的ARP包过滤规则表 yum install -y arptables ?APR配置规则 arptable_filter 只有一个表 filter ,不指定 -t 表名时默认就是 filter 表 在server2/3上设定APR规则: ?当真机再次执行arp -d 删除指定的虚拟IP,ping 虚拟IP之后,得到192.168.122.100的MAC地址是server1的MAC地址,此时使用curl 192.168.122.100,可以论循访问 二、LVS心跳检测——keepalived和高可用这样使用LVS会出现一个问题,当真实服务器宕机的时候,客户访问时当LVS匹配到宕机主机时客户端会报错,ipvsadm策略依然可以看到服务器存在,所以引入LVS高可用来解决这个问题 ipvsadm没有健康检测功能,后端服务是否正常需要通过keepalived来检测 新建一个server4 下载yum install -y ipvsadm server1 yum install keepalived yum install postfix mailx? 下载邮箱工具 修改配置文件 vim /etc/keepalived/keepalived.conf
scp /etc/keepalived/keepalived.conf server4:/etc/keepalived/ #文件复制到server4中 更改server4中的配置文件 BACKUP 优先级低于server1 此时删掉server1上手动设置的虚拟ip172.25.33.100,ipvsadm -C清除设置的规则 systemctl start keepalived.service ##开启服务 ?server3 systemctl stop httpd? #6s之后 server1调度器出现问题时 systemctl stop keepalived.service server4 systemctl start keepalived.service server4接管 server1恢复后重新接管 server1 server4 server1 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/16 6:45:16- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |