前言
由于公司的业务调整,现在我又要接触ceph这个东西,由于我接手的是一个网盘类项目,所以分布式存储系统ceph就是我必须要学的了。现在压力还是比较大的,从业务直接到后台核心。
大概在这几天,我将ceph的文档过了一遍,并且大致的了解了什么是ceph,或者说ceph的具体应用场景之类,在这里我会大致的介绍一下。
什么是ceph?它一般用在什么地方?
caph这玩意是一个分布式存储的文件系统。在我司一般是和OpenStack苟合在一起。现在我这里的主要是私有云平台在用。一般做大规模存储的比较多。
ceph的具体架构是什么?或者ceph有哪些重要的服务?
其实有个图可以说明这个问题:
使用元数据服务器,执行元数据操作(来确定数据位置)。元数据服务器管理数据位置,以及在何处存储新数据。值得注意的是,元数据存储在一个存储集群(标为 “元数据 I/O”)。实际的文件 I/O 发生在客户和对象存储集群之间。这样一来,更高层次的 POSIX 功能(例如,打开、关闭、重命名)就由元数据服务器管理,不过 POSIX 功能(例如读和写)则直接由对象存储集群管理
ceph有什么特点?为什么要学它?
ceph 的特点,文档上说了,可扩展,高可用,负载均衡,安全。
但是我并不想直接去抄文档的,我自己看了一下原有的架构,结合了我自己的理解,对ceph的这几个特点有了更深刻的认识。
首先就是可扩展,说白了就是可以随便扩充节点,举个例子,你现在搭建了一个ceph对象存储系统做你自己云平台的后台存储,然后你现在用了三台机器做ceph集群存储,然后你现在又买了一台机器,你就可以直接把它扩进你的ceph集群,这样你就有四台机器做存储了。理论上ceph支持数千个节点扩充,这就是ceph的可扩展性,他可以不断地满足你的存储需求,你可以对它不断地扩容。
高可用服务,这个就需要理解一下了,还是举个例子,一般的情况下,如果你有四台机器四个节点做ceph存储,现在突然有个节点挂了,一般的系统单节点进出,如果挂掉的节点是这个节点,那么系统就玩完了。ceph就不存在这个情况,它消灭了集中化,自己特有的CRUSH算法成功的结束了传统的查表方法,把工作分摊到所有Ceph Clients和Ceph OSD上,增强了弹性扩展和高可用性。
安全这个,是我最近在研究的,所以对ceph的安全也看了一下,首先ceph有个特性叫做高可用认证,Cephx是ceph的一套认证系统,用于用户和daemon的认证,防止攻击。
用户产生密钥,Ceph monitor拥有密钥的拷贝,他们双方都能够向对方证明自己拥有密钥从而完成认证,认证过程中密钥始终不暴露。
任何一个Ceph monitor都可以认证用户,没有单点故障。从monitor返回的认证数据包含一个session key,这个session key用用户的密钥加密,所以只有该用户可以向ceph monitor发起请求。认证成功后,用户可以访问所有的OSD和MDS。
差不多现在,你应该对ceph有个基本的了解了,我现在在写一个网盘项目,我准备边写边分享自己的心得,应该还会持续更新下去。