RH236介绍红帽GLUSTER存储

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,内容安全 1000次 1年
文件存储 NAS,50GB 3个月
简介: RH236介绍红帽GLUSTER存储

RH236介绍红帽GLUSTER存储

课程第一章对GlusterFS进行介绍。由于在云计算时代,涌现了像ceph的统一存储,GlusterFS已经被逐渐淘汰,虽然如此,但还是可以做为了解而进行学习,毕竟还是会有一些地方仍然使用着GlusterFS。

RHCA专栏地址:https://blog.csdn.net/qq_41765918/category_11532281.html

红帽的Gluster存储功能

关于红帽Gluster存储

Red Hat Gluster Storage(以前的Red Hat Storage Server)提供一个开放的、软件定义的存储解决方案,提供跨物理、虚拟和云计算资源的连续存储平台。基于Red Hat Enterprise Linux GlusterFS, Red Hat Gluster Storage将文件和实体存储与扩展架构结合在一起,旨在有效地存储和管理非结构化数据增长,在不影响规模或性能的情况下提供经济有效和高可用的存储。

关键特性

Red Hat Gluster存储基于GlusterFS 项目的工作,提供建立在商用硬件之上的企业级存储解决方案。红帽Gluster存储的一些更有趣功能概述如下:

Scale-up(纵向扩展) / Scale-out(横向扩展)

Red Hat Gluster存储池容量、冗余和可用性可以在任何时候增长,无需停机,只需向单个服务器添加更多存储空间,或向存储池添加服务器。

分散

与其他分布式存储系统不同,Red Hat Gluster存储不依赖中央元数据服务器来定位文件。相反,文件被算法地跨卷的不同成员放置,使它们易于检索,并消除单点故障或l/O瓶颈。当添加额外的存储服务器时,这会导致性能呈线性增长。

高可用性

可以通过跨多个服务器的同步镜像来实现数据的高可用性。地理应用程序可用于将数据异步镜像到远程数据中心,以实现灾难恢复目的。

任何应用程序重写

Red Hat Gluster存储为客户端提供了与posix兼容的文件系统,无需重写应用程序来使用存储。

硬件

Red Hat Gluster存储被设计用于运行在AMD64和Intel 64硬件上。这允许管理员使用相对便宜的组件构建企业级存储网络。

裸金属与云

Red Hat Gluster存储可以部署在裸机、私有云或公共云(如Amazon EC2)上。微软Azure和Gooale云平台。

Red Hat Gluster存储用例

Red Hat Gluster存储的灵活性、性能和可伸缩性使其非常适合各种不同的用例。本节将重点介绍其中一些用例,以展示使用Red Hat Gluster存储可以实现什么功能。

近线和归档存储

由于大多数公司都有不断扩展的存储需求,因此拥有一种容易扩展的存储解决方案至关重要,该解决方案可以被广泛的客户访问,而不需要专用的客户端软件。Red Hat Gluster存储可以轻松部署到广泛的环境中。

这类工作负载的主要特性包括:

l 可伸缩性

l 兼容性(POSIX兼容,广泛的客户端)

l 高可用性

l 有效的访问

高性能计算

高性能计算集群通常需要非常快速地访问大量数据。Red Hat Gluster存储为这种类型的工作负载提供了一种负担得起的解决方案。

这类工作负载的主要特性包括:

l 可伸缩性,最高可达数PB。

l 无瓶颈的高性能

l InfiniBand的支持

l 兼容性(POSIX兼容,广泛的客户端)

云内容

向互联网客户分发多媒体(和其他)内容的公司常常不得不处理数百兆字节(如果不是pb的话)的文件。使这些文件通过web前端可公开是一个很大的挑战。redhat Gluster存储可以帮助使这成为一个可管理的问题。

这类工作负载的主要特性包括:

l 可伸缩性

l 兼容性(POSIX兼容,广泛的客户端)

l 高可用性

l 统一的文件和对象访问使用Swift

红帽储存器的概念和术语

术语

