【转载】Why Ceph and how to use Ceph | 云里雾里。Rados本身就是一个对象存储接口,它自身维护了一个集群状态和实现了数据分发的要求,我们通常也讲Rados称为Ceph Cluster,因为其上的存储接口如CephFS都是基于其上的接口实现而已。2. ceph-fuse: 通过ceph-fuse可以从用户态空间挂载CephFS如”ceph-fuse -m 192.168.0.1:6789 /home/username/cephfs”3. libcephfs.so: 通过libcephfs可以替代HDFS来支持不同Hadoop乃至HBase。
这一层包括了三个部分:RADOS GW(RADOS Gateway)、 RBD(Reliable Block Device)和Ceph FS(Ceph File System),其作用是在librados库的基础上提供抽象层次更高、更便于应用或客户端使用的上层接口。RADOS GW提供的API抽象层次更高,但功能则不如librados强大。这一层就是不同场景下对于Ceph各个应用接口的各种应用方式,例如基于librados直接开发的对象存储应用,基于RADOS GW开发的对象存储应用,基于RBD实现的云硬盘等等。
分布式存储ceph——(6)ceph 讲解一、Ceph简介:Ceph可以提供对象存储、块设备存储和文件系统服务,其对象存储可以对接网盘(owncloud)应用业务等;3.文件系统存储:???? 通常意义是支持 POSIX 接口,它跟传统的文件系统如 Ext4 是一个类型的,但区别在于分布式存储提供了并行化的能力,如 Ceph 的 CephFS (CephFS是Ceph面向文件存储的接口),但是有时候又会把 GlusterFS ,HDFS 这种非POSIX接口的类文件存储接口归入此类。
Ceph和Gluster,开源存储间的较量。RADOS(Reliable, Autonomic、Distributed Object Store)是Ceph系统的基础,这一层本身就是一个完整的对象存储系统,包括Cehp的基础服务(MDS,OSD,Monitor),所有存储在Ceph系统中的用户数据事实上最终都是由这一层来存储的。在Ceph存储系统中,Ceph Metadata Daemon 提供了元数据服务器,而Ceph Object Storage Daemon 提供了数据和元数据的实际存储。GlusterFS和Ceph对比。
因此,本文将对Ceph在OpenStack中的价值进行简要介绍,并且对Ceph和Swift进行对比。具体到Ceph而言,其最为符合软件定义存储的特性无疑是,Ceph的存储类型是可以通过软件方式定义的。同时,由于Ceph自身对于OSD硬件平台的特殊假设,以及由此导致的优化空间,则在成本合理的前提下,开发更加适用于Ceph OSD的定制硬件平台(类似于micro-server或者IP硬盘等),并突出存储的高密度、低功耗、高可维护性等特点,也可能成为一种选择。
ceph工作原理和安装一、概述1. CRUSH算法。cd /ceph下载yum源,下载地址如下http://download.ceph.com/rpm-firefly/el6/noarch/在node1~4上把上面的网址设置为yum源yum install –y ceph到管理主机上的/ceph目录操作,创建一个新集群,并设置node1为mon节点ceph-deploy new node1执行完毕后,可以看到/ceph目录中生成了三个文件,其中有一个配置文件可以做各种参数优化,据说ceph的优化参数接近1000项。
理解 Ceph:一个开源的分布式存储平台。Ceph存储集群运行在商用机上,为了确保集群中数据的分布式存储和良好的可扩展性,Ceph运用了著名的CRUSH(Controllled Replication Under Scalable Hashing)算法。OSD DaemonCeph MonitorCeph OSD Daemon.Ceph Monitor也是一种Ceph OSD Daemon,它主要负责管理全部集群。当你运行一个Ceph集群时,你就会需要Ceph Monitor每天帮你检查集群的健康情况和状态。Ceph Object storage。
另外一点ceph客户端读写数据直接与存储设备(osd) 交互。Rados集群是ceph的存储核心。如图,rados集群中分为以下角色:mdss、osds、mons. Osd 对象存储设备,可以理解为一块硬盘+osd 管理进程,负责接受客户端的读写、osd间数据检验(srub)、数据恢复(recovery)、心跳检测等。Mons 主要解决分布式系统的状态一致性问题,维护集群内节点关系图(mon-map osd-map mds-map pg-map)的一致性,包括osd的添加、删除的状态更新。# ceph -s.
块存储,文件存储,对象存储的层次关系应用的角度聊过了,我们再看看这三种存储的一些技术细节,首先看看在系统层级的分布。当然对象存储通常不需要专业的存储设备,前面那些LV/VG/PV层也可以统统不要,直接在硬盘上做本地文件系统,之后再做成OSD,这种才是对象存储的标准模式,对象存储的硬件设备通常就用大盘位的服务器。块存储的数据结构是数组,而文件存储是二叉树(B,B-,B ,B*各种树),对象存储基本上都是哈希表。
GFS chunksever存储节点:用于所有 chunk的存储。原生的对象存储,不支持实时的文件读写、编辑功能完全对称架构,无主节点,无单点故障,易于大规模扩展,性能容量线性增长数据实现最终一致性,不需要所有副本写入即可返回,读取数据时需要进行数据副本的校验是OpenStack的子项目之一,适合云环境的部署Swift的对象存储与Ceph提供的对象存储区别:客户端在访问对象存储系统服务时,Swift要求客户端必须访问Swift网关才能获得数据。
奋起之时,Ceph之父Sage Weil来华:产品化是唯一出路。Ceph在中国的发展远比Ceph之父Sage Weil的预想要快得多。除了刘世民之外,Dan Van Der Ster也透露了CERN使用Ceph的原因:“最开始选择Ceph是因为经费的问题,在OpenStack上Ceph是最好的存储选项,后来我们把Ceph用于云平台,之后我们发现Ceph还可以用于高性能计算和粒子对撞计算,用CephFS文件系统提供高性能计算存储数据,五年内没有丢过一个数据。”
这里,我们直接在Monitor节点node1上安装ceph-deploy,然后通过ceph-deploy在node1上部署Monitor,在node2和node3节点上部署OSD,最后,在node4上部署Ceph网关rgw。ceph-deploy purgedata {ceph-node} [{ceph-node}]ceph-deploy forgetkeys.# ssh node2# sudo mkdir /var/local/osd0# chown ceph:ceph /var/local/osd0# exit# ssh node3# sudo mkdir /var/local/osd1# chown ceph:ceph /var/local/osd1# exit准备OSD.
海量小文件存储与Ceph实践。我们在Filestore存储引擎基础上对小文件存储设计了优化方案并进行实现,方案主要思路如下:将若干小文件合并存储在RADOS系统的一个对象(object)中,<小文件的名字、小文件在对象中的offset及小文件size>组成kv对,作为相应对象的扩展属性(或者omap,本文以扩展属性表述,ceph都使用kv数据库实现,如leveldb)进行存储,如下图所示,对象的扩展属性数据与对象数据存储在同一块盘上;
1、`ceph osd tree` 查看osd【5,4,6】其中一个所在的节点2、`ssh ceph-nodeN`,进入该节点 #osd.5所在的node节点3、`df -h | grep -i ceph-5`找出该osd.5的物理存储位置 ,ceph-5是指osd.54、`cd /var/lib/ceph/osd/ceph-5/current`进入osd.5所在的物理存储文件夹5、`ls -l |grep -i 6.31`找出和PG(6.31)相关的文件夹6、`cd 6.31_head`进入该PG文件夹7、`ls -l `就可以看到我们存储的testobject数据的详细信息。
理解 OpenStack + Ceph (2):Ceph 的物理和逻辑结构 [Ceph Architecture](1)Ceph client 通过 CRUSH 算法计算出存放 object 的 PG 的 ID:客户端输入 pool ID 和 object ID (比如 pool = “liverpool” and object-id = “john”)ceph 对 object ID 做 hashceph 对该 hash 值取 PG 总数的模,得到 PG ID (比如 58)ceph 或者 pool ID (比如 “liverpool” = 4)ceph 将 pool ID 和 PG ID 组合在一起(比如 4.58)
Openstack 对象存储服务之争:Ceph或者Swift背景Ceph现在已经是Openstack官方主要支持的存储后端,而最新的Ceph不仅可以提供快服务,文件服务,而且还可以提供对象存储。对比下面是Mirantis针对ceph和swift在对象存储服务的对比:CRUSH (algorithm)结论我个人认为,ceph毕竟不是一个专门的对象存储系统,其对象存储服务其实是在block服务上模拟出来的,所以和专门的对象存储swift比起来,在部署规模,使用成本上会有比较大的差距;
最近有人在社区咨询:“对象存储方式相对于块存储、文件存储,究竟有什么优势?”社区会员中有大神回复:“对象存储对比其他存储最大的优势是技术结构上的,可以做到真正的异地备份,真正的全球部署,而块存储一般是无法做到跨机房的,更别说跨城市跨国家了。这也就决定了对象存储的可靠性实际比其他存储要高,适合存放绝对不能丢失的数据。”从逻辑上存储通常分为块存储,文件存储,对象存储。这是文件存储去兼容对象存储。
分布式文件系统综述http://laokaddk.blog.51cto.com/368606/777196分布式文件系统均为Client/Server架构。共享存储(SAN)集群文件系统(1990s) 虽然80年代的网络文件系统解决了不同计算机之间的数据共享问题,但是文件(存储)服务器的可扩展性问题仍然十分突出:每个存储服务器所支持的存储容量局限于SCSI总线的限制而难以扩展,不同服务器之间的存储空间也不能得以均衡利用。基于对象存储的并行存储系统的架构如下图所示。
“Ceph浅析”系列之七——关于Ceph的若干想法。7.3 Ceph与软件定义存储。具体到Ceph而言,其最为符合软件定义存储的特性无疑是,Ceph的存储类型是可以通过软件方式定义的。同时,由于Ceph自身对于OSD硬件平台的特殊假设,以及由此导致的优化空间,则在成本合理的前提下,开发更加适用于Ceph OSD的定制硬件平台(类似于micro-server或者IP硬盘等),并突出存储的高密度、低功耗、高可维护性等特点,也可能成为一种选择。
(3)PG -> OSD映射。如果这种算法是某种固定映射的哈希算法,则意味着一个object将被固定映射在一组OSD上,当其中一个或多个OSD损坏时,object无法被自动迁移至其他OSD上(因为映射函数不允许),当系统为了扩容新增了OSD时,object也无法被re-balance到新的OSD上(同样因为映射函数不允许)。这三个OSD具有各自不同的序号,序号最靠前的那个OSD就是这一组中的Primary OSD,而后两个则依次是Secondary OSD和Tertiary OSD。
这种方法消除了被专有存储硬件所限制,与传统存储阵列和设备相比,可以节省50%的存储部署成本。基于Ceph技术的SUSE软件定义存储解决方案。基于Ceph技术的SUSE软件定义存储将物理存储硬件(数据平台)与数据存储管理逻辑或“智能”(控制平台)分隔开来。Ceph的核心是高可用、自动化的分布式对象存储(RADOS),它为应用程序提供对象,数据块和文件存储功能,这使得Ceph灵活,可靠性高且易于管理。
Ceph:一个 Linux PB 级分布式文件系统。Ceph 生态系统可以大致划分为四部分(见图 1):客户端(数据用户),元数据服务器(缓存和同步分布式元数据),一个对象存储集群(将数据和元数据作为对象存储,执行其他关键职能),以及最后的集群监视器(执行监视功能)。Ceph Client 是 Ceph 文件系统的用户。Ceph Metadata Daemon 提供了元数据服务器,而 Ceph Object Storage Daemon 提供了实际存储(对数据和元数据两者)。
Gluster vs Ceph:开源存储领域的正面较量Gluster vs Ceph:开源存储领域的正面较量。Ceph能够将块大小从64KB设置为256KB甚至1MB,这么做也能使Ceph的性能得到不小的提升。存储管理员会发现Inktank为Ceph提供了一些更为精细的操作,因为Ceph对文件系统、块访问以及远程复制等操作都是采用内建函数的方式,而不像Gluster那样采用插件的方式。这给了Ceph很大的优势,也是为什么Ceph能够在安装上领先Gluster的原因。
当前基于对象存储的主流技术产品架构比较。存储局域网(SAN)和网络附加存储(NAS)是目前两种主流传统的网络存储架构,而对象存储(Object-based Storage)是一种新的网络存储架构。海量非机构化数据采用对象存储,由于对象存储使用S3或Swift访问协议,传统的业务系统需要调整业务访问端口,企业可采用“两步走”的步骤,对于新开发的业务系统,对非结构化数据的访问直接采用对象存储的方式,对于存量的业务系统逐渐调整访问端口。