svn commit: r49066 - head/en_US.ISO8859-1/htdocs/news/status
Dru Lavigne
dru at FreeBSD.org
Fri Jul 8 02:42:46 UTC 2016
Author: dru
Date: Fri Jul 8 02:42:45 2016
New Revision: 49066
URL: https://svnweb.freebsd.org/changeset/doc/49066
Log:
Add Ceph status report submitted by wjw at digiware.nl.
Reviewed by: wblock
Sponsored by: iXsystems
Modified:
head/en_US.ISO8859-1/htdocs/news/status/report-2016-04-2016-06.xml
Modified: head/en_US.ISO8859-1/htdocs/news/status/report-2016-04-2016-06.xml
==============================================================================
--- head/en_US.ISO8859-1/htdocs/news/status/report-2016-04-2016-06.xml Fri Jul 8 00:43:59 2016 (r49065)
+++ head/en_US.ISO8859-1/htdocs/news/status/report-2016-04-2016-06.xml Fri Jul 8 02:42:45 2016 (r49066)
@@ -680,4 +680,172 @@
Microsoft
</sponsor>
</project>
+
+ <project cat='proj'>
+ <title>Ceph on FreeBSD</title>
+
+ <contact>
+ <person>
+ <name>
+ <given>Willem Jan</given>
+ <common>Withagen</common>
+ </name>
+ <email>wjw at digiware.nl</email>
+ </person>
+ </contact>
+
+ <links>
+ <url href="http://ceph.com">Ceph main site</url>
+ <url href="https://github.com/ceph/ceph">Main repository</url>
+ <url href="https://github.com/wjwithagen/ceph">My Fork </url>
+ <url href="https://github.com/ceph/ceph/pull/7573">The git PULL with all changes</url>
+ </links>
+
+ <body>
+ <p>Ceph is a distributed object store and file system designed
+ to provide excellent performance, reliability, and
+ scalability. It provides the following features:</p>
+
+ <ol>
+ <li>Object Storage: Ceph provides seamless access to objects
+ using native language bindings or <tt>radosgw</tt>, a REST
+ interface that is compatible with applications written for
+ S3 and Swift.</li>
+
+ <li>Block Storage: Ceph’s RADOS Block Device (RBD) provides
+ access to block device images that are striped and
+ replicated across the entire storage cluster.</li>
+
+ <li>File System: Ceph provides a POSIX-compliant network file
+ system that aims for high performance, large data storage,
+ and maximum compatibility with legacy applications.</li>
+ </ol>
+
+ <p>I started looking into Ceph as using HAST with CARP and
+ <tt>ggate</tt> did not meet my requirements. My primary goal
+ with Ceph is to run a storage cluster of ZFS storage nodes
+ where the clients run bhyve on RBD disks stored in Ceph.</p>
+
+ <p>The &os; build process can build most of the tools in
+ Ceph. However, the RBD-dependent items do not work since
+ &os; does not yet provide RBD support.</p>
+
+ <p>Since the last quarterly report, the following progress was
+ made:</p>
+
+ <ol>
+ <li>The changeover from using CMake to Automake results in a
+ much cleaner development environment and better test output.
+ The changes can be found in the
+ <tt>wip-wjw-freebsd-cmake</tt> branch.</li>
+
+ <li>Throttling code has been overhauled to prevent live locks.
+ These mainly occur on &os; but also manifest on Linux.</li>
+
+ <li>Fixed a few more tests. On one occasion, I was able to
+ complete the full test set without errors.</li>
+ </ol>
+
+ <p>11-CURRENT is used to compile and build test Ceph. The
+ Clang toolset needs to be at least version 3.7 as Clang 3.4
+ does not have all of the capabilities required to compile
+ everything.</p>
+
+ <p>This setup will get things running for &os;:</p>
+
+ <ul>
+ <li>
+ <p>Install <tt>bash</tt> and link it in <tt>/bin</tt>
+ (requires root privileges):</p>
+
+ <p><tt>sudo pkg install bash</tt></p>
+
+ <p><tt>sudo ln -s /usr/local/bin/bash /bin/bash</tt></p>
+ </li>
+
+ <li>
+ <p>Build Ceph:</p>
+
+ <p><tt>git clone https://github.com/wjwithagen/ceph.git</tt></p>
+
+ <p><tt>cd ceph</tt></p>
+
+ <p><tt>git checkout wip-wjw-freebsd-tests</tt></p>
+
+ <p><tt>./do_freebsd.sh</tt></p>
+ </li>
+ </ul>
+
+ <p>Parts Not Yet Included:</p>
+
+ <ul>
+ <li>RBD: Rados Block Devices are currently implemented in the
+ Linux kernel but there used to be a userspace
+ implementation. It is possible that <tt>ggated</tt> could
+ be used as a template since it provides some of the same
+ functionality and it has a userspace counterpart.</li>
+
+ <li>BlueStore: &os; and Linux have a different AIO API which
+ needs to be made compatible. There has been some
+ discussion about <tt>aio_cancel</tt> not working for all
+ device types in &os;.</li>
+
+ <li>CephFS: Cython tries to access an internal field in dirent
+ which does not compile.</li>
+
+ <li>Tests that verify the correct working of the above are
+ also excluded from the testset.</li>
+ </ul>
+
+ <p>Tests Not Yet Included:</p>
+
+ <ul>
+ <li><tt>ceph-detect-init/run-tox.sh</tt>: the current
+ implementation does not know anything about &os;
+ <tt>rc-init</tt>.</li>
+
+ <li>Tests that make use of <tt>nosestests</tt> do not really
+ work since <tt>nostests</tt> is not in <tt>/usr/bin</tt>,
+ and calling <tt>/usr/bin/env/nosetests</tt> does not work on
+ &os;.</li>
+
+ <li><tt>test/pybind/test_ceph_argparse.py</tt></li>
+
+ <li><tt>test/pybind/test_ceph_daemon.py</tt></li>
+ </ul>
+ </body>
+
+ <help>
+ <task>The current and foremost task it to get the test set to
+ complete without errors.</task>
+
+ <task>Build an automated test platform that will build
+ <tt>ceph/master</tt> on &os; and report the results back to
+ the Ceph developers. This will increase the maintainability
+ of the &os; side of things as developers are signaled that
+ they are using Linux-isms that will not compile or run on
+ &os;. Ceph has several projects that support this: Jenkins,
+ teuthology, and palpito. But even a
+ <tt>while { compile }</tt> loop that reports the build data on
+ a static webpage is a good start.</task>
+
+ <task>Run integration tests to see if the &os; daemons will work
+ with a Linux Ceph platform.</task>
+
+ <task>Get the currently excluded Python tests to work.</task>
+
+ <task>Compile and test the user space RBD (Rados Block
+ Device).</task>
+
+ <task>Investigate if an in-kernel RBD device could be developed
+ ala <tt>ggate</tt>.</task>
+
+ <task>Investigate the keystore which currently prevents the
+ building of Cephfs and some other parts.</task>
+
+ <task>Integrate the &os; <tt>/etc/rc.d</tt> init scripts in the
+ Ceph stack for testing and for running Ceph on production
+ machines.</task>
+ </help>
+ </project>
</report>
More information about the svn-doc-all
mailing list