Ceph对计算机硬件的需求
引言 我阅读了Ceph的官方文档,其中提及了Ceph对硬件资源的需求,在《Learning Ceph》一书中也同样提及。我在此处做一个简要概括。 Ceph主要包含如下几个组件:
- MON
- OSD
- MDS
- RGW
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;
机械磁盘:
- 推荐的磁盘大小,最小不过1TB;
- 磁盘越大,单位GB的存储空间越小,但是需要的内存越多,尤其是在recovery,backfill以及reblance时;
- 不推荐将一个盘分多个区,再跑多个OSD进程;
- 不推荐OSD和mon, 或者OSD和mds跑在同一个硬盘上;
- 很多 slow osd的问题往往是由于对磁盘设备的过度使用,请使用专用的磁盘用于安装操作系统以及软件;专用的磁盘设备用于osd daemon, 专门的磁盘设备用于journal。
网卡: 至少2个1Gbps的网卡,一个用于public network,用于和系统的使用者交互;一个用于cluster network,用于数据副本的拷贝,recovery, backfill等之用。
参考文档: http://docs.ceph.com/docs/master/start/hardware-recommendations/
【Ceph硬件选型】转载于:https://my.oschina.net/myspaceNUAA/blog/702915