注意

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

新手指南

本《Ceph 新手指南》旨在使 Ceph 易于理解。

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

Ceph 的组件

存储接口

Ceph 提供多种“存储接口”,这是另一种表达“存储数据方式”的说法。这些存储接口包括:- CephFS(文件系统)- RBD(块设备)- RADOS(对象存储)。

然而,深入来看,这三种接口实际上都是 RADOS 对象存储。CephFS 和 RBD 只是将自身呈现为文件系统和块设备。

存储管理器:它是什么?

Ceph 是一个提供数据冗余的集群式分布式存储管理器。对于首次阅读《Ceph 新手指南》的读者来说,这句话可能过于晦涩,所以让我们解释一下其中的所有术语

  • 存储管理器。 Ceph 是一个存储管理器。这意味着 Ceph 是一种帮助存储资源存储数据的软件。存储资源有多种形式:硬盘驱动器 (HDD)、固态驱动器 (SSD)、磁带、软盘、穿孔纸带、霍尔利斯式穿孔卡片和磁鼓存储器都是存储资源的形式。在本新手指南中,我们将重点介绍硬盘驱动器 (HDD) 和固态驱动器 (SSD)。

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

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

  • 数据冗余。 在某个地方拥有数据的第二个副本。

Ceph Monitor

Ceph Monitor 是 Ceph 集群正常运行所必需的守护进程之一。监视器知道 Ceph 集群中所有数据的位置。监视器维护集群状态的地图,这些地图使 Ceph 守护进程能够协同工作。这些地图包括监视器地图、OSD 地图、MDS 地图和 CRUSH 地图。需要三个监视器才能达到法定人数 (quorum)。法定人数是 Ceph 集群正常工作所必需的状态。法定人数意味着大多数监视器处于“启动 (up)”状态。

管理器

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

OSD

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

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

存储池 (POOLS)

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

放置组 (PLACEMENT GROUPS)

放置组是存储池的一部分。

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. 从克隆 ceph/ceph 仓库的目录中运行 install-deps.sh

    ./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. do_cmake.sh 脚本会创建一个 build/ 目录。进入 build/ 目录

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

    ninja -j3
    

    注意

    此步骤需要很长时间才能运行。 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
    

    注意

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

由 Ceph 基金会为您呈现

Ceph 文档是由非营利性 Ceph 基金会 资助和托管的社区资源。如果您希望支持这项工作和我们的其他努力,请考虑 立即加入