Heketi——一种GlusterFS集群管理工具

栏目: 服务器 · 发布时间: 6年前

内容简介:Heketi是一个GlusterFs管理软件,可以管理glusterFS集群的卷创建、删除等操作。1.GlusterFS集群的各peer必须要有未安装文件系统的磁盘设备(磁盘设备未进行格式化)2.GlusterFS集群各peer的端口号不能太少,不然当peer上的brick将端口号用完后,会造成无法创建卷

Heketi是一个GlusterFs管理软件,可以管理glusterFS集群的卷创建、删除等操作。

Heketi管理GlusterFS集群需要注意:

1.GlusterFS集群的各peer必须要有未安装文件系统的磁盘设备(磁盘设备未进行格式化)

2.GlusterFS集群各peer的端口号不能太少,不然当peer上的brick将端口号用完后,会造成无法创建卷

3.GlusterFS的各peer不能组成集群,Heketi可以自创建集群组合。

Heketi安装步骤:

1.使用rpm包安装:

rpm -ivh heketi-7.0.0-1.el7.x86_64.rpm

2.配置文件:

配置文件位置:

/etc/heketi/heketi.json

配置文件示例:

{
#默认端口8080
  "port": "8088",
#不需要密码
  "use_auth": false,
#glusterfs集群配置信息
  "glusterfs": {
    "executor": "ssh",
    "sshexec": {
      "keyfile": "/etc/heketi/heketi_key",
      "user": "root"
    },
    "db": "/heketidb/heketi.db",
    "loglevel" : "debug"
  }
}

3.检查是否正常运行,执行如下命令:

curl http://localhost:8088/hello

返回值正常:

Hello from Heketi

Heketi和GlusterFS各节点配置信赖关系

注意:就是配置Heketi免密登录GlusterFS集群各节点,当Heketi配置文件的<“glusterfs”>键如此写时,可以使用如下方式进行配置免密登录

"glusterfs": {
    "executor": "ssh",
    "sshexec": {
      "keyfile": "/etc/heketi/heketi_key",
      "user": "root"
    },
    "db": "/heketidb/heketi.db",
    "loglevel" : "debug"
  }

1.创建目录/etc/heketi(也可以不创建,任意目录都行)

mkdir /etc/heketi

2.生成heketi秘钥对

ssh-keygen -f /etc/heketi/heketi_key -t rsa -N ''

3.将生成秘钥的公钥导入到GlsuterFS集群的各peer的</root/.ssh/authorized_keys>文件中

通过heketi-client 向Heketi导入GlusterFS集群信息

安装heketi-client:

1.使用rpm安装

rpm -ivh /export/servers/heketi-client-7.0.0-1.el7.x86_64.rpm

2.配置配置文件:/etc/heketi/topology.json(文件需要提前创建)

{
  "clusters": [
    {
      "nodes": [
        {
          "node": {
            "hostnames": {
              "manage": [
                "1.1.1.6"
              ],
              "storage": [
                "1.1.1.6"
              ]
            },
            "zone": 1
          },
          "devices": [
            "/dev/sdb"
          ]
        },
        {
          "node": {
            "hostnames": {
              "manage": [
                "1.1.1.7"
              ],
              "storage": [
                "1.1.1.7"
              ]
            },
            "zone": 1
          },
          "devices": [
            "/dev/sdb"
          ]
        },
        {
          "node": {
            "hostnames": {
              "manage": [
                "1.1.1.8"
              ],
              "storage": [
                "1.1.1.8"
              ]
            },
            #配置机柜感知
            "zone": 1
          },
          "devices": [
            "/dev/sdb"
          ]
        }
      ]
    }
  ]
}

3.向heketi发送GlusterFS集群信息

heketi-cli --server http://localhost:8088 topology load --json=/etc/heketi/topology.json

如何给集群扩容?

  • 重新配置/etc/heketi/topology.json文件信息后,导入到heketi中就可以扩容。
  • 也可以通过<heketi-cli –server http://localhost:8088 node> add命令为集群扩容

使用Heketi管理GlusterFS集群

1.新建heketidbstorage数据库(heketi用于记录GLusterFS集群磁盘空间信息等资源使用情况的数据库)

