我阅读了Ceph的官方文档,其中说起了Ceph对硬件资源的需求,在《Learning Ceph》一书中也一样说起。我在此处作一个简要归纳。 Ceph主要包含以下几个组件:算法
讨论的重点也是各组件对CPU以及内存的依赖程度。服务器
MON MON负责管理CRUSHMAP,并非CPU密集型,对内存依赖大,由于要实现数据的快速访问。CPU能够配置不高,可是内存要足量,每一个进程实例1GB内存。性能
OSD OSD运行着rados服务,经过CRUSH算法计算对象的位置,要管理数据及其副本,须要合理数量的CPU。 OSD数据对内存的依赖程度不是特别大,正常状况下每一个进程实例500MB便可。 在不正常的状况下(数据迁移恢复等),每一个进程实例,每1TB数据就要对应1GB内存。因此内存仍是多多益善,个人OSD进程在运行时,通常。操作系统
MDS 元数据服务器服务于CephFS,是一个CPU密集型进程,占用的CPU资源不少,因此须要给MDS配备性能强劲的CPU才行。对内存需求也大,由于须要实现数据的快速访问;每一个进程实例1GB内存。对象
还有一些影响存储性能的因素,大量的读写请求,对于单个磁盘驱动器而言,会影响性能;不一样的文件系统,也会影响系统性能; 这里谈谈磁盘驱动器的选型;进程
我在系统使用的过程当中,发现各组件对内存的占用状况: osd: 2G左右,偶合会飚到7G; mon: 目前700M左右,曾经飙到过8G,还致使系统内存不足,后来我逐一重启了下mon进程; rgw: 目前占用的内存20G;内存
机械磁盘:资源
SSD磁盘: 使用SSD能够有效的提高系统性能,可是在决定使用SSD以前,须要考虑几个问题: 对于写性能要求高的状况,要购买合适的SSD,有些便宜的SSD,可能写性能还不如好的机械硬盘; 顺序写:当你把一块SSD做为多个磁盘的journal时,有可能几个OSD同时写journal,而写journal是顺序写,因此须要关注顺序写性能; 注意分区对齐;文档
网卡: 至少2个1Gbps的网卡,一个用于public network,用于和系统的使用者交互;一个用于cluster network,用于数据副本的拷贝,recovery, backfill等之用。get
参考文档: http://docs.ceph.com/docs/master/start/hardware-recommendations/