--- /dev/null
+html, body, table {
+ margin: 0;
+ padding: 0;
+ font-family: Verdana, sans-serif;
+ font-size: 12px;
+}
+a { text-decoration: none; }
+a:hover { text-decoration: underline; }
+#banner {
+ width: 100%;
+ margin: 0 0 10px 0;
+ padding: 0;
+ text-align: left;
+ background-color: #51657B;
+ border-bottom: 1px solid #999999;
+ font-family: Verdana, "Arial Black", Arial, sans-serif;
+ color: white;
+}
+#banner div {
+ margin: 0;
+ border-bottom: 1px solid #333333;
+}
+#banner div h1 {
+ margin: 0;
+ padding: 5px;
+ font-weight: bold;
+ font-size: 40px;
+}
+small { font-size: 10px; }
+#navcolumn {
+ vertical-align: top;
+ margin: 0;
+ padding: 0 5px 0 8px;
+}
+.navsegment {
+ padding: 0;
+ border: 1px solid #C9D2DC;
+ background-color: #EEEEEE;
+ margin-bottom: 10px;
+}
+.navsegment h4 {
+ margin: 0 0 5px 0;
+ font-family: sans-serif, Arial;
+ font-weight: bold;
+ color: #000066;
+ background-color: #C9D2DC;
+ border-top: 1px solid white;
+ border-left: 1px solid white;
+ border-bottom: 1px solid #93A4B7;
+ border-right: 0;
+ padding: 2px 0 2px 5px;
+}
+.navsegment ul {
+ list-style: none;
+ margin: 0;
+ padding: 0 1px 0 7px;
+ font-size: 12px;
+}
+.navsegment ul li {
+ white-space: nowrap;
+ padding: 0;
+ margin: 0 0 5px 0;
+}
+#maincolumn {
+ width: 100%;
+ vertical-align: top;
+ margin: 0;
+ padding: 0 8px 0 5px;
+}
+.mainsegment {
+ margin: 0 0 10px 0;
+ padding: 0;
+ border: 1px solid #93A4B7;
+}
+.mainsegment h3 {
+ margin: 0;
+ background-color: #6D859E;
+ color: white;
+ padding: 2px 1px 2px 6px;
+ font-family: sans-serif, "Trebuchet MS", Tahoma, Arial;
+ border-top: 1px solid #C9D2DC;
+ border-left: 1px solid #C9D2DC;
+ border-bottom: 1px solid #51657B;
+ border-right: 0;
+}
+.mainsegment div {
+ margin: 0;
+ padding: 10px;
+}
+.mainsegment h4 {
+ margin: 0;
+ padding: 2px 1px 2px 6px;
+ font-family: sans-serif, Arial, Tahoma;
+ background-color: #EEEEEE;
+ border-top: 1px solid white;
+ border-left: 1px solid white;
+ border-bottom: 1px solid #999999;
+ border-right: 0;
+}
+pre, .programlisting {
+ background-color: #EFEFEF;
+ border: 1px solid #CCCCCC;
+ padding: 10px;
+}
+
+/* Docbook formatting */
+h3.SECT3, h3.AUTHOR {
+ border: 0;
+ font-family: sans-serif, serif;
+ background-color: white;
+ color: black;
+ margin: 0;
+ padding: 0;
+}
+h1 a:hover, h2 a:hover, h3 a:hover {
+ color: #51657B;
+ text-decoration: none;
+}
+DD { padding-bottom: 0 }
+.synopsis {
+ background: #eeeeff;
+ border: solid 1px #aaaaff;
+ padding: 10px;
+}
+
+/* Test reporting */
+h4.file {
+ background-color: #EEEEEE;
+ border: 1px solid #999999;
+ margin-top: 20px;
+}
+h4.function {
+ background-color: transparent;
+ border: 0px;
+ margin-top: 15px;
+ font-style: italic;
+}
+table.report {width: 100%; border-width: thin; border-style: solid}
+pre.report {
+ background-color: transparent;
+ border: 0;
+ padding: 0;
+}
+td.linecount { color: #999999 }
+tr.na {color: grey}
+tr.ok {background-color: #dde244}
+tr.bad {background-color: red}
+tr.good {background-color: #4ae544}
+tr.great {background-color: green; color: white}
+tr.notexec {background-color: #e84545}
+tr.low {background-color: #dde244}
+
<h3>Overview</h3>
<div>
Write me.
+ <p>
+
+ <h4>Dynamic Distributed Metadata</h4>
+ <div>
+ </div>
+
+ <h4>CRUSH</h4>
+ <div>
+ </div>
+
+ <h4>RADOS</h4>
+ <div>
+ </div>
+
</div>
</div>
<div class="mainsegment">
- <h3>Source Code</h3>
+ <h3>Getting Started</h3>
<div>
The Ceph source code is managed with Subversion. For information on accessing the repository, please refer to the <a href="http://sourceforge.net/docs/E09">SourceForge's Subversion documentation</a>.
<p>You can <a href="http://svn.sourceforge.net/ceph">browse the repository</a>.
<p>The Ceph project is always looking for more participants. If you are interested in using Ceph, or contributing to its development, please <a href="http://lists.sourceforge.net/mailman/listinfo/ceph-devel">join our mailing list</a> and <a href="mailto:ceph-devel@lists.sourceforge.net">drop us a line</a>.
+
+ <h4>Checking out</h4>
+ <div>
+ You can check out a working copy with
+ <pre>
+svn co https://svn.sourceforge.net/svnroot/ceph
+</pre>
+ The rest works essentially the same as CVS, but with <tt>svn</tt> instead of <tt>cvs</tt>.
+ </div>
+
+ <h4>Build Targets</h4>
+ <div>
+ There are a range of binary targets, mostly for ease of development and testing:
+ <ul>
+ <li><b>fakesyn</b> -- places all logical elements (MDS, client, etc.) in a single binary, with synchronous message delivery (for easy debugging!). Includes synthetic workload generation.</li>
+ <li><b>fakefuse</b> -- same as fakesyn, but mounts a single client via FUSE.</li>
+ <li><b>newsyn</b> -- starts up all logical elements using MPI. As with fakesyn, it includes synthetic workload generation.</li>
+ <li><b>cosd</b> -- standalone OSD</li>
+ <li><b>cmon</b> -- standalone monitor</li>
+ <li><b>cmds</b> -- standalone MDS</li>
+ <li><b>cfuse</b> -- standalone client, mountable via FUSE</li>
+ </ul>
+
+ For most development, fakesyn, fakefuse, and newsyn are sufficient.
+ </div>
+
+ <h4>Runtime Environment</h4>
+ <div>
+ Few quick steps to get things started:
+
+ <ol>
+ <li>Checkout, change into the <tt>ceph/</tt> directory, and build. E.g.,
+<pre>
+svn co https://svn.sourceforge.net/svnroot/ceph
+cd ~/ceph/ceph
+make
+</pre>
+
+ <li>Create a <tt>log/</tt> dir for various runtime stats.
+<pre>
+mkdir log
+</pre>
+ <li>Identify the EBOFS block devices. This is accomplished with symlinks (or actual files) in the <tt>ebofsdev/</tt> directory. Devices can be identified by symlinks named after the hostname (e.g. <tt>googoo-1</tt>), logical OSD number (e.g. <tt>4</tt>), or simply <tt>all</tt> (in that order of preference). For example,
+<pre>
+mkdir ebofsdev
+ln -s /dev/sda3 ebofsdev/all # all nodes use /dev/sda3
+ln -s /dev/sda4 ebofsdev/0 # except osd0, which should use /dev/sd4
+</pre>
+ These need not be "real" devices--they can be regular files too. To get going with fakesyn, for example,
+<pre>
+# create small "disks" for osd0-osd3
+for f in 0 1 2 3; do # fakesyn defaults is 4 OSDs
+dd if=/dev/zero of=ebofsdev/$f bs=1048576 count=1024 # 1 GB each
+done
+</pre>
+ Note that if your home/working directory is mounted via NFS, you'll want to symlink <tt>ebofsdev/</tt> to a directory on a local disk.
+ </div>
+
+
+ <h4>Running fakesyn</h4>
+ <div>
+ A quick example, assuming you've set up "fake" EBOFS devices as above:
+<pre>
+make fakesyn && ./fakesyn --mkfs --osd_pg_bits 4 --debug_ms 1 --debug_client 3 --syn rw 1 100000
+# where those options mean:
+# --mkfs # start with a fresh file system
+# --osd_pg_bits 4 # we only need a few PGs (we don't care about load balancing)
+# --debug_ms 1 # show message delivery
+# --debug_client 3 # show limited client stuff
+# --syn rw 1 100000 # write 1GB to a file in 100,000 byte chunks, then read it back
+</pre>
+ The full set of command line arguments can be found in <tt>config.cc</tt>.
+ </div>
</div>
</div>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
- <title>Ceph - Peta-scale Distributed Storage</title>
+ <title>Ceph - Petascale Distributed Storage</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="keywords" content="ceph, distributed, storage, file system, posix, object-based storage, osd">
<meta name="description" content="The Ceph file system, a scalable open source distributed file system with POSIX semantics.">
<link rel="stylesheet" href="ceph.css" type="text/css">
</head>
<body>
- <div id="banner"><div><h1>Ceph</h1><small>Peta-scale Distributed File System</small></div></div>
+ <div id="banner"><div><h1>Ceph</h1></div></div>
<table><tr>
<td id="navcolumn">
<h4>Documentation</h4>
<ul>
<li><a href="overview.html">Overview</a></li>
- <li><a href="publications.html">Publications</a></li>
+ <li><a href="http://ssrc.cse.ucsc.edu/proj/ceph.html">Publications</a></li>
</ul>
</div>
<div class="navsegment">
<h4>Development</h4>
<ul>
- <li><a href="source.html">Source Guide</a></li>
+ <li><a href="source.html">Getting Started</a></li>
<li><a href="http://svn.sourceforge.net/ceph">Browse repository</a></li>
<li><a href="contrib.html">Contributors</a></li>
</ul>