元经纪 - 元宇宙与人工智能领域相关产品与服务一站式采购平台

400-6166692

Ceph:一个可扩展的分布式存储系统

分类:开源 时间:2023-06-17 08:57 浏览:815
概述
Ceph是一个分布式的对象、块和文件存储平台,可以提供可扩展的、高性能的存储服务,并且拥有很好的容错性和数据保护能力。
内容

概述

Ceph是一个分布式的对象、块和文件存储平台,可以提供可扩展的、高性能的存储服务,并且拥有很好的容错性和数据保护能力。

检查来源

你可以从 github 克隆

git clone git@github.com:ceph/ceph

或者,如果你不是 github 用户,

git clone https://github.com/ceph/ceph.git

Ceph 包含许多需要检查的 git 子模块

git submodule update --init --recursive

构建先决条件

[hidecontent type="logged" desc="隐藏内容:登录后可查看"]

Debian 或 RPM 软件包依赖项列表可以通过以下方式安装:

./install-deps.sh

构建 Ceph

请注意,这些说明适用于为开发和测试编译代码的开发人员。要构建适合安装的二进制文件,我们建议您构建 deb 或 rpm 包或参考ceph.spec.indebian/rules查看为生产构建指定了哪些配置选项。

构建说明:

./do_cmake.sh
cd build
ninja

(do_cmake.sh 现在默认创建 ceph 的调试版本,在某些工作负载下可能会慢 5 倍。请将“-DCMAKE_BUILD_TYPE=RelWithDebInfo”传递给 do_cmake.sh 以创建非调试版本。

如果未指定,则使用的作业数ninja来自构建主机的 CPU 内核数。-j如果构建作业内存不足,请使用该选项来限制作业数量。平均而言,每个作业占用大约 2.5GiB 内存。)

这假设您将构建目录设为 ceph.git 检出的子目录。如果您将其放在其他地方,只需指向CEPH_GIT_DIR结帐的正确路径即可。可以通过在调用 do_cmake 之前设置 ARGS 来指定任何其他 CMake args。 有关详细信息,请参阅cmake 选项。例如。

ARGS="-DCMAKE_C_COMPILER=gcc-7" ./do_cmake.sh

要仅构建某些目标,请使用:

ninja [target name]

安装:

ninja install

CMake 选项

如果您cmake手动运行该命令,您可以使用“-D”设置许多选项。例如,构建 RADOS 网关的选项默认为开启。在没有 RADOS 网关的情况下构建:

cmake -DWITH_RADOSGW=OFF [path to top-level ceph directory]

下面的另一个示例是为几个外部依赖项构建调试和备用位置:

cmake -DCMAKE_INSTALL_PREFIX=/opt/ceph -DCMAKE_C_FLAGS="-Og -g3 -gdwarf-4" \
..

Ceph 有几个捆绑的依赖项,例如 Boost、RocksDB 和 Arrow。默认情况下,cmake 将从源代码构建这些捆绑的依赖项,而不是使用系统上已安装的库。你可以选择使用这些系统库,只要它们满足 Ceph 要求的最低版本,cmake 选项如下WITH_SYSTEM_BOOST

cmake -DWITH_SYSTEM_BOOST=ON [...]

要查看 -D 选项的详尽列表,您可以调用cmake

cmake -LH

如果您经常通过管道传输ninjaless希望维护错误和警告的诊断颜色(如果您的编译器支持它),您可以调用cmake

cmake -DDIAGNOSTICS_COLOR=always ...

然后您将在执行时获得诊断颜色:

ninja | less -R

“DIAGNOSTICS_COLOR”的其他可用值是“自动”(默认)和“从不”。

构建源代码压缩包

要构建包含从源构建和/或构建(deb 或 rpm)包所需的一切的完整源 tarball,运行

./make-dist

这将从 git 创建一个像 ceph-$version.tar.bz2 这样的压缩包。(确保您要包含在工作目录中的任何更改都已提交给 git。)

运行测试集群

要运行功能测试集群,

cd build
ninja vstart        # builds just enough to run vstart
../src/vstart.sh --debug --new -x --localhost --bluestore
./bin/ceph -s

几乎所有常用的命令都可以在 bin/ 目录中找到。例如,

./bin/rados -p rbd bench 30 write
./bin/rbd create foo --size 1000

要关闭测试集群,

../src/stop.sh

要启动或停止单个守护进程,可以使用 sysvinit 脚本:

./bin/init-ceph restart osd.0
./bin/init-ceph stop

运行单元测试

要构建和运行所有测试(并行使用所有处理器),请使用ctest

cd build
ninja
ctest -j$(nproc)

(注意:许多从src/testctest构建的目标不使用.ninja checkctest

发生故障时,查看 build/Testing/Temporary 中的日志。

要在 Ceph 中构建并运行所有测试及其依赖项,而无需其他不必要的目标:

cd build
ninja check -j$(nproc)

要手动运行单个测试,请ctest使用 -R(正则表达式匹配)运行:

ctest -R [regex matching test name(s)]

(注意:ctest不构建它正在运行的测试或运行它所需的依赖项)

要手动运行单个测试并查看所有测试输出,请 ctest使用 -V(详细)标志运行:

ctest -V -R [regex matching test name(s)]

要手动运行测试并并行运行作业,请ctest使用-j标志运行:

ctest -j [number of jobs]

您可以提供许多其他标志ctest以更好地控制手动测试执行。要查看这些选项运行:

man ctest

构建文档

先决条件

可以在以下位置找到用于构建文档的包依赖项列表doc_deps.deb.txt

sudo apt-get install `cat doc_deps.deb.txt`

构建文档

要构建文档,请确保您位于顶级 /ceph目录中,然后执行构建脚本。例如:

admin/build-doc

许可证

Ceph 的大部分都在 LGPL 2.1 或 3.0 版下获得双重许可。一些杂项代码在 BSD 样式许可下或属于公共领域。该文档根据 Creative Commons Attribution Share Alike 3.0 (CC-BY-SA-3.0) 获得许可。此处包含的一些标头已根据 GPL 获得许可。请参阅文件 COPYING 以获取按文件列出的完整许可证清单。

代码贡献必须包括一个有效的“签名者”,以确认修改或贡献文件的许可。请参阅文件 SubmittingPatches.rst 以了解有关这意味着什么以及如何生成和提交补丁的详细信息。

我们不需要转让版权来贡献代码;代码是根据适用许可的条款提供的。

[/hidecontent]

微信客服
返回顶部