ceph分布式存储实战(3)——ceph内部组件

一、RADOS(Reliable Autonomic Distributed Object Storage)
1、rados的意思是
    可靠、自动、分布式对象存储(可靠的自主分布式对象存储)
2、rados的作用
    1、rados是ceph集群的基础,是ceph存储系统的核心,ceph中一切都是以对象的形式存储,而rados就是负责存储这些对象,无需考虑数据是啥类型
    2、确保数据的一致性和可靠性
    3、负责数执行数据的复制、故障检测和恢复
    4、负责数据在集群节点之间的迁移和再平衡
    5、ceph所有优秀特性都是rados提供的,如:
        分布式对象存储、高可用性、高可靠性、没有单点故障、自我修复、自我管理
    6、rados就是cpeh集群中的大脑,负责决策、调度等工作

二、OSD(object storage daemon)
1、osd的意思是
    对象存储设备
2、osd的作用
    1、负责存储实际用户数据(数据将会以对象的形式存储在osd中)
    2、负责响应客户端读操作请求
    
    通常一个osd守护进程仅与ceph集群中的一个磁盘绑定

三、ceph monitor(MON)
1、mon的意识是
    监控
2、mon的作用
    1、通过一系列map跟踪整个集群的健康状态,监控整个集群的监控状况
    2、map是指这几个组件的map:osd/mon/pg/crush,所有的集群节点都向mon节点报告状态,并分享每一个状态变化的信息
    3、一个mon为每一个组件维护一个独立的map,mon不存储实际的数据,这是osd的工作
    
四、librados库
1、作用
    1、是一种用来简化访问rados的方法
    2、支持php,ruby,python,java,c/c++
    3、librados支持直接访问rados
    4、开发者能够创建自己的接口来访问ceph存储集群

五、RBD
1、意思
    叫做ceph块设备,或者叫rados快设备
2、作用
    1、对外提供块存储,可以被映射、格式化、向磁盘一样被挂载到服务器
    2、支持精简制备和快照的特性
    
    精简置备(thin):
        使用精简置备格式。最初,精简置备的磁盘只使用该磁盘最初所需要的数据存储空间。如果以后精简磁盘需要更多空间,则它可以增长到为其分配的最大容量。
        简单的说就是为该磁盘文件指定增长的最大空间,需要增长的时候检查是否超过限额。

六、RGW
1、意思
    叫做ceph对象网关,或者叫rados网关
2、作用
    1、提供了一个兼容Amazon S3和OpenStack对象存储API(Swift)的restful API接口
    2、还支持多租户和openstack的keystone身份验证服务

七、MDS
1、意思
    叫做ceph元数据服务器
2、作用
    1、跟踪文件层次结构并存储只供CephFS使用的元数据
    2、mds不直接给客户端提供数据,因此可以避免系统中的一个单点故障
3、为ceph集群部署一个mds
    在之前的部署中,已经部署好了一个ceph存储集群,如需添加mds节点,在管理节点指向以下命令:
    ceph-deploy mds create ceph-node2
    
    
八、CephFS
1、意思
    叫做ceph文件系统
2、作用
    1、提供了一个任意大小且兼容POSIX的分布式文件系统
    2、依赖mds来跟踪文件层次结构,即元数据
    
    POSIX表示可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX ),
    POSIX标准定义了操作系统应该为应用程序提供的接口标准,是IEEE为要在各种UNIX操作系统上运行的软件
    而定义的一系列API标准的总称,其正式称呼为IEEE 1003,而国际标准名称为ISO/IEC 9945。
    
    关于posix更通俗易懂的解释可以参考以下网友的博文:
        https://www.cnblogs.com/weiweishuo/archive/2013/07/29/3222995.html

