http://zwfang09.blog.sohu.com/entry/

Cluster 集群 ,群集

  --- 负载均衡 LB ,load-balance

  --- 高可用集群 HA ,High Availability

  --- 高性能集群 HP  High Performancing

负载均衡—解决多用户并发连接请求

LVS---即Linux Virtual Server 是一个服务集群,又成为Director

什么时候会用到LVS: 高吞吐量 For higher throughput

                    冗余 for redundancy

   添加:for adaptability

LVS IP: Virtual IP address 即 VIP 虚拟IP

         Real IP address 即RIP 真实IP

         Director‘s IP address 即 DIP 与LVS通信的IP

         Client computer‘s IP Address 即 CIP 客户端

 

  

 

 

 

 

 

 

 

 

 

 

集群类型:根据转发方式分为:

 Network address translation  LVS-NAT 地址转换所有真实服务器必须在同一网络

   NAT所有入站和出站都经过Drector

Direct routing  LVS-TOU 直接路由

IP tunling LVS-TUN 隧道 与Director在同一物理网段,Rip不能是私有IP

LVS的十种轮叫算法:

静态调度算法:

1、Rr 轮叫算法

2、Wrr 加强轮叫算法

3、Destination hashing 只要是来源同一个IP地址的,就会发送到同一台服务器

4、Source hashing 只要是同某个防火墙进来的,还要从这个防火墙出去

动态调度算法:

 5、Least-connection LC 当一个新的请求连接发进来时,Director 会查看活动连接和非活动连接数来决定哪一个集群node 接受这个请求, 值最小的会接受,如果值大小一样,会从iptables表中从上到下选择

 6、Weighted Least-connection WLC 加权最少连接,指定权重,是集群的默认算法

7、Shorted Expectd Delay SED 权重+1  

 8、Nerver Queen  NQ 永远不排队

9、Locality-Based Least-Connection LBLC 基于本地的最少连接

10、Locality-Based Least-Connection Replication Scheduling LBLCR 基于本地的带复制的最少连接

Ipvsadm参数选项:

     -A 定义哪一种服务为集群使用

     -E 修改集群     -D 删除   -E 修改  -C 清空 

   -a 为某一个虚拟服务添加服务

     -e 编辑服务                 -d 删除服务         -L或-l 列表显示

     -s 保存至某一文件      -R 恢复              -Z 清空计数器

     --set 设定tcp默认超时时间

     -t 指定tcp服务           -u 指定udp服务 –f 防火墙标记

     -s 指定调度算法          -p persisent  LVS的持久使用

     -r 指定 real Server 的IP

    -g 指定 DR类型  (默认       -i  tun 类型         -

     -m 指定NAT类型             -w 指定权重

构建:LVS-NAT

网络环境:Director两个网卡:外网:192.168.0.150  内网:192.168.10.10

          内网服务器:Server1:IP 192.168.10.2 网关:192.168.10.10

                                        Server2:IP 192.168.10.3 网关:192.168.10.10

          外网服务器:IP 192.168.0.157  网关:192.168.0.150

Director服务器要开启路由功能;内网服务器Server1,Server2,开启httpd服务 

 

 

配置:Director:要先装上ipvsadm工具

 #yum install ipvsadm

使用轮叫算法rr

 

 

 

 

 

 

 

外网测试:轮叫算法,依次显示Server1和Server2的www页面

 

 

 

 

 

 

 

 

 

 

 

 

加强轮叫算法:wrr ,将Server1—192.168.10.2的权重设置为3

 

 

 

 

 

 

 

外网测试:结果显示3次Server1的www页面,再显示1次Server2的www页面

 

    

    

    

    

    

    

    

    

    

    

    

dh 算法:来源于同一个IP地址的,就会发送到同一台服务器

 

 

 

 

 

 

 

测试结果,一直显示Server1的www页面,(Server1,Server2是随机显示的)

 

 

 

 

 

 

LVS-DR:

  arp_announce 直接向别人宣称自己的别名地址,而不是主地址

     0 ----使用主地址

     1----尽量避免使用和请求ip不在同一网段的ip

     2----使用最合适的ip

    arp_ignore 怎样相应别人

    0----使用本地主ip

    1----从哪块网卡进来,就从哪块网卡回应

    2----从哪块网卡进来,就从哪块网卡回应,并使用在同一网段的ip

 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

DR模式构建:

三台主机都在同一网段:

Drector:192.168.0.150

Server1:192.168.0.151

Server2:192.168.0.152

做IP隐藏:Server1

 

 

 

 

 

 

为lo添加IP 192.168.0.156,并作路由

 

 

 

 

 

 

server2:

 

 

 

 

 

 

 

 

 

 

Drector:添加IP 192.168.0.156,并作路由

 

 

 

 

 

 

添加ipsadm规则:

 

 

 

 

 

 

 

测试:两次出现server2的www页面,一次出现server1的www页面

 

 

 

 

 

 

 

 

 

 

 

 

防火墙标记:

LVS-persistence 用于SSL,密钥交换

 持久连接默认时间360s ,-p N 设置连接时间

 持久连接类型:

 Persisent client connections –PCC

 Persisent port connections –PPC

 Persisent Netfilter Marked Packet persistence

 FTP connections

 Expired persistence

首先要在real server1和real server2上实现证书服务:

Server1:

1、#yum install mod_ssl

生成密钥:cakey.pem 

 

 

 

 

 

 

 

2、做自签证书:

 

 

 

 

 

 

 

 

 

 

 

 

 

3、将自签证书的权限修改为600

 

 

 

 

4、将证书的路径 修改为 /etc/pki/CA

 

 

 

 

 

 

 

5、在/etc/pki/CA目录下新建目录newcerts ,新建文件index.txtserialecho 00serial

 

 

 

 

 

 

6、在/etc/httpd目录下做证书

 

 

 

 

 

 

颁发证书:

 

 

 

7、编辑/etc/httpd/conf.d/ssl.conf文件,将路径修改为如下:/etc/httpd/ssl/httpd.conf

 

 

 

 

 

 

 

 

 

 

8、本机https测试:需要认证

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9、Real server2:由于Real server1主机上已经申请了证书服务,所以只在server2上生成密钥和请求,让server1给server2颁发证书

/etc/httpd/目录下生成证书请求;

 

 

 

 

 

 

 

 

 

 

10、将生成的请求复制到Real server1

 

 

 

 

11、Server1给server2颁发证书

 

 

 

 

12、将生成的证书在拷贝到server2

 

 

 

 

 

13、编辑/etc/httpd/conf.d/ssl.conf文件,将路径修改为如下:/etc/httpd/ssl/httpd.conf

 

 

 

 

 

 

 

14、server2本机测试需要认证:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15、添加ipvsadm规则:控制443端口

 

 

 

 

 

 

 

 

 

CIP客户机测试:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

16、清空上面规则,重新添加

 

 

 

 

 

 

 

 

测试:持久连接server2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

17、添加防火墙标记

 

 

 

 

 

 

 

 

 

 

测试:即可使用http访问,也可使用https访问,并且server1页面显示1次,server2页面显示2次

http访问:

 

 

 

 

 

 

 

 

 

 

 

https测试:

分享至