分布式存储CEPH和服务器结构简单介绍

分布式存储CEPH和服务器结构介绍

一、什么是块存储、文件存储和对象存储

块存储

我们可以将块存储理解为一个个硬盘存储信息,也可以是通过计算机将多块磁盘进行逻辑划分后,形成的逻辑磁盘。这种将数据信息直接存储在磁盘中的方式叫块存储。可以说大部分人都在用块存储,因为其最大的优点就是读写速度非常快。我们比较常用的块存储是:硬盘、磁盘阵列和逻辑磁盘等。

使用块存储由于其可以通过多个廉价的硬盘组合成大容量的空间和高安全性保证了数据的安全,很多企业和个人都在用块存储存储数据。但是其也有缺点不同的存储格式导致不同主机和操作系统之间无法共享文件数据。 在生产环境中集群之间数据沟通大多是用电口进行通信,san口会导致需要购买大量的光纤,是的成本增加。但是san架构在集群中传输数据封装和解封都非常快。

文件存储

为了解决在不同主机之间可以分享数据文件,人们就就想出了软硬件一体的存储系统----文件存储系统。人们在服务器上部署FTP或者NFS服务,只需要从相应的站点中“下载”文件即可,无须担心文件的存储格式是否一致。常用的文件存储有:FTP、NFS和samba。
文件存储大大增加了文件数据的可分享性,只需要上传到站点之中其他人就可以下载。无需san架构也大大降低了成本。但是同时也带来了数据的安全性的问题,由于以太网的限制带宽不够或链路拥挤传输速度太慢非常影响用户的使用体验。

对象存储

对象存储是通过部署多个节点,将数据存储在不同的节点之中的一种存储方式。可以说是一种介于块存储和文件存储之间的存储方式,其继承了块存储的读写速度快的优点也有文件存储共享的优点。可以说对象存储也是分布式存储。常见的对象存储有:CEPH、swift、AWSS3等。对象存储和分布式文件系统的区别在于:对象存储支持的访问接口基本都是restful接口、而分布式存储提供的POSIX兼容的文件操作接口;而且对象存储也支持横向扩展。

二、CEPH分布式存储

圣克鲁兹加利福尼亚大学的Sage Weil在2003年开发CEPH,CEPH是一个开源的项目,其可大规模扩展、高性能并且无单点故障的分布式存储系统。从一开始它就运行在通用的商用的硬件上,具有高度的可伸缩性,容量可扩展至EB级别,甚至更大。那么EB级别是什么概念呢,1TB=1024G;1PB=102TB;1EB=1024PB;如果还没有概念的话,你可以想象拥有三层每层有三个中小型机房中所有服务器的可存储的数据量,是不是很庞大呢。CEPH之所以会受到青睐主要得益于:其高扩展性,整个集群可以扩展容量、不存在单点故障,高可用确保了数据的安全性、完全的开源免费用于商业运作、组件之间可以自我管理并且兼容性非常好。

CEPH官网
https://ceph.io/

在这里插入图片描述

CEPH的优缺点

CEPH从诞生到至今已经发展了十几年,可以说CEPH打上了openstack的顺风车,许多厂商对CEPH喜爱有加,并且成为云计算三大组件之一的存储。

CEPH的优点

1.CRUSH算法,CRUSH在一致性哈希基础上很好的考虑了容灾域的隔离,能够实现各类负载的副本放置规则,例如跨机房、机架感知等。同时, CRUSH算法支持副本和EC两种数据冗余方式,还提供了四种不同类型的Bucket(Uniform, List, Tree, Straw),充分考虑了实际生产过程中硬件的迭代式部署方式,虽然实际生产中大多数情况下的都是只用了一种Straw。

2.统一存储架构
由于云计算的发展,RADOS出色而又简洁的接口,非常高效的支持分布式块存储RBD和分布式对象存储RADOS GateWay。由于RBD和RADOS GateWay的简单设计无需考虑,容灾备份、横向扩展、负载均衡等分布式架构的负载因素。所以受到社区的认可,并成为openstack的底层存储方式。

3.强大且丰富的功能
CEPH的功能,从分布式系统最基本的横向扩展、动态伸缩、冗余容灾、负载平衡等,到生产环境环境中非常实用的滚动升级、多存储池、延迟删除等几乎什么都能做。所以受到云计算等企业的青睐。但是也有CEPHfs虽然有快照、纠错码、跨存储池等功能,却因为一直收到忽视,无法用在生产环境中。

CEPH缺点

1.代码质量问题
CEPH底层大部分是用C/C++编写的,其中一些组建的代码动辄就是上千,上万行的代码。要想要理解其中的原理,就需要先理解其中代码的意思。且组件之间调用的代码也非常的复杂,相比现在的java等现在计算机语言,c/c++语言还是太晦涩难懂。

