Linux集群架构(LVS DR模式搭建、keepalived + LVS)

为什么80%的码农都做不了架构师?>>>   hot3.png

LVS DR模式搭建

准备工作:三台机器

分发器,也叫调度器(简写为dir):192.168.248.128
rs1 :192.168.248.129
rs2 : 192.168.248.130
vip : 192.168.248.200

1.dir上编辑脚本文件**/usr/local/sbin/lvs_dr.sh**,文件内容如下:

#! /bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward #打开端口转发
ipv=/usr/sbin/ipvsadm
vip=192.168.248.200
rs1=192.168.248.132
rs2=192.168.248.133
#注意这里的网卡名字
#绑定vip
ifdown ens33
ifup ens33
ifconfig ens33:2 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip dev ens33:2
$ipv -C
$ipv -A -t $vip:80 -s rr
$ipv -a -t $vip:80 -r $rs1:80 -g -w 1
$ipv -a -t $vip:80 -r $rs2:80 -g -w 1

2.执行脚本

[root@yolks-001 ~]# sh /usr/local/sbin/lvs_dr.sh
成功断开设备 'ens33'。
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/5)

3.rs机器也需要编辑配置文件,添加脚本文件**/usr/local/sbin/lvs_rs.sh**,内容如下:

#/bin/bash
vip=192.168.248.200
#把vip绑定在lo上,是为了实现rs直接把结果返回给客户端
ifdown lo
ifup lo
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip lo:0
#以下操作为更改arp内核参数,目的是为了让rs顺利发送mac地址给客户端
#参考文档www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

4.测试查看活动状态

keepalived + LVS

完整架构需要两台服务器(角色为dir)分别安装keepalived软件,目的是实现高可用,但keepalived本身也有负载均衡的功能,所以本次实验可以只安装一台keepalived

keepalived内置了ipvsadm的功能,所以不需要再安装ipvsadm包,也不用编写和执行那个lvs_dir的脚本

三台机器分别为:
dir(安装keepalived)192.168.248.128
rs1 192.168.248.129
rs2 192.168.248.130
vip 192.168.248.200

1.编辑keepalived配置文件/etc/keepalived/keepalived.conf,内容如下:

vrrp_instance VI_1 {#备用服务器上为 BACKUPstate MASTER#绑定vip的网卡为ens33,你的网卡和阿铭的可能不一样,这里需要你改一下interface ens33virtual_router_id 51#备用服务器上为90priority 100advert_int 1authentication {auth_type PASSauth_pass aminglinux}virtual_ipaddress {192.168.248.200}
}
virtual_server 192.168.248.200 80 {#(每隔10秒查询realserver状态)delay_loop 10#(lvs 算法)lb_algo wlc#(DR模式)lb_kind DR#(同一IP的连接60秒内被分配到同一台realserver)persistence_timeout 60#(用TCP协议检查realserver状态)protocol TCPreal_server 192.168.248.129 80 {#(权重)weight 100TCP_CHECK {#(10秒无响应超时)connect_timeout 10nb_get_retry 3delay_before_retry 3connect_port 80}}real_server 192.168.248.130 80 {weight 100TCP_CHECK {connect_timeout 10nb_get_retry 3delay_before_retry 3connect_port 80}}
}

2.dir上重启keepalived

systemctl stop keepalived
systemctl start keepalived

3.查看keepalived规则

