首页 » 网站推广 » glusterfsphp技巧_Ceph vs GlusterFS

glusterfsphp技巧_Ceph vs GlusterFS

访客 2024-11-18 0

扫一扫用手机浏览

文章目录 [+]

Ceph是一套高性能,易扩展的,无单点的分布式文件存储系统,基于Sage A. Weil的论文开拓,利用一系列API将数据以块(block)、文件(file)和工具(object)的形式展现。
Ceph存储系统的拓扑构造环绕着副本与信息分布,这使得该系统能够有效保障数据的完全性。
分布式开源存储办理方案 Ceph 是一个面向工具的存储系统,它利用二进制工具进行操作,从而肃清了经典数据载体的刚性块构造。
在物理上,Ceph 也利用硬盘驱动器,但它有自己的算法来调节二进制工具的管理,然后可以将其分布在多个做事器之间,然后重新组装。

特点

glusterfsphp技巧_Ceph vs GlusterFS

高性能:摒弃了传统的集中式存储元数据寻址的方案采取 CRUSH 算法数据分布均衡并行度高 ; 考虑了容灾域的隔离,能够实现各种负载的副本放置规则,例如跨机房、机架感知等 ; 能够支持上千个存储节点的规模,支持 TB 到 PB 级的数据 ;

glusterfsphp技巧_Ceph vs GlusterFS
(图片来自网络侵删)

高可用性:副本数量可以灵巧掌握 ; 支持故障域分隔,数据强同等性 ; 多种故障场景自动进行修复自愈 ; 没有单点故障,自动管理 ;

高可扩展性:去中央化 ; 扩展灵巧 ; 随着节点增加而线性增长 ;

特性丰富:支持三种存储接口:块存储、文件存储、工具存储 ; 支持自定义接口,支持多种措辞驱动 .

架构

Ceph观点先容

RADOS:RADOS全称Reliable Autonomic Distributed Object Store,是Ceph集群的精华,用户实现数据分配、Failover等集群操作。

Librados:Librados是Rados供应库,由于RADOS是协议很难直接访问,因此上层的RBD、RGW和CephFS都是通过librados访问的,目前供应PHP、Ruby、Java、Python、C和C++支持。

RBD:RBD全称RADOS block device,是Ceph对外供应的块设备做事,也便是块存储接口。

RGW:RGW全称RADOS gateway,是Ceph对外供应的工具存储做事,也便是工具存储接口,接口与S3和Swift兼容。

CephFS:CephFS全称Ceph File System,是Ceph对外供应的文件系统做事,也便是文件级存储接口

Object:Ceph最底层的存储单元是Object工具,每个Object包含元数据和原始数据。

PG:PG全称Placement Grouops,是一个逻辑的观点,一个PG包含多个OSD。
引入PG这一层实在是为了更好的分配数据和定位数据。

CRUSH:CRUSH是Ceph利用的数据分布算法,类似同等性哈希,让数据分配到预期的地方。

Ceph 根本组件

ceph 集群的根本组件。
个中包含 OSD、Manager、MDS、Monitor。

OSD(ceph-osd):object storage daemon,工具存储进程。
ceph 管理物理硬盘时,引入了OSD观点,每一块盘都会针对的运行一个OSD进程。
换句话说,ceph 集群通过管理 OSD 来管理物理硬盘。
OSD 一样平常功能为:存储数据、掩护数据副本、数据规复、数据再平衡以及对ceph monitor组件供应干系监控信息。
Manager(ceph-mgr):用于网络ceph集群状态、运行指标,比如存储利用率、当前性能指标和系统负载。
对外供应 ceph dashboard(ceph ui)和 resetful api。
Manager组件开启高可用时,至少2个。
MDS(ceph-mds):Metadata server,元数据做事。
为ceph 文件系统供应元数据做事(ceph 工具存储和块存储不须要MDS)。
为 posix 文件系统用户供应性能良好的根本命令(ls,find等)。
Monitor(ceph-mon):掩护集群的状态,包含monitor组件信息,manger 组件信息,osd组件信息,mds组件信息,crush 算法信息。
还卖力ceph集群的身份验证功能,client在连接ceph集群时通过此组件进行验证。
Monitor组件开启高可用时,至少3个。

Ceph clients 对外供应各种功能的组件。
个中包含:Block Device、Object Storage、Filesystem。

Block Device:块存储设备,RBD。
Object Storage: 工具存储,RGW。
对外可供应 swift 、s3 接口类型的restful api。
Filesystem:文件系统,CephFS。
供应一个兼容POSIX的文件系统。

ceph 存储过程

在工具存储中,统统都是扁平化的,并且存储的最小单元为工具(obj)

