zoukankan      html  css  js  c++  java
  • GlusterFS集群环境部署

     GFS集群环境部署
    集群环境:
    表一:
    ------------------------------------------------------------------------------------------------------------------------------------------
            主机          主机名        挂载磁盘         挂载目录
    -------------------------------------------------------------------------------------------------------------------------------------------
                              /dev/sdb(3G)              /b3
    192.168.200.66            node1                     /dev/sdb(4G)                 /c4
                             /dev/sdd(5G)                  /d5
                             /dev/sde(6G)                  /e6
    --------------------------------------------------------------------------------------------------------------------------------------------
                             /dev/sdb(3G)             /b3
    192.168.200.67            node2                      /dev/sdb(4G)                 /c4
                             /dev/sdd(5G)                 /d5
                             /dev/sde(6G)                 /e6
    --------------------------------------------------------------------------------------------------------------------------------------------
                              /dev/sdb(3G)           /b3
    192.168.200.68            node3                      /dev/sdb(4G)                 /c4
                              /dev/sdd(5G)                 /d5
    --------------------------------------------------------------------------------------------------------------------------------------------
                              /dev/sdb(3G)           /b3
    192.168.200.69            node4                      /dev/sdb(4G)                 /c4
                             /dev/sdd(5G)                 /d5
    --------------------------------------------------------------------------------------------------------------------------------------------
    192.168.200.70       Client                    
    -------------------------------------------------------------------------------------------------------------------------------------------- 
    开机前添加相应硬盘,在挂载在相应目录  每台主机都要做主机映射.
    表二:  (服务器的相关信息)
    --------------------------------------------------------------------------------------------------------------------------------------------
    卷名称                     卷类型            空间大小/GB         Brick
    --------------------------------------------------------------------------------------------------------------------------------------------
    dis-volume       分布式卷                   12                node1(/e6)、node2(/e6) 
    stripe-volume      条带卷                    10                node1(/d5)、node2(/d5)
    rep-volume       复制卷                     5                 node3(/d5)、node4(/d5)
    dis-stripe                分布式条带卷                12                node1(/b3)、node2(/b3)、 node3(/b3)、node4(/b3)
    dis-rep                    分布式复制卷                 8                node1(/c4)、node2(/c4)、 node3(/c4)、node4(/c4)
    --------------------------------------------------------------------------------------------------------------------------------------------
    【1】准备环境
    在所有节点执行以下操作    客户端不做操作
    开启4台虚拟机,根据表一添加磁盘, 通过fdisk命令分区,mkfs命令格式化,创建相应的挂载目录,并将格式化的磁盘挂载到相应的目录中,最后修改/etc/fstab配置文件,使其永久生效。
    注意:创建/gfs目录,把(E:软件安装Linux 软件gfsrepo)这个目录下所有的内容全部拷贝到/gfs目录下
    ---------
    所有主机mkdir  /gfs
    ----主机66操作----
    cd /gfs
    rz (上传)
    scp  -r * 192.168.200.67:/gfs
    scp  -r * 192.168.200.68:/gfs
    scp  -r * 192.168.200.69:/gfs
    ----------------------------------------------------------
    【2】编写 gfsconf.sh脚本
    ---------------主机66操作--------------------
    vim  gfsconf.sh
    #!/bin/bash
    for i in $(fdisk -l | grep -wo "/dev/sd[b-z]" | sort)
    do
    dd if=/dev/zero of=$i bs=1024 count=1024
    fdisk $i << EOF
    n
    p
     
    w
    EOF
    partprobe $i
    mkfs.ext4 ${i}1
    done
    mkdir /b3 /c4 /d5 /e6
    fdisk -l | grep -w "/dev/sd[b-z]" | sed -r 's/.*(/d.{8}).*/1/g' | sed -r 's/(.*)(.):(.*)/mount 121 /23/' | bash
    fdisk -l | grep -w "/dev/sd[b-z]" | sed -r 's/.*(/d.{8}).*/1/g' | sed -r 's/(.*)(.):(.*)/121 /23 xfs default 0 0/' >> /etc/fstab
    iptables -F
    systemctl stop firewalld
    setenforce 0
    cat << EOF >> /etc/hosts
    192.168.200.66 node1
    192.168.200.67 node2
    192.168.200.68 node3
    192.168.200.69 node4
    EOF
    cat << EOF >> /etc/yum.repos.d/gfs.repo
    [gfs]
    name=CentOS-$releasever - Gluster 3.13 (Long Term Maintanance)
    baseurl=https://buildlogs.centos.org/centos/6/storage/x86_64/gluster-3.13/
    gpgcheck=0
    enabled=1
    EOF
    yum clean all && yum makecache
    yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma
    systemctl start glusterd
    systemctl enable glusterd
    read -p "请输入主机名: " hn
    hostname $hn
    bash
    保存退出 #注意空行不能取消,脚本有IP需要修改对应主机
    scp gfsconf.sh 192.168.200.67:/root/
    scp gfsconf.sh 192.168.200.68:/root/
    scp gfsconf.sh 192.168.200.69:/root/
    ------------在66、67、68、69主机依次执行----在依次输入note1 note2 note3 note4
    bash gfsconf.sh
    --------------------------------------------------------------------------------------------------------
    【3】client70主机操作
    hostname client
    bash
    iptables -F
    setenforce 0
    systemctl stop firewalld
    【4】 添加节点
    在node1 66主机操作 ,添加node1~node2节点
    gluster peer probe node1   #node1也可以不用执行
    gluster peer probe node2
    gluster peer probe node3
    gluster peer probe node4
    【5】查看集群状态
    通过以下命令在每个节点上查看集群状态,正常情况下,每个节点的输出结果为,State: Peer in Cluster(Connected)。如果现实Disconnected,请检查hosts文件配置。
    gluster peer status
    【6】创建卷
       【6.1】创建分布式卷
    gluster volume create dis-volume node1:/e6 node2:/e6 force    //dis-volume表示卷名   force表示强制创建
    gluster volume info dis-volume    //查看信息  看到distribute表示分布式  默认是创建分布式卷
    gluster volume start dis-volume    //开启
    注意:没有执行类型,默认创建的是分布式卷。
        【6.2】创建条带卷
    gluster volume create stripe-volume stripe 2 node1:/d5 node2:/d5 force
    gluster volume info stripe-volume   //查看信息 会看到stripe
    gluster volume start stripe-volume  //开启
    注意:指定类型为stripe,数值为2,而且后面跟了2个Brick Server,所以创建的是条带卷。
         【6.3】创建复制卷
    gluster volume create rep-volume replica 2 node3:/d5 node4:/d5 force
    gluster volume info rep-volume
    gluster volume start rep-volume
    注意:指定类型为replica,数值为2,而且后面跟了2个Brick Server,所以创建的是复制卷。
         【6.4】创建分布式条带卷
    gluster volume create dis-stripe stripe 2 node1:/b3 node2:/b3 node3:/b3 node4:/b3 force
    gluster volume info dis-stripe
    gluster volume start dis-stripe
    指定类型为Distributed-Stripe,数值为2,而且后面跟了4个Brick Server,是2的2倍,所以创建的是分布式条带卷。
         【6.5】创建分布式复制卷
    gluster volume create  dis-rep replica 2 node1:/c4 node2:/c4 node3:/c4 node4:/c4 force
    gluster volume info dis-rep
    gluster volume start dis-rep
    指定类型为Distributed-Replicate,数值为2,而且后面跟了4个Brick Server,是2的2倍,所以创建的是分布式复制卷。
    【7】部署客户端 client 70
    ------------主机70操作-----------
    【7.1】安装客户端软件
    vim gfsconf.sh
    #!/bin/bash
    iptables -F
    systemctl stop firewalld
    setenforce 0
    cat << EOF >> /etc/hosts
    192.168.200.66 node1
    192.168.200.67 node2
    192.168.200.68 node3
    192.168.200.69 node4
    EOF
    cat << EOF >> /etc/yum.repos.d/gfs.repo
    [gfs]
    name=CentOS-$releasever - Gluster 3.13 (Long Term Maintanance)
    baseurl=https://buildlogs.centos.org/centos/6/storage/x86_64/gluster-3.13/
    gpgcheck=0
    enabled=1
    EOF
    yum clean all && yum makecache
    yum -y install glusterfs glusterfs-fuse    
     #若不能正常启动安装这些glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma
    systemctl start glusterd
    systemctl enable glusterd
    read -p "请输入主机名: " hn
    hostname $hn
    bash
    保存退出
    bash gfsconf.sh       //注意脚本中的ip地址
    【7.2】创建挂载目录
    mkdir -p /test/{dis,stripe,rep,dis_and_stripe,dis_and_rep}
    ls /test/
    【7.3】修改hosts文件
    tail -4 /etc/hosts
    192.168.200.66 node1
    192.168.200.67 node2
    192.168.200.68 node3
    192.168.200.69 node4
    【7.4】挂载gluster文件系统
    mount -t glusterfs node1:dis-volume /test/dis
    mount -t glusterfs node1:stripe-volume /test/stripe
    mount -t glusterfs node1:rep-volume /test/rep
    mount -t glusterfs node1:dis-stripe  /test/dis_and_stripe/
    mount -t glusterfs node1:dis-rep /test/dis_and_rep
    【7.5】修改fstab配置文件
    vim /etc/fstab
    node1:dis-volume  /test/dis   glusterfs defaults,_netdev 0 0
    node1:stripe-volume  /test/stripe  glusterfs defaults,_netdev 0 0
    node1:rep-volume  /test/rep   glusterfs defaults,_netdev 0 0
    node1:dis-stripe  /test/dis_and_stripe  glusterfs defaults,_netdev 0 0
    node1:dis-rep  /test/dis_and_rep  glusterfs defaults,_netdev 0 0
    保存退出
    【7.6】测试Gluster文件系统
    for i in {1..5};do dd if=/dev/zero of=/root/demon$i.log bs=1M count=43;done    //依次创建5个文件,每个文件43M
    ls -lg /root/demon*
    ls -lh /root/demon*
    测试:
    cp demon* /test/dis
    cp demon* /test/stripe/
    cp demon* /test/rep
    cp demon* /test/dis_and_stripe
    cp demon* /test/dis_and_rep
    【8】查看文件分布
    查看分布式卷文件分布
    ------------在66主机操作---------------
    ll -h /e6/       //没有分片,原始大小43M
    ------------在67主机操作---------------
    ll -h /e6/      //没有分片,原始大小43M
    -------------------
    查看条带卷文件分布
    ------------在66主机操作---------------
    ll -h /d5      //大小被分片成22M
    ------------在67主机操作---------------
    ll -h /d5       //大小被分片成22M
    -----------------------------------
    查看复制卷文件分布
    ------------在68主机操作---------------
    ll -h /d5        //没有分片,原始大小43M
    ------------在69主机操作---------------
    ll -h /d5        //没有分片,原始大小43M
    --------------------------------------
    查看分布式条带卷文件分布
    --------------在66主机操作-------------
    ll -h /b3         //大小被分成22M
    --------------在67主机操作-------------
    ll -h /b3         //大小被分成22M
    --------------在68主机操作-------------
    ll -h /b3         //大小被分成22M
    --------------在69主机操作-------------
    ll -h /b3         //大小被分成22M
    ----------------------------------------------
    查看分布式复制卷文件分布
    ---------------在66主机操作------------
    ll -h /c4          //没有分片,原始大小43M
    ---------------在67主机操作------------
    ll -h /c4          //没有分片,原始大小43M
    ---------------在68主机操作------------
    ll -h /c4          //没有分片,原始大小43M
    ---------------在69主机操作------------
    ll -h /c4          //没有分片,原始大小43M
    【9】破坏性测试
    挂起node2主机67 ,(将67虚拟机挂起)在客户端测试文件是否可以正常使用
    【9.1】测试分布式数据是否可以正常访问
    ------------在70主机操作----------------
    head -1 /test/dis/demon1.log
    head -1 /test/dis/demon2.log     //显示无法打开文件读取数据,没有哪个文件或目录
    head -1 /test/dis/demon3.log
    head -1 /test/dis/demon4.log
    head -1 /test/dis/demon5.log      //显示无法打开文件读取数据,没有哪个文件或目录
    分布在node2节点上的demon2.log和demon5.log无法访问,分布式卷不具备冗余
    【9.2】测试条带卷数据是否可以正常访问
    ------------在70主机操作----------------
    head -1 /test/stripe/demon1.log
    head -1 /test/stripe/demon2.log
    head -1 /test/stripe/demon3.log
    head -1 /test/stripe/demon4.log
    head -1 /test/stripe/demon5.log
    //会发现以上5个文件都无法读取,没有哪个文件或目录.   node2节点挂起后,所有数据全部丢失
    【9.3】测试分布式条带数据是否可以访问
    ------------在70主机操作----------------
    head -1 /test/dis_and_stripe/demon1.log        //显示无法打开文件读取数据,没有哪个文件或目录
    head -1 /test/dis_and_stripe/demon2.log
    head -1 /test/dis_and_stripe/demon3.log        //显示无法打开文件读取数据,没有哪个文件或目录
    head -1 /test/dis_and_stripe/demon4.log        //显示无法打开文件读取数据,没有哪个文件或目录
    head -1 /test/dis_and_stripe/demon5.log
    #node2节点挂起后,分布在node1和node2节点的数据丢失,而分布在node3和node4节点数据不丢失
    【9.4】测试分布式复制卷数据是否可以访问
    ------------在70主机操作----------------
    head -1 /test/dis_and_rep/demon1.log
    head -1 /test/dis_and_rep/demon2.log
    head -1 /test/dis_and_rep/demon3.log
    head -1 /test/dis_and_rep/demon4.log
    head -1 /test/dis_and_rep/demon5.log
    ///会发现node2节点挂起后,数据不丢失
    【9.5】继续挂起node4节点,在客户端上测试文件是否可以正常使用。
         测试复制卷数据是否可以访问
    ------------在70主机操作----------------
    head -1 /test/rep/demon1.log
    head -1 /test/rep/demon2.log
    head -1 /test/rep/demon3.log
    head -1 /test/rep/demon4.log
    head -1 /test/rep/demon5.log
    node2和node4节点挂起后,数据不丢失
    【9.6】测试分布式条带卷数据是否可以访问
    ------------在70主机操作----------------
    head -1 /test/dis_and_stripe/demon1.log    //丢失
    head -1 /test/dis_and_stripe/demon2.log    //丢失
    head -1 /test/dis_and_stripe/demon3.log    //丢失
    head -1 /test/dis_and_stripe/demon4.log    //丢失
    head -1 /test/dis_and_stripe/demon5.log    //丢失
    ///node2和node4节点挂起后,数据全部都丢失
    【9.7】测试分布式复制卷数据是否可以访问
    ------------在70主机操作----------------
    tail -1 /test/dis_and_rep/demon1.log
    tail -1 /test/dis_and_rep/demon2.log
    tail -1 /test/dis_and_rep/demon3.log
    tail -1 /test/dis_and_rep/demon4.log
    tail -1 /test/dis_and_rep/demon5.log
    ////node2和node4节点挂起后,数据不丢失
    【10】其他的维护命令
    ------------在66主机操作-----------------
    gluster volume info     //查看所有卷的信息
    gluster volume info 卷名    //查看某个卷的信息
    gluster volume status   //查看卷的状态
    gluster volume stop dis-stripe     //停止卷
    gluster volume delete dis-stripe    //删除卷
    gluster volume set dis-rep auth.allow 192.168.200.*,10.1.1.*    //设置倦怠访问控制,只允许192.168.200.0和10.1.1.0网段的客户端访问dis-rep卷
     
  • 相关阅读:
    2016第5周四
    2016第5周三
    2016第5周二
    HTTP2.0那些事
    2016第4周日
    【C语言的日常实践(十二)】命令行参数
    Oracle改变字段类型
    Codeforces Round #269 (Div. 2)
    linux shell 命令
    Codeforces Round #256 (Div. 2) C. Painting Fence 或搜索DP
  • 原文地址:https://www.cnblogs.com/elin989898/p/12013456.html
Copyright © 2011-2022 走看看