zoukankan      html  css  js  c++  java
  • CTDB与LVS搭建集群 武汉

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

    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日
  • 相关阅读:
    Azure SQL Database (1) 用户手册
    Windows Azure Web Site (17) Azure Web Site 固定公网IP地址
    MongoDB数据文件内部结构
    压缩 MongoDB 的数据文件
    服务器如何选择网络带宽(转)
    刀片服务器和磁盘阵列卡(RAID)技术---永和维护(转)
    Solr打分出错
    Solr添加SolrDocument报错
    解决Windows Git Bash中文乱码问题
    HAProxy的独门武器:ebtree
  • 原文地址:https://www.cnblogs.com/zphj1987/p/13575239.html
Copyright © 2011-2022 走看看