集群:是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。集群配置是用于提高可用性和可缩放性。集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。集群配置是用于提高可用性和可缩放性。
LVS-NAT+ipvsadm实现RHEL 5.7上的服务集群
Linux虚拟服务器LVS-NAT 和 LVS-DR 模型的实现
集群分为:
HA:High Availability 高可用集群
LB:Load Balancing 高可拓展,伸缩集群
HP:High Performance 高性能集群
LVS的类型:nat,dr,tun
nat类型的特性:
1、RS应用使用私有地址;RS的网关必须指向DIP;
2、请求和响应都要经过Director;高负载场景中,Director易成为性能瓶颈;
3、支持端口映射;
4、RS可以使用任意OS;
dr类型的特性:
1、保证前端路由将目标地址为VIP的报文统统发往Directory,而不能是RS;
解决方案:
(1) 静态地址绑定:在前端路由器上操作
问题:未必有路由操作权限
(2) aprtables
(3) 修改RS上内核参数,将RS上的VIP配置在lo接口的别名上,并限制其不能响应对VIP地址解析请求;
2、RS可以使用私有地址;但也可以使用公网地址,此时可通过互联网通过RIP对其直接访问;
3、RS跟Directory必须在同一物理网络中;
4、请求报文经由Director,但响应报文必须不能经过Director;
5、不支持端口映射;
6、RS可以是大多数常见的OS;
7、RS的网关绝不允许指向DIP;
tun类型的特性:
1、RIP、VIP、DIP全部是公网地址;
2、RS的网关不会也不可能指向DIP;
3、请求报文经由Director,但响应报文必须不能经过Director;
4、不支持端口映射;
5、RS的OS必须支持隧道功能;
下边我们讲一下Load Balancing的实现。LB实现高拓展集群的方法有软件,硬件两种。由于条件限制而我们只作软件实验
LB实验用到的软件为LVS:Linux Virtual Server虚拟服务器。
lvs分为两部分,ipvsadm和ipvs,ipvs是工作在内核上的。所以我们只需要安装ipvsadm即可。
实验环境准备:
host1:CentOS6.5
网卡两个:eth0 工作在172.16.249.138/16,是VIP是公网IP ;eth1工作在10.0.0.1/24 是DIP 私网IP
host2:CentOS6.5
单网卡,私网IP:10.0.0.2
ipvsadm版本 :ipvsadm-1.26-2.el6
实验模型:nat类型
实验内容:
对web服务请求做负载均衡,将请求的分发到不同的web服务器上去,降低对单个服务器的压力。
1,配置环境
host1主机配置:
为两块网卡配置IP:
ifconfig eth0 172.16.249.138/16
ifconfig eth1 10.0.0.1/24 up
将eth0设为桥接。eth1设为指定本地网络
yum install ipvsadm #安装ipvsadm软件
host2主机配置:
ifconfig eth0 10.0.0.2/24
eth0设为本地网络
route add default gw 10.0.0.1
所以host1 的eth1与host2 的eth0 都无法直接访问公网网络。
2,为host2主机提供web服务。
yum install httpd #安装httpd,有的就无需安装。
配置httpd,创建虚拟主机,模拟两台服务器模式工作。
#DocumentRoot "/var/www/html" #注销掉根目录
NameVirtualHost *:80 #启用
<VirtualHost 10.0.0.8:80>
ServerAdmin aolens@aolens.com
DocumentRoot /www/host1/
ServerName
ErrorLog /www/host1_error.log
CustomLog /www/host1_access.log
</VirtualHost>
<VirtualHost 10.0.0.9:80>
ServerAdmin aolens@aolens.com
DocumentRoot /www/host2/
ServerName
ErrorLog /www/host2_error.log
CustomLog /www/host2_access.log
</VirtualHost>
保存
httpd -t #是否有语法错误。
service httpd reload
mkdir -pv /www/{host1,host2} #创建文件的目录。为web服务提供两个不同的页面,方便可观察访问的是哪个服务器。
为两台虚拟主机提供访问页面:
vim /www/host1/index.html
<h1> </h1>
vim /www/host2/index.html
<h1> </h1>
3,添加一个集群服务
service ipvsadm start #启动ipvsadm服务