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

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

内容简介: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?


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

查看所有标签

猜你喜欢:

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

Unity 3D脚本编程

Unity 3D脚本编程

陈嘉栋 / 电子工业出版社 / 2016-9-1 / 79

《Unity 3D脚本编程——使用C#语言开发跨平台游戏》以Unity 3D 的跨平台基础Mono,以及其游戏脚本语言C#为基础进行讲解。全面系统地剖析了Unity 3D 的跨平台原理以及游戏脚本开发的特点。 第1 章主要介绍了Unity 3D 引擎的历史以及编辑器的基本知识;第2 章主要介绍了Mono,以及Unity3D 利用Mono 实现跨平台的原理,并且分析了C#语言为什么更适合Uni......一起来看看 《Unity 3D脚本编程》 这本书的介绍吧!

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具