ceph学习笔记

参考博客:https://www.jianshu.com/p/2246464306b2

Ceph有了块设备接口,在块设备上完全可以构建一个文件系统,那么Ceph为什么还需要文件系统接口呢?

主要是因为应用场景的不同,Ceph的块设备具有优异的读写性能,但不能多处挂载同时读写,目前主要用在OpenStack上作为虚拟磁盘,而Ceph的文件系统接口读写性能较块设备接口差,但具有优异的共享性。PS:想了解更多?快去查查SAN和NAS

为什么Ceph的块设备接口不具有共享性,而Ceph的文件系统接口具有呢?

对于Ceph的块设备接口,如图2,文件系统的结构状态是维护在各用户机内存中的,假设Ceph块设备同时挂载到了用户机1和用户机2,当在用户机1上的文件系统中写入数据后,更新了用户机1的内存中文件系统状态,最终数据存储到了Ceph集群中,但是此时用户机2内存中的文件系统并不能得知底层Ceph集群数据已经变化而维持数据结构不变,因此用户无法从用户机2上读取用户机1上新写入的数据。

对于Ceph的文件系统接口,如图3,文件系统的结构状态是维护在远端Ceph集群中的,Ceph文件系统同时挂载到了用户机1和用户机2,当往用户机1的挂载点写入数据后,远端Ceph集群中的文件系统状态结构随之更新,当从用户机2的挂载点访问数据时会去远端Ceph集群取数据,由于远端Ceph集群已更新,所有用户机2能够获取最新的数据

ceph块设备接口共享性
ceph文件系统共享性
为了让ceph集群中数据更加均衡,通常可以将数据以小粒度进行打散,然后分布在不同的集群节点上,进一步的,因为任何数据(可以是文件、块设备等)都被打散成为多个碎片写入不同的底层存储设备,从而使得在大型分布式存储系统中获得尽可能高的I/O并发和汇聚带宽成为可能

ceph的CRUSH算法可以解决两个问题:一是如果系统中存储设备数量发生变化,如何最小化数据迁移量从而使得系统尽快恢复平衡;二是在大型分布式存储系统中,数据一般包含多个备份,如何合理分布这些备份从而尽可能地使得数据具有较高的可靠性
顾名思义,CRUSH是一种基于哈希的数据分布算法,以数据唯一标识符、当前存储集群的拓扑结构以及数据备份策略作为CRUSH输入,可以随时随地地通过计算获取数据所在的底层存储设备位置并直接与其通信,从而避免查表操作,实现去中心化和高度并发

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值