部署LVS-DR + keepalived 高可用群集

    LVS集群采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序。为此,在设计时需要考虑系统的透明性、可伸缩性、高可用性和易管理性。
    直接路由(DirectRouting);简称DR模式,采用半开放式的网络结构,与TUN模式的结构类似,但各节点并不是分散在各地,而是与调度器位于同一个物理网络。负载调度器与各节点服务器通过本地网络连接,不需要建立专用的IP隧道。
    Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。



实验需求 


服务器主机 
IP: ( VIP:192.168.200.100)
需要安装配置
NFS共享服务器
192.168.100.100
NFS共享存储
LVS主调度器
192.168.200.103
keepalived 、ipvsadm 
 LVS从调度器
192.168.200.104  
keepalived 、ipvsadm 
节点服务器1 
192.168.200.101  /192.168.100.101
httpd 、NFS
节点服务器2 
192.168.200.102 /192.168.100.102
httpd 、NFS
windows客户机
192.168.200.200
测试专用

LVS调度服务器

主从调度服务器配置基本相同(不同之处已经标注)
# yum install keepalived ipvsadm -y


 调整proc响应参数
# vi /etc/sysctl.conf     
net.ipv4.ip_forward=1
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
//proc响应关闭重定向功能//
# sysctl -p    //立即生效

配置虚拟VIP
# cd /etc/sysconfig/network-scripts
# cp ifcfg-ens33 ifcfg-ens33:0
# vim  ifcfg-ens33:0
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.200.100
NETMASK=255.255.255.255
  
# ifup ens33:0     //启用虚拟IP

配置负载分配策略
编写脚本方便管理
        # cd /etc/init.d/
# vi dr.sh
#!/bin/bash
GW=192.168.200.1
VIP=192.168.200.100
RIP1=192.168.200.101
RIP2=192.168.200.102
case "$1" in
start)
/sbin/ipvsadm --save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm
/sbin/ifconfig ens33:0 $VIP broadcast $VIP netmask 255.255.255.255 broadcast $VIP up
/sbin/route add -host $VIP dev ens33:0
/sbin/ipvsadm -A -t $VIP:80 -s rr
/sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g
/sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g
echo "ipvsadm starting --------------------[ok]"
;;
stop)
/sbin/ipvsadm -C
systemctl stop ipvsadm
ifconfig ens33:0 down
route del $VIP
echo "ipvsamd stoped----------------------[ok]"
;;
status)
if [ ! -e /var/lock/subsys/ipvsadm ];then
echo "ipvsadm stoped---------------"
exit 1
else
echo "ipvsamd Runing ---------[ok]"
fi
;;
*)
echo "Usage: $0 {start|stop|status}"
exit 1
esac
exit 0

# chmod +x dr.sh
# service dr.sh start

keepalived部署
# vim /etc/keepalived/keepalived.conf
global_defs {
...
smtp_server 127.0.0.1           #指向本地
router_id LVS_01   #指定名称,备份服务器不同名称
...             
}
vrrp_instance VI_1 {
state MASTER             #备份服务器是BACKUP
interface ens33            #接口改成ens33
virtual_router_id 10     # 组号   备份服务器相同
...
auth_pass abc123         #验证密码  备份服务器相同
priority 100              #优先级  备份小于主
...
virtual_ipaddress {
        192.168.200.100          //指定VIP地址
}
...
virtual_server 192.168.200.100 80 {
lb_kind DR            //指定DR模式
...
real_server 192.168.200.101 80 {        #web节点地址端口
        weight 1                         #节点的权重
        TCP_CHECK {               #健康检查方式
            connect_port 80         #添加端口
            connect_timeout 3    #连接超时
            nb_get_retry 3           #重试次数
            delay_before_retry 3   #重试间隔(秒)
        }   
}   
real_server 192.168.200.102 80 {
        weight 1
        TCP_CHECK {
            connect_port 80              #添加端口
            connect_timeout 3          
            nb_get_retry 3
            delay_before_retry 3
        }   
}    
}
# systemctl start keepalived 
# ip addr show dev ens33:0         #查看虚拟网卡
# systemctl stop firewalld.service   #关防火墙
# setenforce 0

配置NFS共享服务器

考虑到数据的安全性,共享存储设备会放在内部的专用网络中

# systemctl stop firewalld.service   //关防火墙
# setenforce 0
# yum install nfs-utils rpcbind -y   //安装NFS服务
# systemctl start rpcbind.service
# systemctl start nfs.service  
# cd /opt | mkdir benet accp  //创建共享目录
(在实际工作中 还是要共享挂载磁盘阵列raid的目录)
# vi /etc/exports
/usr/share *(ro,sync)
/opt/benet 192.168.100.0/24(rw,sync)            
/opt/accp 192.168.100.0/24(rw,sync)
# exportfs -rv    //发布共享



节点服务器配置

两个节点服务器配置基本相同(不同之处已经标注)
因为后面要做虚拟VIP  所以要挂载需要添加双网卡用来挂载NFS
节点1服务器添加一个网卡 IP 设为192.168.100.101/24
节点2服务器添加一个网卡 IP 设为192.168.100.102/24

# yum install nfs-utils rpcbind -y   //安装NFS服务
# mount.nfs 192.168.100.100:/opt/benet /var/www/html  //节点1挂载NFS
# mount.nfs 192.168.100.100:/opt/accp /var/www/html  //节点2挂载NFS
# yum install -y httpd   #安装httpd服务
# systemctl start httpd.service      #启动httpd服务
# systemctl stop firewalld.service    #关防火墙
# setenforce 0
建立一个测试页面
两个节点服务器测试页面要不同

# echo "this is 7.1 web" > /var/www/html/index.html    #节点服务器1
# echo "this is 7.2 web" > /var/www/html/index.html    #节点服务器2 (方便查看测试结果)

 配置虚拟VIP
 作用:仅发送web响应数据包的源地址

# cd /etc/sysconfig/network-scripts
# cp ifcfg-lo ifcfg-lo:0
# vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.200.100
NETMASK=255.255.255.255
ONBOOT=yes
编写服务脚本方便管理
添加VIP本地访问路由
调整proc响应


# cd /etc/init.d/
# vim web.sh
#!/bin/bash
VIP=192.168.200.100
case "$1" in
start)
                ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP
                /sbin/route add -host $VIP dev lo:0
                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
                sysctl -p >/dev/null 2>&1
                echo "RealServer Start OK "
                ;;
