Linux下面的LVS服务的配置(群集服务搭建)

简介:

实验题目


实验一:LVS之NAT实验配置



实验介绍

   在企业的IT 集群应用中,最常用的架构除了高可用集群外,还有负载均衡集群(Load

Balancing)。负载均衡集群可实现多台服务器或应用的流量均衡分配。服务器集群对外部应

用及客户表现为一个虚拟的服务器,集群内部各服务器平均地处理由外部应用及客户端所提

交的业务,实现服务器之间的负载均衡处理并提供灵活的可扩展性,当业务压力增大时,可

随时加入新的服务器以提高集群的整体性能。负载均衡集群特别适用于高并发的网络应用,

如网站、文件服务器、各种要求高并发的Socket处理等。通常负载均衡集群方案大多通过

专用的硬件--"负载均衡器"来实现,但此类硬件产品往往价格昂贵。目前在服务器领域千兆

网络已经非常普及,但是当前中档的百兆负载均衡器依然以动辄近十万元的高价,使得不少

企业望而却步。

   LVS(负载均衡软件,Linux Virtual Server)项目的创始人是我国国防科技大学的章文

嵩博士,此项目也是当前已经加入到Linux内核中为数不多的由国人维护的开源项目之一。

随着此项目的不断发展,功能的逐渐完善及性能的不断提高,当前不少硬件负载均衡器就是

通过Linux内核结合LVS来实现的

实验过程

实验拓扑:

LVSNAT配置的实验拓扑图(省略,在共享的文章word文档里面有)



1、负载均衡群集在rhel6.0中的应用

xrandr -s 800×600  调整屏幕分辨率


案例1:

LVS-NAT模式


环境准备阶段:

物理环境准备

指定虚拟网络:把内网的网段设置为VMnet2

             把外网的网段设置为VMnet4


在LVS负载调度器上面需要添加一块网卡,把网卡设置为VMnet4


虚拟机环境准备

-----LVS负载调度器---------

ifconfig eth0

ip:192.168.1.254/24 (内网网关)


ifconfig eth1(外网网关)

ip:192.168.2.254/24


/etc/init.d/network restart


-----web1(节点1)----------

ifconfig eth0

ip:192.168.1.250/24 GW:192.168.1.254(内网网关)

/etc/init.d/network restart


/etc/init.d/httpd restart


cd /var/www/html

vim index.html

example.com

chkconfig httpd on




------web2(节点2)----------

ifconfig eth0

ip:192.168.1.253/24  GW:192.168.1.254(内网网关)

/etc/init.d/network restart

/etc/init.d/httpd restart


vim /var/www/html/index.html

www.example.com

chkconfig httpd on




------client(windows server2003)-------

ip:192.168.2.1/24 GW:192.168.2.254(外网网关)




实验阶段:

LVS负载调度器:

system-config-firewall


vim /etc/sysctl.conf

修改一处  net.ipv4.ip_forward=0,把此处的0改为1


sysctl -p


web1:

system-config-firewall

setenforce 0


ping 192.168.2.1


web2:

system-config-firewall

setenforce 0


ping 192.168.2.1


client:

关闭windows server 2003的防火墙



测试阶段

ping测试来测试网络的连通性

客户端:用Windows server 2003系统模拟


ping 192.168.1.250

ping 192.168.1.253



LVS负载均衡器

cd /mnt

cd Packages/

rpm -ivh ipvsadm-*

ipvsadm -L

ipvsadm -Ln

ipvsadm -C

ipvsadm -A -t 192.168.2.254:80 -s rr


ipvsadm -a -t 192.168.2.254:80 -r 192.168.1.250 -m -w 1

ipvsadm -a -t 192.168.2.254:80 -r 192.168.1.253 -m -w 2

service ipvsadm save

ipvsadm -L


/etc/init.d/ipvsadm restart

chkconfig ipvsadm on



访问(在Windows server 2003上面)

在地址栏输入:192.168.2.254


若链接不上则ping测试

ping 192.168.1.250

ping 192.168.1.253



实验二:LVS之DR(直接路由转发)


接着上面的实验

1.

安装ipvsadm,并清空LVS并发数

在配置好的NAT的情况下面,在LVS服务调度器上面直接的把并联的网络连接清空就ok了

ipvsadm -C  这个命令就ok了


