分布式文件系统glusterfs(二)

1、GlusterFS简述
   分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源并不直接与本地节点相连,而是分布于计算网络中的一个或者多个节点的计算机上。目前意义上的分布式文件系统大多都是由多个节点计算机构成,结构上是典型的客户机/服务器模式。流行的模式是当客户机需要存储数据时,服务器指引其将数据分散的存储到多个存储节点上,以提供更快的速度,更大的容量及更好的冗余特性。GlusterFS系统是一个可扩展的网络文件系统,相比其他分布式文件系统,GlusterFS具有高扩展性、高可用性、高性能、可横向扩展等特点,并且其没有元数据服务器的设计,让整个服务没有单点故障的隐患。

术语:

Brick:GFS中的存储单元,通过是一个受信存储池中的服务器的一个导出目录。可以通过主机名和目录名来标识,如‘SERVER:EXPORT‘

Client:挂载了GFS卷的设备

Extended Attributes:xattr是一个文件系统的特性,其支持用户或程序关联文件/目录和元数据。

FUSE:Filesystem Userspace是一个可加载的内核模块,其支持非特权用户创建自己的文件系统而不需要修改内核代码。通过在用户空间运行文件系统的代码通过FUSE代码与内核进行桥接。

Geo-Replication

GFID:GFS卷中的每个文件或目录都有一个唯一的128位的数据相关联,其用于模拟inode

Namespace:每个Gluster卷都导出单个ns作为POSIX的挂载点

Node:一个拥有若干brick的设备

RDMA:远程直接内存访问,支持不通过双方的OS进行直接内存访问。

RRDNS:round robin DNS是一种通过DNS轮转返回不同的设备以进行负载均衡的方法

Self-heal:用于后台运行检测复本卷中文件和目录的不一致性并解决这些不一致。

Split-brain:脑裂

Translator:

Volfile:glusterfs进程的配置文件,通常位于/var/lib/glusterd/vols/volname

Volume:一组bricks的逻辑集合

a、无元数据设计

元数据是用来描述一个文件或给定区块在分布式文件系统中所在的位置,简而言之就是某个文件或某个区块存储的位置。传统分布式文件系统大都会设置元数据服务器或者功能相近的管理服务器,主要作用就是用来管理文件与数据区块之间的存储位置关系。相较其他分布式文件系统而言,GlusterFS并没有集中或者分布式的元数据的概念,取而代之的是弹性哈希算法。集群中的任何服务器和客户端都可以利用哈希算法、路径及文件名进行计算,就可以对数据进行定位,并执行读写访问操作。

这种设计带来的好处是极大的提高了扩展性,同时也提高了系统的性能和可靠性;另一显著的特点是如果给定确定的文件名,查找文件位置会非常快。但是如果要列出文件或者目录,性能会大幅下降,因为列出文件或者目录时,需要查询所在节点并对各节点中的信息进行聚合。此时有元数据服务的分布式文件系统的查询效率反而会提高许多。

b、服务器间的部署

在之前的版本中服务器间的关系是对等的,也就是说每个节点服务器都掌握了集群的配置信息,这样做的好处是每个节点度拥有节点的配置信息,高度自治,所有信息都可以在本地查询。每个节点的信息更新都会向其他节点通告,保证节点间信息的一致性。但如果集群规模较大,节点众多时,信息同步的效率就会下降,节点信息的非一致性概率就会大大提高。因此GlusterFS未来的版本有向集中式管理变化的趋势。

2、访问流程

Glusterfs基于内核的fuse模块,fuse模块除了创建fuse文件系统外,还提供了一个字符设备(/dev/fuse),通过这个字符设备,Glusterfs可以读取请求,并发送响应,并且可以发送notify消息。

下面是在Glusterfs下的一个读/写请求的完整流程:

过程说明:

蓝实线表示一个请求通过系统调用到VFS,然后经由Fuse封装为一个req并发送到等待队列,然后唤醒在该等待队列上阻塞的Glusterfs读进程,读取请求

