CentOS7上安装GlusterFS存储

  • CentOS7上安装GlusterFS存储已关闭评论
  • 117 views
  • A+
所属分类:存储应用

GlusterFS是一个免费的开源文件和对象存储解决方案,可以通过网络跨物理,虚拟和云服务器使用。GlusterFS的主要优点是我们可以在不停机的情况下将存储扩展或扩展到多个PB,还可以提供存储的冗余和高可用性。

哪里使用GluserFS ......?

基于GllusterFS的存储可以通过网络用于物理,虚拟和云服务器。

它也可以用于他们曾经向互联网用户提供多媒体或其他内容的公司,并且必须处理数百TB的文件。

GlusterFS还可以用作私有云和公共云中的对象存储。

GlusterFS存储中使用的不同术语:

  • 可信存储池:它是一组多个服务器,彼此信任并形成存储集群。
  • 节点:节点是参与可信存储池的存储服务器
  • :砖块是基于LVM的XFS(512字节inode)文件系统,安装在文件夹或目录中。
  • :卷是通过网络向客户端呈现或共享的文件系统。可以使用glusterfs,nfs和smbs方法安装卷。
可以使用GlusterFS配置的不同类型的卷:
  • 分发卷:它是在创建卷时未指定选项时创建的默认卷。在这种类型的卷文件中将使用弹性散列算法分布在整个砖块中
  • 复制卷:顾名思义,这种类型的卷文件将在砖块中复制或镜像,换句话说,用一块砖写的文件也将被复制到另一块砖块中。
  • stripe卷:在这种类型的卷中,较大的文件被剪切或拆分成块,然后分布在块中。
  • 分发复制卷:正如名称在卷文件类型中建议的那样,首先将在块中分配,然后将其复制到不同的块中。

虽然可以尝试其他组合来形成不同的卷,如条带复制。

在本文中,我将演示如何在RHEL 7.x和CentOS 7.x上设置GlusterFS存储。在我的情况下,我采用四个RHEL 7 / CentOS 7服务器,安装最少,并假设附加磁盘连接到这些服务器以进行glustesfs设置。

  • server1.example.com(192.168.43.10)
  • server2.example.co m(192.168.43.20)
  • server3.example.com(192.168.43.30)
  • server4.example.com(192.168.43.40)

如果您有自己的DNS服务器,请在/ etc / hosts文件中添加以下行。

192.168.43.10  server1.example.com server1
192.168.43.20  server2.example.com server2
192.168.43.30  server3.example.com server3
192.168.43.40  server4.example.com server4

在所有服务器上安装Glusterfs服务器软件包。

Glusterfs软件包不包含在默认的centos和RHEL存储库中,因此我们将设置gluster repo和EPEL repo。在所有4台服务器上依次运行以下命令。

~]# yum install wget
~]# yum install centos-release-gluster -y
~]#yum install epel-release -y
~]# yum install glusterfs-server -y

在所有四台服务器上启动并启用GlusterFS服务。

~]# systemctl start glusterd
~]# systemctl enable glusterd

允许防火墙中的端口,以便服务器可以通信并形成存储群集(可信池)。在所有4台服务器上运行under命令。

~]# firewall-cmd --zone=public --add-port=24007-24008/tcp --permanent
~]# firewall-cmd --zone=public --add-port=24009/tcp --permanent
~]# firewall-cmd --zone=public --add-service=nfs --add-service=samba --add-service=samba-client --permanent
~]# firewall-cmd --zone=public --add-port=111/tcp --add-port=139/tcp --add-port=445/tcp --add-port=965/tcp --add-port=2049/tcp --add-port=38465-38469/tcp --add-port=631/tcp --add-port=111/udp --add-port=963/udp --add-port=49152-49251/tcp --permanent
~]# firewall-cmd --reload

分配卷设置:

我将形成由服务器1和服务器2组成的可信存储池,并将在其上创建砖块,之后将创建分布式卷。我还假设为两台服务器分配了16 GB(/ dev / sdb)的原始磁盘。

从服务器1控制台运行以下命令以与服务器2形成可信存储池。

[root@server1 ~]# gluster peer probe server2.example.com
peer probe: success.
[root@server1 ~]#

我们可以使用以下命令检查对等状态:

[root@server1 ~]# gluster peer status
Number of Peers: 1

Hostname: server2.example.com
Uuid: 9ef0eff2-3d96-4b30-8cf7-708c15b9c9d0
State: Peer in Cluster (Connected)
[root@server1 ~]#

在服务器1上创建块

要首先创建brick,我们必须在原始磁盘(/ dev / sdb)上设置thing provision逻辑卷 。

在服务器1上运行以下命令

[root@server1 ~]# pvcreate /dev/sdb /dev/vg_bricks/dist_brick1 /bricks/dist_brick1 xfs rw,noatime,inode64,nouuid 1 2
[root@server1 ~]# vgcreate vg_bricks /dev/sdb
[root@server1 ~]# lvcreate -L 14G -T vg_bricks/brickpool1

在上面的命令中,brickpool1是精简池的名称。

现在创建一个3 GB的创建逻辑卷