在LSV服务调式器上面

接下来就是

ipvsadm -Ln查看网络的连接状态


ifconfig eth0:1 192.168.1.240/32 up

cd /etc/sysconfig/network-scripts/

ls

cp ifcfg-eth0 ifcfg-eth0:1

vim ifcfg-eth0:1


2.

下面在/etc/sysctl.conf下面添加

net.ipv4.conf.all.send_redirects=0

net.ipv4.conf.default.send_redirects=0

net.ipv4.conf.eth0.send_redirects=0

net.ipv4.conf.eth1.send_redirects=0


sysctl -p


3.s

配置负载分配策略

ipvsadm -A -t 192.168.1.240:80 -s rr

ipvsadm -a -t 192.168.1.240:80 -r 192.168.1.250 -g -w 1

ipvsadm -a -t 192.168.1.240:80 -r 192.168.1.253 -g -w 1

service ipvsadm save

ipvsadm -Ln



在web1(web服务器的节点1)上面

ifconfig lo

ifconfig lo:1 192.168.1.240/32 up


ifconfig 查看


route add -host 192.168.1.240 dev lo:1

vim /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

执行sysctl -p使修改生效

/etc/init.d/httpd restart


在web2(web服务器的节点2)上面

ifconfig lo

ifconfig lo:1 192.168.1.240/32 up


ifconfig 查看


route add -host 192.168.1.240 dev lo:1

vim /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

执行sysctl -p使修改生效

/etc/init.d/httpd restart


winodows客户端

把网卡设置为VMnet2

ip地址改为:192.168.1.1/24

GW:192.168.1.254


DNS:192.168.1.254


ping测试

ping 192.168.1.240 可以通


ping 192.168.1.254 可以通


ping 192.168.1.250 不通


ping 192.168.1.253 不通




实验三:LVS之主从服务器的配置

实验题目:LVS的主从服务器的配置


LVS主服务器

第一步:设置网卡内型,这里LVS主服务器需要添加一块网卡

VMnet2 内网,VMnet4外网

ip:192.168.1.254/24 (内网)

ip:192.168.2.254/24 (外网)


第二步关闭防火墙

system-config-firewall

setenforce 0


第三步安装ipvsadm

mount /dev/cdrom /mnt

cd /mnt/Packages

rpm -ivh ipvsadm*


/etc/init.d/ipvsadm restart


第四步:安装yum仓库

vim /etc/yum.repos/server.repo

[base]

name=rhel 6.2

baseurl=file:///mnt/

enabled=1

gpgcheck=0



第五步:安装php包

yum -y install php*




第六步:rpm -ivh piranha*

/etc/init.d/httpd restart


第七步:piranha-passwd




第八步:在地址栏中输入http://192.168.1.254:3636   ---发现打不开


/etc/init.d/pulse restart   ----重启失败


/etc/init.d/piranha-gui restart  ---重启生效



再次在地址栏中输入:192.168.1.254:3636


接下来点击------login

接下来输入刚才设置的用户与密码

用户名:piranha

密码:


-------------------------------------------------------

第九步:点击第二项----GLOBAL SETTINGS------>然后来修改一些配置

1.GLOBAL SETTINGS设置

下面直接找到LVS的内型,然后点击Direct Routing就OK,接下来再来填写下面的内容:

Primary server public IP:192.168.1.254

Primary server Pravte IP:192.168.2.254

填完后最后点击“accept”


2.REDUNDANCY-------------备用服务器

接下来点击Backup:inactive使其为active

下面填写备用服务器的ip地址

Redundant server public IP:192.168.1.250

Redundant server private IP:192.168.2.250


3.VIRTUAL SERVERS

下面先点击“EDIT”---编辑

----VIRTUAL SERVER----

Name:web

Vitual IP Address:192.168.1.240

Vitual IP Network Mask:255.255.255.255

最后点击“ACCEPT”



----REAL SERVER-----(节点服务器)

点击“EDIT”

Name:web1

Address:192.168.1.252

最后点击"ACCEPT"


下面再次点击一下REAL SERVER的"EDIT"

Name:web2

Address:192.168.1.253

最后点击“ACCEPT”

完成后最后点击“激活”


----MONITORING SCRIPTS------

这里不需要更改,直接的点击“ACCEPT”保存