绿虚线表示Glusterfsd进程读取请求后,处理请求的过程

红虚线表示Glusterfs处理完请求后,封装响应消息并将消息发送到/dev/fuse下,并唤醒相应的请求进程(请求进程在将请求发送后,一直阻塞,直到该请求收到响应并处理完成)。

请求进程被唤醒后,将Glusterfs封装的响应信息返回给用户。

为方便说明问题,下图是一个读请求走到Fuse的完整流程:

下面是上面这些步骤的说明:

①read系统调用,陷入到内核

②vfs通过fd及当前进程维护的打开的文件表找到fd对应的file,然后调用该file被赋值的read函数进行读操作

③因为该file是基于fuse文件系统创建的,因此调用fuse的read函数do_sync_read

④-1.最终调用do_generic_file_read基于读操作的偏移量及该文件的缓存树查找该对应的缓存页,该缓存页存在且是最新的,直接从该缓存中读数据给用户

④-2.如果该缓存页不存在,则申请一个页作为缓存。并调用readpage去读数据。fuse的readpage会封装一个请求到字符设备的等待队列中。收到glusterfs的响应后会将响应写到缓存中并返回

常用卷类型

分布(distributed)

复制(replicate)

条带(striped)

基本卷:

(1)  distribute volume:分布式卷

(2)  stripe volume:条带卷

(3)  replica volume:复制卷

复合卷:

(4)  distribute stripe volume:分布式条带卷

(5)  distribute replica volume:分布式复制卷

(6) stripe replica volume:条带复制卷

(7) distribute stripe replicavolume:分布式条带复制卷

3、实验环境及规划:

操作系统 IP地址 主机名 硬盘数量(3块) 角色
CentOS7.2 192.168.0.51 node01 sdb:10G sdc:10G sdd:10G 存储节点
CentOS7.2 192.168.0.52 node02 sdb:10G sdc:10G sdd:10G 存储节点
CentOS7.2 192.168.0.53 node03 sdb:10G sdc:10G sdd:10G 存储节点
CentOS7.2 192.168.0.54 node04 sdb:10G sdc:10G sdd:10G 存储节点
CentOS7.2 192.168.0.55 node05 sdb:10G sdc:10G sdd:10G 存储节点
CentOS7.2 192.168.0.56 node06 sdb:10G sdc:10G sdd:10G 存储节点
CentOS7.2 192.168.0.57 node07 sda:100G 客户端

3.1关闭防火墙:

systemctl stop firewalld
systemctl disable firewalld

3.2关闭selinux

sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

3.3同步时间

yum install chrony -y
systemctl enable chronyd.service
systemctl start chronyd.service

原文地址:https://www.cnblogs.com/kindnull/p/9211014.html

时间: 2024-08-01 20:16:33

分布式文件系统glusterfs(二)的相关文章

分布式文件系统glusterfs(一)

1.GlusterFS概述  GlusterFS是Scale-Out存储解决方案Gluster的核心,它是一个开源的分布式文件系统,具有强大的横向扩展能力,通过扩展能够支持数PB存储容量和处理数千客户端.GlusterFS借助TCP/IP或InfiniBand RDMA网络将物理分布的存储资源聚集在一起,使用单一全局命名空间来管理数据.GlusterFS基于可堆叠的用户空间设计,可为各种不同的数据负载提供优异的性能. 图1 GlusterFS统一的挂载点 GlusterFS支持运行在任何标准IP

分布式文件系统--------GlusterFS最佳实战

1. 背景 GlusterFS 是一个开源的分布式文件系统,具有强大的横向扩展能力,通过扩展能够支持数PB存储容量和处理数千客户端.GlusterFS借助TCP/IP或InfiniBand RDMA(一种支持多并发链接的"转换线缆"技术)网络将物理分布的存储资源聚集在一起,使用单一全局命名空间来管理数据.GlusterFS基于可堆叠的用户空间设计,可为各种不同的数据负载提供优异的性能. GlusterFS支持运行在任何标准IP网络上标准应用程序的标准客户端 2. 优势 * 线性横向扩展

