CC00002.LBCHAC——|LBC&HAC&HPC集群.V2|——|LVS&LVS_DR&LVS_NAT&LVS_TUN&Keepalived+LVS...

一、LVS-NAT模式集群构建
1、实验架构图
2、构建流程:
### --- 负载调度器

vi /etc/sysctl.conf                                             // 开启路由转发功能
    net.ipv4.ip_forward=1
sysctl -p
### --- 添加防火墙记录,当源地址是内网网段并且出口网卡为eth0 的时候进行SNAT转换,转换源地址为外网卡地址

iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -j SNAT -j SNAT --to-source 20.20.20.11

iptables -t nat  -L                                             // 查看记录是否保存成功
ipvsadm  -A -t 20.20.20.11:80 -s rr                             // 添加ipvsadm TCP集群
ipvsadm  -a  20.20.20.11:80  -r  10.10.10.12:80 -m              // 添加ipvsadm节点
ipvsadm -Ln
service ipvsadm save                                            // 保存ipvs集群设置到文件进行持久化
chkconfig ipvsadm on
### --- 真实服务器

route add default gw IP地址                                     // 指定网关至负载调度器
service httpd start                                             // 开启Apache服务器
chkconfig httpd on
二、LVS-DR模式集群构建
1、实验架构图:
2、构建流程
### --- 负载调度器

### --- 关闭网卡守护进程
service NetworkManager  stop                                
cd /etc/sysconfig/network-scrpits/
cp ifcfg-eth0 ifcfg-eth0:0
vim ifcfg-eth0:0
    DEVICE=eth0:0
    IPADDR=虚拟IP
    NETMASK=255.255.255.0
ifup eth0:0
### --- 关闭网卡重定向功能

vim /etc/sysctl.conf                                        
    net.ipv4.conf.all.send_redirects=0
    net.ipv4.conf.default.send_redirects=0
    net.ipv4.conf.eth0.send_redirects=0
sysctl -p
### --- 重载IPVS模块

modprobe ip_vs                                              
rpm -ivh  ipvsadm-1.261......                               // 安装ipvsadm命令行工具
### --- 查看当前IPVS集群内容

ipvsadm -v                                                  // 查看当前IPVS集群内容
ipvsadm -A -t                                               // 虚拟IP:80 -s rr     添加ipvsadm集群子节点
ipvsadm -a -t                                               // 虚拟IP:80 -r 网站1:80 -g      添加ipvsadm集群子节点
ipvsadm -a -t                                               // 虚拟IP:80 -r 网站2:80 -g

service ipvsadm save                                        // 保存ipvs集群内容至文件,进行持久化存储
chkconfig ipvsadm on                                        // 设置为开机自启
### --- 关闭网卡守护进程真实服务器

service NetworkManager  stop                                // 关闭网卡守护进程
cd /etc/sysconfig/network-scripts/
cp ifcfg-lo  ifcfg-lo:0
### --- 拷贝回环网卡子接口

vim ifcfg-lo:0                                              // 拷贝回环网卡子接口
    DEVICE=l0:0
    IPADDR=虚拟IP
    NETMASK=255.255.255.0
### --- 关闭对应ARP响应及公告功能

vim /etc/sysctl.conf                                        // 关闭对应ARP响应及公告功能
    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
ifup lo:0
### --- 添加路由记录,当访问VIP交给lo:0网卡接受

route add-host  虚拟IP dev lo:0                               // 添加路由记录,当访问VIP交给lo:0网卡接受
service httpd start

一、负载均衡集群相关调度算法
### --- 静态调度算法

### --- 特点:
~~~     只根据算法本身去调度,不考虑服务器本身

### --- 算法说明:
~~~     RR 轮询:将每次用户的请求分配给后端的服务器,从第一台服务器开始到第N台结束,然后循环。
~~~     VRR 加权轮询:按照权重的比例实现在多台主机之间机械能调度
~~~     SH(source hash)源地址散列:将同一个IP的用户请求发送给同一个服务器
~~~     DH(destination hash)目标地址散列:将同一个目标地址的用户请求发送给同一个真实服务器(提高缓存的命中率)
### --- 动态调度算法

### --- 特点:
~~~     除了考虑算法本身,还要考虑服务器状态

### --- 算法说明:
~~~     LC(lest-connection)最少连接,将新的连接请求,分配给连接数最少的服务器的活动连接,活动连接x256+非活动连接
~~~     WLC加权最少连接,特殊的最少连接算法,权重越大承担的请求说越多(活动连接x256+活动连接)/权重
~~~     SED最短期望延迟:特殊的WLC算法(活动连接+1)*256/权重
~~~     NQ永不排队:特殊的SED算法,无需等待,如果有真实服务器额连接数等于0那就直接分配不需要运算
~~~     LBLC特殊的DH算法:技能提高缓存命中率,又要考虑服务器性能
~~~     LBLCR  LBLC+缓存,尽可能提高负载均衡呵呵缓存命中率的折中方案
二、LVS持久连接
### --- 持久客户端连接