heketi-cli --server http://localhost:8088 setup-openshift-heketi-storage

2.查看GlusterFS集群的信息

#集群列表
heketi-cli --server http://localhost:8088  cluster list
#集群详细信息
heketi-cli --server http://localhost:8088  cluster info <cluster ID>
#节点信息
heketi-cli --server http://localhost:8088  node info <node ID>
#卷信息
heketi-cli --server http://localhost:8088 volume list

3.其他常用命令

#heketi支持如下命令
heketi-cli --server http://localhost:8088 -h
  blockvolume                    Heketi Volume Management
  cluster                        Heketi cluster management
  db                             Heketi Database Management
  device                         Heketi device management
  help                           Help about any command
  loglevel                       Heketi Log Level
  node                           Heketi Node Management
  setup-openshift-heketi-storage Setup OpenShift/Kubernetes persistent storage for Heketi
  topology                       Heketi Topology Management
  volume                         Heketi Volume Management
#集群相关命令
heketi-cli --server http://localhost:8088 cluster -h
  create      Create a cluster
  delete      Delete the cluster
  info        Retrieves information about cluster
  list        Lists the clusters managed by Heketi
  setflags    Set flags on a cluster
#节点相关命令
heketi-cli --server http://localhost:8088 node -h
  add         Add new node to be managed by Heketi
  delete      Deletes a node from Heketi management
  disable     Disallow usage of a node by placing it offline
  enable      Allows node to go online
  info        Retrieves information about the node
  list        List all nodes in cluster
  remove      Removes a node and all its associated devices from Heketi
  rmtags      Removes tags from a node
  settags     Sets tags on a node
#卷相关命令
heketi-cli --server http://localhost:8088 volume -h
  clone       Creates a clone
  create      Create a GlusterFS volume
  delete      Deletes the volume
  expand      Expand a volume
  info        Retrieves information about the volume
  list        Lists the volumes managed by Heketi
其他的命令可以通过<-h>查看详细使用方式

实际部署中遇到的问题

1.heketi-client导入GlusterFS集群配置信息时遇到的问题

正常时的输出日志:

#heketi-cli topology load --json=topology-sample.json
Creating cluster ... ID: 5b930ef6081fd22e895c25a3dfb0c516
    Allowing file volumes on cluster.
    Allowing block volumes on cluster.
    Creating node 10.30.1.15 ... ID: b120572be40db6c1d979c3903876430b
        Adding device /dev/sdb ... OK
    Creating node 10.30.1.16 ... ID: 7ce13ffc5eabe64a3791e93233fd3c1a
        Adding device /dev/sdb ... OK
    Creating node 10.30.1.17 ... ID: f9abdc2e5d4cfa17c035a97f984a1a3b
        Adding device /dev/sdb ... OK

当磁盘文件系统已经存在时的错误日志

[root@10-211-105-109 heketi]# heketi-cli --server http://localhost:8088 topology load --json=/etc/heketi/topology.json
	Creating node 10.211.105.200 ... ID: 6c0476a0b495bc67c2e6b181ca2f0813
		Adding device /dev/sda5 ... Unable to add device: Can't open /dev/sda5 exclusively.  Mounted filesystem?

当节点是已经位于其他集群中时的报错

[root@10-211-105-109 heketi]# heketi-cli --server http://localhost:8088 topology load --json=/etc/heketi/topology.json
	Creating node 10.211.106.9 ... Unable to create node: peer probe: failed: 10.211.106.9 is either already part of another cluster or having volumes configured

2.当使用heketi创建卷时,创建失败后会怎样

heketi记录的节点空间会减少,并且无法释放。也看不到卷信息。最终的结果是节点空间显示使用了很多,但是看不到任何的使用情况。这会不会是一个BUG?


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

We Are the Nerds

We Are the Nerds

Christine Lagorio-Chafkin / Hachette Books / 2018-10-2 / USD 18.30

Reddit hails itself as "the front page of the Internet." It's the third most-visited website in the United States--and yet, millions of Americans have no idea what it is. We Are the Nerds is an eng......一起来看看 《We Are the Nerds》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具