README.md 5.5 KB
Newer Older
XuanDai's avatar
XuanDai 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149
Ceph-可扩展的分布式存储系统
请访问http://ceph.com/了解最新信息。

贡献代码
大多数Ceph都是LGPL 2.1或3.0版双重授权的。一些其他代码已获得BSD样式的许可或属于公共领域。本文档根据知识共享署名相同方式共享3.0(CC-BY-SA-3.0)许可。这里包含了一些标头,这些标头是根据GPL许可的。请参阅文件“ COPYING”以获取按文件完整的许可证清单。

代码贡献必须包含有效的“签署人”,以确认已修改或贡献的文件的许可证。请参阅文件SubmittingPatches.rst,以获取有关其含义以及生成和提交补丁程序的详细信息。

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

签出源
您可以使用以下方法从github克隆
```
git clone git@github.com:ceph/ceph
```
或者,如果您不是github用户,
```
git clone git://github.com/ceph/ceph
```
Ceph包含许多git子模块,需要使用
```
git submodule update --init --recursive
```
构建先决条件
Debian或RPM软件包依赖关系列表可以通过以下方式安装:
```
./install-deps.sh
```
建筑Ceph
请注意,这些说明适用于正在编译代码以进行开发和测试的开发人员。要构建适合安装的二进制文件,我们建议您构建deb或rpm软件包,或参考ceph.spec.in或debian/rules查看为生产版本指定了哪些配置选项。

制作说明:
```
./do_cmake.sh
cd build
make
```
(注意:do_cmake.sh现在默认情况下创建的ceph调试版本在某些工作负载下的运行速度可能会慢5倍。请将“ -DCMAKE_BUILD_TYPE = RelWithDebInfo”传递给do_cmake.sh以创建非调试版本。)

(注意:make一个人仅会使用一个CPU线程,这可能需要一段时间。请使用该-j选项以使用更多线程。类似的东西make -j$(nproc)将是一个不错的开始。

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

ARGS="-DCMAKE_C_COMPILER=gcc-7" ./do_cmake.sh
要仅构建某些目标,请使用:
```
make [target name]
```
安装:
```
make install
```
CMake选项
如果cmake手动运行命令,则可以使用“ -D”设置许多选项。例如,用于构建RADOS网关的选项默认为ON。要在没有RADOS网关的情况下进行构建:

cmake -DWITH_RADOSGW=OFF [path to top level ceph directory]
下面的另一个示例是针对两个外部依赖项使用调试和备用位置进行构建:
```
cmake -DLEVELDB_PREFIX="/opt/hyperleveldb" \
-DCMAKE_INSTALL_PREFIX=/opt/ceph -DCMAKE_C_FLAGS="-O0 -g3 -gdwarf-4" \
..
```
要查看-D选项的详尽列表,可以cmake使用以下命令调用:
```
cmake -LH
```
如果您经常通过管道make传输less并希望维护错误和警告的诊断颜色(并且如果编译器支持),则可以cmake使用以下命令进行调用:
```
cmake -DDIAGNOSTICS_COLOR=always ..
```
然后,在执行时,您将获得诊断颜色:
```
make | less -R
“ DIAGNOSTICS_COLOR”的其他可用值是“ auto”(默认)和“ never”。
```
建立一个源码包
要构建一个完整的源tarball,其中包含从源构建和/或构建(deb或rpm)包所需的一切,请运行
```
./make-dist
```
这将从git创建一个像ceph- $ version.tar.bz2的tar包。(确保将要包含在工作目录中的所有更改都提交给git。)

运行测试集群
要运行功能测试集群,
```
cd build
make 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
make
ctest -j$(nproc)
```
(注意:许多从src / test构建的目标都不会使用ctest。以“ unittest”开头的目标可以运行make check,因此可以使用ctest。以“ ceph_test”开头的目标不能,应该手动运行。)

发生故障时,请在build / Testing / Temporary中查找日志。

要在Ceph中构建和运行所有测试及其依赖项而没有其他不必要的目标,请执行以下操作:
```
cd build
make 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
```