返回

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

发布时间:2022-11-21 19:13:27 302
# linux# 运维# 数据# 服务器# 信息

理论

优点:

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

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

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

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

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

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

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

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

决定一个文件每块分多大、多少块,放到哪些节点存储块,用弹性HASH算法。

工作流程:五步骤(可简单了解)

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

 

强烈推荐!老板再也不用担心我的数据存储了-搭建GFS_分布式_02

 

强烈推荐!老板再也不用担心我的数据存储了-搭建GFS_服务器_03

强烈推荐!老板再也不用担心我的数据存储了-搭建GFS_服务器_04

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

案例:

拓扑图

强烈推荐!老板再也不用担心我的数据存储了-搭建GFS_服务器_06

 

设备列表

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

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

一、服务器端配置

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

推荐步骤:

1)配置IP地址(以node1为例)

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

2)以虚拟机为例,设置里添加四块硬盘,使用ISO映象文件-选择glusterfs镜像文件。注意:开机添加的硬盘需要重启。

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

3)使用fdisk分区(以第一块为例,其余省略)

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

 

3)vim编辑脚本

[root@localhost ~]# vim install.sh

粘贴以下脚本命令:注意,配置node3和node4时,没/dev/sde1设备,删掉格式化分区命令mkfs.xfs /dev/sde1

#激活网卡
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

#配置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启动成功!"

执行,完成如下:

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

2、 添加node1—node4集群节点(在任意节点执行,以node1为例)

强烈推荐!老板再也不用担心我的数据存储了-搭建GFS_分布式_12

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

[root@node1 ~]# gluster peer status

强烈推荐!老板再也不用担心我的数据存储了-搭建GFS_分布式_13

4、 创建卷

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

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

启用卷

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

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

 

2)创建条带卷注意:加force选项,忽略警告强制操作,不加它,会出现下图报错

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

 

翻译:创建卷:条带卷:失败:节点1上的谋划失败。错误:正在根分区中创建块节点1:/d5。建议您不要将系统的根分区用于存储后端。或者如果您想覆盖此行为,请在命令末尾使用“force”。

节点2上的转移失败。错误:正在根分区中创建块节点2:/d5。建议您不要将系统的根分区用于存储后端。或者如果您想覆盖此行为,请在命令末尾使用“force”。gluster volume create stripe-volume node1:/d5 node2:/d5 force

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

 

翻译:卷创建:条带卷:成功:请启动卷来访问数据

未启用卷,查看卷的信息:

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

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

 

使用命令启用卷,再次查看卷的信息:

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

强烈推荐!老板再也不用担心我的数据存储了-搭建GFS_分布式_18

 

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 '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

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

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

 

启动Apache服务

[root@localhost ~]# systemctl start httpd

验证:

复制卷特点之一:同一份文件保存一份或多份副本。

卷的类型如下图:

强烈推荐!老板再也不用担心我的数据存储了-搭建GFS_分布式_20

 

由图得知,复制卷分布在存储服务器,node3和node4的d5目录,若从两台节点服务器的目录,查到网站首页index.html文件,证明,卷创建成功!

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

 

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

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

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

 

三、扩展知识(在客户端配置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

查看文件属性:

强烈推荐!老板再也不用担心我的数据存储了-搭建GFS_服务器_23

 

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,文件分布在不同服务器

强烈推荐!老板再也不用担心我的数据存储了-搭建GFS_分布式_24

 

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

 

验证条带卷:大小被分片成22M

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

 

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

 

验证复制卷:没有分片,原始大小43M,卷中所有的服务器均保存一个完整的副本

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

 

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

 

验证分布式条带卷:大小被分片成22M,文件分布在不同服务器

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

 

强烈推荐!老板再也不用担心我的数据存储了-搭建GFS_服务器_31

 

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

 

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

 

验证分布式复制卷:

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

 

强烈推荐!老板再也不用担心我的数据存储了-搭建GFS_服务器_35

 

强烈推荐!老板再也不用担心我的数据存储了-搭建GFS_服务器_36

 

强烈推荐!老板再也不用担心我的数据存储了-搭建GFS_分布式_37

 

3)破坏性测试挂起node2节点,在客户端测试文件是否可以正常使用。

以分布式卷为例,没分片,文件分布在不同服务器(node1、node2,一旦故障损失部分数据,不具备冗余性)

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

 

4)其他维护命令查看glusterfs集群卷的列表

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

 

查看卷的状态(显示所有卷的工作状态,内容过多,仅以dis-rep卷为例)

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

 

停止/删除卷(会提示,是/否,选择y,表示确定)

强烈推荐!老板再也不用担心我的数据存储了-搭建GFS_服务器_41

 

设置卷的访问

仅允许192.168.8.0和10.1.1.0网段访问

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


 

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线
下一篇
CSS篇十六——盒子模型之边框 2022-11-21 18:43:21