GlusterFS之管理工具heketi

1.  Heketi介绍

    Heketi为管理GlusterFS存储卷的生命周期提供了一个RESTful管理接口

    自动确定整个集群的brick位置,并确保brick及其副本放置在不同的故障域中

    支持任意数量的Gluster存储集群,并支持云服务提供网络文件存储

    在Heketi中注册的任何磁盘都必须以原始格式提供,而不能是创建过文件系统的磁盘分区

  

2.  集群环境

系统 IP 主机名称 磁盘 角色
CentOS7.4 172.16.1.187 GFS-Client /dev/sdb GFS-Client
CentOS7.4 172.16.1.96 node4 /dev/sdb GFS-Server/Heketi
CentOS7.4 172.16.1.97 node3 /dev/sdb GFS-Server
CentOS7.4 172.16.1.98 node2 /dev/sdb

GFS-Server

CentOS7.4 172.16.1.99 node1 /dev/sdb

GFS-Server

3.  部署heketi

    1.  安装heteki服务

        yum install heketi heketi-client -y

    2.  配置heketi用户能够基于SSH密钥认证的方式连接至GlusterFS集群各节点

[root@gluster-server01 ~]# ssh-keygen -f /etc/heketi/heketi_key -t rsa -N ''
[root@gluster-server01 ~]# chown heketi:heketi  /etc/heketi/heketi*
[root@gluster-server01 ~]# for host in node{2..5}; do ssh-copy-id -i /etc/heketi/heketi_key.pub root@${host} ;done

    3.  修改heketi的主配置文件  

{
  "port": "8080",
  "use_auth": true,

  "jwt": {
    "admin": {
      "key": "123.com"
    },
    "user": {
      "key": "123456"
    }
  },

  "glusterfs": {
    "executor": "ssh",
    "sshexec": {
      "keyfile": "/etc/heketi/heketi_key",
      "user": "root",
      "port": "22",
      "fstab": "/etc/fstab"
    },

    "db": "/var/lib/heketi/heketi.db",
    "loglevel" : "debug"
  }
}

    4.  启动heketi服务

systemctl enable heketi
systemctl start heketi

    5.  向heketi发起测试请求

[root@node4 ~]# curl http://node4:8080/hello
Hello from Heketi

4.  设置heketi系统拓扑

    1.  编辑拓扑文件

        vi topolgy.json

{
  "clusters": [
    {
      "nodes": [
         {
           "node": {
               "hostnames": {
                   "manage": [
                      "172.16.1.96"
                    ],
                   "storage": [
                   "172.16.1.96"
                    ]
               },
          "zone": 1
         },
         "devices": [
            "/dev/mapper/centos-gluster_data"
              ]
           },

         {  "node": {
               "hostnames": {
                   "manage": [
                      "172.16.1.97"
                    ],
                   "storage": [
                   "172.16.1.97"
                    ]
               },
          "zone": 1
         },
         "devices": [
            "/dev/mapper/centos-gluster_data"
              ]
           },
         { "node": {
               "hostnames": {
                   "manage": [
                      "172.16.1.98"
                    ],
                   "storage": [
                   "172.16.1.98"
                    ]
               },
          "zone": 1
         },
         "devices": [
            "/dev/sdb"
              ]
           },
         { "node": {
               "hostnames": {
                   "manage": [
                      "172.16.1.99"
                    ],
                   "storage": [
                   "172.16.1.99"
                    ]
               },
          "zone": 1
         },
         "devices": [
            "/dev/sdb"
              ]
           }     
        ]
     }
   ]
}

    2.  加载拓扑文件

        heketi-cli  --user admin --secret 123.com topology load --json=topolgy.json          

        都出现OK,就是加载成功了。

    3.  根据生成的随机Cluster ID号查看集群状态信息

        heketi-cli cluster info 34be103e76c2254779d3c0dbd029acbd #注意是第一行的cluster ID

5.  Heketi使用

    1.  创建卷              

        heketi-cli volume create --size=6000 --replica=2 # 创建一个6000G的磁盘,副本数为2,时间大概2-3分钟。

    2.  客户端挂载卷

        mount -t glusterfs node4:vol_9f2dde345a9b7566f8134c3952251d7a /gluster_data/test  #vol_9f2dde345a9b7566f8134c3952251d7a创建卷的时候的name 

    3.  删除卷

        heketi-cli volume delete 9f2dde345a9b7566f8134c3952251d7a #创建信息中的Volume Id

            

  

        

            

 

posted @ 2024-10-25 16:20  奋斗史  阅读(98)  评论(0)    收藏  举报