glusterfs install

GlusterFS install

  1. 格式化磁盘

    1
    2
    3
    4
    5
    6
    * 通过LVM 创建磁盘
    * 通过mkfs.xfs 格式化磁盘
    mkfs.xfs -i size=512 /dev/sdb
    mkdir -p /data/brick
    echo '/dev/sdb /data/brick xfs defaults 1 2' |tee -a /etc/fstab
    mount -a
  2. GlusterFS基础依赖包安装

    1
    [root@10 app]# yum -y install xfsprogs fuse fuse-libs
  3. GlusterFS yum源

    1
    2
    3
    4
    5
    6
    7
    [root@10 app]# wget -O /etc/yum.repo.d/glusterfs.repo http://download.gluster.org/pub/gluster/glusterfs/LATEST/CentOS/gluster-epel.repo
    [root@10 app]# yum makecache
    or:
    [root@10 app]# wget -O /etc/yum.repo.d/glusterfs.repo http://download.gluster.org/pub/gluster/glusterfs/LATEST/CentOS/gluster-epel.repo
    [root@10 app]# sed -in 's/LATEST/3.7.14/g' /etc/yum.repos.d/glusterfs-epel.repo
    [root@10 app]# sed -in 's/EPEL.repo/CentOS/g' /etc/yum.repos.d/glusterfs-epel.repo
    [root@10 app]# yum makecache
  4. GlusterFS 安装

    1
    [root@10 app]# yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-geo-replication
  5. GlusterFS 启动

    1
    2
    [root@10 app]# systemctl start glusterd
    [root@10 app]# systemctl enable glusterd
  6. GlusterFS 设置可信任存储池

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    //在server1上执行:
    [root@10 app]# gluster peer probe 192.168.1.12

    //在server2上执行:
    [root@10 app]# gluster peer probe 192.168.1.11

    //查看存储池状态:
    [root@10 app]# gluster peer status

    //从存储池中移除节点
    [root@10 app]# gluster peer detach 192.168.1.12

    注意:
    * 一旦设置了可信的存储池,就会仅允许存储池中的被信任的节点主动发现其它的新节点,并将其加入到池中.而一个独立的新节点,是不被允许自行加入可信存储池中的.
    * GlusterFS对于每个节点都会生成一个UUID来标识,因此如果节点的IP或主机名发生了变化,只需要重新执行peer probe即可.不过如果一个主机名曾经用过,想再改回去,则gluster会提示已经保存过.此时只能把节点detach掉,然后重新probe.
  7. GlusterFS 创建 一个GlusterFS卷

    1
    2
    3
    4
    5
    6
    GlusterFS卷共有三基本类型:
    * Distributed(分布存储)
    * Striped(将一个文件分成多个固定长度的数据,分布存放在所有存储块,相当于RAID0)
    * Replicated(镜像存储,相当于RAID1)

    基于striped和replicated,结合使用distributed后,又可以扩展出分布式分片存储卷和分布式镜像存储卷两种新的类型.而后两种扩展类型并没有新的命令格式,仅是通过设置数据冗余份数和添加进逻辑卷的bricks数量来动态定义的.
    1
    2
    3
    4
    5
    //创建一个GlusterFS Replicated卷
    [root@10 app]# gluster volume create gv0 replica 2 192.168.1.11:/data/brick/gv0 192.168.1.12:/data/brick/gv0 force
    [root@10 app]# gluster volume start gv0

    [root@10 app]# gluster volume info
    1
    2
    3
    4
    5
    //创建一个GlusterFS Striped逻辑卷(创建一个名字为gv1,包含两个存储块,使用TCP协议的Striped逻辑卷)
    [root@10 app]# gluster volume create gv1 stripe 2 transport tcp 192.168.1.11:/data 192.168.1.12:/data
    [root@10 app]# gluster volume start gv1

    [root@10 app]# gluster volume info
    1
    2
    3
    4
    5
    //创建一个GlusterFS Distributed逻辑卷
    [root@10 app]# gluster volume create gv2 192.168.1.11:/data 192.168.1.12:/data
    [root@10 app]# gluster volume start gv2

    [root@10 app]# gluster volume info
    1
    2
    3
    //停止和删除逻辑卷
    [root@10 app]# gluster volume stop gv0
    [root@10 app]# gluster volume delete gv0
    1
    2
    3
    4
    5
    6
    7
    //与存储块brick相关的逻辑卷管理(在gv0卷中增加一个存储块192.168.1.13:/data)
    [root@10 app]# gluster volume add-brick gv0 192.168.1.13:/data
    [root@10 app]# gluster volume rebalance gv0 start

    //删除Brick
    [root@10 app]# gluster volume remove-brick gv0 192.168.1.13:/data
    [root@10 app]# gluster volume rebalance gv0 start
  8. GlusterFS 设置卷参数

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    //设置服务器仲裁
    [root@10 app]# gluster volume set volume1 cluster.server-quorum-type server
    [root@10 app]# gluster volume set all cluster.server-quorum-ratio 50%

    //配置允许的链接的client
    [root@10 app]# gluster volume set volume1 auth.allow 192.168.1.12,192.168.1.13

    //操作超时
    [root@10 app]# gluster volume set volume1 network.frame-timeout 1800

    //网络超时超时
    [root@10 app]# gluster volume set volume1 network.ping-timeout 10

    //IO线程
    [root@10 app]# gluster volume set volume1 performance.io-thread-count 32

    //IO缓存,注意此配置需要客户端提供不低于此内存的配置
    [root@10 app]# gluster volume set data performance.cache-size 200MB

    //禁用nfs
    [root@10 app]# gluster volume set data nfs.disable on
  9. GlusterFS 客户端连接

    1
    2
    3
    4
    5
    6
    [root@10 app]# yum install -y glusterfs-fuse
    [root@10 app]# mkdir /volume1
    [root@10 app]# mount –t glusterfs 192.168.1.11:/volume1 /volume1
    or:
    [root@10 app]# echo "192.168.13.1:/data /mnt/glusterfs glusterfs defaults 0 0" |tee -a /etc/fstab
    [root@10 app]# mount -a