GlusterFS分布式文件系统~~(^-^)V
一、文件系统简介:
用于存储、管理磁盘文件(文件保存在磁盘里)。
1、文件系统的组成:
①文件系统接口—接口 ②对对象管理的软件集合—工具 ③对象及属性—对象信息
2、文件系统作用:
从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。 具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取。
3、文件系统的挂载使用:
除根文件系统以外的文件系统创建后要使用需要先挂载至挂载点后才可以被访问,挂载点即分区设备文件关联的某。个目录文件 类比:NFS~
二、分布式文件系统:
1、分布式文件系统的构成组件:
①存储服务器 ②客户端 ③NFS/Samba存储网关组成
其中,客户端的定位比较重要,因为他是无元数据服务器。 元数据服务器作用: 存储元数据,帮助用户定位文件位置、索引等信息。 有元数据服务器文件系统中,如果元数据损坏,会直接导致文件系统不可用—单点故障。 而GFS把元数据服务器舍弃了,使用的是数据挂载形式挂载到客户端,挂载的网关是NFS/Samba,实现ABC三台GFS服务器数据共享,即使服务器A宕机,也可以从服务器B/C拿取数据。
2、GlusterFS特点:
扩展性和高性能:分布式特点 高可用性:分布式特点 全局统一命名空间:共享资源(名称空间:隔离、独立的整体/环境,与其他名称空间是隔离独立的) 弹性卷管理:条带、复制、分布式、分布式条带、分布式复制;类似raid 基于标准协议
3、GlusterFS术语
Brick存储服务器:实际存储用户数据的服务器 Volume:本地文件系统的"分区” FUSE:用户 空间的文件系统(类比EXT4),“这是一个伪文件系统”;以本地文件系统为例,用户想要读写一个文件,会借助于EXT4文件系统,然后把数据写在磁盘上;而如果是远端的GFS,客户端的请求则应该交给FUSE(为文件系统),就可以实现跨界点存储在GFS上 VFS(虚拟端口) :内核态的虚拟文件系统,用户是先提交请求交给VFS然后VFS交给FUSE,再交给GFS客户端,最后由客户端交给远端的存储 Glusterd(服务):是允许在存储节点的进程
4、模块化堆栈式架构
模块化、堆栈式的架构 通过对模块的组合,实现复杂的功能
模块化: 类似linux 编译安装;很多功能都可以做定制的,通常都是通过软件开发的方式封装为模块,按需使用/不适用 GlusterFs也是这个思想:把功能封装为一个个模块,通过加载/调用/启用的方式就可以对应的功能 堆栈式架构设计 通过对模块不同功能的组合来实现复杂功能
5、GFS工作流程:
①写的过程: GFS客户端服务器 需求:将数据保存在GFS文件系统中(客户端在本地发出写请求): 交由VFS的API接受请求–>组合功能模块,将数据交给FUSE(内核伪文件系统) FUSE可以模拟操作系统,可以对文件系统进行转存,转存的设备位置为: /dev/fuse (用于传输的设备-虚拟设备文件) /dev/fuse 虚拟设备文件会将数据交给GFS客户端 GFS客户端client会根据配置文件对数据进行处理,然后再通过TCP/IB/rdma网络发送到GFS服务端
GFS服务端服务器: 接收到数据之后 会将数据保存在对应的存储节点上
②读取过程: 客户端在本地发出读请求: 交由VFS的API接受请求–>组合功能模块,将数据交给FUSE(内核伪文件系统) FUSE在/dev/fuse (用于传输的设备-虚拟设备文件)查询缓存,执行page函数读取(read)内存,若缓存有,则返回客户端 若没有缓存,GFS客户端会去GFS服务端获取数据,GFS服务端通过VFS接口去本地读取缓存 再把缓存存储在/dev/fuse,读取了缓存数据之后再通过VFS返回给客户端
③提高GFS的工作效率的架构模式: gige: 千兆网/千兆接口 TCP/IP :网络协议 InfiniBand:网络协议,与TCP/IP相比,TCP/IP具有转发丢失数据包的特性,基于此通讯协议可能导致通讯变慢,而IB使用基于信1、流控制的机制来确保连接完整性,数据包丢失几率小。 RDMA:负责数据传输,有一种数据传输协议,功能:为了解决传输中客户端与服务器端数据处理的延迟 POSIX:可移植操作系统接口,主要解决不同操作系统间的移植性然后再转换为逻辑存储(EXT4 +BRICK)
④各服务器详解 Application:客户端或应用程序通过GlusterFSync的挂载点访问数据 VFS:linux系统内核通过VFS的API 收到请求并处理 FUSE :VFS将数据递交给FUSE内核文件系统,fuse文件系统则是将数据通过/dev/fuse设备文件递交给了GlusterFS GlusterFS Client ;通过网络将数据传递至远端的GlusterFS Server, 并且写入到服务器存储设备上
6、卷的基本分类
为了解决分布式文件数据索引、定位的复杂程度,而使用了HASH算法来辅助 分布式(平均分配)的好处: 当数据量越来越大的时候,相对每个存储节点的数据量(几率)是相等的 而如果考虑到单点故障问题,当数据存储再c存储节点,对此GFS是会有备份机制的,默认3备份,所以GFS本身的机制会对数据产生冗余,以此解决单点故障 GlusterFS支持七种卷,即分布式卷、条带卷、复制卷、分布式条带卷、分布式复制卷、条带复制卷和分布式条带复制卷
①基本卷: (1) 分布式卷(默认)(distribute volume) 文件通过HASH算法分布到所有Brick Server上,这种卷是Glusterfs的基础;以文件为单位根据HASH算法散列到不同的Brick, 其实只是扩大了磁盘空间,如果有一块磁盘损坏,数据也将丢失,属于文件级的RAID 0, 不具有容错能力 比如:4个文件2个brick存储服务器3个文件放在第一个brick块中,第四个文件放在第二个brick块中 (2) 条带卷(stripe volume) 类似RAID 0,文件被分成数据块并以轮询的方式分布到多个BrickServer上,文件存储以数据块为单位,支持大文件存储,文件越大,读取效率越高 比如:100m的数据分成50m+50m分不到不同的服务器上,分布之后是以数据块为单位的 条带复制卷(Stripe Replica volume) :类似RAID 10, 同时具有条带卷和复制卷的特点 (3) 分布式条带复制卷(Distribute Stripe Replicavolume) 三种基本卷的复合卷,通常用于类Map Reduce应用,将文件同步到多个Brick上,使其具备多个文件副本, 属于文件级RAID 1,具有容错能力。因为数据分散在多个Brick中,所以读性能得到很大提升,但写性能下降 比如:100m 4个文件,2个brick服务器 100*4 文件均存在第一个和第二个brick
②复合卷: (4) 分布式条带卷(Distribute Stripe volume) Brick Server 数量是条带数(数据块分布的Brick数量)的倍数,兼具分布式卷和条带卷的特点 比如:503 放在第一个brick 501 放在第二个brick 503 放在第三个brick 501 放在第四个brick (5) 分布式复制卷(Distribute Replica volume) Brick Server 数量是镜像数(数据副本数量)的倍数,兼具分布式卷和复制卷的特点 比如:503 放在第一个brick 501 放在第二个brick 503 放在第三个brick 501 放在第四个brick (6) 条带复制卷(Stripe Replica volume) 类似RAID 10, 同时具有条带卷和复制卷的特点 (7) 分布式条带复制卷(Distribute Stripe Replicavolume) 三种基本卷的复合卷,通常用于类Map Reduce.应用
|