[root@server1 ~]# lvcreate -V 3G -T vg_bricks/brickpool1 -n dist_brick1

现在使用xfs文件系统格式化逻辑卷

[root@server1 ~]# mkfs.xfs -i size=512 /dev/vg_bricks/dist_brick1
[root@server1 ~]# mkdir -p /bricks/dist_brick1

使用mount命令挂载块

[root@server1 ~]# mount /dev/vg_bricks/dist_brick1 /bricks/dist_brick1/

要永久安装它,请在/ etc / fsatb中添加以下行

/dev/vg_bricks/dist_brick1 /bricks/dist_brick1 xfs rw,noatime,inode64,nouuid 1 2

在挂载点下创建一个带有brick的目录

[root@server1 ~]# mkdir /bricks/dist_brick1/brick

同样,在服务器2上执行以下命令集

[root@server2 ~]# pvcreate /dev/sdb ; vgcreate vg_bricks /dev/sdb
[root@server2 ~]# lvcreate -L 14G -T vg_bricks/brickpool2
[root@server2 ~]# lvcreate -V 3G -T vg_bricks/brickpool2 -n dist_brick2
[root@server2 ~]# mkfs.xfs -i size=512 /dev/vg_bricks/dist_brick2
[root@server2 ~]# mkdir -p /bricks/dist_brick2
[root@server2 ~]# mount /dev/vg_bricks/dist_brick2 /bricks/dist_brick2/
[root@server2 ~]# mkdir /bricks/dist_brick2/brick

使用以下gluster命令创建分布式卷:

[root@server1 ~]# gluster volume create distvol server1.example.com:/bricks/dist_brick1/brick server2.example.com:/bricks/dist_brick2/brick
[root@server1 ~]# gluster volume start distvol
volume start: distvol: success
[root@server1 ~]#

使用以下命令验证卷状态:

[root@server1 ~]# gluster volume info distvol

CentOS7上安装GlusterFS存储

在客户端上安装分配卷:

在首先使用glusterfs安装卷之前,我们必须确保客户端上安装了glusterfs-fuse软件包。还要确保在/ etc / hosts文件中添加gluster存储服务器条目,以防您没有本地DNS服务器。

登录到客户端并从控制台运行以下命令以安装glusterfs-fuse

[root@glusterfs-client ~]# yum install glusterfs-fuse -y

为分发卷创建一个挂载:

[root@glusterfs-client ~]# mkdir /mnt/distvol

现在使用下面的mount命令挂载' distvol ':

[root@glusterfs-client ~]# mount -t glusterfs -o acl server1.example.com:/distvol /mnt/distvol/

对于永久挂载,请在/ etc / fstab文件中添加以下条目

server1.example.com:/distvol   /mnt/distvol    glusterfs     _netdev    0 0

运行df命令以验证卷的安装状态。

CentOS7上安装GlusterFS存储

现在开始访问音量“ distvol ”

复制卷设置:

对于复制卷设置,我将使用服务器3和服务器4,我假设glusterfs的额外磁盘(/ dev / sdb)已经分配给服务器。请参阅以下步骤:

在可信存储池中添加服务器3和服务器4

[root@server1 ~]# gluster peer probe server3.example.com
peer probe: success.
[root@server1 ~]# gluster peer probe server4.example.com
peer probe: success.
[root@server1 ~]#

在服务器3上创建并安装块。一个接一个地运行下面的命令。

[root@server3 ~]# pvcreate /dev/sdb ; vgcreate vg_bricks /dev/sdb
[root@server3 ~]# lvcreate -L 14G -T vg_bricks/brickpool3
[root@server3 ~]# lvcreate -V 3G -T vg_bricks/brickpool3 -n shadow_brick1
[root@server3 ~]# mkfs.xfs -i size=512 /dev/vg_bricks/shadow_brick1
[root@server3 ~]# mkdir -p /bricks/shadow_brick1
[root@server3 ~]# mount /dev/vg_bricks/shadow_brick1 /bricks/shadow_brick1/
[root@server3 ~]# mkdir /bricks/shadow_brick1/brick

在/ etc / fstab文件中执行以下条目以进行块永久安装:

/dev/vg_bricks/shadow_brick1  /bricks/shadow_brick1/  xfs  rw,noatime,inode64,nouuid 1 2

同样,在服务器4上执行相同的步骤来创建和安装砖:

[root@server4 ~]# pvcreate /dev/sdb ; vgcreate vg_bricks /dev/sdb
[root@server4 ~]# lvcreate -L 14G -T vg_bricks/brickpool4
[root@server4 ~]# lvcreate -V 3G -T vg_bricks/brickpool4 -n shadow_brick2
[root@server4 ~]# mkfs.xfs -i size=512 /dev/vg_bricks/shadow_brick2
[root@server4 ~]# mkdir -p /bricks/shadow_brick2
[root@server4 ~]# mount /dev/vg_bricks/shadow_brick2 /bricks/shadow_brick2/
[root@server4 ~]# mkdir /bricks/shadow_brick2/brick

对于砖的永久性安装,请进行fstab入口。

使用以下gluster命令创建复制卷