九、CRUSH算法
    CRUSH全称Controlled Replication Under Scalable Hashing,是一种数据分发算法,类似于哈希和一致性哈希。哈希的问题在于数据增长时不能动态加Bucket,
    一致性哈希的问题在于加Bucket时数据迁移量比较大,其他数据分发算法依赖中心的Metadata服务器来存储元数据效率较低,CRUSH则是通过计算、接受多维参数的
    来解决动态数据分发的场景
    1、过去的存储机制
        过去的存储机制是,在存储数据时,首先要保存一份元数据,这个元数据存储的信息是数据存储在哪个节点和磁盘阵列的位置等信息
        每一次有新的数据存储时,最先更新的是元数据的信息,之后才是实际的数据存储
        
        这样的机制存在的缺点:
        1、不适合超大容量级别的数据存储,pb和zb级别的容量
        2、存在单点故障,万一丢失存储的元数据,面临的是丢失所有数据
        3、总而言之,防止核心元数据丢失是非常重要的,元数据管理太复杂,因此成为存储系统的瓶颈
        
    2、ceph的存储机制
        cursh算法,称:可扩展散列下的受控复制算法
        ceph的数据分发机制就是采用这个算法,也是cpeh数据存储的核心
        
        优点:
        1、crush算法准确的计算数据的写入位置和从哪个位置读取
        2、按需计算元数据,而不是存储元数据,消除了传统的元数据存储方法中的限制
        
        crush工作机制:
        1、元数据计算的负载是分布式的,仅在需要的时候执行(元数据计算的过程也叫做crush查找)
        2、crush的查找是在ceph客户端上执行,从而占用很少的ceph集群资源,性能更好
        
        crush查找步骤
        1、往ceph存储集群发起读或写的请求时,首先联系mon获取集群map副本
        2、mon向客户端返回集群map信息,包含:集群状态、配置等信息
        3、使用对象名称和池名称或者池ID将数据转换为对象
        4、将对象和PG数量一起经过散列来生成其在ceph池中最终存放的那个pg
        5、通过计算好的pg执行crush查找,计算出存储或获取数据的那个主OSD,计算完主OSD后得到OSD ID和辅OSD ID
        6、客户端直接联系那个OSD来存储或者读取数据
        
        crush是公平公正的
        1、crush会均匀的在整个集群的osd上写数据,
        2、强制集群中的所有OSD都要参与其中,这提高了性能和可靠性,同等的利用
        3、如果有的磁盘性能较好,如有的是SSD盘,有的是机械盘,那么crush可以为每个osd分配权重
            如基于机械盘的osd容量大,可以权重分配高一点,权重越高,crush将会写入更多的数据

原文地址:http://blog.51cto.com/freshair/2057723

时间: 2024-11-10 11:05:28

ceph分布式存储实战(3)——ceph内部组件的相关文章

ceph分布式存储实战(2)——从0开始创建第一个ceph集群

一.在每台节点的/etc/hosts文件中增加如下内容 192.168.89.101 ceph-node1 192.168.89.102 ceph-node2 192.168.89.103 ceph-node3 二.节点1配置免密码登录其他节点 [[email protected] ~]# yum install openssh-clients #安装ssh客户端 [[email protected] ~]# ssh-keygen #生成密钥对 [[email protected] ~]# ss

ceph分布式存储实战(1)——ceph集群测试主机规划

主机规划 节点 磁盘(4块) 网卡(2块) mem/cpu OS HostName 节点1 os-ceph-node1/10G 私Eth0:dhcp 1G/1 CentOS Linux release   7.3.1611 (Core)_X64 ceph-node1 ceph-node1-osd1/10G 外Eth1:192.168.89.101 ceph-node1-osd2/10G ceph-node1-osd3/10G 节点2 os-ceph-node2/10G 私Eth0:dhcp 1G

ceph分布式存储实战(5)——ceph存储配置(RBD镜像日常管理)

