强烈推荐!老板再也不用担心我的数据存储了-搭建GFS

Posted Friends of the wind

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了强烈推荐!老板再也不用担心我的数据存储了-搭建GFS相关的知识,希望对你有一定的参考价值。

理论

优点:

分布式卷具有更好的性能高扩展性以及可靠性,而且无元服务器(存放所有目录的结构,类似书的目录,方便找到所需数据在哪个节点),某种类型的分布式卷不但支持高扩展而且,具备副本功能,提高了可靠性。

类型:
分布式卷(distribute volume) 文件分布在不同服务器,不具备冗余性;更容易扩展卷的大小

条带卷 (stripe volume) 数据被分割成更小块分布到块服务器群中的不同条带区;分布减少了负载且更小的文件加速了存取的速度;没有数据冗余

复制卷 (replica volume) 卷中所有的服务器均保存一个完整的副本;卷的副本数量可由客户创建的时候决定;至少由两个块服务器或更多服务器;具备冗余性

分布式条带卷 (distribute stripe volume) 兼具分布式卷和条带卷的功能,主要用于大文件访问处理,创建一个分布式条带卷最少需要4台服务器

分布式复制卷 (distribute replica volume) 兼具分布式卷和复制卷的功能,主要用于需要冗余的情况

条带复制卷 (stripe replica volume) 兼具分布式卷和条带卷的功能,主要用于大文件访问处理

分布式条带复制卷 (distribute stripe replica volume) 兼具分布式卷和条带卷的功能,主要用于需要冗余的情况

案例:

拓扑图
在这里插入图片描述
设备列表
在这里插入图片描述

要求:搭建GFS为Apache服务,为其提供高可用性。

一、服务器端配置

1、 搭建环境
开启4台虚拟机,在所有节点执行以下操作
根据上述表添加磁盘,通过fdisk分区,mkfs格式化,创建相应的挂载目录,并将格式化的磁盘挂载到相应的目录中,也可修改/etc/fstab配置文件,使其永久生效。

推荐步骤:
1)配置IP地址(省略)
2)以虚拟机为例,设置里添加四块硬盘,使用ISO映象文件-选择glusterfs镜像文件。注意:开机添加的硬盘需要重启。
在这里插入图片描述

3)使用fdisk分区(以第一块为例,其余省略)
在这里插入图片描述
3)vim编辑脚本
[root@localhost ~]# vim install.sh

粘贴以下脚本命令:

#激活网卡
ifdown ens33;ifup ens33
systemctl stop firewalld
setenforce 0
sed -i '2a 192.168.8.134 node1'   /etc/hosts
sed -i '3a 192.168.8.136 node2'   /etc/hosts
sed -i '4a 192.168.8.139 node3'   /etc/hosts
sed -i '5a 192.168.8.141 node4'   /etc/hosts

#创建目录,格式化分区
mkdir -p  /b3 /c4 /d5  /e6
mkfs.xfs  /dev/sdb1
mkfs.xfs  /dev/sdc1
mkfs.xfs  /dev/sdd1
mkfs.xfs  /dev/sde1     //注意:node3和node4没这块设备,删掉这行命令

#配置yum仓库
cd /etc/yum.repos.d
rm -f *
cat >>z.repo<<OK
[z]
name=z
baseurl=file:///mnt
gpgcheck=0
OK

#安装软件,在所有的服务器上都要安装
#挂载光盘
mount /dev/cdrom /mnt/
echo "正在清除yum缓存...."
yum clean all &>/dev/null
yum -y install  glusterfs  glusterfs-server  glusterfs-fuse  glusterfs-rdma

#启动glusterfs(在所有节点上)
systemctl start glusterd
systemctl enable  glusterd &>/dev/null
echo " glusterfs启动成功!" 

执行,完成如下:
在这里插入图片描述

2、 添加node1—node4集群节点(在任意节点执行,以node1为例)
在这里插入图片描述

3、 查看群集状态(显示除了本身,还有三个节点)

[root@node1 ~]# gluster peer status
在这里插入图片描述

4、 创建卷

1)创建分布式卷 (没指定卷的类型,默认创建分布式卷)

[root@localhost ~]# gluster volume create dis-volume node1:/e6 node2:/e6 force

启用卷
[root@localhost ~]# gluster volume start dis-volume
在这里插入图片描述
2)创建条带卷

[root@localhost ~]# gluster volume info stripe-volume

未启用卷,查看卷的状态:
在这里插入图片描述
若使用命令启用卷,查看卷的状态:

[root@localhost ~]# gluster volume start stripe-volume

在这里插入图片描述
3)创建复制卷

[root@localhost ~]# gluster volume create rep-volume replica 2 node3:/d5 node4:/d5 force

启用复制卷:
[root@localhost ~]# gluster volume start rep-volume

4)创建分布式条带卷

[root@localhost ~]# gluster volume create dis-stripe stripe 2 node1:/b3 node2:/b3 node3:/b3 node4:/b3 force

启用分布式条带卷:
[root@localhost ~]# gluster volume start dis-stripe

