GFS分布式文件系统

前言

文件系统:用于存储和管理文件的相关系统。

GFS分布式文件系统_第1张图片

分布式存储优点:

  1. 增加存储容量
  2. 加快读写效率
  3. 保证文件高可用

GFS介绍

GFS:glusterFS 开源的分布式的文件系统

存储服务器,客户端,网络(用NFS/samba组成网关)

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

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

GFS自身的机制根据定制策略,把数据存储进去。

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

GFS的特点

  • 1.扩展性更强,性能也很出色
  • 2.高可用,可以自动对文件进行复制。多次复制,确保数据总是可以访问。哪怕硬件故障也能正常访问
  • 3.全局统一的命名空间。所有节点都在一个分支的管理之下。客户端访问分支节点即可。
  • 4.弹性卷(类似于lvm,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(后台管理进程)

GFS工作流程:

GFS分布式文件系统_第2张图片

GFS卷有哪些类型:

(1)分布式卷(Distribute volume) 


文件通过 HASH 算法分布到所有 Brick Server 上,这种卷是 GlusterFS 的默认卷;以文件为单位根据 HASH 算法散列到不同的 Brick,其实只是扩大了磁盘空间,如果有一块磁盘损坏,数据也将丢失,属于文件级的 RAID0, 不具有容错能力。
在该模式下,并没有对文件进行分块处理,文件直接存储在某个 Server 节点上。 由于直接使用本地文件系统进行文件存储,所以存取效率并没有提高,反而会因为网络通信的原因而有所降低。

 

GFS分布式文件系统_第3张图片

#示例原理:
File1 和 File2 存放在 Server1,而 File3 存放在 Server2,文件都是随机存储,一个文件(如 File1)要么在 Server1 上,要么在 Server2 上,不能分块同时存放在 Server1和 Server2 上。

#分布式卷具有如下特点:
文件分布在不同的服务器,不具备冗余性。
更容易和廉价地扩展卷的大小。
单点故障会造成数据丢失。
依赖底层的数据保护。

(2) 条带卷(Stripe volume)

类似 RAID0,文件被分成数据块并以轮询的方式分布到多个 Brick Server 上,文件存储以数据块为单位,支持大文件存储, 文件越大,读取效率越高,但是不具备冗余性。

#示例原理:
File 被分割为 6 段,1、3、5 放在 Server1,2、4、6 放在 Server2。

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

(3)复制卷(Replica volume)

 
 将文件同步到多个 Brick 上,使其具备多个文件副本,属于文件级 RAID 1,具有容错能力。因为数据分散在多个 Brick 中,所以读性能得到很大提升,但写性能下降。
复制卷具备冗余性,即使一个节点损坏,也不影响数据的正常使用。但因为要保存副本,所以磁盘利用率较低

 

GFS分布式文件系统_第4张图片

#示例原理:
File1 同时存在 Server1 和 Server2,File2 也是如此,相当于 Server2 中的文件是 Server1 中文件的副本。

#复制卷特点:
卷中所有的服务器均保存一个完整的副本。
卷的副本数量可由客户创建的时候决定,但复制数必须等于卷中 Brick 所包含的存储服务器数。
至少由两个块服务器或更多服务器。
具备冗余性

分布式复制卷

GFS分布式文件系统_第5张图片

分布式卷的特点:

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

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

复制卷:类似于raid1,文件会同步在多个brick server上,读性能很高,写性能会稍差。

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

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

实验部署

服务器 IP 磁盘 挂载点
node1 20.0.0.10

/dev/sdb1

/dev/sdc1

/dev/sdd1

/data/sdb1

/data/sdc1

/data/sdd1

node2 20.0.0.20

/dev/sdb1

/dev/sdc1

/dev/sdd1

/data/sdb1

/data/sdc1

/data/sdd1

node3 20.0.0.30

/dev/sdb1

/dev/sdc1

/dev/sdd1

/data/sdb1

/data/sdc1

/data/sdd1

node4 20.0.0.50

/dev/sdb1

/dev/sdc1

/dev/sdd1

/data/sdb1

/data/sdc1

/data/sdd1

客户机 20.0.0.110

环境准备

!!组件gluster必须得用epel源下载

添加磁盘,并且以下操作是同步与node1,node2,node3,node4

cd /opt
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

做映射(4台同步)

GFS分布式文件系统_第6张图片

安装组件

yum -y install centos-release-gluster

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

systemctl restart glusterd

GFS分布式文件系统_第7张图片

到此,环境搭建完成

分布式卷            

卷名 brick
fbsj node1:/data/sdb1 node2:/data/sdb1
cd /opt
gluster volume create fbsj node1:/data/sdb1 node2:/data/sdb1 force

gluster volume create:创建新卷  默认就是分布式卷
fbsj1:卷名  唯一不可重复,不可数字开头
node1:/data/sdb1 node2:/data/sdb1:不同的挂载点
force:强制创建

gluster volume start fbsj

gluster volume info fbsj
查看详细信息

客户端将分布式卷挂载

systemctl stop firewalld
setenforce 0
yum -y install glusterfs glusterfs-fuse

做映射
vim /etc/hosts
20.0.0.10 node1
20.0.0.20 node2
20.0.0.30 node3
20.0.0.50 node4


临时挂载
mkdir -p /test/fbsj
mount.glusters node1:fbsj1 /test/fbsj
df -h


永久挂载:
vim /etc/fstab
node1:fbsj1 /test/fbsj glusterfsf defaults,_netdev  0 0

GFS分布式文件系统_第8张图片

写入测试:

cd /test/fbsj/
ls
touch {1..5}.txt

GFS分布式文件系统_第9张图片

如何创建复制卷

卷名 brick
fzj node2:/data/sdc1 node3:/data/sdc1
gluster vOLume create fzj replica 2 node2:/data/sdc1   node3:/data/sdc1 force
replica 2:设置复制策略,
2:表示两两复制
该数字必须小于等于存储节点

gluster volume start fzj

GFS分布式文件系统_第10张图片

同样的,客户端进行对卷的挂载

mkdir -p /testfzj
ls
mount.glusterfs node1:/fzj /test/fzj

分布复制卷

卷名 brick
fbfz

node1/data/sdd1

node2 /data/sdd1

node3 /data/sdd1

node4 /data/sdd1

gluster volume create fbfz relica 2 node1:/data/sdd1  node2:/data/sdd1 node3:/data/sdd1 node4:/data/sdd1 force
gluster volume

客户端:
mkdir fbfz
mount.glusterfs node1:fbfz /test/fbfz

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

相关命令

#其他的维护命令:
1.查看GlusterFS卷
gluster volume list 
 
2.查看所有卷的信息
gluster volume info
 
3.查看所有卷的状态
gluster volume status
 
4.停止一个卷
gluster volume stop dis-stripe
 
5.删除一个卷,注意:删除卷时,需要先停止卷,且信任池中不能有主机处于宕机状态,否则删除不成功
gluster volume delete dis-stripe
 
6.设置卷的访问控制
#仅拒绝
gluster volume set dis-rep auth.deny 192.168.73.11
 
#仅允许
gluster volume set dis-rep auth.allow 192.168.73.*	  #设置192.168.80.0网段的所有IP地址都能访问dis-rep卷(分布式复制卷)

你可能感兴趣的:(服务器,数据库,运维)