GlusterFS安装备忘

1. 节点准备

192.168.100.101 master1
192.168.100.102 node1
192.168.100.103 node2

2. 挂载存储盘

$ mkfs.xfs -i size=512 /dev/sdb
$ mkdir -p /bricks/brick1
$ echo "/dev/sdb /bricks/brick1 xfs defaults 1 2"  >> /etc/fstab 
$ mount -a && mount

3. 安装GFS服务(所有节点)

$ modprobe dm_snapshot && modprobe dm_mirror && modprobe dm_thin_pool 
$ sudo tee /etc/sysconfig/modules/glusterfs.modules <<-'EOF'
    #!/bin/bash
    /sbin/modprobe dm_snapshot
    /sbin/modprobe dm_mirror
    /sbin/modprobe dm_thin_pool
  EOF
$ chmod +x /etc/sysconfig/modules/glusterfs.modules
$ yum install -y centos-release-gluster
$ yum install -y glusterfs-server
$ systemctl start glusterd && systemctl enable glusterd

4. 创建集群(master节点执行)

$ gluster peer probe node1
$ gluster peer probe node2

5. 安装客户端Heketi(可以master节点,也可以单独一台机器)

$ yum install -y heketi heketi-client
$ systemctl start heketi && systemctl enable heketi

6. 配置Heketi拓扑结构

sudo tee /etc/heketi/topology.json <<-'EOF' 
{
    "clusters": [{
        "nodes": [{
            "node": {
                "hostnames": {
                    "manage": ["192.168.100.101"],
                    "storage": ["192.168.100.101"]
                },
                "zone": 1
            },
            "devices": ["/dev/sdc"]
        }, {
            "node": {
                "hostnames": {
                    "manage": ["192.168.100.102"],
                    "storage": ["192.168.100.102"]
                },
                "zone": 1
            },
            "devices": ["/dev/sdc"]
        }, {
            "node": {
                "hostnames": {
                    "manage": ["192.168.100.103"],
                    "storage": ["192.168.100.103"]
                },
                "zone": 1
            },
            "devices": ["/dev/sdc"]
        }]
    }]
}
EOF

7. 挂载拓扑结构

$ export HEKETI_CLI_SERVER=http://master1:8080
$ heketi-cli topology load --json=/etc/heketi/topology.json

8. 存储卷操作

  • 创建 复制券(同一个文件在不同节点上各存一份)

     $ gluster volume create gv1 replica 3 \
         master1:/bricks/brick1/gv1 \
         node1:/bricks/brick1/gv1 \
         node2:/bricks/brick1/gv1
    
  • 创建 分布式券(文件通过Hash分布在不同的节点,容量为各节点和)

      $ gluster volume create gv2 \
              master1:/bricks/brick1/gv2 \
              node1:/bricks/brick1/gv2 \
              node2:/bricks/brick1/gv2
    
  • 启动存储卷

      $ gluster volume start gv1
      $ gluster volume start gv2
    
  • 挂载存储卷

      $ mkdir -p /data/gv1/ && mount -t glusterfs master1:gv1 /data/gv1/
      $ mount -t glusterfs master1:gv2 /data/gv2/
    

其他

gluster volume list #列出glusterfs中的所有存储卷
gluster volume info #查看存储卷状态
gluster volume start models #启动名为models的存储卷
gluster volume stop models #停止名为models的存储卷
gluster volume delete models #删除名为models的存储卷

GlusterFS 五种卷

* 1. Distributed:分布式卷
文件通过 hash 算法随机分布到由 bricks 组成的卷上。

* 2. Replicated: 复制式卷
类似 RAID 1,replica 数必须等于 volume 中 brick 所包含的存储服务器数,可用性高。

* 3. Striped: 条带式卷
类似 RAID 0,stripe 数必须等于 volume 中 brick 所包含的存储服务器数,文件被分成数据块,以 Round Robin 的方式存储在 bricks 中,并发粒度是数据块,大文件性能好。

* 4. Distributed Striped: 分布式的条带卷
volume中 brick 所包含的存储服务器数必须是 stripe 的倍数(>=2倍),兼顾分布式和条带式的功能。

* 5.【推荐使用】 Distributed Replicated: 分布式的复制卷
volume 中 brick 所包含的存储服务器数必须是 replica 的倍数(>=2倍),兼顾分布式和复制式的功能。

分布式复制卷的brick顺序决定了文件分布的位置,一般来说,先是两个brick形成一个复制关系,然后两个复制关系形成分布。 企业一般用后两种,大部分会用分布式复制(可用容量为 总容量/复制份数),通过网络传输的话最好用万兆交换机,万兆网卡来做。这样就会优化一部分性能。它们的数据都是通过网络来传输的。

# 将原有的【复制卷gv1】进行扩容,使其成为分布式复制卷
$ gluster volume add-brick gv1 replica 2 \
    node03:/bricks/brick1/gv1 \
    node04:/bricks/brick1/gv1 \
    node05:/bricks/brick1/gv1

你可能感兴趣的:(Linux服务器,中间件)