[root@yolks-001 ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.248.200:80 wlc persistent 60-> 192.168.248.129:80           Route   100    0          0         -> 192.168.248.130:80           Route   100    0          0

4.停止掉rs3机器的nginx

systemctl stop nginx

5.dir机器再次查看keepalived规则:已经少了停掉的rs2机器的规则

[root@yolks-001 ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.248.200:80 wlc persistent 60-> 192.168.248.129:80           Route   100    0          0

拓展

haproxy+keepalived http://blog.csdn.net/xrt95050/article/details/40926255
nginx、lvs、haproxy比较 http://www.csdn.net/article/2014-07-24/2820837
keepalived中自定义脚本 vrrp_script http://my.oschina.net/hncscwc/blog/158746
lvs dr模式只使用一个公网ip的实现方法 http://storysky.blog.51cto.com/628458/338726

转载于:https://my.oschina.net/yolks/blog/2032374

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/537897.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows下SVN回滚到旧版本(TortoiseSVN)

原文地址:https://www.cnblogs.com/tommy-huang/p/4729634.html ---------------------------------------- 当发现新提交的代码有问题,然后想将某个旧的版本作为最新的版本时,可以使用回滚, 操作步骤如下: 1. 签出…

看懂架构设计中的服务隔离

前言 我们在做系统架构设计的时候,经常离不开的一个话题就是进行服务的隔离设计。 那什么是「服务隔离」呢? 顾名思义,它是指将系统按照一定的原则划分为若干个服务模块,各个模块之间相对独立,无强依赖。当有故障发生时…

[五] JavaIO之InputStream OutputStream简介 方法列表说明

InputStream 和 OutputStream 对于字节流的输入和输出 是作为协议的存在 所以有必要了解下这两个类提供出来的基本约定 这两个类是抽象类,而且基本上没什么实现,都是依赖于子类具体的去实现 但是他是对于其子类 协议纲领一般的存在 了解清楚每一个方法含义,对于后续具体的子类将…

[转]资本经营董事长班告诉你:不只企业有商业模式,个人商业价值更重要

本文转自:http://blog.sina.com.cn/s/blog_181b5b47e0102xz4v.html 东方财智-资本经营董事长班>>> 经营者如何轻松驾驭金融工具为企业发展加速、升级互联网工具实现品牌营销裂变、利用管理工具优化公司内部结构,把握前沿视角,实现快…

CPR认证-建材CE认证-305/2011/EU

建材CPR认证 - Regulation (EU) No 305/2011  2011年3月,欧盟颁布了新建筑产品法规RETULATION (EU) No 305/2011 – CPR,并通告了新法规于2013年7月进入强制执行,取代了老CPD指令89/106/EEC。  新的建材CPR认证也是…

python支持复数类型以下什么说法是错误的,【Python】专项练习题(1)

1.python代码如下:foo [1,2]foo1 foofoo.append(3)A.foo 值为[1,2]B.foo 值为[1,2,3]C.foo1 值为[1,2]D.foo1 值为[1,2,3]答案:B D链接:https://www.nowcoder.com/profile/153165401/myFollowings/detail/20055659来源:牛客网2.下列程序打印…

ios如何获取gps坐标(定位第二节)

原文连接: https://blog.csdn.net/michael_ouyang/article/details/54378338 -------------------------------------------------------------------- 在上一篇文章,解决ios 10不能定位的问题,把navigator.geolocation.getCurrentPosition…

java并发编程——线程池的工作原理与源码解读

2019独角兽企业重金招聘Python工程师标准>>> 线程池的简单介绍 基于多核CPU的发展,使得多线程开发日趋流行。然而线程的创建和销毁,都涉及到系统调用,比较消耗系统资源,所以就引入了线程池技术,避免频繁的线…

电驴更新地址

emule是通过ED2K网络和KAD网络寻找、连接其他emule客户端的,所以服务器列表和KAD节点文件是emule的必需文件。 有些新手由于下载官方原版emule压缩包或其他未集成这些必需文件的emule压缩包,从而出现“连接不上ED2K与KAD”问题。所以学会下载更新服务器…

IOS内购详解

介绍 最近开发的一款APP上架被驳回了,理由是: 上架的APP是培训类,里面金牌视频课程需要购买,Android端使用支付宝,微信支付。 苹果规定 数字化内容、App功能以及服务等,需要使用内购 真实世界中的服务(…

汇编中的函数调用与递归

栈帧的结构 倘若我们要想搞清楚过程的实现,就必须先知道栈帧的结构是如何构成的。栈帧其实可以认为是程序栈的一段,而程序栈又是存储器的一段,因此栈帧说到底还是存储器的一段。那么既然是一段,肯定有两个端点,这个不需…

Redmine数据库备份及搬家

Bitnami Redmine的备份分2种方式: 1.导出数据库 2.整个目录搬家 不管是哪种都想停掉服务,redmine相关的服务有以下5个: redmineApache   redmineMySQL   redmineSubversion   redmineThin1   redmineThin2 可以打开windows服务控制面…

Redmine项目管理工具安装

Redmine免费开源的项目管理工具 下载 一键安装工具 https://bitnami.com/stack/redmine/installer 安装 Redmine一键安装工具集成了php服务,mysql服务。尽管安装就好。 安装完成后,在开始菜单,找到-----Bitnami Redmine Stack--------Bi…

方便微信公众号等手机网页调试插件eruda和vConsole

原文地址&#xff1a;https://blog.csdn.net/qq_39234840/article/details/80951710 ---------------------------------------------------------- 调试插件一&#xff1a;eruda&#xff08;推荐&#xff0c;因为比vConsole功能多&#xff09; <script src"//cdn.js…

WebServiceStudio.exe测试webservice接口工具

WebServiceStudio.exe测试webservice接口工具 下载链接 https://pan.baidu.com/s/1gf8ajS3 打开工具WebServiceStudio&#xff0c;如下填写地址&#xff0c;点击【Get】按钮 会显示出需要传参的地方&#xff0c;在value中填写xml参数 输入完value值后&#xff0c;点击【Invok…

Navicat工具导出Mysql数据表结构到Excel文件中

原文链接&#xff1a;https://blog.csdn.net/zt15732625878/article/details/77978266 ------------------------------------------------------------------------ 前言 项目中数据库设计已经完成&#xff0c;现在到了代码实现的阶段&#xff0c;数据库中没有数据&#xff…

利用MAVEN的profile 实现打包环境的切换

乐哉码农产生问题的背景 由于在项目开发的时候&#xff0c;我们一般都是使用的本地库&#xff0c;数据库连接写的是本地的&#xff0c;如果我们将项目打成war的时候&#xff0c;里面的配置连接写的是我们本地的&#xff0c;当我们直接把war拷贝到服务器上面进行部署的时候&…

centos升级glibc(升级到 2.17版)

1、原先的系统glibc库的版本是2.12&#xff0c;需要升级到2.17版本。 下载地址&#xff1a; http://ftp.gnu.org/gnu/glibc/ http://ftp.gnu.org/gnu/glibc/glibc-2.17.tar.gz 这里可以选择你所需要的版本。 2、安装部署 [rootkafzook1 common]# tar -xf glibc-2.17.tar.g…

oracle data guard方案,Oracle Data Guard 概念篇

一个Data Guard 配置由一个生产库和一个或者多个standby数据库组成&#xff0c;在Data Guard配置中&#xff0c;主库和备库都既可以是rac环境&#xff0c;也可以是单机环境。这篇文章主要介绍dataguard的一些基本知识dataguard的分类、dataguard的服务类型、dataguard的保护模式…

洛谷P4133 [BJOI2012]最多的方案(记忆化搜索)

题意 题目链接 求出把$n$分解为斐波那契数的方案数&#xff0c;方案两两不同的定义是分解出来的数不完全相同 Sol 这种题&#xff0c;直接爆搜啊。。。 打表后不难发现$<1e18$的fib数只有88个 最先想到的应该是直接把$n$加入到搜索状态里&#xff0c;然后枚举能被分成哪些 但…