集群与存储

集群与存储

集群简介

什么是集群

一组通过高速网络互联的计算组,并以单一系统的模式加以管理

将很多服务器集中起来一起,提供同一种服务,在客户看来象是只有一个服务器

可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益

任务调度是集群系统中的核心技术

集群目的

提高性能

如计算密集型应用,如:天气预报、核试验模拟

降低成本

相对百万美元级的超级计算机,价格便宜

提高可扩展性

只要增加集群节点即可

增强可靠性

多个节点完成相同功能,避免单点失败

集群分类

高性能计算集群HPC

通过以集群开发的并行应用程序,解决复杂的科学问题

负载均衡(LB)集群

客户端负载在计算机集群中尽可能平均分摊

高可用(HA)集群

避免单点故障,当一个系统发生故障时,可以快速迁移

LVS概述

LVS项目介绍

Linux虚拟服务器(LVS)是章文嵩在国防科技大学就读博士期间创建的

LVS可以实现高可用的、可伸缩的WebMail

CacheMedia等网络服务

最终目标是利用Linux操作系统和LVS集群软件实现一个高可用、高性能、

低成本的服务器应用集群

LVS集群组成

前端:负载均衡层

由一台或多台负载调度器构成

中间:服务器群组层

由一组实际运行应用服务的服务器组成

底端:数据共享存储层

提供共享存储空间的存储区域

LVS术语

DirectorServer:调度服务器

将负载分发到RealServer的服务器

RealServer:真实服务器

真正提供应用服务器的服务器

VIP:虚拟IP地址

公布给用户访问的虚拟IP地址

RIP:真实IP地址

集群节点上使用的IP地址

DIP:调度连接节点服务器的IP地址

LVS工作模式

NAT模式 TUN模式 DR模式

LVS工作模式

VSNAT

通过网络地址转换实现的虚拟服务器

在并发访问时,高度器的性能成为瓶颈

VSDR

直接使用路由技术实现虚拟服务器

节点服务器需要配置VIP,注意MAC地址广播

VSTUN

通过隧道方式实现虚拟服务器

负载均衡高度算法

LVS目前实现了10种调度算法

常用调度算法有4

