Linux搭建Glusterfs集群

我们两清 提交于 2020-08-16 06:07:39

前言

Gluster是可伸缩(scalable)的分布式文件系统,它将来自多个服务器的磁盘存储资源聚合到单个全局名称空间中。这里研究glusterfs是调研用于内网k8s环境下的存储类(Storage Classes)。

术语

  • Brick:最基本的存储单元,表示为trusted storage pool中输出的目录,供客户端挂载用。
  • Volume:一个卷。在逻辑上由N个bricks组成。

在一个gluster集群中,在每台机器上划分出来的存储分区是一个Brick,gluster要创建volume才可以使用,一个volume存的文件就分布在Brick上。

Volume类型

1. Distributed Glusterfs Volume

如果未指定任何卷类型,则这是默认创建的卷类型。 在这里,文件分布在卷中的各个块之间。 因此,file1只能存储在brick1或brick2中,而不能存储在两者中。 因此,没有数据冗余。

2. Replicated Glusterfs Volume

数据的副本将保留在所有模块上,卷中的副本数可以由客户端在创建卷时决定, 这样的卷用于更好的可靠性和数据冗余。

3. Distributed Replicated Glusterfs Volume

文件分布在复制的Brick中。 块数必须是副本数的倍数。 同样,我们指定Brick的顺序也很重要,因为相邻的Brick成为彼此的复制品。

准备

使用VirtualBox创建2台centos虚拟机,虚拟机网络设置使用桥接网卡,使得物理机与2台虚拟机之间方便的网络互通。安装完成之后在物理机 ssh远程连接到两台虚拟服务器。假设服务器1的ip地址为“192.168.1.84”,服务器2的ip地址为“192.168.1.85”。

搭建集群

1.安装gluster

yum install centos-release-gluster
yum install glusterfs-server
systemctl enable glusterd  # 开机自启动
systemctl start glusterd     # 启动glusterd

2. 防火墙设置

firewall-cmd --state #查看防火墙状态
systemctl stop firewalld.service # 关闭防火墙
systemctl disable firewalld.service #禁止firewall开机启动

3.创建集群

将服务器加入集群对等网络:

gluster peer probe   192.168.1.84
gluster peer probe   192.168.1.85
gluster peer status  # 查看状态

将服务器移除集群对等网络:

sudo gluster peer detach  192.168.1.84
sudo gluster peer detach  192.168.1.85

4.创建Volume

这里要根据官方文档的方式来创建brick的话,需要理解linux磁盘管理的操作。官方操作步骤如下:

gluster的volume准备过程就是linux磁盘挂载,分区,格式化的过程,该过程要求挂载一个xfs类型的硬盘分区,执行分区及挂载操作需要先卸载硬盘,如果机器只有一个硬盘则无法在开机后完成这一操作。尝试是否可以直接使用某一目录,省略分区挂载过程,先后在阿里云ubuntu,本地虚拟机centos测试,可以直接使用目录作为volume,但是如果只有一个硬盘,按照默认的分区方式,centos-root 分区挂载到根目录下,属于“root分区”,gluster不建议在root分区存储,但是可以强制创建volume 。

在服务器使用mount命令,可以看到/dev/mapper/centos-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota),/dev/mapper/centos-root这个分区被挂载在根目录,类型是xfs。

这里测试环境使用目录作为volume,先在两台服务器根目录创建/export文件夹作为brick,创建一个replica类型的volume,写入其中一个服务器的文件,都会被复制到另外一个服务器,在任意一台服务器执行(force代表上面提到的强制在root分区):

gluster volume create gv0 replica 2  192.168.1.84:/export   192.168.1.85:/export   force

然后启动该Volume:

gluster volume start gv0

5.写入文件测试

将服务器的gv0卷挂载到物理机的mnt目录下:

sudo mount -t glusterfs 192.168.1.84:/gv0 /mnt

复制一个文件到/mut目录:

sudo cp '/home/songkaizong/桌面/gluster.md'  /mnt

并在两台服务器上都查看,可以看到都有我们上传的文件:

[root@localhost export]# ls
gluster.md

参考文档:官方文档

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!