### --- 定义:
~~~     每客户端 持久,将来自于同一个客户端的所有请求统统定向至此前选定的RS,也就是只要IP相同,分配的服务器始终相同。
### --- 演示代码:// 添加一个tcp负载集群,集群地址为172.16.0.8,算法为wlc,持久化时间为120s
ipvsadm -A -t 172.16.0.8:0  -s wlc -p 120
### --- 持久端口连接

### --- 定义:
~~~     没端口持久,将来自于同一个客户端对同一个服务(端口)请求,始终定向至此前选定的RS
### --- 演示代码:// 添加一个tcp负载集群,集群地址为172.16.0.8:80,算法为wlc,持久化时间为120s
ipvsadm  -A -t 172.16.0.8:80  -s rr -p 120
### --- 持久防火墙标记连接

### --- 定义:
~~~     将来自于统一客户端对指定服务(端口)的请求,始终定向至此选定RS,不过它可以将两个毫不相干的端口定义为一个集群服务
### --- 演示代码:
iptables -t mangle -A PREROUTING  -d 172.16.0.8 -p tcp --dport 80 -j MARK --set-mark 10
~~~     添加一个防火墙规则,当目标地址为172.16.0.8并且目标端口为80时给数据包打一个标记,设置Mark值为10
iptables -t managle -A PREROUTING -d 172.16.0.8 -p tcp -dport 443 -j MARK --set-mark 10
~~~     添加一个防火墙规则,当目标地址为172.16.0.8并且目标端口为443 时给数据包打一个标记,设置Mark值为10
~~~     保存防火墙规则持久化生效
service iptables save                                               
ipvsadm -A -f 10 -s wlc  -p 120 
~~~     添加一个负载调度器,当Mark值为10 时进行负载均衡使用wlc算法,持久化生效时间为120s
三、高可用集群
1、Keepalived相关说明:
### --- 软件相关介绍:
~~~     案例环境转为LVS和HA设计的一款健康检查工具
~~~     支持故障自动切换(Failover)
~~~     支持节点健康状态检查(Health Checking)
~~~     官方网站:http://www.keepalived.org/

### --- 软件实现原理:
~~~     VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)
~~~     一主+多备:公用同一个IP地址,但优先级不同
2、Keepalive+LVS高可用实验构建
3、实验构建代码:
################################################################################
### --- 负载调度器——1
################################################################################
### --- 构建前提:
### --- 先构建LVS-DR模式的负载均衡集群,可参照上文进行构建

### --- 负载调度器——1
yum -y install kernel-devel openssl-devel popt-devel gcc*             // 安装相关Keepalived依赖
tar -zxvf keepalived......                                            // 源码安装Keepalived软件
cd keep......
./configure --prefix=/ --with-kernel-dir=/usr/src/kernels/2.6.32....../
make
make instal
chkconfig -add keepalived                                           // 设置Keepalived开机自启
chkconfig Keepalived on
### --- 设置Keepalived软件配置

vi /etc/keepalived/keepalived.conf                                  // 设置Keepalived软件配置
global_defs{
    router_id R1                                                    // 命名主机名
}
vrrp_instance VI--1 {
    state MASTER                                                    //设置服务类型主/从(MASTER/SLAVE)
    interface eth0                                                  //指定那块网卡用来监听
    virtual_router_id 66                                            //设置组号,如果十一组就是相同的ID号,一个主里面只能有一个主服务器和多个从服务器
    priority 100                                                    //服务器优先级,主服务器优先级高
    advert_int 1                                                    //心跳时间,检测对方存活
    authenticetion  {                                               //存活验证密码
        auth_type PASS
        auth_pass   1111
    }
    virtual_ipaddress{
        192.168.1.100                                               //设置集群地址
    }
}
virtual_server  192.168.1.100:80{                                   //设置集群地址,以及端口号
    delay_loop 6                                                    //健康检查间隔
    lb_algorr                                                       //使用轮询调度算法
    lb_kend  DR                                                     //DR模式的群集
    Protocol TCP                                                    //使用的协议
    real_server 192.168.1.2 80 {                                    //管理的网站节点以及使用端口
        weight 1                                                    //权重,优先级在源文件基础上删除修改
        TCP_CHECK   {                                               //状态检查方式
            connect_port 80                                         //检查的目标端口
            connect_timeout 3                                       //连接超时(秒)
            nb_get_retry 3                                          //重试次数
            delay_before_retry 4                                    //重试间隔(秒)
        }
    }
    real_server 192.168.1.3 80 {                                    //管理的第二个网站节点以及使用端口
        weight 1                                                    //权重, 优先级 在源文件基础上删除修改
        TCP_CHECK       {                                           //状态检查方式
            connect_port 80                                         //检查目标端口
            connect_timeout 3                                       //连接超时(秒)
            nb_ger_retry 3                                          //重试次数
                delay_before_retry 4                                //重试间隔(秒)
        }
    }
}
~~~ 多余删除
### --- 发送到其它主机地点

