注意
本文档适用于 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_a 和 cephfs_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)