与任何技术一样,Red Hat Gluster存储有自己的术语来描述概念和特性。

信任存储池(trusted storage pool)

为了让多个服务器在一个存储集群中一起工作,它们必须隐式地相互信任。当Red Hat Gluster存储服务器首次启动时,它属于一个受信任的存储池,只有它自己是一个成员。稍后可以添加其他服务器以形成更大的池。

节点(node)

参与受信任存储池或集群的服务器有时被称为节点。节点只能是单个可信存储池的成员。

砖(brick)

Red Hat Gluster存储允许将多个文件系统(称为块)组合到一个更大的文件系统(称为卷)中。一块砖只能是单个卷的一个成员。

元数据(metadata)

元数据是关于一个或多个其他数据片段的数据。元数据的例子包括文件名、最后修改时间、所有者、权限等等。

卷(volume)

卷是提供给客户机的文件系统。卷由存储数据的一个或多个块组成。哪个文件放到哪里取决于卷类型以及被存储文件的文件名。

弹性哈希算法

在查找卷上的文件时,池中的每个Red Hat Gluster存储服务器都具有查找任何数据块的智能,而无需查询索引或其他服务器。这是通过散列所请求数据的文件名来定位目标卷中所需的数据块来实现的。

红帽的Gluster存储硬件要求

物理

目前,只有经过红帽企业Linux认证使用的硬件子集被红帽Gluster 存储认证使用,尽管列表正在按要求进行更新。有关认证和兼容硬件的最新列表,请参阅兼容性页面中列出的参考文献如下:通常只支持2插槽(4核、6核或8核)机器。它们应该在硬件RAID6或RAID 1+0阵列中设置直接连接存储,每个阵列有12个驱动器,使用2或3 TB的驱动器。每个驱动器/RAID控制器应该是闪存或电池备份,以确保数据的完整性,以防停电。

RAM需求根据工作负载的类型而不同,但范围从归档工作负载的最小16 GiB到HPC工作负载的最小48 GiB不等。

对于网络,建议至少有两个10千兆以太网网卡,但也支持有两个千兆以太网网卡。

虚拟化

Virtual Red Hat Gluster Storage 3.1服务器支持Red Hat企业虚拟化3.5或以上。VMware vSphere 5.x, 6.x和ESXi 5.x,6.x也支持它们。虚拟机应该配置至少4个vcpu和至少16 GiB RAM。

公有云

Red Hat提供了一个AMI映像,用于在Amazon Elastic Cloud (EC2)上运行Red Hat Gluster存储。谷歌云平台和微软Azure也提供了完全支持的产品。

异常

当使用所支持的最小或最大配置时,或者当需要运行Red Hat通常不支持的设置时,可以请求架构审查。本节参考资料中列出的硬件兼容性文章链接了概述如何请求架构审查的文章。

架构审查是正常红帽支持协议的一部分,但是一些设置可能还需要使用红帽专业服务

参考文献

有关更多信息,请参见

Red Hat Gluster存储:兼容物理、虚拟服务器和客户端操作系统平台

https://access.redhat.com/articles/66206

总结

  • Red Hat Gluster存储的主要特性,包括可伸缩性、POSIX兼容性和商用硬件的使用。

  • Red Hat Gluster存储的各种用例,例如归档和近行存储、HPC和内容云。

  • 定义与Red Hat Gluster存储相关的各种术语,如brick、可信存储池和卷。

  • 描述Red Hat Gluster存储环境的硬件需求。


Ceph与Gluster之开源存储的对比(整理自网上各文章)

一、Ceph与Gluster的原理对比

Ceph和Gluster是Red Hat旗下的成熟的开源存储产品,Ceph与Gluster在原理上有着本质上的不同。但是两个都是非常灵活的存储系统,在云环境中表现也是非常出色。

1、Ceph

Ceph基于一个名为RADOS的对象存储系统,使用一系列API将数据以块(block)、文件(file)和对象(object)的形式展现。Ceph存储系统的拓扑结构围绕着副本与信息分布,这使得该系统能够有效保障数据的完整性。

