cluster集群
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页面
外网测试:结果显示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、将自签证书的权限修改为
4、将证书的路径 修改为 /etc/pki/CA
5、在/etc/pki/CA目录下新建目录newcerts ,新建文件index.txt和serial 并echo 00 到serial中
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测试:
cluster集群的更多相关文章
- redis 学习笔记(6)-cluster集群搭建
上次写redis的学习笔记还是2014年,一转眼已经快2年过去了,在段时间里,redis最大的变化之一就是cluster功能的正式发布,以前要搞redis集群,得借助一致性hash来自己搞shardi ...
- Redis 3.0 Cluster集群配置
Redis 3.0 Cluster集群配置 安装环境依赖 安装gcc:yum install gcc 安装zlib:yum install zib 安装ruby:yum install ruby 安装 ...
- mysql galera cluster 集群的分裂与仲裁机制
集群的分裂 当集群由于网络原因分裂为几个单独的组时(一组可能是单节点,也可能是几个互联的节点),数据出现不一致,此时可能产生脑裂及数据不一致.这种情况 下,只有一组节点能够继续提供服务,这组节点的状态 ...
- MySQL Cluster 集群
本文转载 http://www.cnblogs.com/gomysql/p/3664783.html MySQL Cluster是一个基于NDB Cluster存储引擎的完整的分布式数据库系统.不仅仅 ...
- 【原】基于 HAproxy 1.6.3 Keeplived 在 Centos 7 中实现mysql mariadb galera cluster 集群分发读写 —— 上篇
前言 有一段时间没有写blogs,乘着周末开始整理下haproxy + keeplived 实现 mysql mariadb galera cluster 集群访问环境的搭建工作. 本文集中讲hapr ...
- Redis Cluster集群搭建与配置
Redis Cluster是一种服务器sharding分片技术,关于Redis的集群方案应该怎么做,请参考我的另一篇博客http://www.cnblogs.com/xckk/p/6134655.ht ...
- jedis处理redis cluster集群的密码问题
环境介绍:jedis:2.8.0 redis版本:3.2 首先说一下redis集群的方式,一种是cluster的 一种是sentinel的,cluster的是redis 3.0之后出来新的集群方式 本 ...
- 深入分析redis cluster 集群
深入分析redis cluster 集群安装配置详解 下面小编来为各位介绍一篇深入分析redis cluster 集群安装配置详解,如果你希望做数据库集群就可以来看看此文章的哦. http://rub ...
- Redis Cluster集群搭建与应用
1.redis-cluster设计 Redis集群搭建的方式有多种,例如使用zookeeper,但从redis 3.0之后版本支持redis-cluster集群,redis-cluster采用无中心结 ...
随机推荐
- Qt自定义model
前面我们说了Qt提供的几个预定义model.但是,面对变化万千的需求,那几个model是远远不能满足我们的需要的.另外,对于Qt这种框架来说,model的选择首先要能满足绝大多数功能的需要,这就是说, ...
- java不常用语法汇总(jdk1.6)
1.浮点数省略的0 System.out.println(.5f); //.5和0.5等价. 2.import static引入一个static method后,可以在这个类中直接使用这个method ...
- ArcSDE for SQL Server安装及在ArcMap中创建ArcSDE连接
原文:ArcSDE for SQL Server安装及在ArcMap中创建ArcSDE连接 安装ArcSDE for SQL Server,最后一步成功后的界面如下: 在ArcMap中创建ArcSDE ...
- ArcGIS API for Silverlight中加载Google地形图(瓦片图)
原文:ArcGIS API for Silverlight中加载Google地形图(瓦片图) 在做水利.气象.土地等行业中,若能使用到Google的地形图那是再合适不过了,下面就介绍如何在ArcGIS ...
- leap motion
体感控制器: 识别:手,手指和工具,获取位置,手势,动作 范围:倒金字塔,塔尖在设备中心,2.5cm~0.6米 坐标系统:采用右手笛卡尔积坐标系,返回的数值:毫米 摆放:绿灯朝向自己,z轴距离屏幕越来 ...
- Selenium2学习-015-WebUI自动化实战实例-013-通过 URL 关闭多余的已开浏览器窗口
在日常的 WebUI 自动化测试脚本执行的过程中,经常会打开不同的网页,进行相应的操作,此时可能会打开很多的网页,当打开的网页过多时,无效的网页资源对运行脚本的机器造成了过多无效的资源浪费,因而在日常 ...
- c#中栈和堆的理解
之前对栈(stack)和堆(heap)的认识很模糊,今天看了一篇关于堆栈的文章<译文---C#堆VS栈>后,仿佛有种拨开云雾见青天的感觉,当然只是一些浅显的理论的认识,这里做一些简单的记录 ...
- table表格某一td内容太多导致样式混乱的解决方案
对于有很多条目的数据,通常采用table元素来快速实现,某一个td的内容太多的话就会导致样式混乱难看. 解决方案 要让table的宽度固定可以给table元素设置table-layout:fixed; ...
- iOS:GPUImage强大的图像处理框架
GPUImage是一个非常棒的图像处理的开源库,里面提供了非常非常多的滤镜效果来加工图像. 不过就是因为太多效果了,而且对于程序员来说,那么多效果并不清楚知道要用那一个.于是我就使用提供的默认值,加上 ...
- eclipse的快捷键大全
Ctrl+1 快速修复(最经典的快捷键,就不用多说了)Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增加)Ctrl+Alt+↑ 复制当前行到上一行(复制增加)Alt+↓ 当 ...