2.性能的瓶颈
CEPH为了支持本地事务,引入了日志的机制,在数据写入本地之前,需要先将操作记录在日志之中。在大容量数据需要存储的情况下非常影响I/O流的效率。并且I/O的过长,一般I/O需要经过多个组件才能到达相应的组件,其中还需要进行队列和线程的切换导致整体集群效率非常的底下。

3.cephFS一个被忽视的模块
CephFS作为最初Ceph的设计目标,Sage投入了巨大的精力,几乎实现了所有需要的特性,并且进行了大量工程层面的优化。然而在云计算中无任何作用,导致ceph社区无人问津,所以之后也无任何进展。

4。业务的连续性
Ceph中的RADOS采用强一致性设计,即Write-All-Read-One,这种模式的好处在于读取效率较高,而且工程难度较低,比较适合与读多写少的系统。
但是当集群非常非常大时,Write-All-Read-One对于硬件可靠性的要求几乎是无法满足的。想象一下有一个10PB的系统,按照每块硬盘最大4TB计算,就需要至少2500块磁盘。按照我们以往的运维经验,每周存在一块磁盘故障是完全正常的。这种场景下,如果数据分布足够分散,也就是说一块磁盘故障会影响很多IO,而这种情况每周发生一次。这对业务连续性的影响是已经是不可忽略的。

CEPH----完全去中心化存储架构

在这里插入图片描述
CEPH与中间控制节点架构(HDFS)不同,客户端是通过一个设备映射关系计算出来其写入数据的位置,这样客户端可以直接与存储节点通信,从而避免中心节点的性能瓶颈。
在Ceph存储系统架构中核心组件有Mon服务、OSD服务和MDS服务等。对于块存储类型只需要Mon服务、OSD服务和客户端的软件即可。其中Mon服务用于维护存储系统的硬件逻辑关系,主要是服务器和硬盘等在线信息。Mon服务通过集群的方式保证其服务的可用性。OSD服务用于实现对磁盘的管理,实现真正的数据读写,通常一个磁盘对应一个OSD服务。

客户端访问存储的大致流程是,客户端在启动后会首先从Mon服务拉取存储资源布局信息,然后根据该布局信息和写入数据的名称等信息计算出期望数据的位置(包含具体的物理服务器信息和磁盘信息),然后该位置信息直接通信,读取或者写入数据。

CEPH架构和名称解释

在这里插入图片描述
RADOS:代表了CEPH集群中的硬件和软件的集合。
RGW、RBD、CEPH FS代表了三种客户端:RGW代表了对象存储的网关,即对象存储接口。RBD代表了块存储的接口。CEPH FS代表了文件系统存储的接口。用户只有通过这三种接口才能将数据存储在RADOS中。
CEPH几种也包含了:CEPH客户端和CEPH节点。

CEPH集群组件

1.OSD:OSD对象存储进程,每块硬盘拥有一个osd进程,管理数据的副本、恢复和负载均衡等,并且向mon组件提供底层监控信息。
2.CEPH-mgr:用于收集ceph集群状态、运行指标,比如存储利用率、当前性能指标和系统负载。mgr组件实现高可用至少需要2个作为主备。
3.MDS:在存储时存储数据的元信息,用于文件系统存储。对象存储和块存储不需要此组件。
4.MON:负责监控集群中自身和其他组件的健康信息。并且负责集群的验证,即用户需要在mon组件上进行身份验证。为了确保组件的高可用需要至少开启3个mon组件。

CEPH的存储过程

CEPH集群在存储数据时,都是进行扁平化处理,Object作为集群最小的存储单位。
在这里插入图片描述
在这里插入图片描述
Object存入集群并不是随机写入的。在CEPH的客户端会将许多Object进行分组,每个组叫做Placement Group。而PGP决定了osd对应哪些组进行数据存储。而这些对应关系是通过CRUSH算法计算出来的。可能觉得有点抽象,比如说一群人想要买票,每个人可以比作一个Object,每个人听从工作人员指挥,进行分组排队,这个过程可以看做是PG。然后每组对应不同的窗口去买票,每个窗口就可以看做是osd进行业务的处理。
像大多数集群软件一样,ceph 也提供了缓存的概念。称之为 Cache Tier。在没有缓存池时,ceph client 直接指向存储池。在添加缓存池后,ceph client 指向缓存池,缓存池再指向存储池。

三、服务器结构简介

机柜

服务器一般放在机柜之中,服务器高度一般在:1U、2U、3U多个服务器放在一个机柜里。
在这里插入图片描述
在这里插入图片描述
服务器像抽屉一样可以从机柜里抽出。

服务器

在这里插入图片描述
在这里插入图片描述
上图中计算机网络连接口IPMI可以配置ip地址,运维人员可以更改笔记本上的IP地址的网段与服务器一致进而进行PXE装机、BIOS管理等操作。

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值