Hardware Recommendations【硬件推荐】

硬件推荐(内容提要)

 

1.CPU  
2.RAM
3.Data Storage(数据存储)
     3.1 Hard Disk Drives(硬盘驱动器)
     3.2 Solid State Drives(固态硬盘)
     3.3 Controllers(控制器)
     3.4 Additional Considerations(其余注意事项)
4.Networks(网络)
5.Failure Domains(故障域)
6.Minimum Hardware Recommendations(最低硬件建议)
7.Production Cluster Example(生产集群示例)前端

硬件推荐
后端

        Ceph的目的是要在标准硬件上运行,这使得PB级数据集群的建设和维护从经济上来讲是可行的。规划集群硬件时,须要平衡多方面的因素,包括故障域和潜在的性能问题。硬件规划应包括分布在许多主机上使用的Ceph的Ceph守护进程和其余进程。通常来讲,咱们建议某一特定类型,这种类型的守护进程配置为一台机器上只运行一种类型的守护进程。咱们建议利用你的数据集群的进程时使用其余的主机(如OpenStack里面的CloudStack,等等)。安全

        建议:也须要检查ceph日志。 相似于Ceph Write Throughput 1, Ceph Write Throughput 2, Argonaut v. Bobtail Performance Preview, Bobtail Performance - I/O Scheduler Comparison的文章和其余的文章是一个很好的信息来源。
服务器

1.CPU 
网络

        Ceph的元数据服务器动态地从新分配他们的负荷,这是CPU密集型。所以你的元数据服务器应该有足够的处理能力(如4核或更强悍)。的处理器Ceph的OSDs运行着RADOS服务、用CRUSH计算数据存放位置、复制数据、维护它本身的集群运行图副本。所以OSDs应该有必定的处理能力(如双核处理器)。监视器只是简单地维护着集群主副本,所以它们不是CPU密集型。除了运行Ceph的守护进程,你还必须考虑主机是否运行CPU密集型进程。例如,若是你的主机将运行用于计算的虚拟机(如OpenStack Nova),你将要确保其余的进程为Ceph进程留下了足够的处理能力,咱们建议在不一样的主机上运行额外的CPU密集型进程。ide

2.RAM 
工具

    元数据服务器和监视器必须可以快速的提供他们的数据,所以他们应该有足够的内存(例如,以每一个守护进程为例须要1GB内存)。OSDs进行常规操做不须要太多的内存(例如,以每一个守护进程为例须要500MB内存);然而,在恢复过程期间很明显的它们须要更多的内存(例如,一个守护进程每存储1TB数据须要~1GB内存)。通常来讲,更大的内存更好。性能

3.数据存储 
测试

       谨慎规划你的数据存储配置。有显着的成本和性能折衷的考虑时能够规划数据存储。同步操做系统的操做,同时要求多个守护进程对单个驱动器的读取和写入操做会在很大程度上下降计算机性能。也要考虑文件系统限制:BTRFS对于生产是不太稳定的,但它有日志的功能,并同时写入数据,而XFS和ext4则没有。spa

        重要提示:   当Ceph的全部数据写入到日志,才能够发送一个ACK(至少XFS和EXT4),所以日志和OSDs平衡的表现真的很重要!

3.1硬盘驱动器

         OSDs对象数据应该有足够的硬盘容量。咱们推荐的最小的硬盘驱动器大小为1TB。考虑到较大的硬盘每GB的成本优点,咱们建议硬盘驱动器的价格除以吉字节数获得每GB的成本,由于较大的磁盘驱动器在每GB的花费上能够具备显着的影响。例如,1TB的硬盘售价为$75.00 ,其成本为每GB0.07美圆(即$ 75/1024 = 0.0732)。相比之下;3TB的硬盘售价为$150.00,其成本为每GB0.05美圆(即$ 150/3072 = 0.0488)。在上述的例子中,使用1TB的磁盘,通常每GB的成本增长40%,构建集群远低于成本效益。此外,存储驱动器的容量更大,则你将须要更多的内存提供给每一个OSD守护进程,尤为是在平衡、回填、恢复期间。通常经验法则是~1GB 内存,1TB的存储空间。

        提示:在单个磁盘的分区上运行多个OSD不是一个好主意。

        提示:在单个磁盘的分区上运行一个OSD和一个监视器或元数据服务不是一个好主意。

        存储驱动器受寻道时间,访问时间,读取和写入时间,以及总吞吐量的限制。这些物理限制会影响整个系统的性能,尤为是在恢复过程当中。咱们建议为操做系统和软件使用专用的驱动器,而且为你在主机上运行每一个OSD守护分配一个驱动器。大多数“慢OSD”的问题的产生是因为在一个操做系统同一驱动器上运行多个OSDs和/或多个日志。因为解决性能问题的一小部分的成本可能超过额外的磁盘驱动器的成本,所以你能够加快你的的集群设计规划,为了不OSD存储驱动器负荷太重。

        您可能在每一个硬盘驱动器上同时运行多个Ceph的OSD守护程序,可是这可能会致使资源争用,并下降总体吞吐量。你可能把日志和对象数据存储在相同的驱动器上,但这样可能会增长所花费在记录写入操做和发送ACK给客户端的时间。在CEPH能够ACK对于写入操做前,Ceph必须把操做写入到日志。BTRFS文件系统的日志数据和对象数据的同时能够写,而XFS和ext4的不能。

        Ceph的最佳作法决定,你应该分开在单独的驱动器上运行操做系统,OSD数据和OSD日志。

