lvs

LVS 服务器集群     lamp
概念:
LVS:Linux Virtual Server  Linux虚拟服务器。将整个服务器集群虚拟成一台服务器(Linux虚拟服务器)
 
VIP:是lvs这台机器上,面向公网的IP地址。用于接受客户端的请求。LVS接收到客户端的请求后,通过调度算法来决定将请求分发给后端的哪一台rs。比如,要分发给rs1,NAT模型,怎样将这个请求交给rs1,LVS通过DNAT(将请求报文中的目的ip由VIP转换成RIP),在通过DIP将请求报文交给rs。封装响应报文(src  RIP  dst CIP ),rs先将该报文发送给网关(DIP),LVS不能直接将数据包发送到公网,需要SNAT(将原地址RIP转换成VIP),在经过公网路由器发送给客户端。
 
 
客户端发出请求报文:  src   CIP     dst   VIP   --》dst RIP
rs收到的请求报文:src CIP    dst RIP
rs响应报文:   src   RIP dst CIP
客户端收到响应报文:   src VIP   dst CIP
 
实验:
 
准备工作:5台虚拟机---客户端、路由器、lvs、两台RS
 
实验环境:
操作系统:rhel6.7 kernel:2.6.32
 
IP地址规划及网络接口连接方式:
CIP:12.1.1.1 vmnet4 gateway:12.1.1.2
Router:
eth0:12.1.1.2 vmnet4
eth1:13.1.1.1 vmnet5 //查看路由表     看有没有响应的路由条目
Lvs:
Eth0:13.1.1.2 vmnet5
Eth1:10.1.1.1 vmnet6 //lvs需要开启数据包转发功能(路由器)
RS1: 10.1.1.2 vmnet6 gateway: 10.1.1.1
RS2: 10.1.1.3 vmnet6
 
软件:fusion—3个vmnet
其他设置:关闭NetworkManager、关闭防火墙、关闭SeLinux
 
 
实验环境搭建后:
client上:ping 通VIP :客户端能够访问lvs
rs上:ping通CIP : rs能够将响应报文返回给客户端
 
rs提供web服务:
/var/www/html/   index.html
实验环境下,首页文件内容不一样
 
rs1    RS1
rs2 RS2
 
yum install httpd
cd /var/www/html
vim index.html
RS1
/etc/init.d/httpd restart
yum install elinks
elinks http://localhost --dump
 
ipvsadm 语法:
ipvs     ipvsadm命令安装:
 
 
算法:
rr
wrr
 
dh :对客户端访问的目的IP取hash值(模),实现的是所有客户端的链接请求始终被分发到一台固定的rs上,好处在于:可以保证session(会话)的一致性。
www.xx.com -》13.1.1.2    13+1+1+2=17%2=1          -->
 
sh: 根据客户端的源地址计算hash值来决定把请求分发给那一台rs。   12.1.1.1=15%2=1   rs2
12.1.1.2=16%2=0   rs1
 
取几的模看的是rs的数量!
 
rr-->怎样保证session(会话)的一致性     nfs、memcache
dh-->所有的请求分发到固定的一台rs上,rs压力非常大
sh-->保证会话的一致性。每一个客户端的请求分发到固定的rs上
lc least connection 最少链接
将请求根据rs上链接数量来进行分发。将请求分发给链接数量最少的rs,直到所有rs链接数量相等。
 
lvs三种模型
NAT
DR direct router直连路由
TUN tunnel  隧道
 
DR模型:
NAT:调度器压力大(请求和响应报文都经过调度器)支持rs数量10~20台
DR:响应报文直接发给路由器
NAT: client-->router-->lvs-->rs      rs-->lvs-->router-->client
DR: cleint-->router-->lvs-->rs rs-->router-->client  //响应报文不经过lvs,而是直接给路由器
客户端发包:src  CIP  dst VIP          客户端收到的响应报文:src VIP   dst CIP
怎样实现rs响应报文中封装src为VIP-->我们在rs上配置一个VIP    给lo:0接口配置上VIP   
 
cleint-->router-->lvs-->rs      src CIP   dst VIP
我们要确保先将请求包交给lvs    然后lvs经过调度算法的计算在交给rs
 
 
 
arp协议:address resolution protocol 地址解析协议
 
局域网协议:实现的是局域网通信。
本地ip 192.168.1.1     ping 192.168.1.2
封装ping包:
src  ip 192.168.1.1    dst ip 192.168.1.2
src mac  本机mac dst mac  ?????
如果封装好这个ping包,就需要直到192.168.1.2这个ip对应的mac地址!!-->arp
实现过程:
广播:谁是192.168.1.2    请告诉我192.168.1.2对应的mac是多少,只有1.2回复(单播回复),这样1.1就知道1.2对应的mac地址,ping包就可以发出去,继而得到1.2ping包的响应包。
 
通常情况下:交换机中会维护一个mac地址表,记录的是mac地址与IP的对应关系,一个ip对应一个mac地址;如果一个ip对应多个mac就叫做mac地址欺骗,arp欺骗。
 
