Ceph 1、基础知识? 2、专业术语?Ceph组件及架构介绍? 3、Ceph特点? 4、硬件相关 5、其他 6、Ceph版本说明? 7、ceph mgr 8、工具使用 9、版本说明 10、POSIX 11、Cluster Map =================================================================================================================== 1、基础知识? Ceph 作者 Sega? Ceph是加州大学圣克鲁兹分校的Sage Weil博士论文的研究项目(2004年6月份) 软件定义存储的方案? 软件定义存储技术(Software Defined Storage,SDS) 东京OpenStack峰会(Toyko OpenStack Summit) Red Hat? Ceph 能够提供文件系统的存储、块的存储以及对象存储,分别是什么含义? Ceph Key-value存储以及NoSQL 支持现状? Ceph是由哪一家公司管理? 遵循什么协议? 2、专业术语?Ceph组件及架构介绍? OSD(Object Storage Device) ---> 负责相应客户端的数据请求,并返回数据的进程,在Ceph集群中, OSD进程有多个。 数据复制、回复、回填、重新调整、和其他OSD进程通信并报告监视器。 PG(Placement Groups) ---> 一个逻辑概念 Monitor ---> 通过保存集群状态映射来维护整个集群的健康状态。Monitor为集群中的每个组建都 维护一个映射表,包括:OSD map、MON map、PG map、CRUSH map,所有节点都向MON 节点汇报状态信息并共享状态的变化。 RADOS(Reliable Autonomic Distributed Object Store) ---> Ceph最重要的组建。 Librados ---> 它是对RADOS存储集群进行的抽象和封装,并向上层提供API,支持C、C++、Java、 Python、Ruby和PHP等编程语言。 CRUSH(Controlled Replication Under Scalable Hashing)---> 数据分发算法。Ceph将数据保存玮存储池内的对象,Ceph能够使用算法计算出那个 归置组(PG)持有指定的 那些对象(Object),然后进一步计算PG属于那个OSD守护进程。 RBD(RADOS Block Device) ---> Ceph用于提供块存储的组件。提供了与Amazon S3和OpenStack兼容的RESTful API。 将数据顺序条带化的形式存放在ceph集群中的多个OSD之上。RBD驱动被集成在Linux 内核上。 RGW(RADOS Gateway) ---> Ceph向外提供对象存储的组件。构建在librados之上的对象存储接口。 Ceph RGW(即RADOS Gateway)是Ceph对象存储网关服务,是基于LIBRADOS接口封装实 现的FastCGI服务,对外提供存储和管理对象数据的Restful API。 对象存储适用于 图片、视频等各类文件的上传下载,可以设置相应的访问权限。目前Ceph RGW兼容常 见的对象存储API,例如兼容绝大部分Amazon S3 API,兼容OpenStack Swift API。 MDS(RADOS Metadata Server) ---> Ceph提供元数据存储的组件。只在Ceph提供文件系统的服务时使用MDS节点。 CephFS(Ceph File System) ---> Ceph提供文件系统的组件 3、Ceph特点? 1、Ceph中使用CRUSH算法将集群存储的集中式元数据管理带来的难以扩展的限制中解放出来,使用CRUSH算法能够动态的复制和平衡集群内的数据, 大大的提高了集群存储系统的性能和扩展性。 2、Ceph以多种类型的接口向上提供存储能力,包括对象存储、块存储、文件系统存储。 3、Ceph分布式存储系统可以同时提供对象存储、块存储、文件系统三种类型的存储,即可以用一套Ceph分部署存储可以解决所有数据的存储问题。 4、硬件相关 1、Ceph官方建议一台服务器只运行一种类型的守护进程。使用Ceph存储的服务单独部署到另外的机器。 2、CPU 因为元数据服务器需要有效的计算数据的分布和负载,所以保存元数据的服务器要CPU性能高一些。 运行OSD服务的节点也需要高性能的CPU。 3、RAM内存 MDS、Monitor节点保证每个进程1G内存的空间。 OSD节点每进程500M或者1G内存空间。 4、硬盘 官方建议单个大于1T的硬盘,单个硬盘容量越大通常意味着OSD节点所需要的内存越大。考量为每1TB使用1G内存。 建议单个硬盘独立运行操作系统。 5、网络 2个千兆网卡。 5、其他 1、OSD节点可能会派生出大量线程,Linux内核默认的最大线程数较小,所以可以把kernel,pid_max值设置高一些,理论最大值为4194303, 可以修改 /etc/sysctl.conf 文件。 6、Ceph版本说明? 7、ceph mgr ceph mgr是 ceph 12.2 主推的一个负责管理集群的重要功能组件,也可以说ceph mgr是ceph的一个监控工具。 Ceph Manager守护进程(ceph-mgr)负责跟踪运行时指标和Ceph集群的当前状态,包括存储利用率,当前性能指标和系统负载。Ceph Manager 守护程序还托管基于python的插件来管理和公开Ceph集群信息,包括基于Web的仪表板和REST API。高可用性通常需要至少两 个节点mgr。 通常情况下,应该在多个节点上运行mgr进程,以保证mgr服务的高可用性。默认情况下,任何一个节点的mgr节点出现故障,都将由mon 节点激活备用节点的mgr服务。 8、工具使用 1、ceph-authtool 格式:ceph-authtool keyringfile [ -l | –list ] [ -C | –create-keyring ] [ -p | –print ] [ -n | –name entityname ] \ [ –gen-key ] [ -a | –add-key base64_key ] [ –caps capfile ] 作用:用于创建、查看、修改ceph密钥环文件。密钥环文件内存储着一或多个 Ceph 认证密钥、可能还有被授予的权限。每个密钥 都与其类型名关联,格式为 {client,mon,mds,osd}.name 。 选项: -l,list # 列出指定密钥环文件中的密钥和权限 -p,print # 列出指定密钥环文件中的密钥 -C,--create-keyring # 创建密钥环文件,为指定角色生成新私钥 --add-key # 将密钥加入密钥环文件 --cap # 指定角色及其所拥有的权限 --caps # 授权所有角色所有权限 选项使用说明: --cap 实例: --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow *' --cap mgr 'allow *' 2、ceph-volume ceph提供了ceph-volume工具,ceph-volume工具通过增加索引来创建OSD ID。此外,ceph-volume会将新OSD添加到主机下的CRUSH映射中。 9、版本说明 1、每9个月发布一个新的稳定版本 2、v12.2.0 Luminous 版本之后,每个版本都有一个名称,版本名称的首字母的字母表位置数字正好的主版本好,例如Luminous的主版本是12。 3、版本类型 x.0.z - 开发版 x.1.z - 测试版 x.2.z - 稳定版 注:从 9.y.z Infernalis 版本之后遵循此约定 10、POSIX 可移植操作系统接口(Portable Operating System Interface,缩写为POSIX) ===================================================================================================================