集群-基础知识3

发布时间:2019-07-05 09:54:43编辑:auto阅读(1584)

    纠正:报文进入内核空间后,当到达input链时发现是一个集群服务时,则直接发送到postrouting链,不经过forward链。

    调度算法:

    1、静态方法:

    rr:轮询,即依照次序从所有RS中进行挑选

    wrr:加权轮询,按照权重在RS中进行轮询

    sh:source hashing,源地址哈希,即对来自相同客户端的请求发送至同一RS,这样会破坏负载均衡效果。可以基于cookie实现session绑定。

    dh:destination hash,目标地址哈希,将同样的请求发给同一个RS。可以提高缓存命中率。

    2、动态方法:

    lc:最少连接。(活动连接数*256+非活动连接数),谁的最小就是谁。

    wlc:加权最少连接。(活动连接数*256+非活动连接数)/weight,谁的最小就是谁。

    sed:最少期望延迟。不再考虑非活动连接。(活动连接数+1)*256/weight,谁的最小就是谁。

    nq:最少队列调度,改进的sed算法,也不考虑非活动连接数。无需队列。如果有台realserver的连接数=0就直接分配过去,不需要在进行sed运算。

    lblc:基于本地的最少连接。和dh一样,考虑cache的连接数。可能破坏缓存命中率。

    lblcr:基于本地的带复制功能的最少连接。如果一台服务器的访问过高,可以将缓存复制给其他服务器前面的缓存服务器,然后由其他服务器提供服务。缓存服务器之间会部分复制缓存。

    生产环境中比较理想的是wlc,因为非活动连接可能是无法忽略的。

    安装ipvsadm及命令详解:

    yum直接安装ipvsadm即可。

    grep -i 'vs' /boot/config-2.6.32-504.el6.x86_64   #即可查看ipvsadm的相关算法等信息

    主要功能:

    1、管理集群服务:
        添加:ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]] [-M netmask]
            -t|u|:tcp|udp
                service-address:ip:port
            -f:防火墙标记
                service-address:mark number
            默认使用wlc算法
        修改:同上
        删除:ipvsadm -D -t|u|f service-address
    2、管理集群中RS:
        添加:ipvsadm -a|e -t|u|f service-address -r server-address [-g|i|m] [-w weight] [-x upper] [-y lower]
            service-address:先定义的集群服务
            -r server-address:RS地址,在NAT模型中可以使用ip:port来做端口映射
            [-g|i|m]:g,DR模型;i,TUN模型;m,地址伪装NAT模型,默认为DR模型
            -w weight:权重,若集群不指定权重,则此处无意义 
        修改:同上
        删除:ipvsadm -d -t|u|f service-address -r server-address
    3、查看
        -L|l:查看
            -n:数字格式显示ip和端口
            --stats:显示统计信息
            --rate:显示速率
            --timeout:显示tcp,tcpfin,udp超时
            --daemon:显示多播等信息
            --sort:排序
            -c:显示连接状态
    -Z:清空计数器
    -C:清空所有集群服务
    保存规则:
        -S > 文件(使用输出重定向)
        或者service ipvsadm save,自动保存至/etc/sysconfig/ipvsadm中
    导入规则:
        -R < 文件(使用输入重定向)

    实验:

    前提:

    1、时间得同步。尤其是以后的高可用模型对时间同步要求很严格。

    2、改主机名

    3、directory(调度器)的两块网卡之间得打开转发功能

    blob.png

    IP规划如上图

    开启网卡转发功能:

    blob.png

    Directory网络配置(eth0设置为桥接,eth1设置为仅主机模式):

    blob.png

    RS网络设置

    RS1:(网卡设置为仅主机模式)

    blob.png

    RS2:(网卡设置为仅主机模式)

    blob.png

    添加集群服务并查看 

    blob.png

    blob.png

    在RS中添加默认网页:

    echo “RS1” > /var/www/html/index.html
    echo “RS2” > /var/www/html/index.html

    再RS中启动httpd服务:service httpd start

    查看一下index.html文件:

    blob.png(此处未改主机名)

    blob.png(此处未改主机名)

    在网页中输入192.168.0.20并刷新

    blob.png

    blob.png

    保存规则并查看:

    blob.png

    blob.png

    清空规则并查看:

    blob.png

    此时已无规则。

    导入规则并查看:

    blob.png

    DR模型:

    blob.png

    Director配置:(配置DIP,VIP,添加路由)

    blob.png

    blob.png

    RS1配置:

    blob.png

    (此处未改主机名)

    [root@RS1 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore 
    [root@RS1 ~]# echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore 
    [root@RS1 ~]# echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce 
    [root@RS1 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

    配置vip:

    [root@RS1 ~]# ifconfig lo:0 192.168.0.21 broadcast 192.168.0.21 netmask 255.255.255.255 up

    添加路由:

    [root@RS1 ~]# route add -host 192.168.0.21 dev lo:0

    RS2配置:

    blob.png

    (此处未改主机名)

    [root@RS2 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore 
    [root@RS2 ~]# echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore 
    [root@RS2 ~]# echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce 
    [root@RS2 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

    配置VIP:

    [root@RS2 ~]# ifconfig lo:0 192.168.0.21 broadcast 192.168.0.21 netmask 255.255.255.255 up

    配置路由:

    [root@RS2 ~]# route add -host 192.168.0.21 dev lo:0

    Director添加集群服务并查看

    blob.png

    浏览器查看:

    blob.pngblob.png




关键字