分布式文件系统---GlusterFS介绍

GlusterFS概述 GlusterFS是Scale-Out存储解决方案Gluster的核心,它是一个开源的分布式文件系统,具有强大的横向扩展能力,通过扩展能够 支持数PB存储容量和处理数千客户端.GlusterFS借助TCP/IP或InfiniBand RDMA网络将物理分布的存储资源聚集在一起,使用单一全局命名空间来管理数据.GlusterFS基于可堆叠的用户空间设计,可为各种不同的数据负载提 供优异的性能. GlusterFS支持运行在任何标准IP网络上标准应用程序的标准客户端,如图2所

分布式文件系统GlusterFS

转自于:http://www.cnblogs.com/zitjubiz/archive/2012/11/30/Distributed_File_System_glusterFS.html GlusterFS是“一套可扩展的开源集群文件系统,并能够轻松为客户提供全局命名空间.分布式前端以及高达数百PB级别的扩展性.”这种说法口 气可不小,但GlusterFS也确实把解决大问题——真正的“大”问题当作己任.事实上,Gluster的最大容量为72 brontobyte(没错,这个词已经成为现实,相当于

分布式文件系统-glusterfs

1.1 分布式文件系统 1.1.1 什么是分布式文件系统 相对于本机端的文件系统而言,分布式文件系统(英语:Distributed file system, DFS),或是网络文件系统(英语:Network File System),是一种允许文件通过网络在多台主机上分享的文件系统,可让多机器上的多用户分享文件和存储空间. 在这样的文件系统中,客户端并非直接访问底层的数据存储区块,而是通过网络,以特定的通信协议和服务器沟通.借由通信协议的设计,可以让客户端和服务器端都能根据访问控制清单或是授权,

分布式文件系统---GlusterFS安装配置

一.环境规划 GlusterFS服务端:10.100.0.41/10.100.0.44GlusterFS客户端:10.100.0.43 二.所需软件包 glusterfs-server-3.4.2-1.el6.x86_64glusterfs-3.4.2-1.el6.x86_64 三.安装 3.1.服务端安装 #wget -P /etc/yum.repos.d http://download.gluster.org/pub/gluster/glusterfs/3.6/3.6.2/CentOS/gl

分布式文件系统glusterfs安装步骤

我的系统是 RHEL5 , 可能环境不一样, 需要安装的第三方依赖不一样啊, 反正大家在安装的过程中缺少什么就去安装什么, 一般都会有提示的. 下载   glusterfs-3.2.0.tar.gz  源码包. 随便解压到一个目录. glusterfs 需要 fuse 的支持, 在安装开始之前请先安装 fuse. fuse可以到http://fuse.sourceforge.net/进行下载 安装fuse的步骤如下: ./configure make make install glusterfs

CentOS7搭建FastDFS V5.11分布式文件系统(二)

1.CentOS7 FastDFS搭建 前面已下载好了要用到的工具集,下面就可以开始安装了: 如果安装过程中出现问题,可以下载我提供的,当前测试可以通过的工具包: 点这里点这里 1.1 安装libfastcommon 安装成功后解压libfastcommon-master.zip unzip libfastcommon-master.zip [[email protected] libfastcommon-1.0.36]# ll drwxr-xr-x. 2 root root 4096 4月 5

56.GlusterFS分布式文件系统

GlusterFS分布式文件系统 GlusterFS是一个开源的分布式文件系统,软件的结构设计良好,易于扩展和配置,通过各个模块的灵活搭配得到针对性的解决方案.可解决一下问题:网络存储,联合存储,冗余备份,大文件的负载均衡.可靠性也未经过长时间的考验,还不适合应用于提供24小时不间断服务的产品环境.目前适用于大数据量的离线应用. GlusterFS通过infiniband RDMA或者TCP/IP的方式将许多廉价的X86主机,通过网络互联成一个并行的网络文件系统. 注释: Brick:GFS中的