轮询(RoundRobin

加权轮询(WeightedRound Robin)

最少连接(LeastConnections

加权最少连接(WeightedLeast Connections)

负载均衡调度算法

轮询(RoundRobin)

将客户端请求平均分发到RealServer

加权轮询(WeightedRound Robin)

根据RealServer权重值进行轮询调度

最少连接(LeastConnections

选择连接数最少的服务器

负载均衡调度算法

加权最少连接

根据RealServer权重值,选择连接数最少的服务器

源地址散列(SourceHashing)

根据请求的目标IP地址,作为散列键(HashKey)从静态分配的散列表找出对应的服务器

负载均衡调度算法

其他调度算法

基于局部的最少链接

带复制的基于局部性最少链接

目标地址散列(DestinationHashing)

最短的期望的延迟

最少队列调度

LVSNAT集群

安装软件

安装前准备

LVSIP负载均衡技术是通过IPVS模块实现的

IPVS模块已成为Linux组成部分

grep-i 'ipvs' /boot/config-3.10.0-327.el7.x86_64

安装ipvsadm

使用rpm命令安装ipvsadm

rpm-ihv ipvsadm-1.27.7.el7.x86_64.rpm

ipvsadm-v

ipvsadm用法

创建虚拟服务器

-A 添加虚拟服务器

-t设置群集地址(VIP,VirtualIP

-s指定负载调度算法

ipvsadm-A -t 172.16.16.172:80 -s rr

ipvsadm用法

添加、删除服务器节点

-a 添加真实服务器

-d删除真实服务器

-r 指定真实服务器(RealServer)的地址

-m使用NAT模式;-g-i分别对应DRTUN模式

-w为节点服务器设置权重,默认为1

ipvsadm-a -t 172.16.16.172:80 -r 192.168.7.21:80 -m

ipvsadm-d -r 192.168.7.24:80 -t 172.16.16.172:80

ipvsadm用法

查看IPVS

ipvsadm-Ln

ipvsadm命令用法

使用命令添加基于TCP一些的集群服务

在集群同一客户端访问,调度器分配固定服务器

会使用ipvsadm实现规则的增、删、改

保存ipvsamd规则

LVSNAT案例

LVSNAT集群拓扑

Clinet:10.10.10.10/24 Internet Director Server:eth0:10.10.10.1/24 eth1:192.168.10.254/24

RealServer:192.168.10.11-12/24 共享存储

操作流程

RealServer:

配置WEB服务器

DirectorServer:

在上安装并启用ipvsadm

创建虚拟器服务器

向虚拟服务器中加入节点

Client:

连接虚拟服务器测试

部署LVS调度器

打开ip_forward

vim/etc/sysctl.conf

net.ipv4.ip_forward=1


sysctl-p

启动ipvsadm

systemctlstart ipvsadm

systemctlenable ipvsadm

部署LVS调度器

创建虚拟服务器,VIP10.10.10.1,采用的调度算法为RoundRobin

ipvsadm-A -t 10.10.10.1:80 -s rr

向虚拟服务器中加入节点,并指定权重分别为12

目前权重不起作用

ipvsadm-a -t 10.10.10.1:80 -r 192.168.10.11 -m -w 1

ipvsadm-a -t 10.10.10.1:80 -r 192.168.10.12 -m -w 2

部署LVS调度器

查看配置

ipvsadm-L -n //注意:这两个选项不写反

保存配置

ipvsadm-save> /etc/sysconfig/ipvsadm

修改Director调度算法为WRR

ipvsadm-E -t 10.10.10.1:80 -s wrr

Client端验证

通过web浏览器访问

使用ab进行大并发测试

ab-c 10 -n 1000 http://10.10.10.1/index.html

Director上查看连接数

ipvsadm-L -n

部署LVSNAT集群

准备三台虚拟机

1台作为Director

2台作为RealServer

物理机作为客户端

RealServer安装的主页内容不同

Director上安装双网卡,并将其配置为NAT模式

集群使用加权轮询调度算法,真实服务器权重与其IP地址末尾数一致

LVSDR集群

LVSDR集群拓扑

client Internet Director DIP:192.168.10.1/24 VIP:192.168.10.100/24

RealServer 192.168.10.11-12/24 存储设备

操作流程

RealServer:

配置WEB服务器

配置辅助IP地址、调整内核参数

DirectorServer

在安装并启用ipvsadm

配置辅助IP地址

创建虚拟服务器、向虚拟服务器中加入节点

Client:

连接虚拟服务器测试

ARP广播的问题

当客户端发起访问VIP对应的域名的请求时,根据网络通信原理会产生ARP广播

因为负载均衡器和真实的服务器在同一网络并且VIP设置在集群中的每一个节点上

此时集群内的真实服务器公尝试回答来处客户端的ARP广播,这就会产生问题,

大家都说我是VIP

内核参数说明

arp_ignore(定义回复ARP广播的方式)

0(默认值)

回应所有的本地地址ARP广播,本地地址可以配置在任意网络接口

1

只回应配置在入站网卡接口上的任意IP地址的ARP广播

内核参数说明

arp_announce

0默认

使用配置在任意网卡接口上的本地IP地址

2对查询目标使用最适当的本地地址。在此模式下将忽略这个IP数据包的源

地址并尝试选择与能与该地址通信的本地地址。首要是选择所有的网络接口的

子网中外出访问子网中包含该目标IP地址的本地地址。如果没有合适的地址

被发现,将选择当前的发送网的本地地址。如果没有合适的地址被发现,将

选择当前的发送网络接口或其他的有可能接受到该ARP回应的网络接口来

进行发送

ARP防火墙使用ARP防火墙禁止对VIPARP请求

yum-y install arptables_if

arptables-A IN -d <virtual_ip> -j DROP

arptables-A OUT -s <virtual_ip> -j mangle --managle-ip-s <real_ip>


LVS-DR案例实施

配置后端Web服务器

配置辅助VIP地址

ifconfiglo:0 192.168.10.100 netmask 255.255.255.255 broadcast 192.168.10.100 up

调整内核参数

echo1 > /proc/sys/net/ipv4/conf/lo/arp_ignore

echo2 > /proc/sys/net/ipv4/conf/lo/arp_announce

echo1 > /proc/sys/net/ipv4/conf/all/arp_ignore

echo2 > /proc/sys/net/ipv4/conf/all/arp_announce

配置LVS调度器

配置辅助IP地址

ifconfigeth0:1 192.168.10.100 broadcast 192.168.10.100 netmask 255.255.255.255 up

创建虚拟服务器

ipvsadm -A -t 192.168.10.100:80 -s wlc

向虚拟服务器中加入节点

ipvsadm -a -t 192.168.10.100:80 -g -r 192.168.10.11 -w 1

ipvsadm -a -t 192.168.10.100:80 -g -r 192.168.10.12 -w 2


Client端验证

通过web浏览器访问

使用ab进行大并发测试

ab-c 10 -n 1000 http://10.10.10.1/index.html

Director上查看连接数

ipvsadm -L -n


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

乐于技术分享

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

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

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

打赏作者

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

抵扣说明:

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

余额充值