2、Gluster

Gluster描述为Scale-out NAS和对象存储系统。它使用一个Hash算法来计算数据在存储池中的存放位置,这点跟Ceph很类似。在Gluster中,所有的存储服务器使用Hash算法完成对特定数据实体的定位。于是数据可以很容易的复制,并且没有中心元数据分布式存储无单点故障且不易造成访问瓶颈,这种单点在早期Hadoop上出现,对性能和可靠性造成较大影响。

二、Ceph文件系统架构

RADOS(Reliable, Autonomic、Distributed Object Store)是Ceph系统的基础,这一层本身就是一个完整的对象存储系统,包括Cehp的基础服务(MDS,OSD,Monitor),所有存储在Ceph系统中的用户数据事实上最终都是由这一层来存储的。而Ceph的高可靠、高可扩展、高性能、高自动化等等特性本质上也是由这一层所提供的。

RADOS在物理形态上由大量的存储设备节点组成,每个节点拥有自己的硬件资源(CPU、内存、硬盘、网络),并运行着操作系统和文件系统。基础库librados是对RADOS进行抽象和封装,并向上层提供不同API,以便直接基于RADOS进行原生对象或上层对象、块和文件应用开发。特别要注意的是,RADOS是一个对象存储系统,因此,基于librados实现的API也只是针对对象存储功能的。

RADOS所提供的原生librados API包括C和C++两种。Librados在部署上和基于其上开发的应用位于同一台机器。应用调用本机上的librados API,再由后者通过Socket与RADOS集群中的节点通信并完成各种操作。

这一层包括了RADOS GW(RADOS Gateway)、 RBD(Reliable Block Device)和Ceph FS(Ceph File System)三个高层存储应用接口,其作用是在librados库的基础上提供抽象层次更高、更便于应用或客户端使用的上层接口。

RADOS GW是一个提供与Amazon S3和Swift兼容的RESTful API的Gateway,以供相应的对象存储应用开发使用。RADOS GW提供的API抽象层次更高,但功能则不如librados强大。因此,开发者应针对自己的需求选择使用。

RBD则提供了一个标准的块设备接口,常用于在虚拟化的场景下为虚拟机创建Volume。如前所述,Red Hat已经将RBD驱动集成在KVM/QEMU中,以提高虚拟机访问性能。

CephFS是一个POSIX兼容的分布式文件系统。目前还处在开发状态,因而Ceph官网并不推荐将其用于生产环境中。

Ceph Client是基于Fuse层(User SpacE)和VFS文件系统开发,兼容Posix接口标准。在Ceph存储系统中,Ceph Metadata Daemon 提供了元数据服务器,而Ceph Object Storage Daemon 提供了数据和元数据的实际存储。

Ceph对DFS、Block和Object数据写入和读取,都需Client利用Crush算法(负责集群中的数据放置和检索的算法)完成存储位置计算和数据组装。

三、Gluster FS系统架构

Gluster FS由Brick Server、Client和NAS网关组成(用来访问存储服务,但是Client只支持Linux,其他系统需要NAS网关提供存储服务),三者可以部署到同一个物理服务器上。NAS网关通过启动GLFS Client提供存储服务。

每个文件通过一定策略分不到不同的Brick Server上,每个Brick Server通过运行不同进程处理数据请求,文件以原始格式以EXT、XFS和ZFS文件系统的保存在本地。

卷(Block)通过位于Client或NAS网关上的卷管理器来提供服务,由卷管理器管理集群中的多个Brick Server。存储节点(Brick Server)对外提供的服务目录称作Brick,一个Brick对应一个本地文件系统,Gluster FS以Brick为单位管理存储。

GlusterFS采用模块化、堆栈式的架构,可通过灵活的配置支持高度定制化的应用环境,比如大文件存储、海量小文件存储、云存储、多传输协议应用等。每个功能以模块形式实现,然后以积木方式进行简单的组合,即可实现复杂的功能。比如,Replicate模块可实现RAID1,Stripe模块可实现RAID0,通过两者的组合可实现RAID10和RAID01,同时获得高性能和高可靠性。