再回到VIRTUAL SERVERS这里,然后点(DE)ACTIVE


下面再次重启pulse服务发现现在OK了

/etc/init.d/pulse restart  

/etc/init.d/ipvsadm restart

ipvsadm

vim /etc/sysconfig/ha/lvs.cf  (可以看到刚才的配置)


ifconfig ---查看现在的ip地址




----------------从属LVS服务器的配置--------------


第一步:在从属LVS服务器上面添加一块网卡

配置ip地址

ip:192.168.1.250/24

ip:192.168.2.250/24 (HA)

/etc/init.d/network restart


ifconfig


第二步:关闭防火墙

system-config-firewall

setenforce 0


第三步:挂载光驱

mount /dev/cdrom /mnt

cd /mnt/Packages


第四步:配置yum仓库

vim /etc/yum.repos.d/server.repo

[base]

name rhel 6.1

baseurl=file:///mnt/

enabled=1

gpgcheck=0



第五步:安装ipvsadm

cd /mnt/Packages

rpm -ivh ipvsadm*



第六步:安装php插件

yum -y install php*


第七步:安装安装piranha*

rpm -ivh piranha*


/etc/init.d/piranda-gui restart


/etc/init.d/httpd restart



到LVS主服务器上面

scp /etc/sysconfig/ha/lvs.cf  root@192.168.1.250:/etc/sysconfig/ha/lvs.cf

然后下面点击“yes”



然后再回到从属服务器LVS上面

ifconfig


/etc/init.d/pulse restart

ifconfig


-----------------------------------------------------------------

配置web1服务器

第一步:配置ip地址,网卡设置为VMnet2

ip:192.168.1.252/24


/etc/init.d/httpd restart

/etc/init.d/network restart


第二步:配置httpd

cd /var/www/html

vim index.html

example.com----192.168.1.252


第三步:关闭防火墙

system-config-secr

setenforce 0




ping  192.168.1.254



在主lvs这边也用ping来测试一下

ping 192.168.1.252


ipvsadm




web2上面

第一步:配置ip地址

ip:192.168.1.253/24

/etc/init.d/network restart


ifconfig

第二步:关闭防火墙



第三步安装httpd

yum -y install httpd

/etc/init.d httpd restart


第四步:配置httpd

vim /var/www/html/index.html

www.example.com----192.168.1.253


ping 192.168.1.254


第五步:


主服务器LVS上面测试

ping 192.168.1.253


ipvsadm



-----------------客户端测试------------

现在还不能访问

ping 192.168.1.254


ping 192.168.1.252

ping 192.168.1.253



在web2上面配置

ifconfig lo:1 192.168.1.240/32 up

ifconfig



在web1上面配置

ifconfig lo:1 192.168.1.240/32 up



在LVS主服务器上面

ping 192.168.1.252


ping 192.168.1.253


ipvsadm



下面再回到LVS服务器查看

ipvsadm




再次到客户端测试----现在发现可以访问了

在客户端地址栏输入:192.168.1.240或者http:\\192.168.1.240



在web1上面添加一条路由

route add -host 192.168.1.240 dev lo:1

echo 1>/proc/sys/net/ipv4/conf/all/arp_ignore

echo 2>/proc/sys/net/ipv4/conf/all/arp_announce

echo 1>/proc/sys/net/ipv4/conf/lo/arp_ignore

echo 2>/proc/sys/net/ipv4/conf/lo/arp_announce



在web2上面添加一条路由

route add -host 192.168.1.240 dev lo:1

echo 1>/proc/sys/net/ipv4/conf/all/arp_ignore

echo 2>/proc/sys/net/ipv4/conf/all/arp_announce

echo 1>/proc/sys/net/ipv4/conf/lo/arp_ignore

echo 2>/proc/sys/net/ipv4/conf/lo/arp_announce


回到LVS主服务器上面查看

ipvsadm


下面再次到客户端就可以访问了



下面就开始做测试httpd服务器挂掉后会怎么样?

到web1上面

service httpd stop



回到LVS主服务器上面查看

ipvsadm



到web1上面

service httpd start




假说主服务器挂掉了----直接挂起或者关闭来模拟挂掉



现在再来查看从属服务器------发现现在起来了我

