LVS (Linux Virtual Server)集群项目实践

LVS (LinuxVirtual Server)集群项目实践

实验目的:通过实验可以熟练规划和配置集群项目

实验环境:Red Hat Enterprise Linux Server release 6.4

实验前提:请确保实验前看过 LVS 中文站点

实验说明:本实验只是以实现负载均衡为目标,并没有考虑如共享存储等,这方面问题在以后的实验中 会添加。

实验步骤

一、LVS 系统模型

二、LVS 调度算法

三、负载平衡方法

四、常用术语介绍

五、NAT 方式架设

六、DR方式架设

一、LVS 系统模型

Linux 虚拟服务器(Linux Virtual Server, LVS )建筑于实际的服务器集群之上,用户看不到提供服务的多台实际服务器,而只能看见一台作为负载平衡器的服务器。实际的服务器通过高速局域网或地理上分散的广域网连接。实际服务器的前端是一台负载平衡器,他将用户的请求调度到实际服务器上完成,这样看起来好像所有服务都是通过虚拟服务器来完成的。Linux 虚拟服务器能够提供良好的可升级性、可靠性和可用性。用户可以透明地增加或减少一个节点,可以对实际服务器进行监测,如果发现有节点失败就重新配置系统。

二、LVS 调度算法

LVS提供了十种调度算法:

(一)轮询(RoundRobin Scheduling )   rr

轮转调度不考虑服务器的连接数和响应时间,它将所有的服务器都看作是相同的。 当以轮转的形式将连接分发到不同的服务器上。

(二)加权轮转 (WeightedRound Robin Scheduling)       wrr

根据每个机器的处理能力的不同给每个机器分配一个对应的权重,然后根据权重的

大小以轮转的方式将请求分发到各台机器。这种调度算法的耗费比其它的动态调度算法小,但是当负载变化很频繁时,它会导致负载失衡,而且那些长请求会发到同一个服务器上。

(三)最少连接调度(LeastConnection  Scheduling)       lc

最少连接调度将用户请求发送到连接数最少的机器上。最少连接调度是一种动态调度方法,如果集群中各台服务器的处理能力相近,则当负载的变化很大时也不会导致负载失衡,因为它不会把长请求发送到同一台机器上。但是当处理器的处理能力差异较大时,最少连接调度就不能很好的发挥效能了。

(四)加权最小连接调度(WeightedLeast Connection Scheduling)      wlc

根据服务器的性能不同而给它们分配一个相应的权重,权重越大,获得一个连接的机会就越大。有如下的运算方法:(假设共有n 台机器,每一台服务器i 的权重为Wi(i=1 ,..,n),活跃连接数为Ci (i=1 ,..,n),所有的连接数为Ci (i=1 ,..,n)的总和,下一个连接会发送给服务器j ,服务器j 满足以下的要求):(Cj/ALL_CONNECTIONS)/Wj = min {(Ci/ALL_CONNECTIONS)/Wi } (i=1,..,n) 由于ALL_CONNECTIONS 是一个常数,因此上面的式子可以优化为: Cj/Wj = min { Ci/Wi } (i=1 ,..,n)

(五)(Locality-Based Least - Connection)    lblc

(六)(Locality-Based Least - Connection)    lblcr

(七)目的地址哈希算法(DestinationHashing)    dh

(八)源地址哈希算法(SourceHashing)    sh

(九)(Shortest    Expected   Delay )   sed

(十)不排队调度(Never     Queue )      nq

三、负载平衡方法

LVS 提供了三种IP级的负载平衡方法:

Virtual Server via NAT 、Virtual Server via IP Tunneling、Virtual Server via Direct Routing。

Virtual Server via NAT 方法使用了报文双向重写的方法,

VirtualServer via IP Tunneling 采用的是报文单向重写的策略,

Virtual Server via Direct Routing 采用的是报文转发策略,

四、常用术语介绍

DGW    公网IP地址的默认网关

VIP    客户端访问的公网IP地址,Director的虚拟IP地址

DIP    Director的真实IP地址

RIP    真实机的IP地址

五、NAT 方式架设

一、实验前的准备工作

网络拓扑规划:

VIP :10.0.0.1

DIP :192.168.4.254    (打开ip_forward)

RIP :192.168.4.11     (默认网关为192.168.4.254 )

RIP :192.168.4.22     (默认网关为192.168.4.254 )

测试机 : 10.0.0.20

二、Director  的配置

(一)设置主机名

[[email protected] ~]# hostname Director

[[email protected] ~]# vim /etc/sysconfig/network

NETWORKING=yes

NETWORKING_IPV6=no

HOSTNAME=Director

(为了更直观的配置,可以重新打开新的tty,或新的标签,发现主机名已经更改)

(二)打开ip_forward,开启调度器的路由功能

[[email protected] ~]# vim /etc/sysctl.conf

net.ipv4.ip_forward= 1

[[email protected] ~]# sysctl  - p    //让配置生效

(三)IP地址的配置

1.[[email protected]~]# vim /etc/sysconfig/network - scripts/ifcfg - eth0

DEVICE=eth0