一.在线调整Ceph RBD的容量大小 1.支持调整ceph RBD的容量大小的底层文件系统     自由的增加或者减少RBD的容量,需要底层文件系统的支持,支持的文件系统有     1.XFS     2.EXT     3.Btrfs     4.ZFS 2.将RBD镜像ceph-client1-rbd1原始容量是10G扩容为20G,(在ceph集群中任意一台节点上)执行的命令如下:     rbd resize rbd/ceph-client1-rbd1 --size 20480     

Ceph 知识摘录(内部组件流程)

RADOS可靠.自动.分布式对象存储系统 RADOS作用1.Rados是Ceph集群基础,Ceph存储系统核心,Ceph中一切都是以对象形式存储,Rados就是负责存储这些对象,无需考虑数据啥类型2.确保数据的一致性和可靠性3.负责数据的复制.故障检测和恢复4.负责数据在集群节点之间的迁移和再均衡5.Ceph所有优秀特性都是rados提供的,如:分布式对象存储.高可用性.高可靠性.没有单点故障.自我修复.自我管理6.Rados就是ceph集群中的大脑,负责决策.调度等工作 OSD对象存储设备 O

Ceph分布式存储(一)

Ceph分布式存储(一) 一.概述Ceph是可靠的.可扩展的.统一的.分布式的存储系统.可以同时提供对象存储RADOSGW(Reliable.Autonomic.Distributed.Object Storage Gateway).块存储RBD(Rados Block Device).文件系统存储Ceph FS(Ceph Filesystem)3种功能.2.Ceph应用场景Ceph可以提供对象存储.块设备存储和文件系统服务,其对象存储可以对接网盘(owncloud)应用业务等:其块设备存储可以

ceph分布式存储介绍

一.Ceph简介:        Ceph是一种为优秀的性能.可靠性和可扩展性而设计的统一的.分布式文件系统.ceph 的统一体现在可以提供文件系统.块存储和对象存储,分布式体现在可以动态扩展.在国内一些公司的云环境中,通常会采用 ceph 作为openstack 的唯一后端存储来提高数据转发效率.       Ceph项目最早起源于Sage就读博士期间的工作(最早的成果于2004年发表),并随后贡献给开源社区.在经过了数年的发展之后,目前已得到众多云计算厂商的支持并被广泛应用.RedHat及O

让我们了解 Ceph 分布式存储

前言 最近在学习 kubernetes 过程中,想实现 pod 数据的持久化.在调研的过程中,发现 ceph 在最近几年发展火热,也有很多案例落地企业.在选型方面,个人更加倾向于社区火热的项目,GlusterFS.Ceph 都在考虑的范围之内,但是由于 GlusterFS 只提供对象存储和文件系统存储,而 Ceph 则提供对象存储.块存储以及文件系统存储.怀着对新事物的向往,果断选择 Ceph 来实现 Ceph 块存储对接 kubernetes 来实现 pod 的数据持久化. 一.初始 Ceph

zz``让我们了解 Ceph 分布式存储

https://www.cnblogs.com/yangxiaoyi/p/7795274.html 前言 最近在学习 kubernetes 过程中,想实现 pod 数据的持久化.在调研的过程中,发现 ceph 在最近几年发展火热,也有很多案例落地企业.在选型方面,个人更加倾向于社区火热的项目,GlusterFS.Ceph 都在考虑的范围之内,但是由于 GlusterFS 只提供对象存储和文件系统存储,而 Ceph 则提供对象存储.块存储以及文件系统存储.怀着对新事物的向往,果断选择 Ceph 来

Ceph分布式存储集群-硬件选择

在规划Ceph分布式存储集群环境的时候,对硬件的选择很重要,这关乎整个Ceph集群的性能,下面梳理到一些硬件的选择标准,可供参考: 1)CPU选择Ceph metadata server会动态的重新分配负载,它是CPU敏感性的,所以Metadata Server应该有比较好的处理器性能 (比如四核CPU). Ceph OSDs运行RADOS服务,需要通过CRUSH来计算数据的存放位置,replicate数据,以及维护Cluster Map的拷贝,因此OSD也需要合适的处理性能 Ceph Moni