注意

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

开发者指南(快速)

本指南将介绍如何构建和测试 Ceph 以进行开发。

开发

run-make-check.sh 脚本将安装 Ceph 依赖项,以调试模式编译所有内容并运行多项测试以验证结果是否按预期运行。

./run-make-check.sh

或者,如果您想处理 Ceph 的特定组件,请安装依赖项并使用所需的 cmake 标志以调试模式构建 Ceph。

示例

./install-deps.sh
./do_cmake.sh -DWITH_MANPAGE=OFF -DWITH_BABELTRACE=OFF -DWITH_MGR_DASHBOARD_FRONTEND=OFF

您还可以关闭与您的开发不相关的一些核心组件的构建

./do_cmake.sh ... -DWITH_RBD=OFF -DWITH_KRBD=OFF -DWITH_RADOSGW=OFF

最后,构建 ceph

cmake --build build [--target <target>...]

如果要进行完整构建,请省略 --target...

运行开发部署

Ceph 包含一个名为 vstart.sh 的脚本(另请参阅 部署开发集群),它允许开发人员使用开发系统上的简单部署快速测试其代码。构建成功完成后,使用以下命令启动 ceph 部署

cd build
../src/vstart.sh -d -n

您还可以通过使用以下命令配置 vstart.sh 以仅使用一个监视器和一个元数据服务器

env MON=1 MDS=1 ../src/vstart.sh -d -n -x

集群的大多数日志可以在 build/out 中找到。

系统在启动时创建两个池:cephfs_data_acephfs_metadata_a。让我们获取有关当前池的一些统计信息

$ bin/ceph osd pool stats
*** DEVELOPER MODE: setting PATH, PYTHONPATH and LD_LIBRARY_PATH ***
pool cephfs_data_a id 1
  nothing is going on

pool cephfs_metadata_a id 2
  nothing is going on

$ bin/ceph osd pool stats cephfs_data_a
*** DEVELOPER MODE: setting PATH, PYTHONPATH and LD_LIBRARY_PATH ***
pool cephfs_data_a id 1
  nothing is going on

$ bin/rados df
POOL_NAME         USED OBJECTS CLONES COPIES MISSING_ON_PRIMARY UNFOUND DEGRADED RD_OPS RD WR_OPS WR
cephfs_data_a        0       0      0      0                  0       0        0      0  0      0    0
cephfs_metadata_a 2246      21      0     63                  0       0        0      0  0     42 8192

total_objects    21
total_used       244G
total_space      1180G

创建一个池并对其运行一些基准测试

bin/ceph osd pool create mypool
bin/rados -p mypool bench 10 write -b 123

将文件放入新池中

bin/rados -p mypool put objectone <somefile>
bin/rados -p mypool put objecttwo <anotherfile>

列出池中的对象

bin/rados -p mypool ls

完成后,输入以下命令停止开发 ceph 部署

../src/stop.sh

重置 vstart 环境

vstart 脚本创建包含集群状态的 out/ 和 dev/ 目录。如果您想快速重置环境,可以执行以下操作

../src/stop.sh
rm -rf out dev
env MDS=1 MON=1 OSD=3 ../src/vstart.sh -n -d

运行 RadosGW 开发环境

运行 vstart.sh 时设置 RGW 环境变量以启用 RadosGW。

cd build
RGW=1 ../src/vstart.sh -d -n -x

您现在可以使用 swift python 客户端与 RadosGW 通信。

swift -A https://:8000/auth -U test:tester -K testing list
swift -A https://:8000/auth -U test:tester -K testing upload mycontainer ceph
swift -A https://:8000/auth -U test:tester -K testing list

运行单元测试

测试位于 src/tests 中。要运行它们,请键入

(cd build && ninja check)

由 Ceph 基金会为您呈现

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