数据存储产业服务平台

SUSE林培峰:Ceph企业落地的最佳实践

软件定义存储业内的重要开源项目Ceph可以说是目前业内最流行,应用最广泛的开源软件定义存储。2020年4月16日,第三届软件定义存储线上峰会上,SUSE中国区技术总监林培峰发表了《Ceph企业落地的最佳实践》的主题演讲。并表示SUSE从2012年开始投入Ceph研发,并提供Ceph的企业发行版本。到目前,已经超过1k+的实际Ceph项目落地。

今天的内容有三部分,第一,我们来看看企业在选择ceph中遇到的问题。第二, 介绍一下企业如何设计ceph解决方案。最后,分享一下SUSE的实际经验法则。

Ceph落地面临哪些挑战?

近年来,IT技术日新月异,从2G到4G再到5G网络更迭速度也在加快。分布式存储亦然。不同用户的应用场景不同,存储需求也不同。

对于存储需求不一样,使用场景可能也不太一样,对于应用怎么样访问存储其实也有不太一样。说到Ceph,其实里面有很多概念,包括磁盘OSD,快存储RBD……你访问对象存储,访问文件,需要CephFS,所有这些概念对于用户来说,其实是一种挑战,他们很难在短时间内去了解这么多最新技术,以及一些最佳实践方案。

因此如果客户选择Ceph当他的企业存储,有两点是最重要的,必须要选择一个厂家,有价格优势,有自己的研发,服务又要好,通过我们的经验来说,我会去建议大家,对于特别是使用Ceph的这些企业,必须要选择一个能够提供基础架构的厂家。

为什么这样说?

首先Ceph当成一个分布式存储或者软件定义存储,其实它是一个积木式架构。就是企业用户自主可控余地很多,选择很多,从底层硬件可以选择任何的通用硬件,X86硬件,硬盘,网络,这些硬件服务器上需要搭超融合系统,然后需要部署Ceph软件,Ceph要根据客户的应用提供块存储、对象存储和文件存储,在这个积木式的架构上可以看出,Ceph其实跟超融合系统是紧密结合的,任何一块Ceph的软件都要跟超融合系统进行交互,这就是企业用户在选择Ceph的时候必须要选择能够提供基础架构厂家的原因。

解决方案设计六步曲

接下来是Ceph的方案设计。所谓方案设计包括两部分,一部分就是关键的体系架构,还有经过验证的实施方案。

这里面我们提供一个成功法则给大家,Ceph落地的成功法则有三步,客户必须要选择兼容性的硬件,兼容性的服务器,对于Ceph软件必须要选择一个企业的发行版本,最后就是一个部署指南,就是搭积木的方式,把这三部分结合在一起。

具体怎么样做呢?

整个方案设计分为六步,第一,你必须要确定这个分布式存储需要解决什么样的问题,就是你的应用场景是什么样,视频图像存储,还是用来给虚拟机存镜像用的,有的可能是用于容器公有云,有的大部分用于做备份,我们必须要确定你这个应用场景,然后才能确定具体的需求,需求包括很多,最重要的就是你的容量需求,性能需求,还有访问方式是用块访问还是对象还是文件,还有你需要副本数是多少,你需要的纠删,或者有没有一些特殊的要求,所以在这里面我们根据客户的具体需求和场景来进行整个方案的讨论。

 这个讨论是要根据需求落实你需要什么样的软硬件,提供什么样的一个接口,整个的测试怎么样,来确保方案设计满足企业的要求,这个设计还包括整个方案的实施,还有最后整个实施文档以及结果,都要记录下来。

整个Ceph的分布式存储就是一个DIY的过程,用户有很大的自主能力,选择的空间,所以他选择的硬件和选择的不一样,可能整个实施过程也不一样,整个的方案也不一样,所以整个方案设计会涉及到这四部分,就是硬件怎么选择,软件怎么选择,需要哪些人员去做,整个的实施计划是怎么样的,都明确下来。

要适应这些经验法则