scp keepalived.conf xx.xx.xx.xx: /etc/keepalived/
################################################################################
### --- 负载调度器——2
################################################################################
### --- 负载均衡调度器-2

yum  install -y kernel-devel openssl-devel popt-devel gcc*          //安装相关Keepalived依赖
tar -zxvf keepalived.....                                           //源码安装Keepalived软件
cd keep......
./configure --prefix=/ --with-kernel-dir=/usr/src/kernels/2.6.32....../
make 
make install 
chkconfig --add keepalived                                          //设置Keepalived开机自启
chkconfig  Keepalived on
### --- 修改从负载调度器-1拷贝的Keepalived配置文件 

vim /etc/keepalived/keepalived.conf
//修改1:state MASTER 修改至state SLAVE
//修改2:priority  100     修改至priority 47      一般建议与主服务差值为50
service NetworkManager stop                                         // 启动虚拟接口,必须关闭此服务
cd /etc/sysconfig/network-scripts/
cp ifcfg-eth0 ifcfg-eth0:0
vim ifcfg-eth0:0                                                    // 配置虚拟机接口
DEVICE=eth0:0       
IPADDR=虚拟IP
NETMASK=255.255.255.0
ifup eth0:0                                                         // 启动虚拟网卡
vim /etc/sysconfig/network-script/ifup-eth                          // 如果报错修改文件257
//注释此区域
//修改内核参数,防止相同网络地址广播冲突,如果有多快网卡需要设置多行
### --- 修改内核参数,防止相同网络地址广播冲突,如果有多快网卡需要设置多行

vim /etc/sysctl.conf                                                // 修改内核参数,防止相同网络地址广播冲突,如果有多快网卡需要设置多行
    net.ipv4.conf.eth0.send_redirects=0
    net.ipv4.conf.all.send_redirects=0
    net.ipv4.conf.default.send_redirects=0
    net.ipv4.conf.eth0.send_redirects=0
sysctl -p                                                           // 刷新内核参数
modprobe    ip_vs                                                   // 查看内核是否加载,无反应则已加载
cat /proc.net/ip_vs                                                 // 查看版本,确认是否正确加载
### --- 安装ipvsadm管理工具

cd /mnt/cdrom/Packages                                              // 进入官潘挂载目录
rpm -ivh  ipvsadm-1.261......                                       // 安装ipvsadm管理工具
ipvsadm -v
ipvsadm -A -t                                                       // 虚拟IP:80  -s rr
ipvsadm -Ln                                                         // 查看设置的ipvsadm如果没有子项,那么手动添加
ipvsadm -a  -t                                                      // 虚拟IP:80 -r 网站1:80  -g
ipvsadm -a -t                                                       // 虚拟IP:80   -r      网站2:80 -g
四、高可用集群:HeartBeat+Nginx 实验构建
1、实验构建说明:
### --- 软件包:
~~~     软件包版本为Centos6系列,如果使用其他版本可以配置eperl源下载安装

### --- 环境准备:
~~~     配置时间同步服务
~~~     配置主机名解析
~~~     实验拓扑结构
2、实验构建流程
################################################################################
### --- HeartBeat+Nginx——3
################################################################################
### --- 基础准备,准备节点都需要安装

tar -zxvf hearbeat.tar.gz
cd hearbeat
yum  -y install *
cd /usr/share/doc/heartbeat-3.0.4/
cp ha.cf authkeys haresources /etc/ha.d/                            // 配置文件需拷贝到默认目录下
### --- 认证服务,节点之间的认证配置,修改/etc/ha.d/authkeys,在主上修改

dd if=/dev/random bs=512 count=1 | openssl md5                      // 生成秘钥随机数
vim authkeys
auth 1
1 md5 a4d20b0dd3d5e35e0f87ce4266d1dd64
chmod 600 authkeys
### --- hearbeat  主配置文件,修改/etc/ha.d/ha.cf,在主上修改

bcast  eth0
node www.centos1.com                                                // 一主一备节点,需注意能被两台主机之间解析
node www.centos2.com
### --- 配置哈resources文件,在主上修改

www.centos1.com IPaddr::10.10.10.100/24/eth0:0
### --- 将主三个配置文件拷贝到从上

cd /etc/ha.d/
scp ha.cf authkeys haresources root@www.contos1.com:/etc./ha.d/
### --- 启动服务进行验证

 主:service httpd start
 主:service hearthbeat start
 备:service httpd start
 备:service heartbear start
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yanqi_vip

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值