各个功能模块就是一个Xlator(translator),不同的xlator在初始化后形成树,每个xlator为这棵树中的节点动态加载,同一个xlaror可以同时在Client/Brick Server上加载。

四、GlusterFS和Ceph对比

1、GlusterFS和Ceph的简单对比

GlusterFS和Ceph是两个灵活的存储系统,有着相似的数据分布能力,在云环境中表现非常出色。在尝试了解GlusterFS与Ceph架构之后,我们来看看两者之间的简单对比。

https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9pYmQ4c3pUSXBoSGdUWE5pYWJER0t3bmdCdHJyRzFoTlBTYnlOOGdKaWJaaWJBVlJFUENWZjBKMHZraWJYQ1c5YmFEVG1uWURsVmVwS2RkMVlORmI1ek4yeVd3LzY0MA?x-oss-process=image/format,pnghttps://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9pYmQ4c3pUSXBoSGdUWE5pYWJER0t3bmdCdHJyRzFoTlBTaWFPVlYzRFJsM1FFOHNOZm5WVm9Pc1RRWlBzdmVpY2ZtTTEzbkswOFlhU1YxRENncVlFclc1TncvNjQw?x-oss-process=image/format,pnghttps://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9pYmQ4c3pUSXBoSGdUWE5pYWJER0t3bmdCdHJyRzFoTlBTUFJNYTNONXZnRmFBbVd2cHUwOEJ4bXVWQmlhVG9aNHIyZzRwakhDRFBCaG1nVFVwNkw4SWNkdy82NDA?x-oss-process=image/format,png

2、GlusterFS和Ceph的共同点

纵向扩展和横向扩展:在云环境中,必须可以很容易地向服务器添加更多存储空间以及扩展可用存储池。Ceph和GlusterFS都可以通过将新存储设备集成到现有存储产品中,满足扩充性能和容量的要求。

**高可用性:**GlusterFS和Ceph的复制是同时将数据写入不同的存储节点。这样做的结果是,访问时间增加,数据可用性也提高。在Ceph中,默认情况下将数据复制到三个不同的节点,以此确保备份始终可用性。

**商品化硬件:**GlusterFS和Ceph是在Linux操作系统之上开发的。因此,对硬件唯一的要求是这些产品具有能够运行Linux的硬件。任何商品化硬件都可以运行Linux操作系统,结果是使用这些技术的公司可以大大减少在硬件上的投资——如果他们这样做的话。然而,实际上,许多公司正在投资专门用于运行GlusterFS或Ceph的硬件,因为更快的硬件可以更快地访问存储。

**去中心化:**在云环境中,永远不应该有中心点故障。对于存储,这意味着不应该用一个中央位置存储元数据。GlusterFS和Ceph实现了元数据访问去中心化的解决方案,从而降低了存储访问的可用性和冗余性。

3、GlusterFS与Ceph的差异

l GlusterFS是来自Linux世界的文件系统,并且遵守所有Portable Operating System Interface标准。尽管你可以将GlusterFS轻松集成到面向Linux的环境中,但在Windows环境中集成GlusterFS很难。

l Ceph是一种全新的存储方法,对应于Swift对象存储。在对象存储中,应用程序不会写入文件系统,而是使用存储中的直接API访问写入存储。因此,应用程序能够绕过操作系统的功能和限制。如果已经开发了一个应用程序来写入Ceph存储,那么使用哪个操作系统无关紧要。结果表明Ceph存储在Windows环境中像在Linux环境中一样容易集成。

l 基于API的存储访问并不是应用程序可以访问Ceph的唯一方式。为了最佳的集成,还有一个Ceph块设备,它可以在Linux环境中用作常规块设备,使你可以像访问常规Linux硬盘一样来使用Ceph。Ceph还有CephFS,它是针对Linux环境编写的Ceph文件系统。

4、GlusterFS与Ceph的速度对比