在部署Ceph分布式存储过程中,我们首先企业必须要知道什么是最重要的,包括你的场景需要多高性能,使用的场景怎么样,是容器还是虚拟机,还是备份,是否需要地理冗余,也就是对象存储双活存储,这些场景是否需要依赖特定的功能,所谓特定的功能,刚才说了你是否需要重删的功能,你是否需要把数据备份同步到第三方存储上面,也有这样的一些特定的功能。

根据这些你会去定义解决方案是一个通用的解决方案还是定制的解决方案,其实每个厂家提供Ceph的解决方案都会有一些通用的解决方案,或者是针对某个场景的特定的解决方案。因为对于通用的解决方案,其实它常用的配置就足够了,但是如果一些特定的解决方案可能还需要进一步的调整,或者有一些部分的功能还需要二次开发,所以在这里面我们必须要明确存储什么是最重要的。

    明确了里面的使用场景什么最重要以后,还有另外一点,重要的事情要说三遍,必须要了解Ceph这个产品,它能提供什么,怎么样才能获得一个Ceph的分布式存储。

你买来一堆的服务器,硬件,还有网卡,在上面部署超融合系统,部署Ceph软件,根据应用的需求我们会提供块存储还是对象存储还是文件存储,这里面可以选择的空间很大,每一个东西用户都可以选择,所以会有一个选择的痛苦。

选择服务器,选择什么样的CPU,价格是不一样的,你可以选择最常用的英特尔CPU,或者是ARM CPU都可以,Ceph都支持。硬盘你可以选择普通的PCie硬盘,生命周期不一样,价格不一样,容量不一样,你也可以选择副本,技术也可以选择纠删码技术,也不太一样,得出来的性能也不一样,你是否需要Cache,有读和写cache,所以里面有很多需要用户选择的地方。

怎么办?这也有一些经验,对于硬盘来说,Ceph支持不同类型的硬盘,有普通的SATA硬盘、SAS硬盘,也有PCIE和SSD和NVMe的硬盘,其实有一点,企业去使用Ceph的时候必须要明确的,企业Ceph社区在一开始整个设计来说,它是用于吞吐量这种场景,不是用于高性能低延时的IOPS场景。就好像3副本,必须要把数据同时落盘以后才能返回给客户端,所以整个的访问路径其实是很长的,所以一开始的时候不适合使用在低延时高性能的存储里面,但是它特别适合用于对于吞吐量要求高,对于容量要求高这种存储里面。

当然对于未来得发展,现在Cache的技术也发展的越来越快,未来也可以用于性能要求很高的,就好像数据库这种场景。

    还有一点大家需要注意的,不要使用消费类别的硬盘,这个已经经过验证了,必须要使用企业级的硬盘。

对于硬盘来说有什么经验法则呢?这里面列出了各种硬盘的性能,可以看得出来SATA硬盘比SaaS硬盘,转数不一样,还有普通的SATA SSD和SAS SSD和NVME,它的性能不一样,价格也不一样,容量也不一样,其实客户在选择的时候,都选择价格最低,容量最大的,但是得到的性能其实也是不一样的。这个是我们经验值,就是对于3副本的Ceph集群,可以看出来一个普通的7200转的SATA硬盘,最多就能提供30兆的带宽,10K的SaaS硬盘最多能提供45兆的带宽,如果是SATA SSD可以提供120兆的带宽出来,所以必须要根据客户对性能的要求,去算多少的硬盘才能满足对吞吐量的要求。

