ceph学习之CRUSH】的更多相关文章

CRUSH的全称是Controlled Replication Under Scalable Hashing,是ceph数据存储的分布式选择算法,也是ceph存储引擎的核心.在之前的博客里介绍过,ceph的客户端在往集群里读写数据时,动态计算数据的存储位置.这样ceph就无需维护一个叫metadata的东西,从而提高性能. ceph分布式存储有关键的3R: Replication(数据复制).Recovery(数据恢复).Rebalancing(数据均衡).在组件故障时,ceph默认等待300秒…
一.RADOS的对象寻址 Ceph 存储集群从 Ceph 客户端接收数据——不管是来自 Ceph 块设备. Ceph 对象存储. Ceph 文件系统.还是基于 librados 的自定义实现——并存储为对象.每个对象是文件系统中的一个文件,它们存储在对象存储设备上.由 Ceph OSD 守护进程处理存储设备上的读/写操作. 在传统架构里,客户端与一个中心化的组件通信(如网关.中间件. API .前端等等),它作为一个复杂子系统的唯一入口,它引入单故障点的同时,也限制了性能和伸缩性(就是说如果中心…
网络: ceph必须要有公共网络和集群网络: public network:负责客户端交互以及osd与mon之间的通讯 cluster network:负责osd之间的复制,均衡,回填,数据恢复等操作. 主机上的各个 OSD 最多会用到 4 个端口: 一个用于和客户端.监视器通讯: 一个用于发送数据到其他 OSD : 两个用于各个网卡上的心跳: OSD 守护进程默认绑定 从 6800 起的第一个可用端口,当某个守护进程失败并重启时没释放端口,重启后的进程就会监听新端口.你应该防火墙打开整个 68…
文章转载自:https://mp.weixin.qq.com/s?__biz=MzI1MDgwNzQ1MQ==&mid=2247485302&idx=1&sn=00a3a2045797b20983c06b183c935886&chksm=e9fdd282de8a5b94b26b19c4a3b51eede1270c077edaa8899a982d75d4067a48ae0b97e8d870&cur_album_id=1600845417376776197&sc…
前言: ​ 分布式存储系统需要让数据均匀的分布在集群中的物理设备上,同时在新设备加入,旧设备退出之后让数据重新达到平衡状态尤为重要.新设备加入后,数据要从不同的老设备中迁移过来.老设备退出后,数据迁移分摊到其他设备.将文件.块设备等数据分片,经过哈希,然后写入不同的设备,从而尽可能提高I/O并发与聚合带宽. ​ 在实际场景中如何通过最小数据迁移使得集群恢复平衡,如何分配备份到设备上,使得数据尽可能的安全是很重要的问题.Ceph对普通哈希函数扩展后解决了上述问题,Ceph基于哈希的数据分布算法就是…
一.元数据和元数据管理 (1)元数据 在学习Ceph之前,需要了解元数据的概念.元数据又称为中介数据.中继数据,为描述数据的数据.主要描述数据属性的信息,用来支持如指示存储位置.历史数据.资源查找.文件记录等功能.通俗地说,就 是用于描述一个文件的特征的系统数据,比如访问权限.文件拥有者以及文件数据库的分布信息(inode)等等.在集群文件系统中,分布信息包括文件在磁盘上的位置以 及磁盘在集群中的位置.用户需要操作一个文件就必须首先得到它的元数据,才能定位到文件的位置并且得到文件的内容或相关属性…
Ceph学习笔记(3)- Monitor 前言: ​ Ceph将cluster map与placement rule合并为一张表称为crush map,作为集群表的一部分.由Monitor对集群表的副本进行维护和传播.Monitor是Paxos算法构建的具有分布式强一致性的小型集群(Paxos算法参考…
pool是ceph存储数据时的逻辑分区,它起到namespace的作用.其他分布式存储系统,比如Mogilefs.Couchbase.Swift都有pool的概念,只是叫法不同.每个pool包含一定数量的PG,PG里的对象被映射到不同的OSD上,因此pool是分布到整个集群的. 除了隔离数据,我们也可以分别对不同的POOL设置不同的优化策略,比如副本数.数据清洗次数.数据块及对象大小等. 查看POOL 查看pool有多种方式: [root@mon1 ~]# rados lspools rbd t…
1.配置ceph.repo并安装批量管理工具ceph-deploy [root@ceph-node1 ~]# vim /etc/yum.repos.d/ceph.repo [ceph] name=Ceph packages for $basearch baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/$basearch enabled= gpgcheck= priority= type=rpm-md gpgkey=https://mi…
PG的计算公式: 整个集群PG的计算公式 Total PGs = ((Total_number_of_OSD * ) / max_replication_count) 每个POOL中PG的计算公式: Total PGs = (Total_number_of_OSD * ) / max_replication_count / pool_count 结算的结果往上取靠近2的N次方的值.比如总共OSD数量是160,复制份数3,pool数量也是3,那么按上述公式计算出的结果是1777.7.取跟它接近的2…