[root@server3 ~]# gluster volume create shadowvol replica 2 server3.example.com:/bricks/shadow_brick1/brick server4.example.com:/bricks/shadow_brick2/brick
volume create: shadowvol: success: please start the volume to access data
[root@server3 ~]# gluster volume start shadowvol
volume start: shadowvol: success
[root@server3 ~]#

使用以下gluster命令验证卷信息:

[root@server3 ~]# gluster volume info shadowvol

CentOS7上安装GlusterFS存储

如果要通过nfs 访问此卷“ shadowvol ”,请设置以下内容:

[root@server3 ~]# gluster volume set shadowvol nfs.disable off

通过nfs在客户端上安装Replicate卷

在安装之前先创建一个安装点。

[root@glusterfs-client ~]# mkdir /mnt/shadowvol

注意:gluster存储的一个限制是GlusterFS服务器仅支持NFS协议的第3版。

在存储服务器(服务器3和服务器4)上的“ /etc/nfsmount.conf ” 文件中添加以下条目

Defaultvers = 3

完成上述条目后,重新启动两个服务器。使用下面的mount命令到卷“ shadowvol ”

[root@glusterfs-client ~]# mount -t nfs -o vers=3 server4.example.com:/shadowvol /mnt/shadowvol/

对于永久挂载,请在/ etc / fstab文件中添加以下条目

server4.example.com:/shadowvol  /mnt/shadowvol/  nfs vers=3  0 0

验证卷的大小和安装状态:

[ root @glusterfs-client ~] #df -Th

CentOS7上安装GlusterFS存储

分发 - 复制卷设置:

对于设置Distribute-Replicate卷,我将使用每个服务器中的一个块并构成卷。我将从相应服务器上的现有精简池创建逻辑卷。

使用under命令在所有4台服务器上创建一块砖

Server 1

[root@server1 ~]# lvcreate -V 3G -T vg_bricks/brickpool1 -n prod_brick1
[root@server1 ~]# mkfs.xfs -i size=512 /dev/vg_bricks/prod_brick1
[root@server1 ~]# mkdir -p /bricks/prod_brick1
[root@server1 ~]# mount /dev/vg_bricks/prod_brick1 /bricks/prod_brick1/
[root@server1 ~]# mkdir /bricks/prod_brick1/brick

Server 2

[root@server2 ~]# lvcreate -V 3G -T vg_bricks/brickpool2 -n prod_brick2
[root@server2 ~]# mkfs.xfs -i size=512 /dev/vg_bricks/prod_brick2
[root@server2 ~]# mkdir -p /bricks/prod_brick2
[root@server2 ~]# mount /dev/vg_bricks/prod_brick2 /bricks/prod_brick2/
[root@server2 ~]# mkdir /bricks/prod_brick2/brick

 Server 3

[root@server3 ~]# lvcreate -V 3G -T vg_bricks/brickpool3 -n prod_brick3
[root@server3 ~]# mkfs.xfs -i size=512 /dev/vg_bricks/prod_brick3
[root@server3 ~]# mkdir -p /bricks/prod_brick3
[root@server3 ~]# mount /dev/vg_bricks/prod_brick3 /bricks/prod_brick3/
[root@server3 ~]# mkdir /bricks/prod_brick3/brick

 Server 4

[root@server4 ~]# lvcreate -V 3G -T vg_bricks/brickpool4 -n prod_brick4
[root@server4 ~]# mkfs.xfs -i size=512 /dev/vg_bricks/prod_brick4
[root@server4 ~]# mkdir -p /bricks/prod_brick4
[root@server4 ~]# mount /dev/vg_bricks/prod_brick4 /bricks/prod_brick4/
[root@server4 ~]# mkdir /bricks/prod_brick4/brick

现在使用以下gluster命令创建名为“ dist-rep-vol ” 的卷

[root@server1 ~]# gluster volume create dist-rep-vol replica 2 server1.example.com:/bricks/prod_brick1/brick server2.example.com:/bricks/prod_brick2/brick server3.example.com:/bricks/prod_brick3/brick server4.example.com:/bricks/prod_brick4/brick force
[root@server1 ~]# gluster volume start dist-rep-vol

使用以下命令验证卷信息:

[root@server1 ~]# gluster volume info dist-rep-vol

CentOS7上安装GlusterFS存储

在这个卷中,第一个文件将分布在任意两个砖块上,然后文件将被复制到剩余的两个砖块中。

现在通过gluster将此卷挂载到客户端计算机上

让我们首先为这个卷创建挂载点:

[root@glusterfs-client ~]# mkdir  /mnt/dist-rep-vol
[root@glusterfs-client ~]# mount.glusterfs server1.example.com:/dist-rep-vol /mnt/dist-rep-vol/

在fstab中添加以下条目以永久输入

server1.example.com:/dist-rep-vol /mnt/dist-rep-vol/  glusterfs   _netdev 0 0

使用df命令验证大小和volume :

CentOS7上安装GlusterFS存储

That’s it. Hope you have enjoyed the gluster storage configuration steps.

  • 安卓客户端下载
  • 微信扫一扫
  • weinxin
  • 微信公众号
  • 微信公众号扫一扫
  • weinxin
avatar