3.2固态硬盘

         性能改进的机会之一是使用固态硬盘(SSD),以减小随机访问时间,读取等待时间,同时吞吐量加速。固态硬盘每GB的费用与硬盘驱动器相比每每超过10倍之多,但固态硬盘每每表现至少比硬盘驱动器快100倍的访问时间。

固态硬盘没有移动机械部件,因此他们不须要受同类型硬盘驱动器的限制。尽管固态硬盘有明显的局限性。重要的是考虑其连续读取和写入的性能。当存储多个OSDs的多个日志时,有400MB/s的顺序写入吞吐量的SSD的性能可能比120MB/s的顺序写入吞吐量的SSD更好。

       重要提示:咱们建议探索利用固态硬盘来提高性能。然而,在做出重大投资固态硬盘以前,咱们强烈建议审查一个SSD的性能指标和在测试配置时测试SSD来衡量性能。

       因为固态硬盘没有移动机械部件,在Ceph的领域使用它们而不使用大量的存储空间是有道理的(例如,日志)。相对便宜的固态硬盘可能会吸引到你的经济头脑。谨慎使用。当SSD和Ceph一块儿用时,仅仅能够运行的IOPS是不够的。日志和SSD有几个重要的性能方面的考虑:

 •写入密集型的语义:日志涉及写入密集型的语义,所以你应该确保当你写入数据时,你选择的SSD部署将等于或优于硬盘驱动器。廉价的固态硬盘,甚至可能会为了加快访问时间而引入写入延迟,由于有时高性能硬盘驱动器在写入上能够和一些市场上现有的更经济的固态硬盘同样快,甚至更快!

•连续写入:当你在SSD上储存多个日志时,你也必须考虑SSD连续写入的限制太多,由于它们可能在处理请求的同时会写入多个OSD日志。

•分区对齐: SSD性能的一个常见问题,由于人们喜欢为驱动器分区做为最佳实践,但他们每每忽略了适当的固态硬盘分区对齐,这可能会致使固态硬盘的数据传输速度要慢得多。确保SSD分区正确对齐。

        虽然固态硬盘的OSD对象存储成本高昂,经过存储一个OSD的日志在一个单独的硬盘驱动器SSD和OSD的对象数据上时,OSDs上可能会看到一个显着的性能提高。OSD日志配置默认在/var/lib/ceph/osd/$cluster-$id/journal里。你能够挂载这个路径到SSD或SSD的分区上,以致于它不仅是在同一磁盘上的一个文件对象数据。

        Ceph使CephFS的文件系统性能加速的一个方法是在CephFS文件内容的存储中分开存储CephFS元数据。Ceph为CephFS元数据提供了一个默认的元数据池。你永远不能为CephFS元数据建立一个元数据池,可是你能够为仅指向一台主机的SSD存储介质的CephFS元数据池建立一个CRUSH的映射层。见 池映射到不一样类型的OSD获取更多细节。

3.3控制器

        磁盘控制器对于写入吞吐量也有显着的影响。谨慎考虑你选择的磁盘控制器,以确保他们不会建立一个性能瓶颈。

        建议:Ceph的日志每每是Ceph的性能问题一个很好的信息来源。为了获取更多详细信息,请参阅 Ceph Write Throughput 1 和 Ceph Write Throughput 2