这里仅仅是过程,很多的理论本人不会,我也不喜欢理论,只喜欢把东西做出来,达到实验的效果与目的,追求简单,快捷,讲求实用,我认为任何的技术发明出来都是要容易的完成,容易的达到效果,这就是目的,原理也是很重要的。能够从过程推导出原理来是我认为最有趣的一件事情,不然的话,一开始原理着手,那我可是受不了的,因为一大堆的东西你要去看,主要是看的时候很乏味,不能像小说那样的有趣,所以我不喜欢一开始的理论,而是通过做实验入手,像这样的做实验才有趣。最关键还是要别人演示一遍实验的过程(老师或者懂这方面的人),然后你跟着做就行了。不然还是要多看书,毕竟技术是枯燥的事情,想要学到还是需要下一番苦功夫。我认为没有任何有实用价值的东西得来是简单的,越简单的东西就越没有价值与意义。



本文转自  vbers 博客,原文链接:  http://blog.51cto.com/vbers/1347525      如需转载请自行联系原作者

相关文章
|
11月前
|
Ubuntu Linux 网络安全
Linux服务器之Ubuntu的安装与配置
Ubuntu Desktop是目前最成功、最流行的图形界面的Linux发行版;而Ubuntu Server也在服务器端市场占据了较大的份额。今天为大家详细介绍了Ubuntu Server的安装与配置,希望对你能有所帮助。关于VMware、VirtualBox等虚拟化软件的使用,朱哥还会在后续的文章中为大家详细介绍,敬请关注!
|
安全 Linux 开发工具
【Linux】vim使用与配置教程
Vim是一款功能强大的文本编辑器,广泛应用于Linux环境,是开发者和系统管理员的必备工具。本文介绍了Vim的基本操作与简单配置,涵盖命令模式、插入模式和底行模式的使用方法,以及光标定位、复制粘贴、搜索替换等常用技巧。同时,文章还提供了实用的分屏操作和代码注释方法,并分享了通过`.vimrc`文件进行个性化配置(如显示行号、语法高亮、自动缩进等)的技巧,帮助用户提升文本编辑效率。掌握这些内容,能让Vim更好地服务于日常工作与开发需求。
1154 3
|
9月前
|
存储 Linux 开发工具
Linux环境下使用Buildroot配置软件包
使用Buildroot可以大大简化嵌入式Linux系统的开发和维护工作,但它需要对Linux系统和交叉编译有深入的理解。通过上述步骤,可以有效地配置和定制软件包,为特定的嵌入式应用构建高效、稳定的系统。
983 11
|
12月前
|
Kubernetes Linux 网络安全
Rocky Linux 8.9配置Kubernetes集群详解,适用于CentOS环境
初始化成功后,记录下显示的 `kubeadm join`命令。
850 0
|
关系型数据库 MySQL Java
安装和配置JDK、Tomcat、MySQL环境,以及如何在Linux下更改后端端口。
遵循这些步骤,你可以顺利完成JDK、Tomcat、MySQL环境的安装和配置,并在Linux下更改后端端口。祝你顺利!
743 11
|
Java Linux 应用服务中间件
在Rocky Linux 9上安装JDK并配置环境变量!
本教程介绍在Rocky Linux 9上安装JDK并配置环境变量的完整步骤。首先更新系统,清理旧版本JDK相关包及残留文件,确保环境干净。接着搜索并安装所需版本的JDK(如OpenJDK 17),验证安装是否成功。然后查找JDK安装路径,配置全局环境变量`JAVA_HOME`和`PATH`,最后验证环境变量设置。按照此流程操作,可顺利完成Java开发环境搭建,支持多版本切换(如JDK 8/11/17)。生产环境请谨慎操作,避免影响现有服务。
2089 21
|
安全 Linux 网络安全
在Linux(CentOS和AWS)上安装更新的git2的方法并配置github-ssh
经过以上这些步骤,你现在就能在GitHub上顺利往返,如同海洋中的航海者自由驰骋。欢迎你加入码农的世界,享受这编程的乐趣吧!
617 10
|
Linux 网络安全 开发工具
在Linux下配置gitee与Github的远程仓库
注意,git push后,是输入你的账号与密码。这个步骤可以通过特殊设置省去,但是一开始还是不要太省。
673 0
|
人工智能 Kubernetes Ubuntu
linux配置IP
linux配置IP
5607 1
|
监控 Shell Linux
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
10618 2