CTDB与LVS搭建集群
搭建一个采用lvs进行负载均衡的CTDB集群,整个集群的架构是采用如图所示

在上图所示的架构图中,后端采用的集群是我们的存储,集群存储的三个samba服务器的node在作为CTDB的节点的同时,也是运行着我们的内核客户端,将三个内核客户端挂载到后端的集群中,同时这三个samba客户端对外采用三个虚拟的IP,然后采用LVS的网络负载均衡技术,虚拟成一个对外的IP,这样就实现了samba的带宽聚合以及负载均衡。
第一步,搭建一个CTDB集群
一、配置环境
- E5400采用2.6.39内核客户端挂在集群
IP:192.168.0.210
GW:192.168.1.1
NETMASK:255.255.0.0
samba node1
- E5400采用2.6.39内核客户端挂在集群
IP:192.168.0.211
GW:192.168.1.1
NETMASK:255.255.0.0
samba node2
- E5400采用2.6.39内核客户端挂在集群
IP:192.168.0.212
GW:192.168.1.1
NETMASK:255.255.0.0
samba node3
二、配置samba CTDB
1、在三个节点上使用如下命令安装samba,CTDB。
更新源以后执行
T02-APP210:~#apt-get update
T02-APP210:~#apt-get install samba ctdb
2、在三个节点的/etc/services文件中增加如下内容。
ctdb 9999/tcp
3、在三个节点中修改/etc/samba/smb.conf文件为如下内容,其中/smbcluster是后端集群存储系统的挂载点,/smbcluster/public为用户通过samba访问到的目录
[global]
clustering = yes
idmap backend = tdb2
private dir=/smbcluster/ctdb
fileid:mapping = fsname
use mmap = no
nt acl support = yes
ea support = yes
[public]
comment = public share
path = /smbcluster/public
public = yes
writeable = yes
4、在三个节点在修改/etc/default/ctdb文件的如下内容。
CTDB_RECOVERY_LOCK="/smbcluster/ctdb/lock"
CTDB_PUBLIC_INTERFACE=eth0
CTDB_PUBLIC_ADDRESSES=/etc/ctdb/public_addresses
CTDB_MANAGES_SAMBA=yes
ulimit -n 10000
CTDB_NODES=/etc/ctdb/nodes
CTDB_LOGFILE=/var/log/ctdb.log
CTDB_DEBUGLEVEL=2
CTDB_PUBLIC_NETWORK="192.168.0.0/24"
CTDB_PUBLIC_GATEWAY="192.168.1.1"
5、在三个节点在修改/etc/ctdb/public_addresses文件中增加如下内容,该文件记录Samba CTDB集群提供给客户访问的虚拟IP地址。
192.168.0.80/24
192.168.0.81/24
192.168.0.82/24
6、在三个节点上修改/etc/ctdb/nodes文件中增加如下内容,该文件记录Samba CTDB集群节点的IP地址。
192.168.0.210
192.168.0.211
192.168.0.212
7、在三个节点上修改/etc/ctdb/events.d/11.route文件中增加如下内容。
#!/bin/sh
. /etc/ctdb/functions
loadconfig ctdb
cmd="$1"
shift
case $cmd in
takeip)
# we ignore errors from this, as the route might be up already when we're grabbing
# a 2nd IP on this interface
/sbin/ip route add $CTDB_PUBLIC_NETWORK via $CTDB_PUBLIC_GATEWAY dev $1 2> /dev/null
;;
esac
exit 0
第二步:Lvs的配置及搭建
LVS是Linux Virtual Server的简写,意即Linux虚拟服务器是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。目前有三种IP负载均衡技术:VS/NAT、VS/TUN和VS/DR
十种调度算法(rrr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq)。
官方网站:www.linuxvirtualserver.org
本次采用的是三个samba服务器节点上做lvs的调度,其中一台既是虚拟主机,又是真实服务器,下面将介绍搭建lvs服务器的步骤
1.基础环境配置
三台samba节点分别配置IP为:
192.168.0.80 #这三个IP为之前CTDB配置的虚拟IP,publicaddress
192.168.0.81
192.168.0.82
2.下载和安装LVS
T02-APP210:~#apt-get install ipvsadm
3.配置虚拟IP服务和负载均衡
以192.168.0.11作为LVS的主机,为其设置一个虚拟IP作为samba服务器的接口
192.168.0.85为LVS主机的虚拟IP
LVS SERVER 配置
在192.168.0.11LVS虚拟服务器上执行:
设置本级的虚拟IP,作为LVS的虚拟IP
ifconfig eth0:0 192.168.0.85 netmask 255.255.0.0 broadcast 192.168.0.85 up
打开IP转发开关
echo 1>/proc/sys/net/ipv4/ip_forward
添加虚拟服务器,虚拟IP为192.168.0.85,端口为137,调度算法为rr
#! /bin/sh
ipvsadm -C
ipvsadm -A -u 192.168.0.85:137 -s rr
ipvsadm -A -u 192.168.0.85:138 -s rr
ipvsadm -A -t 192.168.0.85:139 -s rr
ipvsadm -A -t 192.168.0.85:445 -s rr
ipvsadm -a -u 192.168.0.85:137 -r 192.168.0.81:137 -g
ipvsadm -a -u 192.168.0.85:137 -r 192.168.0.80:137 -g
ipvsadm -a -u 192.168.0.85:137 -r 192.168.0.82:137 -g
ipvsadm -a -u 192.168.0.85:138 -r 192.168.0.82:138 -g
ipvsadm -a -u 192.168.0.85:138 -r 192.168.0.80:138 -g
ipvsadm -a -u 192.168.0.85:138 -r 192.168.0.81:138 -g
ipvsadm -a -t 192.168.0.85:139 -r 192.168.0.80:139 -g
ipvsadm -a -t 192.168.0.85:139 -r 192.168.0.81:139 -g
ipvsadm -a -t 192.168.0.85:139 -r 192.168.0.82:139 -g
ipvsadm -a -t 192.168.0.85:445 -r 192.168.0.82:445 -g
ipvsadm -a -t 192.168.0.85:445 -r 192.168.0.81:445 -g
ipvsadm -a -t 192.168.0.85:445 -r 192.168.0.80:445 -g
启动lvs
ipvsadm
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.91.9:http rr
-> 192.168.91.12:http Route 1 0 0
-> 192.168.91.11:http Route 1 0 0
在192.168.0.11虚拟服务器上运行查询命令
[root@hadoop00 ~]# ipvsadm -l --stats
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes
-> RemoteAddress:Port
TCP 192.168.0.80:http 0 0 0 0 0
-> 192.168.0.81:http 0 0 0 0 0
-> 192.168.0.82:http 0 0 0 0 0
在真实服务器上执行下列脚本
#! /bin/sh
/sbin/ifconfig lo:0 192.168.0.91 broadcast 192.168.0.91 netmask 255.255.255.255 up
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
到这里整个集群就搭建成功,挂载samba服务器即可
参考文档:
http://zh.linuxvirtualserver.org/node/5
http://zp820705.iteye.com/blog/1151921
http://onlyzq.blog.51cto.com/1228/593940/
更新历史
| why | when |
|---|---|
| 创建 | 2011年12月10日 |
| 更新 | 2019年12月9日 |
CTDB与LVS搭建集群的更多相关文章
- RHEL6 搭建 keepalived + lvs/DR 集群
搭建 keepalived + lvs/DR 集群 使用Keepalived为LVS调度器提供高可用功能,防止调度器单点故障,为用户提供Web服务: LVS1调度器真实IP地址为192.168.4. ...
- 用apache和tomcat搭建集群,实现负载均衡
型的企业应用每天都需要承受巨大的访问量,在着巨大访问量的背后有数台服务器支撑着,如果一台服务器崩溃了,那么其他服务器可以使企业应用继续运行,用户对服务器的运作是透明化的,如何实现这种透明化呢?由如下问 ...
- ELK——Elasticsearch 搭建集群经验
本文内容 背景 ES集群中第一个master节点 ES slave节点 本文总结 Elasticsearch(以下简称ES)搭建集群的经验.以 Elasticsearch-rtf-2.2.1 版本为例 ...
- redis 一二事 - 搭建集群缓存服务器
在如今并发的环境下,对大数据量的查询采用缓存是最好不过的了,本文使用redis搭建集群 (个人喜欢redis,对memcache不感冒) redis是3.0后增加的集群功能,非常强大 集群中应该至少有 ...
- Hadoop化繁为简-从安装Linux到搭建集群环境
简介与环境准备 hadoop的核心是分布式文件系统HDFS以及批处理计算MapReduce.近年,随着大数据.云计算.物联网的兴起,也极大的吸引了我的兴趣,看了网上很多文章,感觉还是云里雾里,很多不必 ...
- Linux+.NetCore+Nginx搭建集群
本篇和大家分享的是Linux+NetCore+Nginx搭建负载集群,对于netcore2.0发布后,我一直在看官网的文档并学习,关注有哪些新增的东西,我,一个从1.0到2.0的跟随者这里只总结一句话 ...
- Redis 实战篇之搭建集群
Redis 集群简介# Redis Cluster 即 Redis 集群,是 Redis 官方在 3.0 版本推出的一套分布式存储方案.完全去中心化,由多个节点组成,所有节点彼此互联.Redis 客户 ...
- Nginx+Tomcat搭建集群,Spring Session+Redis实现Session共享
小伙伴们好久不见!最近略忙,博客写的有点少,嗯,要加把劲.OK,今天给大家带来一个JavaWeb中常用的架构搭建,即Nginx+Tomcat搭建服务集群,然后通过Spring Session+Redi ...
- 复制虚拟机vmware centos搭建集群节点过程中网络配置eth0和eth1遇到的问题以及NAT模式下虚拟机静态IP配置方法
在centos中安装完第一个虚拟机后,一般习惯通过克隆的方式创建其它虚拟机,开后vmware无法发现网卡信息,系统认为这是重新安装,所以重新创建了一个新的网卡叫eth1. 并且用IFCONFIG-a查 ...
随机推荐
- linux 压缩 tar命令
linux中tar命令用法 总结 *.tar 用 tar –xvf 解压 *.gz 用 gzip -d或者gunzip 解压 *.tar.gz和*.tgz 用 tar –xzf 解压 *.bz2 ...
- spring-boot-route(二十)Spring Task实现简单定时任务
Spring Task是Spring 3.0自带的定时任务,可以将它看作成一个轻量级的Quartz,功能虽然没有Quartz那样强大,但是使用起来非常简单,无需增加额外的依赖,可直接上手使用. 一 如 ...
- python第一章:基础
1.数学操作符: 数学操作符与数学基本类似 最高级:** 第二级:*././/.% 第三级:+ .- 遵循从左到右的顺序 如果想改变优先级 可以使用括号,比如:(3+2)*(5-4)=5*1=5 2. ...
- Docker学习笔记之-部署.Net Core 3.1项目到Docker容器,并使用Nginx反向代理(CentOS7)(一)
上一节演示如何安装Docker,链接:Docker学习笔记之-在CentOS中安装Docker 本节演示 将.net core 3.1 部署到docker容器当中,并使用 Nginx反向代理,部署平台 ...
- 教师专用录微课及剪辑软件推荐-camtasia中文汉化破解版免费下载及使用教程
教师专用录微课软件,微课制作软件是一款能够制作文字.图形.动画.音视频等的软件,支持对ppt.word.flash的导入和录制,实时同步录制操作区文字.图形.动画.音视频.鼠标轨迹.声音及外部语音等动 ...
- eclipse时一直卡在进程中
(1)今天遇到进入eclipse时一直卡在 进程中,无论是重启电脑,还是重启软件 删除 D:\workspace\.metadata\.lock 文件才有用,特此记录下. (2)还有一种情况就是打开e ...
- HBase基础理论知识
来源:第四章:大数据 の HBase 基础 本课主题 NoSQL 数据库介绍 HBase 基本操作 HBase 集群架构与设计介紹 HBase 与HDFS的关系 HBase 数据拆分和紧缩 引言 ...
- 调度《Taint(污点) 和 Toleration(容忍)》
节点亲和性(详见这里),是 pod 的一种属性(偏好或硬性要求),它使 pod 被吸引到一类特定的节点.Taint 则相反,它使 节点 能够 排斥 一类特定的 pod. Taint 和 tolerat ...
- Flask 中的MTV架构之Models
Flask 中的MTV架构之Models 1.Models(数据模型) 1.1 flask-sqlalchemy(数据库) 说明:提供了大多数关系型数据库的支持,而且提供了ORM # 安装: pi ...
- Java导出Pdf格式表单
前言 作为开发人员,工作中难免会遇到复杂表单的导出,接下来介绍一种通过Java利用模板便捷导出Pdf表单的方式 模拟需求 需求:按照下面格式导出pdf格式的学生成绩单 准备工作 Excel软件 ...