文档章节

Hardware Recommendations【硬件推荐】

天空冰雨
 天空冰雨
发布于 2015/03/24 15:59
字数 3901
阅读 107
收藏 2

硬件推荐(内容提要)

 

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密集型进程。

2.RAM 

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

3.数据存储 

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

        重要提示:   当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以太网网卡


本文转载自:http://docs.openfans.org/ceph/ceph4e2d658765876863/ceph-1/copy_of_intro-to-ceph30104ecb7ecdceph30...

共有 人打赏支持
天空冰雨

天空冰雨

粉丝 56
博文 9
码字总数 1712
作品 0
成都
个人站长
私信 提问
Intro to Ceph【介绍CEPH】

Intro to Ceph【介绍CEPH】 介绍CEPH 无论你想提供 Ceph对象存储和/或Ceph块设备服务至云平台 ,部署Ceph文件系统或者为了其他目的而使用Ceph,所有的 Ceph存储集群部署都是从设置每个Ceph节...

天空冰雨
2015/03/24
0
0
Canonical 和 Red Hat 呼吁 Secure boot 选择权

几个星期前微软要求win8认证客户机支持安全启动,启动进程内的所有固件和软件都需要可信CA签名,显然微软试图锁定启动进程,阻止安装无签名的第三方系统如Linux。前不久,自由软件基金会(FS...

AndroidMe
2011/10/29
1K
14
Phasing out legacy recommendations on Android TV

Phasing out legacy recommendations on Android TV 谷歌中国开发者社区 (GDG)2017-12-221 阅读 Android Posted by Bejamin Baxter, Developer Programs Engineer At Google I/O 2017, we a......

谷歌中国开发者社区 (GDG)
2017/12/22
0
0
推荐系统召回环节思考

推荐系统是一个很大的话题,涉及到很多模块,这里主要是调研了一下推荐召回环节的主流做法。一般有如下几条线路。 基于Content的推荐 方法:只使用内容信息,而不直接使用用户行为数据。通过...

EasonZhao
2017/01/12
0
0
ORACLE RAC运行在300G内存以上需要考虑的东西

In this Document Purpose Scope Details Database - RAC/Scalability Community References APPLIES TO: Oracle Database - Enterprise Edition - Version 10.2.0.1 to 12.1.0.1 [Release 1......

7343696
2014/05/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

RabbitMQ+PHP 教程三(Publish/Subscribe)用yii2测试通过

介绍 在前面的教程中,我们创建了一个工作队列。工作队列背后的假设是每个任务都交付给一个工作人员处理。在这一部分中,我们将做一些完全不同的事情——我们将向多个消费者发送消息。此模式...

hansonwong
29分钟前
2
0
关于JAVA你必须知道的那些事(四):单例模式和多态

好吧,今天一定要把面向对象的最后一个特性:多态,给说完。不过我们先来聊一聊设计模式,因为它很重要。 设计模式 官方的解释是,设计模式是:一套被反复使用,多数人知晓的,经过分类编目,...

拾光TM
30分钟前
1
0
ES6 系列之 Babel 是如何编译 Class 的(下)

摘要: ## 前言 在上一篇 [《 ES6 系列 Babel 是如何编译 Class 的(上)》](https://github.com/mqyqingfeng/Blog/issues/105),我们知道了 Babel 是如何编译 Class 的,这篇我们学习 Babel ...

阿里云官方博客
30分钟前
1
0
附实例!实现iframe父窗体与子窗体的通信

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由前端林子发表于云+社区专栏 本文主要会介绍如何基于MessengerJS,实现iframe父窗体与子窗体间的通信,传递数据信息。同时本...

腾讯云加社区
36分钟前
1
0
JSP页面传List集合到Action中

1:JSP页面(前端用的是H-UI框架) <div class="codeView docs-example"> <table class="table table-border table-bordered table-striped"> <thead> ......

uug
40分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部