Ceph 在工具存储的根本上供应了更加高等的思想,当工具数量达到了百万级以上,原生的工具存储在索引工具时花费的性能非常大。
ceph 因此引入了 placement group (pg)的观点。
一个 pg 便是一组工具的凑集。
ceph 引入pgp,pgp 决定了 pg 和 osd 之间的映射关系,即相称于是pg存放的一种osd排列组合,举个例子:假设集群有3个osd,即osd1,osd2,osd3,副本数为2,如果pgp=1,那么pg存放的osd的组合就有一种,可能是[osd1,osd2],那么所有的pg主从副本都会存放到osd1和osd2上;如果pgp=2,那么其osd组合可能就两种,可能是[osd1,osd2]和[osd1,osd3],pg的主从副本会落在[osd1,osd2]或者[osd1,osd3]中。
一样平常将 pgp_num 设置成和 pg_num 一样大小。
ceph 基于CRUSH算法通过打算数据存储位置来确定如何存储和检索数据。
CRUSH使Ceph客户机能够直接与OSDs通信,而不是通过集中的做事器或代理。
通过算法确定的数据存储和检索方法,Ceph避免了单点故障、性能瓶颈和对其可伸缩性的物理限定

由于 ceph 集群面对许多的独立项目,因此 ceph 还引入了 ceph pool 的观点用于划分不同的项目。
pg 和 ceph pool 的差异:

pg 对付用户来说是透明的,只是底层的一种优化方案。
ceph pool 对付用户来说,就像 mysql 中的 database。

GlusterFS

先容

GlusterFS (Gluster File System) 是一个开源的分布式文件系统,紧张由 Z RESEARCH公司卖力开拓。
GlusterFS 是 Scale-Out 存储办理方案 Gluster 的核心,具有强大的横向扩展能力,通过扩展能够支持数PB存储容量和处理数千客户端。
GlusterFS 借助 TCP/IP 或 InfiniBand RDMA 网络将物理分布的存储资源聚拢在一起,利用单一全局命名空间来管理数据。
GlusterFS 基于可堆叠的用户空间设计,可为各种不同的数据负载供应精良的性能。
由存储做事器、客户端以及NFS/Samba 存储网关(可选,根据须要选择利用)组成,没有元数据做事器组件,这有助于提升全体系统的性能、可靠性和稳定性。

特点

无元数据节点:采取无中央对称式架构,没有专用的元数据做事器,也就不存在元数据做事器瓶颈。
元数据存在于文件的属性和扩展属性中。

规范的接口:GlusterFS做事器与POSIX兼容,利用支持文件扩展属性的磁盘文件系统(如ext4、XFS)来存储磁盘上的数据。
同时,可以通过业界标准的访问协议如NFS或SMB访问GlusterFS做事器。

扩展性和高性能:GlusterFS利用双重特性来供应几TB至数PB的高扩展存储办理方案。
Scale-Out架构许可通过大略地增加资源来提高存储容量和性能,磁盘、打算和I/O资源都可以独立增加,支持10GbE和InfiniBand等高速网络互联。
Gluster弹性哈希(Elastic Hash)解除了GlusterFS对元数据做事器的需求,肃清了单点故障和性能瓶颈,真正实现了并行化数据访问

高可用性:GlusterFS可以对文件进行自动复制,如镜像或多次复制,从而确保数据总是可以访问,乃至是在硬件故障的情形下也能正常访问

全局统一命名空间:全局统一命名空间将磁盘和内存资源聚拢成一个单一的虚拟存储池,对上层用户和运用屏蔽了底层的物理硬件

弹性哈希算法:GlusterFS采取弹性哈希算法在存储池中定位数据,而不是采取集中式或分布式元数据做事器索引

弹性卷管理:数据储存在逻辑卷中,逻辑卷可以从虚拟化的物理存储池进行独立逻辑划分而得到

架构

GlusterFS 观点先容

Brick:GlusterFS 中的存储单元,表示为trusted storage pool中输出的目录,供客户端挂载用。
可以通过云主机和目录名来识别,例如: SERVER:EXPORT

Client:挂载了GlusterFS卷的设备

GFID:GlusterFS 卷中的每个文件或目录都有一个唯一的128位的数据关联,其用于仿照inode

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

Node:一个拥有多少个 Brick 的设备

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

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

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

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

Volume:一组Bricks 的逻辑凑集.

GlusterFS架构先容

GlusterFS总体架构它紧张由存储做事器(BrickServer)、客户端以及NFS/Samba 存储网关组成。
不难创造,GlusterFS 架构中没有元数据做事器组件,这是其最大的设计点,这对付提升全体系统的性能、可靠性和稳定性都有着决定性的意义。
GlusterFS 支持TCP/IP 和InfiniBandRDMA 高速网络互联,客户端可通过原生Glusterfs 协议访问数据,其他没有运行GlusterFS客户真个终端可通过NFS/CIFS 标准协议通过存储网关访问数据。
GlusterFS采取堆栈式设计,该思想源自GNU/Hurd 微内核操作系统,具有很强的系统扩展能力,系统设计实现繁芜性降落很多,基本功能模块的堆栈式组合就可以实现强大的功能。