在GlusterFS与Ceph的比赛中已经有过若干次测试,目的是证明这些存储产品中的某一种比另一种更快,然而迄今并没有明显的赢家。GlusterFS的存储算法更快,并且由于GlusterFS在节点块中使用更多的层次化组织方式,这在某些情况下可能实现更高的速度,特别是如果和未经优化的Ceph对比的话。但另一方面,Ceph也提供了丰富的定制灵活性,这足以让Ceph与GlusterFS同样快速,结果就是,两者的性能对比都不够令人信服,不足以证实自己能完全超越对方。

5、GlusterFS与Ceph的应用

Ceph访问存储的不同方法使其成为更流行的技术。更多的公司正在考虑Ceph技术而不是GlusterFS,而且GlusterFS仍然与Red Hat密切相关。例如,SUSE还没有GlusterFS的商业实施,而Ceph已经被开源社区广泛采用,市场上有各种不同的产品。

Ceph之所以能取得超出其他很多社区的效果,除了作为开源社区拥有广泛生态的因素,另一个重要的原因在于其技术本身——不仅跟OpenStack结合紧密,而且因其“软件定义”的设计理念推翻了分布式存储“一个存储只能解决一个问题”的观念,对比以往Swift、GlusterFS等单纯支持块、文件、或者对象存储的功能,Ceph以一套软件实现了多种存储接口,从而减少了使用者的学习成本和维护的复杂度。

凭借其高可靠、高性能、易扩容三大特性,Ceph无疑将在更多的领域得到更加广泛的应用。

在某种意义上来说,Ceph事实上已经比GlusterFS略胜一筹。

介绍(课外)

GlusterFS (Gluster File System) 是一个开源的分布式文件系统,主要由Z RESEARCH 公司负责开发。GlusterFS 是Scale-Out 存储解决方案Gluster 的核心,具有强大的横向扩展能力,通过扩展能够支持数PB存储容量和处理数千客户端。所谓横向扩展,也就是说多台存储设备,通过网络形成一个存储池,我们称为volume,当这个存储池的空间不够的时候,可以通过增加存储设备的方式,实现存储空间扩展。

客户端存储数据到volume,但最终,我们的数据是要存储到真实的server上的,所以,需要一个数据从volume到真实server的映射关系,在传统方法中,这个映射关系存储在metadata服务器上,但这种方式,metadata服务器会是整个集群的瓶颈,所以GlusterFS不使用metadata服务器,而是使用hash算法来实现,这保证了GlusterFS强大的横向扩展能力。

GlusterFS 借助TCP/IP 或InfiniBand RDMA 网络将物理分布的存储资源聚集在一起,使用单一全局命名空间来管理数据。GlusterFS 基于可堆叠的用户空间设计,可为各种不同的数据负载提供优异的性能。

GlusterFS 总体架构与组成部分如下图所示,它主要由存储服务器(Brick Server)、客户端以及NFS/Samba 存储网关组成。不难发现,GlusterFS 架构中没有元数据服务器组件,这是其最大的设计这点,对于提升整个系统的性能、可靠性和稳定性都有着决定性的意义。

⚫ GlusterFS 支持TCP/IP 和InfiniBand RDMA 高速网络互联。

⚫ 客户端可通过原生GlusterFS 协议访问数据,其他没有运行GlusterFS 客户端的终端可通过NFS/CIFS 标准协议通过存储网关访问数据(存储网关提供弹性卷管理和访问代理功能)。

⚫ 存储服务器主要提供基本的数据存储功能,客户端弥补了没有元数据服务器的问题,承担了更多的功能,包括数据卷管理、I/O 调度、文件定位、数据缓存等功能,利用FUSE(File system in User Space)模块将GlusterFS 挂载到本地文件系统之上,实现POSIX 兼容的方式来访问系统数据。

Glusterfs是一个开源的分布式文件系统,是Scale存储的核心,能够处理千数量级的客户端。是整合了许多存储块(server)通过Infiniband RDMA或者 Tcp/Ip方式互联的一个并行的网络文件系统。

