用heketi管理glusterfs并创建volume

论坛 期权论坛 脚本     
匿名网站用户   2020-12-21 03:37   25   0

置顶2018年06月21日 11:29:51DevOps008阅读数:310

Heketi 提供了丰富的RESTful API 用来对于Glusterfs的volume进行管理。Heketi可以同时管理多个cluster,每个cluster由多个node组成,每个node都是一个物理机,准确的说是一个裸盘。然后每个裸有多个bricks,而volume就是多个bricks组成的,但是,一个volume不可以跨node组成。示意图如下所示。

Heketi 在Github上的地址:https://github.com/heketi

下文将要讲述在Redhat 7上安装Heketi, Glusterfs并进行相应配置。

1. 配置Gluster yum 源并且安装heketi & glusterfs

进入/etc/yum.repos.d/目录,新建gluster.repo(名字随便起,但是后缀必须是repo),添加如下内容到gluster.repo文件:

[gluster]

name = Gluster

baseurl = http://buildlogs.centos.org/centos/7/storage/x86_64/gluster-4.0/

gpgcheck = 0

enable = 1

保存文件,然后执行yum repolist 会看到如下内容

接着执行yum install heketi -y 和 yum install heketi-client -y,进行heketi和heketi-client的安装。检查是否安装成功,用heketi --version查看版本,如果有版本信息,那么证明安装成功。接下来需要开启heketi服务。

order1 :systemctl enable heketi

order2 :systemctl start heketi

此时如果发生start fail,在log中查看日志(/var/log/messages),会看到如下内容:

这是因为默认的配置文件有个错误,此时需要通过 find /etc -name "heketi.service" 命令,找到heketi.service文件,打开文件,内容显示如下:

刚安装完毕,上面标注那一行内容应该是“-config” 而不是“--config”,所以在前面多加一个”-“,然后保存文件。接着执行systemctl daemon-reload. 然后执行systemctl start heketi 命令启动heketi。然后用systemctl status heketi,会看到如下内容

到此时此刻,证明heketi,安装成功。Gluster的安装就显的简单了。

yum install glusterfs-server (服务器端)yum install -y glusterfs-client(客户端)。接着执行gluster --version命令,确认gluster安装成功。


2. 利用heketi创建gluster集群并进行volume管理

heketi有两个文件比较重要,第一个是heketi.json,位于/etc/heketi 目录下,主要用来确定heketi端口以及cluster node管理方式的定义等;第二个topology.json(文件路径随意,但是需要记住路径,用途后面写),此文件用来描述heketi创建的cluster的topology模型。heketi就是根据这个文件来创建cluster topology进而创建node 和volume。

如下是heketi.json文件的内容:

第一张图是heketi的端口号,默认是8080,但是可以修改,修改完之后需要重启heketi才能生效。


下面这张图是比较重要的,heketi用来管理cluster的,下面的配置控制了cluster下的node的管理方式,有三种

:mock, ssh,kubernetes。mock,顾名思义就是测试,在这种模式下,可以对于自己的配置文件什么的进行检验,但是,但是,但是,重要的坑说三遍,如果处于此模式下,虽然你可以看到node添加成功,volume创建成功,但是这些volume是不可用的,无法挂载的。所以如果要在SVT或者PROD环境用的话,一定要用ssh或者kubernetes模式。下面只讲述ssh模式。

3 cluster topology的配置

在/etc/heketi,新建文件topology.json,写入如下内容

{

"clusters": [

{

"nodes": [

{

"node": {

"hostnames": {

"manage": [

"100.120.187.1"

],

"storage": [

"100.120.187.1"

]

},

"zone": 1

},

"devices": [

{

"name": "/dev/mapper/bcdisk1-disk1",

"destroydata": true

}

]

},

"node": {

"hostnames": {

"manage": [

"100.120.187.2"

],

"storage": [

"100.120.187.2"

]

},

"zone": 1

},

"devices": [

{

"name": "/dev/mapper/bcdisk1-disk1",

"destroydata": true

}

]

},

{

"node": {

"hostnames": {

"manage": [

"100.120.187.3"

],

"storage": [

"100.120.187.3"

]

},

"zone": 1

},

"devices": [

{

"name": "/dev/mapper/bcdisk1-disk1",

"destroydata": true

}

]

}

]

}

]

}

查阅了相关资料,用heketi模式,最少需要三个node,如上配置。如果少于三个节点,cluster能创建成功,但是在创建volume的时候会出现错误。topology文件添加成功后,开始创建cluster topology,执行命令:

heketi-cli topology load --json=topology.json。然后输入heketi-cli topology info,查看topology是否创建成功。如果成功会显示如下内容:


下面就可以创建指定size的volume来进行使用了,创建volume命令:

heketi-cli volume create --size=10 --clusters=clusterid。其中clusterid可以通过heketi-cli cluster list命令来获取。创建的volume可以通过mount的方式使用。

至此,heketi已经完成heketi的安装以及volume的创建和使用。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:1136255
帖子:227251
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP