注意
本文档适用于 Ceph 的开发版本。
Ceph 词汇表
- Application(应用程序)
更准确地说是 client(客户端),应用程序是使用 Ceph 集群存储和复制数据的任何外部程序。
- BlueStore
OSD BlueStore 是 OSD 守护程序使用的存储后端,专为与 Ceph 一起使用而设计。BlueStore 在 Ceph Kraken 版本中引入。Ceph Luminous 版本将 BlueStore 提升为默认 OSD 后端,取代了 FileStore。从 Reef 版本开始,FileStore 不再作为存储后端可用。
BlueStore 将对象直接存储在裸块设备或分区上,并且不与已挂载的文件系统交互。BlueStore 使用 RocksDB 的键/值数据库将对象名称映射到磁盘上的块位置。
- Bucket(桶)
在 RGW 的上下文中,桶是一组对象。在基于文件系统的类比中(其中对象对应于文件),桶对应于目录。多站点同步策略 可以设置在桶上,以提供对数据从一个区域移动到另一个区域的细粒度控制。
桶的概念源自 AWS S3。另请参阅 AWS S3 上关于创建桶的页面 和 AWS S3 的“桶概述”页面。
OpenStack Swift 使用术语“容器”(containers)来指代 RGW 和 AWS 所说的“桶”(buckets)。请参阅 OpenStack 存储 API 概述页面。
- Ceph
Ceph 是一种分布式网络存储和文件系统,具有分布式元数据管理和 POSIX 语义。
- ceph-ansible
一个 GitHub 仓库,从 Jewel 版本到 Quincy 版本提供支持,用于促进 Ceph 集群的安装。
- Ceph Block Device(Ceph 块设备)
也称为“RADOS Block Device”和 RBD。一种软件工具,用于协调 Ceph 中基于块的数据存储。Ceph Block Device 将基于块的应用程序数据分割成“块”。RADOS 将这些块作为对象存储。Ceph Block Device 协调这些对象在存储集群中的存储。
- Ceph Block Storage(Ceph 块存储)
Ceph 支持的三种存储类型之一(另外两种是对象存储和文件存储)。Ceph 块存储是块存储的“产品”,指的是当与 (1)
librbd(提供对 RBD 镜像进行文件式访问的 Python 模块)、(2) QEMU 或 Xen 等虚拟机监控程序以及 (3)libvirt等虚拟机监控程序抽象层结合使用时,与块存储相关的服务和功能。- Ceph Client(Ceph 客户端)
可以访问 Ceph 存储集群的任何 Ceph 组件。这包括 Ceph Object Gateway、Ceph Block Device、Ceph File System 及其相应的库。它还包括内核模块和 FUSE(用户空间文件系统)。
- Ceph Client Libraries(Ceph 客户端库)
可用于与 Ceph 集群组件交互的库集合。
- Ceph Cluster Map(Ceph 集群图)
请参阅 Cluster Map(集群图)
- Ceph Dashboard(Ceph 仪表板)
Ceph Dashboard 是一个内置的基于 Web 的 Ceph 管理和监控应用程序,通过它可以检查和管理集群内的各种资源。它作为 Ceph Manager Daemon 模块实现。
- Ceph File System(Ceph 文件系统)
请参阅 CephFS
- CephFS
Ceph File System(Ceph 文件系统),或 CephFS,是一个构建在 Ceph 分布式对象存储 RADOS 之上的 POSIX 兼容文件系统。有关详细信息,请参阅 CephFS Architecture(CephFS 架构)。
- ceph-fuse
ceph-fuse 是 CephFS 的 FUSE(“Filesystem in USErspace”,用户空间文件系统)客户端。ceph-fuse 将 Ceph FS 挂载到指定的挂载点。
- Ceph Interim Release(Ceph 临时版本)
请参阅 Releases(版本)。
- Ceph Kernel Modules(Ceph 内核模块)
可用于与 Ceph 集群交互的内核模块集合(例如:
ceph.ko、rbd.ko)。- Ceph Manager
Ceph 管理器守护程序 (ceph-mgr) 是一个与监视器守护程序一起运行的守护程序,用于提供监控和与外部监控及管理系统对接。自 Luminous 版本(12.x)以来,任何 Ceph 集群都必须包含一个正在运行的 ceph-mgr 守护程序才能正常工作。
- Ceph Manager Dashboard(Ceph 管理器仪表板)
- Ceph Metadata Server(Ceph 元数据服务器)
请参阅 MDS。
- Ceph Monitor(Ceph 监视器)
维护集群状态图的守护程序。这种“集群状态”包括监视器图、管理器图、OSD 图和 CRUSH 图。一个 Ceph 集群必须包含至少三个正在运行的监视器才能具有冗余性和高可用性。Ceph 监视器及其运行的节点通常被称为“mon”。请参阅 Monitor Config Reference(监视器配置参考)。
- Ceph Node(Ceph 节点)
Ceph 节点是 Ceph 集群中的一个单元,它与其他 Ceph 集群中的节点通信以复制和重新分配数据。所有节点共同称为 Ceph Storage Cluster(Ceph 存储集群)。Ceph 节点包括 OSD、Ceph Monitor(Ceph 监视器)、Ceph Manager(Ceph 管理器)和 MDS。在 Ceph 文档中,“node”(节点)一词通常等同于“host”(主机)。如果有一个正在运行的 Ceph 集群,可以通过运行命令
ceph node ls all来列出其中的所有节点。- Ceph Object Gateway(Ceph 对象网关)
一个构建在 librados 之上的对象存储接口。Ceph Object Gateway 在应用程序和 Ceph 存储集群之间提供 RESTful 网关。
- Ceph Object Storage(Ceph 对象存储)
- Ceph Object Store(Ceph 对象存储库)
Ceph 对象存储库由一个 Ceph Storage Cluster(Ceph 存储集群) 和一个 Ceph Object Gateway(Ceph 对象网关) (RGW) 组成。
- Ceph OSD
Ceph Object Storage Daemon(Ceph 对象存储守护程序)。与逻辑磁盘(OSD)交互的 Ceph OSD 软件。大约在 2013 年,"研究和行业"(Sage 原话)曾试图坚持使用术语“OSD”仅指“Object Storage Device”(对象存储设备),但 Ceph 社区一直坚持使用该术语指代“Object Storage Daemon”(对象存储守护程序),而且 Sage Weil 本人在 2022 年 11 月也证实了“Daemon for how Ceph is built is more accurate”(私下通信,Zac Dover 和 Sage Weil,2022 年 11 月 7 日)。
- Ceph OSD Daemon(Ceph OSD 守护程序)
请参阅 Ceph OSD。
- Ceph OSD Daemons(Ceph OSD 守护程序们)
请参阅 Ceph OSD。
- Ceph Platform(Ceph 平台)
所有 Ceph 软件,包括托管在 https://github.com/ceph 上的任何代码片段。
- Ceph Point Release(Ceph 小版本)
请参阅 Releases(版本)。
- Ceph Project(Ceph 项目)
Ceph 的人员、软件、使命和基础设施的统称。
- Ceph Release(Ceph 版本)
请参阅 Releases(版本)。
- Ceph Release Candidate(Ceph 候选版本)
请参阅 Releases(版本)。
- Ceph Stable Release(Ceph 稳定版本)
请参阅 Releases(版本)。
- Ceph Stack(Ceph 栈)
两个或更多 Ceph 组件的集合。
- Ceph Storage Cluster(Ceph 存储集群)
Ceph Monitor(Ceph 监视器)、Ceph Manager(Ceph 管理器)、Ceph Metadata Server(Ceph 元数据服务器)和 OSD 的集合,它们协同工作,为应用程序、Ceph 用户和 Ceph Client(Ceph 客户端)存储和复制数据。Ceph 存储集群接收来自 Ceph Client(Ceph 客户端)的数据。
- CephX
Ceph 认证协议。CephX 对用户和守护程序进行认证。CephX 的操作类似于 Kerberos,但没有单点故障。请参阅架构文档的高可用性认证部分和 CephX 配置参考。
- Client(客户端)
客户端是使用 Ceph 集群存储和复制数据的任何外部程序。
- Cloud Platforms(云平台)
- Cloud Stacks(云栈)
第三方云配置平台,例如 OpenStack、CloudStack、OpenNebula 和 Proxmox VE。
- Cluster Map(集群图)
由监视器图、OSD 图、PG 图、MDS 图和 CRUSH 图组成的一组图,它们共同报告 Ceph 集群的状态。有关详细信息,请参阅 架构文档的“集群图”部分。
- Crimson(深红色)
下一代 OSD 架构,旨在减少由跨核通信引起的延迟成本。OSD 的重新设计通过减少数据路径中分片之间的通信来减少锁竞争。Crimson 通过消除对线程池的依赖来提高经典 Ceph OSD 的性能。请参阅 Crimson: Next-generation Ceph OSD for Multi-core Scalability。请参阅 Crimson developer documentation(Crimson 开发人员文档)。
- CRUSH
Controlled Replication Under Scalable Hashing(可扩展哈希控制的复制)。Ceph 用于计算对象存储位置的算法。请参阅 CRUSH: Controlled, Scalable, Decentralized Placement of Replicated Data。
- CRUSH rule(CRUSH 规则)
适用于特定池或池的 CRUSH 数据放置规则。
- DAS
Direct-Attached Storage(直连存储)。直接连接到访问它的计算机的存储,不通过网络。与 NAS 和 SAN 形成对比。
- Dashboard(仪表板)
一个内置的基于 Web 的 Ceph 管理和监控应用程序,用于管理集群的各个方面和对象。仪表板作为 Ceph Manager 模块实现。有关详细信息,请参阅 Ceph Dashboard(Ceph 仪表板)。
- Dashboard Module(仪表板模块)
另一个名称,指 Dashboard(仪表板)。
- Dashboard Plugin(仪表板插件)
仪表板插件是 Mimic 时代的一个 Web 应用程序,它使用 Ceph Manager 托管的 Web 服务器来可视化有关 Ceph 集群的信息和统计数据。
- DC
Data Center(数据中心)。
- Flapping OSD(OSD 抖动)
一个反复被标记为
up,然后又迅速被标记为down的 OSD。请参阅 Flapping OSDs(抖动的 OSD)。- FQDN
Fully Qualified Domain Name(完全限定域名)。应用于网络中节点的域名,用于指定该节点在 DNS 树层次结构中的确切位置。
在 Ceph 集群管理环境中,FQDN 通常应用于主机。在本文档中,“FQDN”一词主要用于区分 FQDN 和相对简单的主机名,后者不指定主机在 DNS 树层次结构中的确切位置,而只是命名主机。
- Host(主机)
Ceph 集群中的任何单台机器或服务器。请参阅 Ceph Node(Ceph 节点)。
- Hybrid OSD(混合 OSD)
指同时具有 HDD 和 SSD 驱动器的 OSD。
- librados
一个可用于创建 Ceph 存储集群自定义接口的 API。
librados使与 Ceph Monitors 和 OSD 交互成为可能。请参阅 Introduction to librados(librados 简介)。请参阅 librados (Python)。Logical Volume Manager tags(逻辑卷管理器标签)。LVM 卷和组的可扩展元数据。它们用于存储有关设备及其与 OSD 关系的信息。
- MDS
Ceph MetaData Server daemon(Ceph 元数据服务器守护程序)。也称为“ceph-mds”。在运行 CephFS 文件系统的任何 Ceph 集群中,Ceph 元数据服务器守护程序必须正在运行。MDS 存储所有文件系统元数据。Client(客户端)与单个 MDS 或一组 MDS 协同工作,以维护 CephFS 所需的分布式元数据缓存。
- MGR
Ceph 管理器软件,它将整个集群的所有状态收集到一个地方。
- MON
Ceph 监视器软件。
- Monitor Store(监视器存储)
监视器使用的持久存储。这包括监视器的 RocksDB 以及
/var/lib/ceph中所有相关文件。- Node(节点)
请参阅 Ceph Node(Ceph 节点)。
- Object Storage(对象存储)
对象存储是与 Ceph 相关的三种存储类型之一。另外两种与 Ceph 相关的存储类型是文件存储和块存储。对象存储是 Ceph 最基础的存储类别。
- Object Storage Device(对象存储设备)
请参阅 OSD。
- omap
“object map”(对象映射)。一个键值存储(数据库),用于减少从 Ceph 集群读取数据和写入数据所需的时间。RGW 桶索引存储为 omaps。纠删码池无法存储 RADOS omap 数据结构。
运行命令
ceph osd df查看每个 OSD 上 omaps 使用的存储空间。请参阅 Eleanor Cawthon 2012 年的论文 A Distributed Key-Value Store using Ceph(17 页)。
- OpenStack Swift
在 Ceph 的上下文中,OpenStack Swift 是 Ceph Object Store 支持的两个 API 之一。Ceph Object Store 支持的另一个 API 是 S3。
- OSD
可能是 Ceph OSD,但不一定。有时(特别是在较早的通信中,尤其是在非专门为 Ceph 编写的文档中),“OSD”指的是“Object Storage Device”(对象存储设备),它指的是物理或逻辑存储单元(例如:LUN)。尽管在 2010 年代中期有行业推动坚持“OSD”应指“Object Storage Device”,但 Ceph 社区一直使用术语“OSD”来指代 Ceph OSD Daemon(Ceph OSD 守护程序),因此了解 intended meaning( intended meaning)非常重要。
- OSD, flapping(OSD 抖动)
请参阅 Flapping OSD(OSD 抖动)。
- OSD FSID
OSD fsid 是用于标识 OSD 的唯一标识符。它位于 OSD 路径中名为
osd_fsid的文件中。术语FSID与UUID可互换使用。- OSD ID
OSD id 是每个 OSD 唯一的整数(每个 OSD 都有一个唯一的 OSD ID)。每个 OSD id 由监视器在创建其关联 OSD 期间生成。
- OSD UUID
OSD UUID 是 OSD 的唯一标识符。此术语与
FSID可互换使用。- Period(周期)
在 RGW 的上下文中,周期是 Realm(域)的配置状态。周期存储多站点配置的配置状态。当周期更新时,据说“epoch”(纪元)也随之改变。
- Placement Groups (PGs)(放置组)
放置组 (PG) 是每个逻辑 Ceph 池的子集。放置组执行将对象(作为一个组)放置到 OSD 中的功能。Ceph 在内部以放置组粒度管理数据:这比管理单个(因此数量更多)RADOS 对象扩展性更好。一个拥有更多放置组(例如,每个 OSD 100 个)的集群比一个具有较少放置组的相同集群平衡性更好。
Ceph 的内部 RADOS 对象每个都映射到一个特定的放置组,并且每个放置组只属于一个 Ceph 池。
- PLP
Power Loss Protection(掉电保护)。一种通过使用电容器延长将数据从 DRAM 缓存传输到 SSD 永久内存所需时间来保护固态硬盘数据的技术。消费级 SSD 很少配备 PLP。
- Pool(池)
池是用于存储对象的逻辑分区。
- Pools(池)
请参阅 pool(池)。
- Primary Affinity(主亲和力)
OSD 的特性,决定了给定 OSD 被选为 acting set 中的 primary OSD(或“lead OSD”)的可能性。Primary affinity 在 Firefly (v. 0.80) 中引入。请参阅 Primary Affinity(主亲和力)。
- Prometheus
一个开源的监控和警报工具包。Ceph 提供了一个 “Prometheus module”(Prometheus 模块),它提供了一个 Prometheus 导出器,将性能计数器从
ceph-mgr中的收集点传递给 Prometheus。- Quorum(法定人数)
法定人数是集群中大多数 Monitors(监视器)处于
up状态时存在的状态。集群中必须至少存在三个 Monitors(监视器),才能使法定人数成为可能。- RADOS
Reliable Autonomic Distributed Object Store(可靠自主分布式对象存储)。RADOS 是一个对象存储,为可变大小的对象提供可扩展的服务。RADOS 对象存储是 Ceph 集群的核心组件。这篇 2009 年的博客文章提供了 RADOS 的初学者介绍。有兴趣深入了解 RADOS 的读者可以参考 RADOS: A Scalable, Reliable Storage Service for Petabyte-scale Storage Clusters。
- RADOS Cluster(RADOS 集群)
Ceph 集群的真子集,由 OSD、Ceph Monitor(Ceph 监视器)和 Ceph Manager(Ceph 管理器)组成。
- RADOS Gateway(RADOS 网关)
请参阅 RGW。
- RBD
RADOS Block Device(RADOS 块设备)。请参阅 Ceph Block Device(Ceph 块设备)。
- Realm(域)
在 RADOS Gateway (RGW) 的上下文中,域是一个全局唯一的命名空间,由一个或多个 zonegroups 组成。
- Releases(版本)
- Ceph Interim Release(Ceph 临时版本)
尚未经过质量保证测试的 Ceph 版本。可能包含新功能。
- Ceph Point Release(Ceph 小版本)
任何只包含错误修复和安全修复的临时版本。
- Ceph Release(Ceph 版本)
任何不同的编号 Ceph 版本。
- Ceph Release Candidate(Ceph 候选版本)
已完成初始质量保证测试并准备好供 beta 测试人员使用的主版本。
- Ceph Stable Release(Ceph 稳定版本)
已成功通过所有先行临时版本功能的质量保证测试的主版本。
- Reliable Autonomic Distributed Object Store(可靠自主分布式对象存储)
存储用户数据的核心存储软件集(MON+OSD)。另请参阅 RADOS。
- RGW
RADOS Gateway(RADOS 网关)。
也称为“Ceph Object Gateway”。Ceph 的组件,提供 Amazon S3 RESTful API 和 OpenStack Swift API 的网关。
- S3
在 Ceph 的上下文中,S3 是 Ceph Object Store 支持的两个 API 之一。Ceph Object Store 支持的另一个 API 是 OpenStack Swift。
请参阅 Amazon S3 概述页面。
- scrubs(擦洗)
Ceph 确保数据完整性的过程。在擦洗过程中,Ceph 生成放置组中所有对象的目录,然后通过将每个主对象与其副本(存储在其他 OSD 上)进行比较,确保没有对象丢失或不匹配。任何被确定为具有与副本不同或完全丢失的对象副本的 PG 都被标记为“不一致”(即 PG 被标记为“inconsistent”)。
有两种擦洗:轻度擦洗(light scrubbing)和深度擦洗(deep scrubbing)(也分别称为“shallow scrubbing”和“deep scrubbing”)。轻度擦洗每天执行,只确认给定对象存在且其元数据正确。深度擦洗每周执行,读取数据并使用校验和确保数据完整性。
请参阅 RADOS OSD Configuration Reference Guide 中的 Scrubbing(擦洗) 和 Mastering Ceph, second edition(Fisk, Nick. 2019)第 141 页。
- secrets(密钥)
密钥是用于在特权用户必须访问需要认证的系统时执行数字认证的凭证。密钥可以是密码、API 密钥、令牌、SSH 密钥、私有证书或加密密钥。
- SDS
Software-defined Storage(软件定义存储)。
- systemd oneshot
systemd
type,其中在ExecStart中定义了一个命令,该命令将在完成后退出(不打算守护化)。- Swift
请参阅 OpenStack Swift。
- Teuthology
对 Ceph 执行脚本化测试的软件集合。
- User(用户)
使用 Ceph 客户端与 Ceph Storage Cluster(Ceph 存储集群)交互的个人或系统角色(例如,应用程序)。请参阅 User(用户)和 User Management(用户管理)。
- Zone(区域)
在 RGW 的上下文中,区域是一个逻辑组,由一个或多个 RGW 实例组成。区域的配置状态存储在 period(周期)中。请参阅 Zones(区域)。