GlusterFS 集群模式卷

分布式卷(Distributed Volume):又称其为哈希卷,近似于RAID0,文件没有分片,文件根据hash算法写入各个节点的硬盘上,优点是容量大,缺陷是没数据冗余即可靠性无法保障

复制卷(Replicated Volume):复制卷设定复制的份数,决定集群的大小,常日与分布式卷或者条带卷组合利用,办理前两种存储卷的冗余毛病。
缺陷是磁盘利用率低。

分布式复制卷(Distributed Replicated Volume):分布式复制GlusterFS卷结合了分布式和复制Gluster卷的特点。

条带卷(Striped Volume):文件是分片均匀写在各个节点的硬盘上的,优点是分布式读写,性能整体较好。
缺陷是没冗余,分片随机读写可能会导致硬盘IOPS饱和。

分布式条带卷(Distributed Striped Volume):当单个文件的体型十分巨大,客户端数量更多时,条带卷已经无法知足需求,此时将分布式与条带化结合起来是一个比较好的选择。
其性能与做事器数量有关。

总结

由于 GlusterFS 和 Ceph 之间的技能差异,没有明显的赢家。
Ceph 基本上是用于非构造化数据的面向工具内存,而 GlusterFS 在块存储中利用文件系统树的层次构造。
GlusterFS 起源于一个高效的、基于文件的存储系统,该系统连续朝着更加面向工具的方向发展。
比较之下,Ceph从一开始就被开拓为二进制工具存储,而不是经典的文件系统,这可能导致较弱的标准文件系统操作。

GlusterFS 与 Ceph 共同点

纵向扩展和横向扩展:在云环境中,必须可以很随意马虎地向做事器添加更多存储空间以及扩展可用存储池。
Ceph 和 GlusterFS 都可以通过轻松将新存储设备集成到现有存储产品中来知足这一哀求。
高可用性:GlusterFS 和 Ceph 的复制是同时将数据写入不同的存储节点。
这样做的结果是,访问韶光增加,数据可用性也提高。
在 Ceph 中,默认情形下将数据复制到三个不同的节点,这确保备份始终可用。
商品化硬件:GlusterFS 和 Ceph 是在 Linux 操作系统之上开拓的。
因此,对硬件唯一的哀求是这些产品具有能够运行 Linux 的硬件。
任何商品化硬件都可以运行 Linux 操作系统,结果是利用这些技能的公司可以大大减少在硬件上的投资——如果他们这样做的话。
然而,实际上,许多公司正在投资专门用于运行 GlusterFS 或 Ceph 的硬件,由于更快的硬件可以更快地访问存储。
无中央化:在云环境中,永久不应该涌现中央点故障问题。
对付存储,这意味着不应该用一个中心肠位存储元数据。
GlusterFS 和 Ceph 实现了元数据访问去中央化的办理方案,从而降落了存储访问的可用性和冗余性。

GlusterFS 与 Ceph 的差异

GlusterFS 是来自 Linux 天下的文件系统,并且遵守所有 POSIX 标准。
只管你可以将 GlusterFS 轻松集成到面向 Linux 的环境中,但在 Windows 环境中集成 GlusterFS 很难。
Ceph是一种全新的存储方法,对应于Swift(OpenStack Object Storage(Swift)是OpenStack开源云打算项目的子项目之一)工具存储。
在工具存储中运用程序不会写入文件系统,而是利用存储中的直接API访问写入存储。
因此,运用程序能够绕过操作系统的功能和限定。
如果已经开拓了一个运用程序来写入Ceph存储,那么利用哪个操作系统无关紧要。
结果表明Ceph存储在Windows环境中像在Linux环境中一样随意马虎集成。
基于API的存储访问并不是运用程序可以访问Ceph的唯一办法。
为了最佳的集成,还有一个Ceph块设备,它可以在Linux环境中用作常规块设备,使你可以像访问常规Linux硬盘一样来利用Ceph。
Ceph还有CephFS,它是针对Linux环境编写的Ceph文件系统。
GlusterFS适宜大文件,对付小文件,无元数据做事设计办理了元数据的问题。
但GlusterFS并没有在I/O方面作优化,在存储做事器底层文件系统上仍旧是大量小文件,本地文件系统元数据访问是瓶颈,数据分布和并行性也无法充分发挥浸染。
因此,GlusterFS的小文件性能还存在很大优化空间
标签:

相关文章