BOOTPROTO=static

IPADDR=192.168.0.200

NETMASK=255.255.255.0

ONBOOT=yes

[[email protected] ~]# service networkrestart    (重新启动网络服务)

2.  绑定一个实验用的模拟外网地址eth1: 10.0.0.1  ,IP地址配置

[[email protected]~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1

TYPE=Ethernet

ONBOOT=yes

NM_CONTROLLED=yes

BOOTPROTO=none

IPADDR=10.0.0.1

NETMASK=255.255.255.0

3.  测试IP地址是否正常

[[email protected] ~]# ping  - c 1 192.168.4.254

[[email protected] ~]# ping  - c 1 10.0.0.1

(如果可以正常的Ping通,可以继续下面的实验)

三、Real Server 的配置

Real Server 1

(一)在Real Server1 上设置主机名

1.[[email protected] ~]# vim/etc/sysconfig/network

NETWORKING=yes

NETWORKING_IPV6=no

HOSTNAME=Server1

2.[[email protected] ~]#hostname Server1

(二)设置IP地址和默认网关

[[email protected] ~]# vim /etc/sysconfig/network -scripts/ifcfg - eth0

DEVICE=eth0

BOOTPROTO=none

IPADDR=192.168.4.11

NETMASK=255.255.255.0

GATEWAY=192.168.4.254     (注意:必须设置默认网关)

ONBOOT=yes

(三)打开apache  并测试是否可以正常访问

1.为了便与直观的看到效果,新建一个index.html

[[email protected] ~]# vim /var/www/html/index.html

<html>

<head>

<title>192.168.4.11</title>

</head>

<body>

<center>Server1</center>

</body>

</html>

2. 重新启动Apache服务

[[email protected]~]# service httpd restart

3. 测试网页

[[email protected]~]# elinks --dump http://192.168.4.11

Server1

Real Server 2

(一)在RealServer 2 上设置主机名

1.[[email protected] ~]# vim/etc/sysconfig/network

NETWORKING=yes

NETWORKING_IPV6=no

HOSTNAME=Server2

2.[[email protected] ~]# hostname Server2

(二)设置IP地址和默认网关

[[email protected] ~]# vim /etc/sysconfig/network -scripts/ifcfg - eth0

DEVICE=eth0

BOOTPROTO=none

IPADDR=192.168.4.22

NETMASK=255.255.255.0

GATEWAY=192.168.4.254     (注意:必须设置默认网关)

ONBOOT=yes

(三)打开apache  并测试是否可以正常访问

2.为了便与直观的看到效果,新建一个 index.html

[[email protected] ~]# vim /var/www/html/index.html

<html>

<head>

<title>192.168.4.22</title>

</head>

<body>

<center>Server2</center>

</body>

</html>

2. 重新启动Apache服务

[[email protected] ~]# service httpd restart

3. 测试网页

[[email protected] ~]# elinks --dumphttp://192.168.4.22

Server2

四、Director  上的部署和测试

(一)安装软件包

默认光盘yum install ipvsadm 无法安装,所以先设置yum源,以光盘为例

[[email protected] ~]# vim /etc/yum.repos.d/yum.repo

[rhel-yum]

name=Red Hat Enterprise Linuxyum

baseurl=file:///media/Server

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[loadbalancer]

name=server

baseurl=file:///media/LoadBalancer

enabled=1

gpgcheck=0

挂在光盘,装载软件:

[[email protected] ~]# mount /dev/cdrom  /media/

[[email protected] ~]# yum -y install ipvsadm

[[email protected] ~]# service ipvsadm start;chkconfigipvsadm on

(二)负载均衡调度

[[email protected] ~]# ipvsadm  - A - t 10.0.0.1:80  -s rr

[[email protected] ~]# ipvsadm  - a - t 10.0.0.1:80  -r 192.168.4.11 -m -w 1

[[email protected] ~]# ipvsadm  - a - t 10.0.0.1:80  -r 192.168.4.22  -m -w 2

[[email protected] ~]# ipvsadm -Ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

->RemoteAddress:Port           ForwardWeight ActiveConn InActConn

TCP 10.0.0.1:80 rr

->192.168.4.11:80              Masq    1     0          0

->192.168.4.22:80              Masq   1      0          0

[[email protected] ~]# service ipvsadm save

[[email protected] ~]# modprobe iptable_nat

(三)测试是否达到负载均衡的效果(必须在另一台计算机上,拥有10.0.0.0网段的IP地址)

[[email protected] ~]# elinks --dump http://10.0.0.1

Server1

[[email protected] ~]# elinks --dump http://10.0.0.1

Server2

(四)用ab测试其性能

[[email protected] ~]# ab - n 1000 - c 200 http://10.0.0.1/index.html

[[email protected] ~]# ab - n 1000 - c 200http://10.0.0.1/ index.html

(五)测试说明

这里我简单的用静态的html来检测,普通单机和集群的速度比,在实际的应用中,静态页面需要Squid 来加速,而静态页面才用集群,实现动静分离,这部分在以后的实验中会体现。

时间: 2025-01-16 04:45:05

LVS (Linux Virtual Server)集群项目实践的相关文章

LVS (Linux Virtual Server) 负载均衡

[大型网站技术实践]初级篇:借助LVS+Keepalived实现负载均衡 一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了服务器集群技术,集群即将相同服务部署在多台服务器上构成一个集群整体对外提供服务,这些集群可以是Web应用服务器集群,也可以是数据库服务器集群,还可以是分布式缓存服务器集群等等. 古人有云:当一头牛拉不动车的时候,不要去寻找一头更强壮的牛,而是用两头牛来拉车. 在实际应用中,在Web服务器集群之前总会有一台负载均衡服务器,负载均衡设备

linux cluster LB集群之LVS

Linux Cluster 类型分类: 负载均衡集群:Load balancing 高可用集群:High Avaiability 高性能集群:High Performance 及分布式系统 LB:LB的实现是在提供相同服务的多台服务器之前添加调度器即负载均衡集群 工作协议层来划分: tcp:根据请求报文中的目标地址和端口进行调度: 应用层:根据请求的内容进行调度,而且此种调度为"代理"方式: lvs: Linux Virtual Server,虚拟服务, 由章文嵩研发工作于layer4

linux在服务器集群的应用

引言 随着服务器需求量的不断增长,关于操作系统的研究也在近几年进行的异常火热.虽然Unix在服务器领域盘踞多年,因此作为类Unix系统的Linux,近几年在人们视野的曝光率也越来越高.著名的科技杂志<网络世界>从2010年1 月份开始,发起了一项关于"Linux 企业应用现状"的调查报告.通过各种不同的渠道搜集了来自金融产业.电信产业.能源产业.科研教育产业.医疗产业.制造业等许多不同类型的行业,以及众多政府机构的多位IT部门负责人的反馈,渴望通过真实的Linux在产业的真

【LVS】负载均衡集群NAT模式

LVS (Linux Virtual Server)是一种集群(Cluster)技术,采用IP负载均衡技术和基于内容请求分发技术.LVS可以实现LINUX平台下的简单负载均衡. 其中LVS/NAT是一种最简单的方式,所有的RealServer只需要将自己的网关指向Director即可. LVS负载均衡的NAT模式 一.实验准备 在VMware Workstation虚拟机环境下,准备三台服务器,一台作为director, 两台作为real server. 二.网络配置 director需要配置两

LVS搭建负载均衡集群

1.集群的概念: 服务器集群就是将很多服务器集中起来一起进行同一种服务,在客户端看来就像是只有一个服务器 2.集群的分类: 高可用集群(HA) 主要用于高可用解决方案的实现,节点间以主备形式,实现容灾:在大型故障的情况下实现快速恢复,快速提供服务 工作方式: 主从方式:主机工作,备机监控 互为主从:两服务器同时在线,一台服务器故障可切换到另一台上.有效的利用服务器资源,但当服务器故障时候,将可能导致服务器负载过大 多台服务器主从:大部分服务器在线使用,小部分监控:若有部分服务器故障,可切换到指定

负载均衡:Linux Virtual Server(lvs)

负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群.常用的负载均衡开源软件有nginx.lvs.haproxy,商业的硬件负载均衡设备F5.Netscale.这里主要是学习 LVS 并对其进行了详细的总结记录.**** Cluster集群 集群,为解决某个特定问题将多台计算机组合起来形成的单个系统 Linux Cluster 类型: LB:Load Balancing,负载均衡 HA:High Availiablity,高可用,SPOF(single Point O

LVS Load Balancing Linux Virtual Server

简介:Linux虚拟服务器(Linux Virtual Server. LVS),是一个由章文松开发的自由软件.利用KVS可以实现高可用的.可伸缩缩的Web, Mail, Cache和Medial等网络股务..井在此基 础上开发支持庞大用户数的,可伸缩的,高可用的电子商务应用.LVS1998年发展到现在,已经变得比较成熟,目前广泛应用在各种网络服务和电了商务应用 中.LVS具有很好的伸缩缩性.可靠性和管埋性,通过LVS要实现的最终目标是:利用linux 操作系统和LVS集群软件实现一个高可用.高

linux下lvs搭建负载均衡集群

常用开源集群软件有:lvs,keepalived,haproxy,nginx,apache,heartbeat 常用商业集群硬件有:F5,Netscaler,Radware,A10等 一.LVS介绍 LVS是linux virtual server的简写linux虚拟服务器,是一个虚拟的服务器集群系统,可以再unix/linux平台下实现负载均衡集群功能.该项目在1998年5月由章文嵩博士组织成立. LVS的三种工作模式:1.VS/NAT模式(Network address translatio

Linux LVS(Linux virtual server)V1.26 负载均衡 详细配置教程

2 Linux LVS(Linux virtual server)V1.26 负载均衡 配置思路: 安装LVS服务器 在LVS服务器上安装kernel 链接内核文件 并手动绑定VIP 配置realserver后端服务,手动执行VIP绑定脚本 2.1 LVS 概念 LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项目,它的官方站点是www.linuxvirtualserver.org.现在LVS已经是 Linux标准内核的一部分