Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 8 Jul 2016 02:42:45 +0000 (UTC)
From:      Dru Lavigne <dru@FreeBSD.org>
To:        doc-committers@freebsd.org, svn-doc-all@freebsd.org, svn-doc-head@freebsd.org
Subject:   svn commit: r49066 - head/en_US.ISO8859-1/htdocs/news/status
Message-ID:  <201607080242.u682gjNC055623@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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@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@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>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201607080242.u682gjNC055623>