rs闭嘴    保证客户端的请求包交给lvs       实现方法:修改数据包的mac,源mac为路由器上eth1的mac,目标mac为lvsVIP(eth1)对应的mac
lvs根据分发规则和调度算法,决定将该请求交给rs2 实现方法:修改数据包的源mac 为DIP对应的mac,目标mac rs2生的eth0的mac
rs收到包后拆包:    src  CIP   dst  VIP        
响应包:   src   VIP  lo:0   dst  CIP
   src mac  声明,使用eth0的mac   dst   router器eth1的mac
 
 
 
实验:
修改一下网络链接模式,路由器eth1接口和lvs上的DIP  VIP  以及rs上的eth0都连接到一个交换机上
1、lvs操作      配置VIP地址13,1,1,254   ipvsadm 添加分发规则,指定算法,rs ,模式-g
2、rs操作 配置VIP(lo:0) 闭嘴和声明
 
 
 
闭嘴:
echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
声明:
echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
 
永久:vim /etc/sysctl.conf
sysctl -p
 
 
支持的rs数量100台左右,常用模式。描述一下数据包走向!client -->router --> lvs-->rs    rs-->router -->client  
rs上配置VIP-->路由器转发请求包给lvs时arp欺骗-->echo 1   闭嘴      
回报   声明
怎样实现包的转发:修改数据包的mac地址
 
 
 
 
lvs    eth0   eth1(VIP)    
 
 
TUN:
隧道模式     vpn  虚拟专用通道   总部 上海   分北京  
实现:rs和lvs不在一个局域网中,地址位置不同。   nat  dr 13.1.1.254   13.1.1.3       10.1.1.1   10.1.1.2
 
实验:基于dr,回包时直接交给路由器      rs上有VIP
rs:
VIP    tunl0        
echo 0 > /proc/sys/net/ipv4/conf/tunl0/rp_filter     不进行反向地址验证
lvs:
ipvsadm      -i   ipip   tunnel
 
走的协议:
ipip      ip多封装一次ip           src  src  dst  dst   
 
 
 
 
HA 高可用:
一台lvs如果发生单点故障,导致客户单访问不到网站。
 
 

转载于:https://www.cnblogs.com/linglingling/p/8992549.html

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

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

相关文章

使用mysql事件_MySQL事件的使用详解

在系统管理或者数据库管理中,经常要周期性的执行某一个命令或者SQL语句。这个时候就会用到mysql事件,使用这个功能必须保证是mysql的版本是5.1以上。1.首先要查看事件是否开启了,SHOW VARIABLES LIKE event_scheduler;SELECT event_scheduler…

iPad 如何创建UISplitViewController应用程序

原文摘自:UISplitViewController的使用。UISplitViewController在ipad中的使用ipad的屏幕比iphone大,所以在界面上,ipad比iphone多一个UISplitViewController,用来实现ipad在横屏时,分两栏显示所需要的界面&#xff0c…

mysql有没有num_mysql_num_rows()函数

