【无标题】

GFS 分布式文件系统:

GFS glusterfs 开源的分布式的文件系统。

存储服务器 客户端 网络(NFS/samba)网关。

传统式老的分布式元服务器,元服务器保存存储节点的目录数信息。

一旦元服务器故障,所有的存储节点全部失效。

现在GFS取消了元服务器机制,数据横向扩展能力更强。可靠性更强。存储效率也更高。

GFS的特点:

1,扩展性更高,性能更强

2,高可用,可用自动对文件进行复制。多次复制。确保数据总是可用访问。哪怕硬件故障也能正常访问

3,全局统一的命名空间。所有节点都在一个分支的管理之下。客户端访问分支节点即可。

4,弹性卷,类似LVM。不同硬盘上的不同分区,组成一个逻辑上的硬盘。

不同服务器上的不同的硬盘分区,组成一个卷。可用动态的扩容。

5,基于标准协议,GFS存储访问支持,NFS FTP HTTP以及自身GFS协议。应用程序可用直接使用数据,不需要任何修改。

GFS的组件和术语:

1,BRICK(存储块),存储服务器提供的用于物理存储的专用分区,GFS当中的基本存储单元。也是对外提供的存储目录。 服务器和目录的绝对路径组成

server:dir

192.168.233.10:/opt/gfs

node1:/opt/gfs

2,volume 逻辑卷 一个逻辑卷就是一组brick的集合。类似于lvm,我们管理GFS,就是管理这些卷。

3,FUSE:GFS的内核模块,允许用户创建自己的文件系统。

4,VFS:内核空间对用户提供的访问磁盘的接口。虚拟端口。

5,服务端在每一个存储节点上都要运行。glusterd(后台管理进程)

工作流程:

【无标题】_第1张图片

GFS的卷有那些类型:

分布式卷,也是GFS的默认卷类型

条带卷(没了)

复制卷(镜像化)

分布式复制卷(工作中使用)

分布式卷的特点:文件数据通过HASH算法分布到设置的所有BRICK SERVER上。GFS的默认卷。属于raid0,没有容错机制。

【无标题】_第2张图片

在分布式卷的模式下,没有对文件进行分块,自己存储在某个server节点上。存取效率也没有提高。直接使用本地2文件系统艰辛存储

复制卷:类似于raid 1,文件会同步在多个brickserver上。读性能上升了,写性能较差

复制卷具备冗余,坏一个节点不影响数据,但是要保存副本,磁盘利用率50%

分布式复制卷:两两复制,文件会在组内同步。不同的组之间数据未必同步。

【无标题】_第3张图片

实验

环境:

systemctl stop firewalld

setenforce 0

四台服务器

node1 磁盘:/dev/sdb1 挂载点 /data/sdb1

                        /dev/sdc2           /data/sdb2

                        /dev/sdd3           /data/sdb3

node2 磁盘:/dev/sdb1 挂载点 /data/sdb1

                /dev/sdc2         /data/sdb2

                /dev/sdd3         /data/sdb3

node3 磁盘:/dev/sdb1 挂载点 /data/sdb1

               /dev/sdc2         /data/sdb2

                /dev/sdd3         /data/sdb3

node4 磁盘:/dev/sdb1 挂载点 /data/sdb1

                /dev/sdc2         /data/sdb2

                /dev/sdd3         /data/sdb3

客户端

自动磁盘分区的一个脚本,可以自动挂载

vim fdisk.sh

#!/bin/bash

NEWDEV=ls /dev/sd* | grep -o 'sd[b-z]' | uniq

for VAR in $NEWDEV

do

echo -e "n\np\n\n\n\nw\n" | fdisk /dev/$VAR &> /dev/null

mkfs.xfs /dev/${VAR}"1" &> /dev/null

mkdir -p /data/${VAR}"1" &> /dev/null

echo "/dev/${VAR}"1" /data/${VAR}"1" xfs defaults 0 0" >> /etc/fstab

done

mount -a &> /dev/null

刷新端口:

alias scan='echo "- - -" > /sys/class/scsi_host/host0/scan;echo "- - -" > /sys/class/scsi_host/host1/scan;echo "- - -" > /sys/class/scsi_host/host2/scan'

通过脚本创建磁盘分区并挂载。

【无标题】_第4张图片

修改主机名:

hostnamectl set-hostname node1 2 3 4

做主机映射:

vim /etc/hosts

【无标题】_第5张图片

安装官网源

yum -y install centos-release-gluster

cd /etc/yum.repos.d/

mkdir repo.bak

mv * repo.bak/

cd repo.bak/

mv CentOS-Gluster-9.repo /etc/yum.repos.d/

cd ..

yum clean all && yum makecache

yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma

yum -y install glusterfs glusterfs-fuse

systemctl start glusterd.service

systemctl enable glusterd.service

systemctl status glusterd.service

添加节点到存储信任池中

gluster peer probe node1

gluster peer probe node2

gluster peer probe node3

gluster peer probe node4

在每个Node节点上查看群集状态

gluster peer status

分布式卷

在node1上创建

gluster volume create fbs node1:/data/sdb1 node2:/data/sdb1 force

gluster volume create: 创建新卷 默认就是分布式

fenbushi:卷名,唯一不可重复

node1:/data/sdb1 node2:/data/sdb1 挂载点

force:强制创建

#启动新建分布式卷

gluster volume start fbs

#查看创建分布式卷信息

gluster volume info fbs

开一台客户端

安装客户端组件

yum -y install glusterfs glusterfs-fuse

存储服务节点做映射

在跟目录中创建一个test目录

和文件系统做一个挂载:

mkdir -p /test/fenbushi

mount.glusterfs node1:fbs /test/fenbushi/

写入测试:

【无标题】_第6张图片

作业,停止节点,关闭服务之后,不删除现有卷的情况下,能否继续恢复正常读写功能。如果不能如何恢复。

复制卷:

gluster volume create fzj replica 2 node2:/data/sdc1 node3:/data/sdc1 force

gluster volume start fzj

gluster volume info fzj

reolica 2

设置复制策略,2是两两复制

要注意存储节点,不能比存储节点多,否则创建失败

写入测试:

mkdir -p /test/fuzhi

mount.glusterfs node1:fzj /test/fuzhi/

分布式复制卷

gluster volume create fbsfzj replica 2 node1:/data/sdd1 node2:/data/sdd1 node3:/data/sdd1 node4:/data/sdd1 force

gluster volume start fbsfzj

gluster volume info fbsfzj

分布式复制卷是最常用的分布式存储方式。根据策略。存储文件时还是分布式的存储方式,分开存储,但是会艰辛复制,所有也拥有冗余的功能,但是磁盘利用率只有50%

写入测试:

mkdir -p /test/fbfuzhi

mount.glusterfs node1:fbsfzj /test/fbfuzhi/

故障恢复;分布式复制卷

如何查看所有卷的状态

gluster volume status

删除卷:

如果是运行状态要先停在删。

gluster

【无标题】_第7张图片

停止卷

gluster volume stop fbs

不停止不能删除

gluster volume delete fbs

客户端查看节点状态

节点不能删除的,直接挂起就可以了

对卷进行访问控制

安装

禁止某些主机来访问指定卷

指向网段:

通过挂载的方式执行。

总结:

GFS分布式存储系统:

1,分布式卷

2,分布式复制卷(重点)

工作性质:和raid做分区(本机的磁盘冗余)。

GFS是把多个不同服务器上的不同硬盘组合起来,形成一个卷(基于网络的虚拟磁盘),实现的是文件系统冗余

你可能感兴趣的:(云计算,运维)