第二可以选择网络,这有几个很重要的指标,Ceph对网络的要求很高,基本上在生产里面必须是万兆网卡起步,如果你底下的硬盘越多,对带宽要求越高,对网卡的要求也是很高的,我们的经验告诉你,最好最好就是用聚合绑定,如果是万兆网卡,如果是两个万兆网口绑在一起,基本可以提供快20GB的网络,VLANs也可以使用。很重要的就是我们要使用巨型祯,如果应用带宽要求高,建议使用,就是MTU=9000。

    网络的法则我们经常在客户那遇到的两个常见问题,就是上行链路带宽太窄,好像我们到收费站,每一个口都是10GB一样,但最后聚集在一个路口上,那就是拥堵了,其实也是一样的。我们每台服务器,因为分布式存储都是一台一台服务器,我们每台服务器可以对外提供10GB,但是上行链路必须要确保每个10GB加起来可以通出去,别上行链路提供也是10GB,其实你是无法去充分发挥每台服务器的带宽。

    第二个法则,Ceph存储里面至少分两类网络,一个是对外业务网络,一个集群网络,因为数据写到一个硬盘上,要同时去往外,在底下的集群网络同时到其他服务器同步数据,所以有个法则,对于3副本,集群网络必须是业务网络的带宽两倍,这一点很多厂家在选择Ceph里面犯错误。

 还有一个就是很重要的,服务器的选择,我们给出第一个很重要的经验,就是要确保你的超融合系统和软件必须要跟服务器有兼容性的认证,为什么这样说?其实我们去跟很多客户聊的时候,因为Ceph是开源的,有很多国内创业型厂家就是把Ceph拿下来,给打包一下,然后给用户,就提供一个版本了,他们是用开源的OS,其实都没有跟底下的厂家做验证,有一次我的客户说他用了开源的Ceph,用了OS,数据丢了,厂家说这是硬件的问题,硬件厂家说你的存储软件根本没有跟我的做兼容性验证,所以在这里面我们会建议客户选择的Ceph软件必须要跟下面的硬件有兼容性的认证。

服务器,除了选择品牌还可以选择CPU、RAID控制卡,内存和硬盘PCIe的规格和通道数,有很多这方面的选择,具体怎么选择?

CPU,目前Ceph支持三种类型的CPU,一个是因特尔的,一个是NVMe的,还有ARM的,这里列出了我们一些经验,如果你是一个普通的硬盘,CPU主屏需求要求多高,SATA硬盘或者SAS硬盘建议有2GHz的主屏,SSD我们建议2到4Ghz,NVMe是4到8 Ghz,这个是我们的经验值,考虑到Ceph去做正常的服务或者去做数据同步对CPU的要求。

如果用户需要使用Ceph文件访问,有一个MDS服务器,Metadata服务器,客户端打开文件越多,需要的内存越多,CPU我们推荐服务器必须三个或者更多给大家,还有一个就是Metadata因为有一个原数据,我们建议这个原数据pool在SSD或者NVMe,来加速它的访问索引。

网关,如果客户需要用到对象存储,必须要用到RGW对象网关,对象网关有很多的文件访问,建议使用更多的内存和CPU内核,一个网关服务器我们建议需要12个CPU的核80Ghz,普通的网关,包括Samba、ISCSI和NFS网关,我们建议4到6个CPU的核和16个内存就可以了。

刚才介绍了我们一些经验法则,最后根据这些经验你们的选择要得到一个实施的指南。

首先你所做得方案指南必须满足存储的需求,分为三部分,业务的需求,性能的需求,软件的需求。业务的需求就是数据保护最重要,很多人如果要说数据保护,就要确保RPO和RTO等于0,如果是对象网关可能有多站点,多个存储实时的进行镜像。

性能的要求包括容量、带宽、IOPS和延时,性能的要求对硬件的选择是很重要的,什么样的硬件对应什么样的性能,软件的要求就是要根据用例,根据你实际的应用,需要提供怎么样的协议出来,因为刚才说了Ceph块、对象、文件,你的应用不一样,需要构建的协议也不一样,数据保护也是一样的,Ceph可以提供副本的技术,副本的数据保护和纠删码的方式,这两种方式出来的性能或者出来的有效存储容量也是不一样的。

根据这个需求我们就可以去作出整个的方案设计出来,好像搭积木一样,包括设计文档、实施部署、测试、上线前的准备,还有测试,还有上线后的维保,维保的方式,出现问题我需要怎么预解决,或者一些场景问题的处理,把整个方案好象积木一样搭建起来。

SUSE可以提供一个很完整完善的经过验证的实施指南给大家。如果大家感兴趣可以访问,如果大家对Ceph需要了解,也可以自己找机器,不管是虚拟机还是物理机,可以按照我们整个视频教学整个去搭建Ceph,这里面有链接,我们给大家提供一个最佳的实践指南(https://www.suse.com/c/zh-hans/sesv6-setup/)。

(本文未经演讲者本人审阅)

未经允许不得转载:存储在线-存储专业媒体 » SUSE林培峰:Ceph企业落地的最佳实践