在CentOS 8 / CentOS 7上使用Heketi设置GlusterFS存储

在本指南中,您将学习如何使用Heketi在CentOS 8 / CentOS 7上安装和配置GlusterFS存储。 GlusterFS是软件定义的横向扩展存储解决方案,旨在为非结构化数据提供价格合理且灵活的存储。借助GlusterFS,您可以在合并基础架构和数据存储的同时提高可用性性能和数据可管理性。

GlusterFS存储可以部署在私有云或数据中心或内部数据中心中。这仅在商用服务器和存储硬件上完成,从而提供了功能强大,可扩展且高度可用的NAS环境。

赫克蒂

Heketi提供了一个RESTful管理界面,可用于管理GlusterFS存储卷的生命周期。这使得将GlusterFS与OpenShift,OpenStack Manila和Kubernetes等云服务集成在一起以进行动态卷配置变得容易。

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

偏好设定

CentOS 8 / CentOS 7系统上的GlusterFS设置包括以下内容。

  • CentOS 8 / CentOS 8 Linux服务器
  • GlusterFS 6软件版本
  • 三台GlusterFS服务器
  • 每个服务器都有三个磁盘(@10GB
  • 设置DNS解析可用 / etc /主机 如果没有DNS服务器,则文件
  • 具有sudo或root用户访问权限的用户帐户
  • Heketi安装在GlusterFS节点之一上。

低于 / etc /主机 对于每个服务器文件,我都有:

$ sudo vim /etc/hosts
10.10.1.168 gluster01
10.10.1.179 gluster02
10.10.1.64  gluster03

步骤1:更新所有服务器

验证将成为GlusterFS存储群集一部分的所有服务器均已更新。

sudo yum -y update

建议您重新启动系统,因为可能会有内核更新。

sudo reboot

步骤2:配置NTP时间同步

必须使用网络时间协议(NTP)或Chrony守护程序在所有GlusterFS存储服务器之间同步时间。请参考以下指南。

在CentOS上设置时间同步

步骤3:添加GlusterFS存储库

将GlusterFS存储库下载到所有服务器。 GlusterFS 6是最新的稳定版本,将在此设置中使用。

CentOS 8:

sudo yum -y install wget
sudo wget -O  /etc/yum.repos.d/glusterfs-rhel8.repo https://download.gluster.org/pub/gluster/glusterfs/6/LATEST/CentOS/glusterfs-rhel8.repo

CentOS 7:

sudo yum -y install centos-release-gluster6

添加存储库后,更新YUM索引。

sudo yum makecache

步骤3:在CentOS 8 / CentOS 7上安装GlusterFS

在CentOS 8上安装GlusterFS与安装CentOS 7有所不同。

在CentOS 8上安装GlusterFS

启用PowerTools存储库

sudo dnf -y install dnf-utils
sudo yum-config-manager --enable PowerTools
sudo dnf -y install glusterfs-server 

在CentOS 7上安装GlusterFS

要在CentOS 7上安装最新的GlusterFS,请在所有节点上运行以下命令:

sudo yum -y install glusterfs-server 

检查已安装的软件包版本。

$ rpm -qi glusterfs-server 
Name        : glusterfs-server
Version     : 6.5
Release     : 2.el8
Architecture: x86_64
Install Date: Tue 29 Oct 2019 06:58:16 PM EAT
Group       : Unspecified
Size        : 6560178
License     : GPLv2 or LGPLv3+
Signature   : RSA/SHA256, Wed 28 Aug 2019 03:39:40 PM EAT, Key ID 43607f0dc2f8238c
Source RPM  : glusterfs-6.5-2.el8.src.rpm
Build Date  : Wed 28 Aug 2019 03:27:19 PM EAT
Build Host  : buildhw-09.phx2.fedoraproject.org
Relocations : (not relocatable)
Packager    : Fedora Project
Vendor      : Fedora Project
URL         : http://docs.gluster.org/
Bug URL     : https://bugz.fedoraproject.org/glusterfs
Summary     : Distributed file-system server

您也可以使用gluster命令检查版本。

$ gluster --version 
glusterfs 6.5
Repository revision: git://git.gluster.org/glusterfs.git
Copyright (c) 2006-2016 Red Hat, Inc. 
GlusterFS comes with ABSOLUTELY NO WARRANTY.
It is licensed to you under your choice of the GNU Lesser
General Public License, version 3 or any later version (LGPLv3
or later), or the GNU General Public License, version 2 (GPLv2),
in all cases as published by the Free Software Foundation.
$ glusterfsd --version

步骤4:在CentOS 8 / CentOS 7上启动GlusterFS服务

在CentOS 8 / CentOS 7上安装GlusterFS服务后,启动并启用该服务。

sudo systemctl enable --now glusterd.service

加载Heketi所需的所有内核模块。

for i in dm_snapshot dm_mirror dm_thin_pool; do
  sudo modprobe $i
done

如果您有活动的Firewalld服务,请允许GlusterFS使用的端口。

sudo firewall-cmd --add-service=glusterfs --permanent 
sudo firewall-cmd --reload 

检查所有节点的服务状态。

$ systemctl status glusterd
● glusterd.service - GlusterFS, a clustered file-system server
   Loaded: loaded (/usr/lib/systemd/system/glusterd.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2019-10-29 19:10:08 EAT; 3min 1s ago
     Docs: man:glusterd(8)
 Main PID: 32027 (glusterd)
    Tasks: 9 (limit: 11512)
   Memory: 3.9M
   CGroup: /system.slice/glusterd.service
           └─32027 /usr/sbin/glusterd -p /var/run/glusterd.pid --log-level INFO

Oct 29 19:10:08 gluster01.novalocal systemd[1]: Starting GlusterFS, a clustered file-system server...
Oct 29 19:10:08 gluster01.novalocal systemd[1]: Started GlusterFS, a clustered file-system server.

$ systemctl status glusterd
 ● glusterd.service - GlusterFS, a clustered file-system server
    Loaded: loaded (/usr/lib/systemd/system/glusterd.service; enabled; vendor preset: disabled)
    Active: active (running) since Tue 2019-10-29 19:10:13 EAT; 3min 51s ago
      Docs: man:glusterd(8)
  Main PID: 3706 (glusterd)
     Tasks: 9 (limit: 11512)
    Memory: 3.8M
    CGroup: /system.slice/glusterd.service
            └─3706 /usr/sbin/glusterd -p /var/run/glusterd.pid --log-level INFO
 Oct 29 19:10:13 gluster02.novalocal systemd[1]: Starting GlusterFS, a clustered file-system server…
 Oct 29 19:10:13 gluster02.novalocal systemd[1]: Started GlusterFS, a clustered file-system server.

$ systemctl status glusterd
 ● glusterd.service - GlusterFS, a clustered file-system server
    Loaded: loaded (/usr/lib/systemd/system/glusterd.service; enabled; vendor preset: disabled)
    Active: active (running) since Tue 2019-10-29 19:10:15 EAT; 4min 24s ago
      Docs: man:glusterd(8)
  Main PID: 3716 (glusterd)
     Tasks: 9 (limit: 11512)
    Memory: 3.8M
    CGroup: /system.slice/glusterd.service
            └─3716 /usr/sbin/glusterd -p /var/run/glusterd.pid --log-level INFO
 Oct 29 19:10:15 gluster03.novalocal systemd[1]: Starting GlusterFS, a clustered file-system server…
 Oct 29 19:10:15 gluster03.novalocal systemd[1]: Started GlusterFS, a clustered file-system server.

探测集群中的其他节点

[[email protected] ~]# gluster peer probe gluster02
peer probe: success. 

[[email protected] ~]# gluster peer probe gluster03
peer probe: success. 

[[email protected] ~]# gluster peer status
Number of Peers: 2

Hostname: gluster02
Uuid: ebfdf84f-3d66-4f98-93df-a6442b5466ed
State: Peer in Cluster (Connected)

Hostname: gluster03
Uuid: 98547ab1-9565-4f71-928c-8e4e13eb61c3
State: Peer in Cluster (Connected)

第5步:在以下任意位置安装Heketi 结点

我用 gluster01 运行Heketi服务的节点。从Github发布页面下载最新版本的Heketi服务器和客户端。

curl -s https://api.github.com/repos/heketi/heketi/releases/latest 
  | grep browser_download_url 
  | grep linux.amd64 
  | cut -d '"' -f 4 
  | wget -qi -

提取下载的heketi存档。

for i in `ls | grep heketi | grep .tar.gz`; do tar xvf $i; done

复制heketi和heketi-cli二进制软件包。

sudo cp heketi/{heketi,heketi-cli} /usr/local/bin

确保它们可用

$ heketi --version
Heketi v9.0.0

$ heketi-cli --version
heketi-cli v9.0.0

步骤5:配置Heketi服务器

  • 添加一个heketi系统用户。
sudo groupadd --system heketi
sudo useradd -s /sbin/nologin --system -g heketi heketi
  • 创建一个heketi配置和数据路径。
sudo mkdir -p /var/lib/heketi /etc/heketi /var/log/heketi
  • 将heketi配置文件复制到/ etc / heketi目录。
sudo cp heketi/heketi.json /etc/heketi
  • 编辑Heketi配置文件
sudo vim /etc/heketi/heketi.json

设置服务端口。

"port": "8080"

设置管理员并使用机密。

"_jwt": "Private keys for access",
  "jwt": {
    "_admin": "Admin has access to all APIs",
    "admin": {
      "key": "ivd7dfORN7QNeKVO"
    },
    "_user": "User only has access to /volumes endpoint",
    "user": {
      "key": "gZPgdZ8NtBNj6jfp"
    }
  },

配置glusterfs执行器

_sshexec_comment": "SSH username and private key file information",
    "sshexec": {
      "keyfile": "/etc/heketi/heketi_key",
      "user": "root",
      "port": "22",
      "fstab": "/etc/fstab",
......
},

如果您使用非root用户, 没有密码 sudo特权升级。

确保数据库路径设置正确

"_db_comment": "Database file name",
    "db": "/var/lib/heketi/heketi.db",
},

以下是完整的修改后的配置文件。

{
  "_port_comment": "Heketi Server Port Number",
  "port": "8080",

	"_enable_tls_comment": "Enable TLS in Heketi Server",
	"enable_tls": false,

	"_cert_file_comment": "Path to a valid certificate file",
	"cert_file": "",

	"_key_file_comment": "Path to a valid private key file",
	"key_file": "",


  "_use_auth": "Enable JWT authorization. Please enable for deployment",
  "use_auth": false,

  "_jwt": "Private keys for access",
  "jwt": {
    "_admin": "Admin has access to all APIs",
    "admin": {
      "key": "ivd7dfORN7QNeKVO"
    },
    "_user": "User only has access to /volumes endpoint",
    "user": {
      "key": "gZPgdZ8NtBNj6jfp"
    }
  },

  "_backup_db_to_kube_secret": "Backup the heketi database to a Kubernetes secret when running in Kubernetes. Default is off.",
  "backup_db_to_kube_secret": false,

  "_profiling": "Enable go/pprof profiling on the /debug/pprof endpoints.",
  "profiling": false,

  "_glusterfs_comment": "GlusterFS Configuration",
  "glusterfs": {
    "_executor_comment": [
      "Execute plugin. Possible choices: mock, ssh",
      "mock: This setting is used for testing and development.",
      "      It will not send commands to any node.",
      "ssh:  This setting will notify Heketi to ssh to the nodes.",
      "      It will need the values in sshexec to be configured.",
      "kubernetes: Communicate with GlusterFS containers over",
      "            Kubernetes exec api."
    ],
    "executor": "mock",

    "_sshexec_comment": "SSH username and private key file information",
    "sshexec": {
      "keyfile": "/etc/heketi/heketi_key",
      "user": "cloud-user",
      "port": "22",
      "fstab": "/etc/fstab"
    },

    "_db_comment": "Database file name",
    "db": "/var/lib/heketi/heketi.db",

     "_refresh_time_monitor_gluster_nodes": "Refresh time in seconds to monitor Gluster nodes",
    "refresh_time_monitor_gluster_nodes": 120,

    "_start_time_monitor_gluster_nodes": "Start time in seconds to monitor Gluster nodes when the heketi comes up",
    "start_time_monitor_gluster_nodes": 10,

    "_loglevel_comment": [
      "Set log level. Choices are:",
      "  none, critical, error, warning, info, debug",
      "Default is warning"
    ],
    "loglevel" : "debug",

    "_auto_create_block_hosting_volume": "Creates Block Hosting volumes automatically if not found or exsisting volume exhausted",
    "auto_create_block_hosting_volume": true,

    "_block_hosting_volume_size": "New block hosting volume will be created in size mentioned, This is considered only if auto-create is enabled.",
    "block_hosting_volume_size": 500,

    "_block_hosting_volume_options": "New block hosting volume will be created with the following set of options. Removing the group gluster-block option is NOT recommended. Additional options can be added next to it separated by a comma.",
    "block_hosting_volume_options": "group gluster-block",

    "_pre_request_volume_options": "Volume options that will be applied for all volumes created. Can be overridden by volume options in volume create request.",
    "pre_request_volume_options": "",

    "_post_request_volume_options": "Volume options that will be applied for all volumes created. To be used to override volume options in volume create request.",
    "post_request_volume_options": ""
  }
}
  • 生成Heketi SSH密钥
sudo ssh-keygen -f /etc/heketi/heketi_key -t rsa -N ''
sudo chown heketi:heketi /etc/heketi/heketi_key*
  • 将生成的公钥复制到所有GlusterFS节点
for i in gluster01 gluster02 gluster03; do
  ssh-copy-id -i /etc/heketi/heketi_key.pub [email protected]$i
done

或者,您也可以提供以下内容 /etc/heketi/heketi_key.pub 添加到每个服务器 〜/ .ssh /授权密钥

验证您可以使用Heketi私钥访问GlusterFS节点。

$ ssh -i /etc/heketi/heketi_key [email protected]
The authenticity of host 'gluster02 (10.10.1.179)' can't be established.
ECDSA key fingerprint is SHA256:GXNdsSxmp2O104rPB4RmYsH73nTa5U10cw3LG22sANc.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'gluster02,10.10.1.179' (ECDSA) to the list of known hosts.
Activate the web console with: systemctl enable --now cockpit.socket

Last login: Tue Oct 29 20:11:32 2019 from 10.10.1.168
[[email protected] ~]# 
  • 创建一个系统单位文件

创建一个Heketi Systemd单位文件

$ sudo vim /etc/systemd/system/heketi.service
[Unit]
Description=Heketi Server

[Service]
Type=simple
WorkingDirectory=/var/lib/heketi
EnvironmentFile=-/etc/heketi/heketi.env
User=heketi
ExecStart=/usr/local/bin/heketi --config=/etc/heketi/heketi.json
Restart=on-failure
StandardOutput=syslog
StandardError=syslog

[Install]
WantedBy=multi-user.target

下载Heketi的示例环境文件。

sudo wget -O /etc/heketi/heketi.env https://raw.githubusercontent.com/heketi/heketi/master/extras/systemd/heketi.env
  • 设置所有目录权限
sudo chown -R heketi:heketi /var/lib/heketi /var/log/heketi /etc/heketi
  • Heketi服务启动

禁用SELinux

sudo setenforce 0
sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config

然后重新加载Systemd并启动Heketi服务

sudo systemctl daemon-reload
sudo systemctl enable --now heketi

验证服务正在运行。

$ systemctl status heketi
● heketi.service - Heketi Server
   Loaded: loaded (/etc/systemd/system/heketi.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2019-10-29 20:29:23 EAT; 4s ago
 Main PID: 2166 (heketi)
    Tasks: 5 (limit: 11512)
   Memory: 8.7M
   CGroup: /system.slice/heketi.service
           └─2166 /usr/local/bin/heketi --config=/etc/heketi/heketi.json

Oct 29 20:29:23 gluster01.novalocal heketi[2166]: Heketi v9.0.0
Oct 29 20:29:23 gluster01.novalocal heketi[2166]: [heketi] INFO 2019/10/29 20:29:23 Loaded mock executor
Oct 29 20:29:23 gluster01.novalocal heketi[2166]: [heketi] INFO 2019/10/29 20:29:23 Volumes per cluster limit is set to default value of 1000
Oct 29 20:29:23 gluster01.novalocal heketi[2166]: [heketi] INFO 2019/10/29 20:29:23 Block: Auto Create Block Hosting Volume set to true
Oct 29 20:29:23 gluster01.novalocal heketi[2166]: [heketi] INFO 2019/10/29 20:29:23 Block: New Block Hosting Volume size 500 GB
Oct 29 20:29:23 gluster01.novalocal heketi[2166]: [heketi] INFO 2019/10/29 20:29:23 Block: New Block Hosting Volume Options: group gluster-block
Oct 29 20:29:23 gluster01.novalocal heketi[2166]: [heketi] INFO 2019/10/29 20:29:23 GlusterFS Application Loaded
Oct 29 20:29:23 gluster01.novalocal heketi[2166]: [heketi] INFO 2019/10/29 20:29:23 Started background pending operations cleaner
Oct 29 20:29:23 gluster01.novalocal heketi[2166]: [heketi] INFO 2019/10/29 20:29:23 Started Node Health Cache Monitor
Oct 29 20:29:23 gluster01.novalocal heketi[2166]: Listening on port 8080

步骤6:创建Heketi拓扑文件

创建了用于生成和更新拓扑文件的ansible剧本。手动编辑json文件是一项艰巨的任务。这使缩放更容易。

Ansible的本地安装-请参阅Ansible的Ansible安装文档。

对于 CentOS的

sudo yum -y install epel-release
sudo yum -y install ansible

对于 的Ubuntu

sudo apt update
sudo apt install software-properties-common
sudo apt-add-repository --yes --update ppa:ansible/ansible
sudo apt install ansible

安装Ansible之后,为您的项目创建一个文件夹结构

mkdir -p ~/projects/ansible/roles/heketi/{tasks,templates,defaults}

创建Heketi拓扑Jinja2模板

$ vim ~/projects/ansible/roles/heketi/templates/topology.json.j2
{
  "clusters": [
    {
      "nodes": [
      {% if gluster_servers is defined and gluster_servers is iterable %}
      {% for item in gluster_servers %}
        {
          "node": {
            "hostnames": {
              "manage": [
                "{{ item.servername }}"
              ],
              "storage": [
                "{{ item.serverip }}"
              ]
            },
            "zone": {{ item.zone }}
          },
          "devices": [
            "{{ item.disks | list | join ("","") }}"
          ]
        }{% if not loop.last %},{% endif %}
    {% endfor %}
    {% endif %}
      ]
    }
  ]
}

变量定义-设置一个与您的首选项匹配的值。

$ vim ~/projects/ansible/roles/heketi/defaults/main.yml
---
# GlusterFS nodes
gluster_servers:
  - servername: gluster01
    serverip: 10.10.1.168
    zone: 1
    disks:
      - /dev/vdc
      - /dev/vdd
      - /dev/vde
  - servername: gluster02
    serverip: 10.10.1.179
    zone: 1
    disks:
      - /dev/vdc
      - /dev/vdd
      - /dev/vde
  - servername: gluster03
    serverip: 10.10.1.64
    zone: 1
    disks:
      - /dev/vdc
      - /dev/vdd
      - /dev/vde

创建一个Ansible任务

$ vim ~/projects/ansible/roles/heketi/tasks/main.yml
---
- name: Copy heketi topology file
  template:
    src: topology.json.j2
    dest: /etc/heketi/topology.json

- name: Set proper file ownership
  file:
   path:  /etc/heketi/topology.json
   owner: heketi
   group: heketi

创建剧本和清单文件

$ vim ~/projects/ansible/heketi.yml
---
- name: Generate Heketi topology file and copy to Heketi Server
  hosts: gluster01
  become: yes
  become_method: sudo
  roles:
    - heketi

$ vim ~/projects/ansible/hosts
gluster01

这就是一切的样子

$ cd ~/projects/ansible/
$ tree
.
├── heketi.yml
├── hosts
└── roles
    └── heketi
        ├── defaults
        │   └── main.yml
        ├── tasks
        │   └── main.yml
        └── templates
            └── topology.json.j2

5 directories, 5 files

运行剧本

$ cd ~/projects/ansible
$ ansible-playbook -i hosts --user myuser --ask-pass --ask-become-pass heketi.yml

# Key based and Passwordless sudo / root, use:
$ ansible-playbook -i hosts --user myuser heketi.yml

执行输出

检查生成的拓扑文件的内容。

$ cat /etc/heketi/topology.json 
{
  "clusters": [
    {
      "nodes": [
                    {
          "node": {
            "hostnames": {
              "manage": [
                "gluster01"
              ],
              "storage": [
                "10.10.1.168"
              ]
            },
            "zone": 1
          },
          "devices": [
            "/dev/vdc","/dev/vdd","/dev/vde"
          ]
        },            {
          "node": {
            "hostnames": {
              "manage": [
                "gluster02"
              ],
              "storage": [
                "10.10.1.179"
              ]
            },
            "zone": 1
          },
          "devices": [
            "/dev/vdc","/dev/vdd","/dev/vde"
          ]
        },            {
          "node": {
            "hostnames": {
              "manage": [
                "gluster03"
              ],
              "storage": [
                "10.10.1.64"
              ]
            },
            "zone": 1
          },
          "devices": [
            "/dev/vdc","/dev/vdd","/dev/vde"
          ]
        }              ]
    }
  ]
}

步骤7:加载Heketi拓扑文件

如果一切正常,请加载拓扑文件。

# heketi-cli topology load --user admin --secret heketi_admin_secret --json=/etc/heketi/topology.json

在我的配置中,运行

 # heketi-cli topology load --user admin --secret ivd7dfORN7QNeKVO --json=/etc/heketi/topology.json
Creating cluster ... ID: dda582cc3bd943421d57f4e78585a5a9
	Allowing file volumes on cluster.
	Allowing block volumes on cluster.
	Creating node gluster01 ... ID: 0c349dcaec068d7a78334deaef5cbb9a
		Adding device /dev/vdc ... OK
		Adding device /dev/vdd ... OK
		Adding device /dev/vde ... OK
	Creating node gluster02 ... ID: 48d7274f325f3d59a3a6df80771d5aed
		Adding device /dev/vdc ... OK
		Adding device /dev/vdd ... OK
		Adding device /dev/vde ... OK
	Creating node gluster03 ... ID: 4d6a24b992d5fe53ed78011e0ab76ead
		Adding device /dev/vdc ... OK
		Adding device /dev/vdd ... OK
		Adding device /dev/vde ... OK

在下面的屏幕快照中共享了相同的输出。

在CentOS 8 / CentOS 7上使用Heketi设置GlusterFS存储

步骤7:检查GlusterFS / Heketi设置

添加Heketi访问凭证 〜/ .Bashrc 文件

$ vim ~/.bashrc
export HEKETI_CLI_SERVER=http://heketiserverip:8080
export HEKETI_CLI_USER=admin
export HEKETI_CLI_KEY="AdminPass"

获取文件。

source ~/.bashrc

读取拓扑文件后,执行以下命令以列出集群。

# heketi-cli cluster list
Clusters:
Id:dda582cc3bd943421d57f4e78585a5a9 [file][block]

列出集群中的可用节点。

# heketi-cli node list
Id:0c349dcaec068d7a78334deaef5cbb9a	Cluster:dda582cc3bd943421d57f4e78585a5a9
Id:48d7274f325f3d59a3a6df80771d5aed	Cluster:dda582cc3bd943421d57f4e78585a5a9
Id:4d6a24b992d5fe53ed78011e0ab76ead	Cluster:dda582cc3bd943421d57f4e78585a5a9

运行以下命令以查看特定节点的详细信息:

# heketi-cli node info ID
# heketi-cli node info 0c349dcaec068d7a78334deaef5cbb9a

Node Id: 0c349dcaec068d7a78334deaef5cbb9a
State: online
Cluster Id: dda582cc3bd943421d57f4e78585a5a9
Zone: 1
Management Hostname: gluster01
Storage Hostname: 10.10.1.168
Devices:
Id:0f26bd867f2bd8bc126ff3193b3611dc   Name:/dev/vdd            State:online    Size (GiB):500     Used (GiB):0       Free (GiB):10      Bricks:0       
Id:29c34e25bb30db68d70e5fd3afd795ec   Name:/dev/vdc            State:online    Size (GiB):500     Used (GiB):0       Free (GiB):10      Bricks:0       
Id:feb55e58d07421c422a088576b42e5ff   Name:/dev/vde            State:online    Size (GiB):500     Used (GiB):0       Free (GiB):10      Bricks:0   

创建一个Gluster卷,并确保Heketi和GlusterFS在工作。

# heketi-cli volume create --size=1
Name: vol_7e071706e1c22052e5121c29966c3803
Size: 1
Volume Id: 7e071706e1c22052e5121c29966c3803
Cluster Id: dda582cc3bd943421d57f4e78585a5a9
Mount: 10.10.1.168:vol_7e071706e1c22052e5121c29966c3803
Mount Options: backup-volfile-servers=10.10.1.179,10.10.1.64
Block: false
Free Size: 0
Reserved Size: 0
Block Hosting Restriction: (none)
Block Volumes: []
Durability Type: replicate
Distribute Count: 1
Replica Count: 3

# heketi-cli volume list
Id:7e071706e1c22052e5121c29966c3803    Cluster:dda582cc3bd943421d57f4e78585a5a9    Name:vol_7e071706e1c22052e5121c29966c3803

要查看拓扑,请执行以下操作:

heketi-cli topology info

gluster命令还可以用于检查集群中的服务器。

gluster pool list

要与Kubernetes集成,请检查以下内容:

如何使用Heketi和GlusterFS配置Kubernetes动态卷配置

GlusterFS和Heketi设置现在可以使用。以下指南介绍了如何使用Heketi和GlusterFS配置Kubernetes和OpenShift持久卷的动态配置。

请参阅:

  • GlusterFS文件
  • Heketi的文档

类似指南:

适用于Kubernetes和Docker容器的最佳存储解决方案

如何使用Minio设置与S3兼容的对象存储服务器

安装并使用Stratis来管理RHEL 8 / Fedora上的本地存储

Stratis存储管理备忘单

Sidebar