stop)
                ifconfig lo:0 down
                route del $VIP /dev/null 2>&1
                echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
                echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
                echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
                echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
                echo "RealServer Stopd"
                ;;
*)
                echo "Usage: $0 {start|stop}"
                exit 1
esac
exit 0

# chmod +x web.sh
# service web.sh start
# ifup lo:0        //启用虚拟VIP
# firefox "http://127.0.0.1/" &     //火狐查看测试页
# service web.sh stop
# service web.sh start    //(建议重启服务)

 测试 


在windows7  浏览器输入 虚拟VIP 192.168.200.100 
(多刷新几次可以看到节点1和节点2的测试页面为成功)


内容概要:本文档详细介绍了在三台CentOS 7服务器(IP地址分别为192.168.0.157、192.168.0.158和192.168.0.159)上安装和配置Hadoop、Flink及其他大数据组件(如Hive、MySQL、Sqoop、Kafka、Zookeeper、HBase、Spark、Scala)的具体步骤。首先,文档说明了环境准备,包括配置主机名映射、SSH免密登录、JDK安装等。接着,详细描述了Hadoop集群的安装配置,包括SSH免密登录、JDK配置、Hadoop环境变量设置、HDFS和YARN配置文件修改、集群启动与测试。随后,依次介绍了MySQL、Hive、Sqoop、Kafka、Zookeeper、HBase、Spark、Scala和Flink的安装配置过程,包括解压、环境变量配置、配置文件修改、服务启动等关键步骤。最后,文档提供了每个组件的基本测试方法,确保安装成功。 适合人群:具备一定Linux基础和大数据组件基础知识的运维人员、大数据开发工程师以及系统管理员。 使用场景及目标:①为大数据平台搭建提供详细的安装指南,确保各组件能够顺利安装和配置;②帮助技术人员快速掌握Hadoop、Flink等大数据组件的安装与配置,提升工作效率;③适用于企业级大数据平台的搭建与维护,确保集群稳定运行。 其他说明:本文档不仅提供了详细的安装步骤,还涵盖了常见的配置项解释和故障排查建议。建议读者在安装过程中仔细阅读每一步骤,并根据实际情况调整配置参数。此外,文档中的命令和配置文件路径均为示例,实际操作时需根据具体环境进行适当修改。
在无线通信领域,天线阵列设计对于信号传播方向和覆盖范围的优化至关重要。本题要求设计一个广播电台的天线布局,形成特定的水平面波瓣图,即在东北方向实现最大辐射强度,在正东到正北的90°范围内辐射衰减最小且无零点;而在其余270°范围内允许出现零点,且正西和西南方向必须为零。为此,设计了一个由4个铅垂铁塔组成的阵列,各铁塔上的电流幅度相等,相位关系可自由调整,几何布置和间距不受限制。设计过程如下: 第一步:构建初级波瓣图 选取南北方向上的两个点源,间距为0.2λ(λ为电磁波波长),形成一个端射阵。通过调整相位差,使正南方向的辐射为零,计算得到初始相位差δ=252°。为了满足西南方向零辐射的要求,整体相位再偏移45°,得到初级波瓣图的表达式为E1=cos(36°cos(φ+45°)+126°)。 第二步:构建次级波瓣图 再选取一个点源位于正北方向,另一个点源位于西南方向,间距为0.4λ。调整相位差使西南方向的辐射为零,计算得到相位差δ=280°。同样整体偏移45°,得到次级波瓣图的表达式为E2=cos(72°cos(φ+45°)+140°)。 最终组合: 将初级波瓣图E1和次级波瓣图E2相乘,得到总阵的波瓣图E=E1×E2=cos(36°cos(φ+45°)+126°)×cos(72°cos(φ+45°)+140°)。通过编程实现计算并绘制波瓣图,可以看到三个阶段的波瓣图分别对应初级波瓣、次级波瓣和总波瓣,最终得到满足广播电台需求的总波瓣图。实验代码使用MATLAB编写,利用polar函数在极坐标下绘制波瓣图,并通过subplot分块显示不同阶段的波瓣图。这种设计方法体现了天线阵列设计的基本原理,即通过调整天线间的相对位置和相位关系,控制电磁波的辐射方向和强度,以满足特定的覆盖需求。这种设计在雷达、卫星通信和移动通信基站等无线通信系统中得到了广泛应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值