设为首页 收藏本站
查看: 1286|回复: 0

[经验分享] CTDB与LVS搭建集群

[复制链接]

尚未签到

发表于 2015-9-5 09:07:39 | 显示全部楼层 |阅读模式
CTDB与LVS搭建集群
  搭建一个采用lvs进行负载均衡的CTDB集群,整个集群的架构是采用如图所示
DSC0000.jpg

  在上图所示的架构图中,后端采用的集群是我们的bsdocfs集群存储,三个samba服务器的node在作为CTDB的节点的同时,也是运行着我们的内核客户端,将三个内核客户端挂载到后端的集群中,同时这三个samba客户端对外采用三个虚拟的IP,然后采用LVS的网络负载均衡技术,虚拟成一个对外的IP,这样就实现了samba的带宽聚合以及负载均衡。
  第一步:搭建一个CTDB集群
  一、配置环境
  1.samba node1
  ²  E5400采用2.6.39内核客户端挂在集群
  ²  IP:192.168.0.210
  ²  GW:192.168.1.1
  ²  NETMASK:255.255.0.0
  2.samba node2
  ²  E5400采用2.6.39内核客户端挂在集群
  ²  IP:192.168.0.211
  ²  GW:192.168.1.1
  ²  NETMASK:255.255.0.0
  3.samba node3
  ²  E5400采用2.6.39内核客户端挂在集群
  ²  IP:192.168.0.212
  ²  GW:192.168.1.1
  ²  NETMASK:255.255.0.0
  二、配置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
  8、在三个节点上执行如下命令。
     T02-APP210:~# chmod +x /etc/ctdb/events.d/11.route
  T02-APP210:~# /etc/init.d/ctdb restart
  T02-APP210:~# /etc/init.d/samba restart
  9、可以通过以下命令查看Samba CTDB集群的情况。
  T02-APP210:~# ctdb status
     Srv5:~# ctdb status
  Number of nodes:3
  pnn:0 192.168.0.210    OK (THIS NODE)
  pnn:1 192.168.0.211    OK
  pnn:2 192.168.0.212    OK
  Generation:1228536155
  Size:3
  hash:0 lmaster:0
  hash:1 lmaster:1
  hash:2 lmaster:2
  Recovery mode:NORMAL (0)
  Recovery master:1
  完成上述步骤后,Samba CTDB集群就搭建完成了,客户端可以通过在/etc/ctdb/public_addresses文件中记录的IP地址进行访问.
  
第二步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)。
  官方网站:http://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虚拟服务器上运行查询命令
[iyunv@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.iyunv.com/1228/593940/
  
  
  目前还有一个问题通过lvs挂载的时候,流量是分别写到了不同的真实server上,但是监控调度服务器的网卡时候,发现所有流量都是由调度服务器转发的 ,速度局限在调度服务器了,所以中间还是有哪里有点问题,这个我跟夏杏林再找找问题在哪里。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-109584-1-1.html 上篇帖子: LVS/DR安装配置 下篇帖子: LVS测试小结
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表