3.4其余注意事项

        您能够在每台主机上运行多个OSD,但你应该确保你的OSD硬盘总吞吐量的总和不超过所需的用来服务客户端须要来读取或写入数据的网络带宽。您还应该考虑在每一个主机上的集群存储的总体数据百分比。若是特定主机上的比例大而且主机发生故障,它可能会致使问题,好比超负荷,这会致使CEPH由于防止数据丢失的安全警告而中止操做。

        当你在每台主机运行多个OSDs时,你还须要保证内核是最新的。请参阅推荐操做系统的glibc和 syncfs(2)以确保您的硬件当在每台主机上运行多个OSD时的执行像先前预计的那样。

4.网络 

        建议每台机器最少两个千兆网卡,如今大多数普通硬盘吞的吐量都能达到100MB/s,网卡应该能处理因此OSD硬盘总吞吐量,因此推荐最少两个千兆网卡,分别用于公网(前端)和集群网络(后端)。集群网络(最好别链接到互联网)用于处理由数据复制产生的额外负载,而且有助于阻止拒绝服务攻击,拒绝服务攻击会干扰数据归置组,使之在OSD数据复制时不能回到active+clean状态。请考虑部署万兆网卡。经过1Gbps网络复制1TB数据耗时3小时,而3TB(一个典型的驱动配置)须要9小时,与之相反,若是使用10Gbps复制时间可分别缩减到20分钟和1小时。在一个PB级集群中,OSD磁盘失败是常态,而非异常;在性价比合理的前提下,系统管理员想让PG尽快从degraded(降级)状态恢复到active+clean状态。另外,一些部署工具(如Dell的Crowbar)有5种不一样的网络部署,使用了VLAN以提升网络和硬件可管理性。VLAN使用802.1q协议,还须要采用支持VLAN功能的网卡和交换机,增长的硬件成本可用节省的运营(网络安装、维护)成本抵消。使用VLAN来处理虚拟机流量间的集群和计算堆栈(如OpenStack、CloudStack等等)时,采用10G网卡值得考虑使用。每一个网络的顶级机架路由器到核心路由器通讯应该有更快的吞吐量,例如,40Gbps~100Gbps。

        你的服务器硬件上应该配置底板管理控制器(Baseboard Management Controller,BMC),管理和部署工具也应该大规模使用BMC,因此考虑一个带外网络管理成本/本效益平衡。Hypervisor的SSH访问,VM图像上传,操做系统的映像安装,套接字管理等,会使网络上的负载增长很明显。运行三个网络看起来有些浪费,但没个通讯路径表明一个潜在的容量,在部署大规模数据集群以前,你应该谨慎考虑吞吐量和/或性能瓶颈。

5.故障域 

         故障域指任何致使不能访问一个或多个OSD的故障,这多是中止了主机上的守护程序、硬盘故障,操做系统崩溃,网卡发生故障、电源供应器故障、网络中断、 停电等等。规划出你的硬件需求时,你必须权衡付出不少努力来减小故障域带来的成本削减、隔离每一个潜在故障域增长的成本的诱惑。

6.最低硬件建议 

Ceph能够运行在廉价的普通硬件上,小型生产集群和开发集群能够在通常的硬件上。

过程标准最低配置推荐

ceph OSD处理器1X 64位AMD-64/i386的双核

RAM每一个守护500 MB

存储卷每一个守护1X磁盘

网络2个1GB以太网网卡

ceph mon处理器1X 64位AMD-64/i386

RAM1 GB的守护

磁盘空间10 GB每守护

网络2个1GB以太网网卡

ceph MDS处理器1X的64位AMD-64/i386四核心

RAM最低1 GB每守护

磁盘空间每一个守护进程1 MB

网络2个1GB以太网网卡

提示:若是在只有一个硬盘的机器上运行OSD,要把数据和操做系统分别放到不一样分区;通常来讲,咱们推荐操做系统和数据分别使用不一样的硬盘。

7.生产集群示例 

 PB级生产集群也可使用普通硬件,但应该配备更多内存、CPU和数据存储空间来解决流量压力。

一个最新(2012)的Ceph集群项目使用了两个至关强悍的OSD硬件配置,和稍逊的监视器配置。

组态标准最低配置推荐

戴尔PE R510处理器2个64位四核Xeon处理器

RAM16 GB

存储卷8个2TB驱动器。1个操做系统,7个存储

客户端网络2个1GB以太网网卡

OSD网络2个1GB以太网网卡

管理 网络2个1GB以太网网卡

戴尔PE R515处理器1X 16核 Opteron CPU

RAM16 GB

存储卷12X 3TB硬盘的存储

OS存储1X 500GB硬盘的操做系统。

客户端网络2个1GB以太网网卡

OSD网络2个1GB以太网网卡

管理网络2个1GB以太网网卡