php MySQL以下是代码部分:$username$_POST[“name”];$password$_POST[“password”];if($username&&$password){if(strpos($username,” “)!false)echo “用户名非法”;else{$conmysql_connect(“localhost”,”root”,”1″);mysql_select_db(“manage”…

oracle登陆

[oracleaa ~]$ rlwrap sqlplus <----登录oracle SQL*Plus: Release 10.2.0.1.0 - Production on Fri Jun 10 18:44:06 2011 Copyright (c) 1982, 2005, Oracle. All rights reserved. Enter user-name: scott <-----用户名 Enter pass…

navicat怎么导出mysql_navicat怎么把数据库导出

Navicat是一套快速、可靠并价格相当便宜的数据库管理工具&#xff0c;专为简化数据库的管理及降低系统管理成本而设。下面我们就为大家介绍一下如何使用naviact把数据库导出。使用Navicat连接到mysql&#xff0c;然后选中你要导出的数据库&#xff0c;右键&#xff0c;选择转储…

五大常用算法总结

文章转自&#xff1a;https://blog.csdn.net/changyuanchn/article/details/51476281引言据说有人归纳了计算机的五大常用算法&#xff0c;它们是贪婪算法&#xff0c;动态规划算法&#xff0c;分治算法&#xff0c;回溯算法以及分支限界算法。虽然不知道为何要将这五个算法归为…

Windows 2003下网络负载平衡(负载均衡)的配置

网络负载平衡(网络负载均衡、NLB、集群)概述 首先&#xff0c;我们先了解下 Windows 2003 自带的 负载平衡(负载均衡)—— Network Load Balancing&#xff0c;简称NLB。NLB是一种集成高可用性&#xff0c;高可靠性和高扩展性的集群。它不但能实现均衡负载&#xff0c;而且还能…

前后端分离的思考与实践(二)

原文出处&#xff1a; 淘宝UED - Herman 基于前后端分离的模版探索 前言 在做前后端分离时&#xff0c;第一个关注到的问题就是 渲染&#xff0c;也就是 View 这个层面的工作。 在传统的开发模式中&#xff0c;浏览器端与服务器端是由不同的前后端两个团队开发&#xff0c;但…

mysql对大量数据查询花费时间_对于Mysql大量数据查询速度慢的问题

1.如果mysql数据量过大&#xff0c;当查询的时候耗时比较长&#xff0c;则会影响页面数据展示。给客户的直观反应的&#xff1a;点击了某个查询功能&#xff0c;结果等了差不多十几秒才反应出来&#xff0c;这样的体验感太差了。2.为了增加反应速度。一般来是建立索引&#xff…

读书笔记:《与爱因斯坦月球漫步》

买《与爱因斯坦月球漫步》这本书已经忘记了是谁的推荐了&#xff0c;已经记不住是什么时候加入到我的GTD阅读清单的&#xff0c;在去北京出差时带上了这本书&#xff0c;前4章介绍了许多故事和记忆的原理&#xff0c;快速翻到第5章开始阅读&#xff0c;随着作者一起开始记忆的练…

推自己的镜像到网易云

推送本地镜像 本文介绍如何将本地镜像推送至你的网易云私有镜像仓库&#xff0c;以便在网易云上部署容器或集群。 注&#xff1a;Docker 客户端版本要求 1.7 及以上。 1. 列出本地镜像 docker images 2. 后台启动容器&#xff0c;验证配置是否正确 docker run -d {镜像名或ID} …

-js中json数组 以表格形式_为什么js类数组加上splice方法就是数组形式,不加就是对象形式?...

var array_like {};array_like[0] "test 0";array_like[1] "test 1";array_like[2] "test 2";array_like[3] "test 3";//关键点array_like.length 4;//为对象设置length属性array_like.splice [].splice;//同时设置splice属性为…

BYZ原创天语w806测评--入手2天,总结优点、缺点.

原帖地址&#xff1a;BYZ原创天语w806测评--入手2天,总结优点、缺点.楼下附上图片哦&#xff01;billyzhou033邀请您访问锋动网http://flydong.com/?fromuid989昨天刚入手的大黄蜂w806&#xff0c;使用了1天&#xff0c;阿里云系统&#xff0c;由于第一次使用此系统&#xff0…

WebSocket-nodejs实现

一、环境配置 1.下载安装nodejs https://nodejs.org/en/download/ 2.安装完成后打开cmd命令&#xff0c;执行node --version,看看是否安装成功&#xff0c;如果提示没有此命令&#xff0c;去配置下环境变量&#xff0c;正常情况下安装后自动设置环境变量 二、配置nodejs模…

PXE自动安装FreeBSD

作者信息 作者:diege 时间:2012-05-02 前言 最经准备整理运维自动化相关的技术&#xff0c;发现FreeBSD的PXE安装忘的七七八八了&#xff0c;所以先整理一下&#xff0c;仍到博客上来。 目标 通过FreeBSD Server PXE安装FreeBSD操作系统 Server信息 操作系统版本&#xff1a;Fr…

mysql 5.6 gtid 主从_MySQL5.6基于GTID的主从复制

一、GTID简介MySQL 5.6 的新特性之一&#xff0c;是加入了全局事务 ID (GTID) 来强化数据库的主备一致性&#xff0c;故障恢复&#xff0c;以及容错能力。什么是GTID&#xff1f;官方文档&#xff1a;http://dev.mysql.com/doc/refman/5.6/en/replication-gtids.html在这篇文档…

Spring Boot之HelloWorld

视频网址&#xff1a;http://www.iqiyi.com/w_19ruksbpf1.html <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://maven.a…

防止黑客入侵的五大技巧

2019独角兽企业重金招聘Python工程师标准>>> 防止黑客入的方法有很多&#xff0c;但是世界上没有绝对安全的系统。我们只可以尽量避免被入侵&#xff0c;最大的程度上减少伤亡。那么&#xff0c;接下来天下数据将为您详细介绍防止黑客入侵的五大技巧。(本文为天下数…

mysql js 命令行登录_mysqlsh 命令行模式与密码保存-爱可生

原标题&#xff1a;mysqlsh 命令行模式与密码保存-爱可生命令行模式mysql shell 如何实现类似 mysql -e "show processlist;" 的效果&#xff1f;即执行完就退出登录&#xff0c;不需要交互&#xff0c;我们经常在脚本中这样使用。那么同样的&#xff0c;在维护 Inno…

AngularJS学习笔记(1)——MVC模式的清单列表效果

MVC模式的清单列表效果 使用WebStorm新建todo.html并链入bootstrap.css、bootstrap-theme.css、angular.js。要链入的相关css和js文件预先准备好&#xff0c;文件目录如下&#xff1a; 使用MVC模式前的代码&#xff1a; <!DOCTYPE html> <html ng-app> <head&g…