zoukankan      html  css  js  c++  java
  • Ceph学习笔记(1)- 架构概述

    简介

    Ceph的目标是采用商业硬件来构建大规模的、具有高可用、高扩展、高性能的分布式存储系统,ceph具有如下特点:

    • 软件定义存储:Ceph不需要特定的硬件,在主流的Linux发行版等类Unix操作系统上均可运行
    • 分布式存储:得意与计算寻址让Ceph客户端可以直接与服务端任意节点通信,避免因存在访问热点产生的性能瓶颈,这也是他可以轻易管理PB级以上规模集群的重要原因
    • 统一存储:Ceph支持传统的块存储(RBD)、文件系统存储(Ceph fs)与新兴的对象存储协议(RADOSGW)

    架构

    Ceph采用存储应用与存储服务完全分离(Client/Server)的模式,基于Rados对外提供服务。客户端可以直接通过LIBRADOS访问RADOS系统,也可以调用在LIBRADOS上封装的Radosgw、librbd、libcephfs这些接口访问存储。

    图1 Ceph架构图
    1. RADOS网关接口(RGW):如图1,RGW提供对象存储服务,通过librados允许APP直接与Ceph对象存储建立连接,基于librados封装的librgw也提供了与Amazon S3协议和OpenStack Swift协议兼容的RESTful API。可以将它理解为对文件(对象)进行上传、下载、查询、删除等。

      • 对象存储采用扁平化目录结构,利于进行大规模的扩容。
      • S3/Swift接口均分三级:Account/Bucket/Object(账户/桶/对象)
    2. RADOS块设备(RBD)接口:如图1,Ceph块设备,提供持久块存储,并将数据分散到不同OSD上,是一个分布式的块设备。与传统的SAN存储类似,RBD可以通过SCSI或FC给应用提供一个独立的LUN或者卷。

      • 在用户态,通过QEMU Driver供虚拟机作为磁盘使用
      • 在操作系统内核态将块设备映射给物理主机,供物理主机使用
    3. Ceph文件系统(CephFS)接口:在rados基础上增加了元数据服务器(MDS),它只为CephFS文件系统跟踪文件的层次结构和存储元数据,(RBD与RADOS不需要MDS,MDS不直接提供数据给客户端)。CephFS类似于传统的NAS,通过NFS和CIFS协议提供文件目录服务。

    4. RADOS(Reliable Autonomic Distributed Object Store):如图1,Ceph的底层实现为RADOS。在Ceph中数据以对象的形式存储,RADOS层保存这些对象,并确保数据始终保持一致,进行数据复制、故障检测和恢复、数据迁移、集群各节点的数据平衡等工作,RADOS是Ceph的核心,包括以下功能:

      • Monitor为整个集群提供全局配置和系统信息(几数个Monitor组成小型的强一致性分布式)

      • CRUSH算法实现对象寻址过程(Ceph对象落在哪里由CRUSH计算得出)

      • 对数据进行读写操作

      • 集群数据均衡

      • 保证集群副本之间数据一致性

      • 数据自动恢复

      • 克隆和快照

      • 对象分层存储

    典型的Rados集群如图2:

    图2 Rados集群

    学习自:
    《Ceph源码分析》 常涛
    《Ceph Cookbook》 Karan Singh
    《Ceph之RADOS设计原理与实现》 谢型果 严军

  • 相关阅读:
    Android——编译odex保护
    【深入JVM内核—原理、诊断与优化】第2期开课了
    17周(引用做形參 )
    虚拟机设备直通的两种方式(Working in Progress)
    UVa 10256 The Great Divide,推断两个凸包是否相离
    awk 传入外部参数
    shell/bash 让vi/vim显示空格,及tab字符
    shell/bash 交集、并集、差集
    Windows XP搜索功能 "包含文字" 搜索不到内容的解决办法
    C语言字符串查找函数
  • 原文地址:https://www.cnblogs.com/tongh/p/12510065.html
Copyright © 2011-2022 走看看