5)创建分布式复制卷

[root@localhost ~]# gluster volume create dis-rep replica 2 node1:/c4 node2:/c4 node3:/c4 node4:/c4 force

启用分布式复制卷:
[root@localhost ~]# gluster volume start dis-rep

二、客户端配置(client:192.168.8.142)

1、安装Apache服务(省略)
编辑脚本,修改hosts文件,命令如下:

sed -i '3a 192.168.8.136 node2'   /etc/hosts
sed -i '4a 192.168.8.139 node3'   /etc/hosts
sed -i '5a 192.168.8.141 node4'   /etc/hosts

2、安装客户端软件

创建yum仓库,安装glusterfs

[root@node5 yum.repos.d]# yum -y install glusterfs glusterfs-fuse

3、测试复制卷

将其挂载到Apache的网页目录

[root@localhost ~]# mount -t glusterfs node1:rep-volume /var/www/html/

编辑网页首页内容:

[root@localhost ~]# vim /var/www/html/index.html
在这里插入图片描述
启动Apache服务

[root@localhost ~]# systemctl start httpd

验证:
复制卷特点之一:同一份文件保存一份或多份副本。
卷的类型如下图:
在这里插入图片描述
由图得知,复制卷分布在存储服务器,node3和node4的d5目录,若从两台节点服务器的目录,查到网站首页index.html文件,证明,卷创建成功!

在这里插入图片描述
故障模拟:若两台节点服务器的首页文件,在任意一台损失,另外复制卷的服务器仍可提供服务,实现了高可用性。

在管理员电脑,访问192.168.8.142能正常访问Apache服务

在这里插入图片描述
三、扩展知识(在客户端配置client:192.168.8.142)

测试gluster文件系统性能

1.创建挂载目录
[root@node5 ~]# mkdir -p /test/{dis,stripe,rep,dis_and_stripe,dis_and_rep}

2.挂载gluster文件系统

[root@node5 test]# mount -t glusterfs node1:dis-volume /test/dis
[root@node5 test]# mount -t glusterfs node1:stripe-volume /test/stripe
[root@node5 test]# mount -t glusterfs node1:rep-volume /test/rep
[root@node5 test]# mount -t glusterfs node1:dis-volume /test/dis_and_stripe
[root@node5 test]# mount -t glusterfs node1:dis-rep /test/dis_and_rep
[root@node5 test]#

3.永久挂载(重启系统)

[root@node5 test]# vim /etc/fstab //编辑配置文件

添加如下内容:
node1:dis-volume /test/dis glusterfs defaults,_netdev 0 0
node1:strip-volume /test/stripe glusterfs defaults,_netdev 0 0
node1:rep-volume /test/rep glusterfs defaults,_netdev 0 0
node1:dis-stripe /test/dis_and_stripe glusterfs defaults,_netdev 0 0
node1:dis-rep /test/dis_and_rep glusterfs defaults,_netdev 0 0

4.创建五个文件,大小43M

[root@node5 ~]# dd if=/dev/zero of=demo1.log bs=43M count=1
[root@node5 ~]# dd if=/dev/zero of=demo2.log bs=43M count=1
[root@node5 ~]# dd if=/dev/zero of=demo3.log bs=43M count=1
[root@node5 ~]# dd if=/dev/zero of=demo4.log bs=43M count=1
[root@node5 ~]# dd if=/dev/zero of=demo5.log bs=43M count=1

查看文件属性:
在这里插入图片描述
1)卷中写入文件

[root@node5 ~]#cp demo* /test/dis
[root@node5 ~]#cp demo* /test/stripe
[root@node5 ~]#cp demo* /test/rep
[root@node5 ~]#cp demo* /test/dis_and_stripe
[root@node5 ~]#cp demo* /test/dis_and_rep

2)查看文件分布

验证分布式卷:没分片,原始大小43M,文件分布在不同服务器
在这里插入图片描述
在这里插入图片描述
验证条带卷:大小被分片成22M
在这里插入图片描述
在这里插入图片描述
验证复制卷:没有分片,原始大小43M,卷中所有的服务器均保存一个完整的副本
在这里插入图片描述
在这里插入图片描述
验证分布式条带卷:大小被分片成22M,文件分布在不同服务器
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
验证分布式复制卷:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3)破坏性测试

挂起node2节点,在客户端测试文件是否可以正常使用。
以分布式卷为例,没分片,文件分布在不同服务器(node1、node2,一旦故障损失部分数据,不具备冗余性)
在这里插入图片描述


以上是关于强烈推荐!老板再也不用担心我的数据存储了-搭建GFS的主要内容,如果未能解决你的问题,请参考以下文章

建站小白从零搭建自己的网站-妈妈再也不用担心我的网站了

同步vscode配置和插件导入导出再也不用担心换电脑重新安装插件了!

推荐收藏:11招在手,各类表格需求——妈妈再也不用担心啦 !

Nginx一键配置方法, 再也不用担心我的Nginx配置了

老司机推荐:再也不用担心CC来袭

妈妈再也不用担心我的面试,一篇文章帮你解答