注意

本文档适用于 Ceph 开发版本。

初学者指南

初学者指南的目的是让 Ceph 变得易于理解。

Ceph 是一个集群和分布式存储管理器。如果这太晦涩难懂,那么只需将 Ceph 视为一个存储数据并使用网络确保数据有备份副本的计算机程序。

Ceph的组件

存储接口

Ceph 提供了多种“存储接口”,这是另一种说法“存储数据的方式”。这些存储接口包括:

深入了解,尽管如此,这三个都是真正的 RADOS 对象存储。CephFS 和 RBD 只是将自己呈现为文件系统和块设备。

存储管理器:它是什么?

Ceph 是一个提供数据冗余的集群和分布式存储管理器。对于 Ceph 初学者指南的首次读者来说,这句话可能过于晦涩难懂,因此让我们解释其中的所有术语:

  • 存储管理器。Ceph 是一个存储管理器。这意味着 Ceph 是帮助存储资源存储数据的软件。存储资源有多种形式:硬盘驱动器(HDD)、固态驱动器(SSD)、磁带、软盘、穿孔纸带、Hollerith 风格的穿孔卡片和磁鼓存储器都是存储资源的形式。在这个初学者指南中,我们将重点关注硬盘驱动器(HDD)和固态驱动器(SSD)。

  • 集群存储管理器。Ceph 是一个集群存储管理器。这意味着安装的存储管理器不仅在一台机器上,而是在多台协同工作的机器上。

  • 分布式存储管理器。Ceph 是一个集群和分布式存储管理器。这意味着存储的数据和支持它的基础设施分布在多台机器上,而不是集中在一台机器上。为了更好地理解这个上下文中的“分布式”是什么意思,描述一下它不是什么可能会有所帮助:它不是一个系统 ISCSI,这是一个在网络中以 1:1(一对一)映射方式暴露单个逻辑磁盘的系统。

  • 数据冗余。在某处有数据的第二个副本。

Ceph监控器

Ceph 监控器是 Ceph 集群功能所必需的守护进程之一。监控器知道 Ceph 集群中所有数据的位置。监控器维护集群状态的地图,这些地图使得 Ceph 守护进程能够协同工作。这些地图包括监控器地图、OSD 地图、MDS 地图和 CRUSH 地图。需要三个监控器才能达到多数。多数是指 Ceph 集群能够正常工作的必要状态。多数是指大多数监控器处于“up”状态。

管理器

管理器平衡 Ceph 集群中的数据,均匀分配负载,以便集群的任何部分都不会过载。管理器是 Ceph 集群功能所必需的守护进程之一。管理器跟踪运行时指标、系统利用率、CPU 性能、磁盘负载,并托管 Ceph 仪表板 Web GUI。

OSD

对象存储守护进程(OSD)存储对象。

OSD 是在存储服务器上运行的进程。OSD 负责管理单个存储单元,这通常是一个单独的磁盘。

池是一个可以指定为“复制”或“纠删码”的抽象。在 Ceph 中,数据保护的方法是在池级别设置的。Ceph 提供并支持两种类型的数据保护:复制和纠删码。对象存储在池中。“存储池是存储卷的集合。存储卷是存储的基本单元,例如磁盘上的分配空间或单个磁带盒。服务器使用存储卷来存储备份、存档或空间管理的文件。”(IBM Tivoli Storage Manager,版本 7.1,“存储池”)

放置组

放置组是池的一部分。

MDS

元数据服务器(MDS)对于 CephFS 的正常运行是必要的。参见部署 CephFSCeph 文件系统.

Vstart集群安装和配置程序

  1. 克隆ceph/ceph仓库:

    git clone git@github.com:ceph/ceph
    
  2. 更新仓库中的子模块:ceph/ceph仓库:

    git submodule update --init --recursive --progress
    
  3. 在你克隆仓库的目录中运行install-deps.shceph/ceph仓库:

    ./install-deps.sh
    
  4. 安装python3-routes软件包:

    apt install python3-routes
    
  5. 进入ceph目录。如果该目录包含文件do_cmake.sh:

    cd ceph
    
  6. ,则表示你位于正确的目录中。运行do_cmake.sh脚本:

    ./do_cmake.sh
    
  7. The do_cmake.sh脚本创建一个build/目录。进入build/目录:

    cd build
    
  8. 使用ninja来构建开发环境:

    ninja -j3
    

    Note

    这一步运行时间很长。命令ninja -j3启动一个由 2289 个步骤组成的进程。在我 2024 年 9 月在带有 i7 的 Intel NUC 上运行它时,这一步花费了超过三个小时。

  9. 安装 Ceph 开发环境:

    ninja install
    

    这一步没有前一步那么长。

  10. 构建 vstart 集群:

    ninja vstart
    
  11. 启动 vstart 集群:

    ../src/vstart.sh --debug --new -x --localhost --bluestore
    

    Note

    ceph/build目录中运行此命令。

由 Ceph 基金会带给您

Ceph 文档是一个社区资源,由非盈利的 Ceph 基金会资助和托管Ceph Foundation. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.