特征:

  • 容量可以按比例的扩展,且性能却不会因此而降低。
  • 廉价且使用简单,完全抽象在已有的文件系统之上。
  • 扩展和容错设计的比较合理,复杂度较低
  • 适应性强,部署方便,对环境依赖低,使用,调试和维护便利

一般在企业中,采用的是分布式复制卷,因为有数据备份,数据相对安全。

网络要求全部千兆环境,gluster 服务器至少有 2 块网卡,1 块网卡绑定供 gluster 使用,剩余一块分配管理网络 IP,用于系统管理。如果有条件购买万兆交换机,服务器配置万兆网卡,存储性能会更好。网络方面如果安全性要求较高,可以多网卡绑定。

跨地区机房配置 Gluster,在中国网络格局下不适用。

  • 注意:GlusterFS将其动态生成的配置文件存储在/var/lib/glusterd中。如果在任何时候GlusterFS无法写入这些文件(例如,当后备文件系统已满),它至少会导致您的系统不稳定的行为; 或者更糟糕的是,让您的系统完全脱机。建议为/var/log等目录创建单独的分区,以确保不会发生这种情况。

GlusterFS在企业中应用场景

理论和实践分析,GlusterFS目前主要使用大文件存储场景,对于小文件尤其是海量小文件,存储效率和访问性能都表现不佳,海量小文件LOSF问题是工业界和学术界的人工难题,GlusterFS作为通用的分布式文件系统,并没有对小文件额外的优化措施,性能不好也是可以理解的。

Media

-文档、图片、音频、视频

*Shared storage

-云存储、虚拟化存储、HPC(高性能计算)

*Big data

-日志文件、RFID(射频识别)数据

官方手册:

https://docs.gluster.org/en/latest/

总结

虽然GlusterFS已经逐渐被淘汰了,但还是有些环境在使用。
但原理还是值得我们去学习与了解,毕竟原理还是在不少地方的运用上是共通的。

以上就是【金鱼哥】的分享。希望能对看到此文章的小伙伴有所帮助。

如果这篇【文章】有帮助到你,希望可以给【金鱼哥】点个赞👍,创作不易,相比官方的陈述,我更喜欢用【通俗易懂】的文笔去讲解每一个知识点,如果有对【运维技术】感兴趣,也欢迎关注❤️❤️❤️ 【金鱼哥】❤️❤️❤️,我将会给你带来巨大的【收获与惊喜】💕💕!

相关实践学习
基于ECS和NAS搭建个人网盘
本场景主要介绍如何基于ECS和NAS快速搭建个人网盘。
阿里云文件存储 NAS 使用教程
阿里云文件存储(Network Attached Storage,简称NAS)是面向阿里云ECS实例、HPC和Docker的文件存储服务,提供标准的文件访问协议,用户无需对现有应用做任何修改,即可使用具备无限容量及性能扩展、单一命名空间、多共享、高可靠和高可用等特性的分布式文件系统。 产品详情:https://www.aliyun.com/product/nas
目录
相关文章
|
存储 网络协议 Linux
CentOS 7.6 部署 GlusterFS 分布式存储系统
CentOS 7.6 部署 GlusterFS 分布式存储系统
488 0
|
存储 分布式计算 算法
Linux--GlusterFS分布式文件系统群集
Linux--GlusterFS分布式文件系统群集
91 0
|
存储 监控 网络安全
CentOS7.7.1908下部署Ceph分布式存储(上)
CentOS7.7.1908下部署Ceph分布式存储(上)
271 0
CentOS7.7.1908下部署Ceph分布式存储(上)
|
存储 数据安全/隐私保护
CentOS7.7.1908下部署Ceph分布式存储(下)
CentOS7.7.1908下部署Ceph分布式存储(下)
224 0
CentOS7.7.1908下部署Ceph分布式存储(下)
|
存储 运维 网络协议
RH236安装红帽GLUSTER存储
RH236安装红帽GLUSTER存储
301 0
RH236安装红帽GLUSTER存储