]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Significant updates to introduction, getting packages, building from source, installi...
authorJohn Wilkins <john.wilkins@dreamhost.com>
Tue, 1 May 2012 02:03:53 +0000 (19:03 -0700)
committerTommi Virtanen <tommi.virtanen@dreamhost.com>
Wed, 2 May 2012 19:09:56 +0000 (12:09 -0700)
Signed-off-by: John Wilkins <john.wilkins@dreamhost.com>
Signed-off-by: Tommi Virtanen <tommi.virtanen@dreamhost.com>
22 files changed:
doc/create_cluster/building_ceph_conf.rst [deleted file]
doc/create_cluster/ceph_conf.rst [new file with mode: 0644]
doc/create_cluster/demo-ceph.conf [new file with mode: 0644]
doc/create_cluster/deploying_ceph_conf.rst [new file with mode: 0644]
doc/create_cluster/deploying_ceph_with_mkcephfs.rst [new file with mode: 0644]
doc/create_cluster/deploying_with_chef.rst
doc/create_cluster/index.rst
doc/create_cluster/mds_configuration_settings.rst [new file with mode: 0644]
doc/create_cluster/mon_configuration_settings.rst [new file with mode: 0644]
doc/create_cluster/osd_configuration_settings.rst [new file with mode: 0644]
doc/create_cluster/running_mkcephfs.rst [deleted file]
doc/install/build_from_source/build_packages.rst
doc/install/build_from_source/build_prerequisites.rst
doc/install/build_from_source/building_ceph.rst
doc/install/build_from_source/cloning_the_ceph_source_code_repository.rst
doc/install/build_from_source/downloading_a_ceph_release.rst
doc/install/download_packages.rst
doc/install/file_system_recommendations.rst
doc/install/host_recommendations.rst [new file with mode: 0644]
doc/install/index.rst
doc/install/installing_packages.rst [new file with mode: 0644]
doc/start/quick_start.rst

diff --git a/doc/create_cluster/building_ceph_conf.rst b/doc/create_cluster/building_ceph_conf.rst
deleted file mode 100644 (file)
index 7b3c24b..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-======================
-Building ``ceph.conf``
-======================
diff --git a/doc/create_cluster/ceph_conf.rst b/doc/create_cluster/ceph_conf.rst
new file mode 100644 (file)
index 0000000..0bad48f
--- /dev/null
@@ -0,0 +1,172 @@
+========================
+Ceph Configuration Files
+========================
+When you start the Ceph service, the initialization process activates a series of daemons that run in the background. 
+The hosts in a typical RADOS cluster run at least one of three processes or daemons: 
+
+- RADOS (``ceph-osd``)
+- Monitor (``ceph-mon``)
+- Metadata Server (``ceph-mds``)
+
+Each process or daemon looks for a ``ceph.conf`` file that provides their configuration settings. 
+The default ``ceph.conf`` locations in sequential order include: 
+
+       1. ``$CEPH_CONF`` (*i.e.,* the path following the ``$CEPH_CONF`` environment variable)
+       2. ``-c path/path``  (*i.e.,* the ``-c`` command line argument)
+       3. /etc/ceph/ceph.conf
+       4. ``~/.ceph/config``
+       5. ``./ceph.conf`` (*i.e.,* in the current working directory)
+
+The ``ceph.conf`` file provides the settings for each Ceph daemon. Once you have installed the Ceph packages on the OSD Cluster hosts, you need to create
+a ``ceph.conf`` file to configure your OSD cluster.
+
+Creating ``ceph.conf``
+----------------------
+The ``ceph.conf`` file defines:
+
+- Cluster Membership
+- Host Names
+- Paths to Hosts
+- Runtime Options
+
+You can add comments to the ``ceph.conf`` file by preceding comments with a semi-colon (;). For example::
+
+       ; <--A semi-colon precedes a comment
+       ; A comment may be anything, and always follows a semi-colon on each line. 
+       ; We recommend that you provide comments in your configuration file(s).
+
+Configuration File Basics
+~~~~~~~~~~~~~~~~~~~~~~~~~
+The ``ceph.conf`` file configures each instance of the three common processes 
+in a RADOS cluster. 
+
++-----------------+--------------+--------------+-----------------+-------------------------------------------------+
+| Setting Scope   | Process      | Setting      | Instance Naming | Description                                     |
++=================+==============+==============+=================+=================================================+
+| All Modules     |     All      | ``[global]`` | N/A             | Settings affect all instances of all daemons.   |
++-----------------+--------------+--------------+-----------------+-------------------------------------------------+
+| Groups          |    Group     | ``[group]``  | Alphanumeric    | Settings affect all instances within the group  |
++-----------------+--------------+--------------+-----------------+-------------------------------------------------+
+| RADOS           | ``ceph-osd`` |  ``[osd]``   | Numeric         | Settings affect RADOS instances only.           |
++-----------------+--------------+--------------+-----------------+-------------------------------------------------+
+| Monitor         | ``ceph-mon`` |  ``[mon]``   | Alphanumeric    | Settings affect monitor instances only.         |
++-----------------+--------------+--------------+-----------------+-------------------------------------------------+
+| Metadata Server | ``ceph-mds`` |  ``[mds]``   | Alphanumeric    | Settings affect MDS instances only.             |
++-----------------+--------------+--------------+-----------------+-------------------------------------------------+
+
+Metavariables
+~~~~~~~~~~~~~
+The configuration system supports certain 'metavariables,' which are typically used in ``[global]`` or process/daemon settings. 
+If metavariables occur inside a configuration value, Ceph expands them into a concrete value--similar to how Bash shell expansion works.
+
+There are a few different metavariables:
+
++--------------+----------------------------------------------------------------------------------------------------------+
+| Metavariable | Description                                                                                              |
++==============+==========================================================================================================+
+| ``$host``    | Expands to the host name of the current daemon.                                                          |
++--------------+----------------------------------------------------------------------------------------------------------+
+| ``$type``    | Expands to one of ``mds``, ``osd``, or ``mon``, depending on the type of the current daemon.             |
++--------------+----------------------------------------------------------------------------------------------------------+
+|  ``$id``     | Expands to the daemon identifier. For ``osd.0``, this would be ``0``; for ``mds.a``, it would be ``a``.  |
++--------------+----------------------------------------------------------------------------------------------------------+
+|  ``$num``    | Same as ``$id``.                                                                                         |
++--------------+----------------------------------------------------------------------------------------------------------+
+| ``$name``    | Expands to ``$type.$id``.                                                                                |
++--------------+----------------------------------------------------------------------------------------------------------+
+
+Global Settings
+~~~~~~~~~~~~~~~
+The Ceph configuration file supports a hierarchy of settings, where child settings inherit the settings of the parent.
+Global settings affect all instances of all processes in the cluster. Use the ``[global]`` setting for values that
+are common for all hosts in the cluster. You can override each ``[global]`` setting by: 
+
+1. Changing the setting in a particular ``[group]``.
+2. Changing the setting in a particular process type (*e.g.,* ``[osd]``, ``[mon]``, ``[mds]`` ). 
+3. Changing the setting in a particular process (*e.g.,* ``[osd.1]`` )
+
+Overriding a global setting affects all child processes, except those that you specifically override.
+
+For example::
+
+       [global]                
+               ; Enable authentication between hosts within the cluster.                       
+               auth supported = cephx
+
+Group Settings
+~~~~~~~~~~~~~~
+Group settings affect all instances of all processes in a group. Use the ``[group]`` setting for values that
+are common for all hosts in a group within the cluster. Each group must have a name. For example:: 
+
+       [group primary]
+               addr =  10.9.8.7                        
+       [group secondary]
+               addr = 6.5.4.3
+
+Process/Daemon Settings
+~~~~~~~~~~~~~~~~~~~~~~~
+You can specify settings that apply to a particular type of process. When you specify settings under ``[osd]``, ``[mon]`` or ``[mds]`` without specifying a particular instance, 
+the setting will apply to all OSDs, monitors or metadata daemons respectively.
+
+Instance Settings
+~~~~~~~~~~~~~~~~~
+You may specify settings for particular instances of an daemon. You may specify an instance by entering its type, delimited by a period (.) and
+by the instance ID. The instance ID for an OSD is always numeric, but it may be alphanumeric for monitors and metadata servers. :: 
+
+       [osd.1]
+               ; settings affect osd.1 only.
+       [mon.a1]
+               ; settings affect mon.a1 only.
+       [mds.b2]
+               ; settings affect mds.b2 only.
+
+``host`` and ``addr`` Settings
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+The `Hardware Recommendations <../install/hardware_recommendations>`_ section provides some hardware guidelines for configuring the cluster. 
+It is possible for a single host to run multiple daemons. For example, a single host with multiple disks or RAIDs may run one ``ceph-osd``
+for each disk or RAID. Additionally, a host may run both a ``ceph-mon`` and an ``ceph-osd`` daemon on the same host. Ideally, you will have 
+a host for a particular type of process. For example, one host may run ``ceph-osd`` daemons, another host may run a ``ceph-mds`` daemon, 
+and other hosts may run ``ceph-mon`` daemons.
+
+Each host has a name identified by the ``host`` setting, and a network location (i.e., domain name or IP address) identified by the ``addr`` setting.
+For example:: 
+
+       [osd.1]
+               host = hostNumber1
+               addr = 150.140.130.120:1100
+       [osd.2]
+               host = hostNumber1
+               addr = 150.140.130.120:1102
+
+
+Monitor Configuration
+~~~~~~~~~~~~~~~~~~~~~
+Ceph typically deploys with 3 monitors to ensure high availability should a monitor instance crash. An odd number of monitors (3) ensures
+that the Paxos algorithm can determine which version of the cluster map is the most accurate.
+
+.. note:: You may deploy Ceph with a single monitor, but if the instance fails, the lack of a monitor may interrupt data service availability.
+
+Ceph monitors typically listen on port ``6789``. 
+
+Example Configuration File
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+.. literalinclude:: demo-ceph.conf
+   :language: ini
+
+
+Configuration File Deployment Options
+-------------------------------------
+The most common way to deploy the ``ceph.conf`` file in a cluster is to have all hosts share the same configuration file.
+
+You may create a ``ceph.conf`` file for each host if you wish, or specify a particular ``ceph.conf`` file for a subset of hosts within the cluster. However, using per-host ``ceph.conf``
+configuration files imposes a maintenance burden as the cluster grows. In a typical deployment, an administrator creates a ``ceph.conf`` file on the Administration host and then copies that
+file to each OSD Cluster host.
+
+The current cluster deployment script, ``mkcephfs``, does not make copies of the ``ceph.conf``. You must copy the file manually. 
+
+
+
+
diff --git a/doc/create_cluster/demo-ceph.conf b/doc/create_cluster/demo-ceph.conf
new file mode 100644 (file)
index 0000000..06821fc
--- /dev/null
@@ -0,0 +1,37 @@
+[global]
+       auth supported = cephx
+       keyring = /etc/ceph/$name.keyring
+
+[mon]
+       mon data = /srv/mon.$id
+
+[mds]
+
+[osd]
+       osd data = /srv/osd.$id
+       osd journal = /srv/osd.$id.journal
+       osd journal size = 1000
+
+[mon.a]
+       host = myserver01
+       mon addr = 10.0.0.101:6789
+
+[mon.b]
+       host = myserver02
+       mon addr = 10.0.0.102:6789
+
+[mon.c]
+       host = myserver03
+       mon addr = 10.0.0.103:6789
+
+[osd.0]
+       host = myserver01
+
+[osd.1]
+       host = myserver02
+
+[osd.2]
+       host = myserver03
+
+[mds.a]
+       host = myserver01
\ No newline at end of file
diff --git a/doc/create_cluster/deploying_ceph_conf.rst b/doc/create_cluster/deploying_ceph_conf.rst
new file mode 100644 (file)
index 0000000..13ca013
--- /dev/null
@@ -0,0 +1,47 @@
+============================
+Deploying Ceph Configuration
+============================
+Ceph's current deployment script does not copy the configuration file you created from the Administration host
+to the OSD Cluster hosts. Copy the configuration file you created (*i.e.,* ``mycluster.conf`` in the example below) 
+from the Administration host to ``etc/ceph/ceph.conf`` on each OSD Cluster host.
+
+::
+
+       ssh myserver01 sudo tee /etc/ceph/ceph.conf <mycluster.conf
+       ssh myserver02 sudo tee /etc/ceph/ceph.conf <mycluster.conf
+       ssh myserver03 sudo tee /etc/ceph/ceph.conf <mycluster.conf
+       
+       
+The current deployment script doesn't copy the start services. Copy the ``start``
+services from the Administration host to each OSD Cluster host. ::
+
+       ssh myserver01 sudo /etc/init.d/ceph start
+       ssh myserver02 sudo /etc/init.d/ceph start
+       ssh myserver03 sudo /etc/init.d/ceph start
+       
+The current deployment script may not create the default server directories. Create
+server directories for each instance of a Ceph daemon.
+
+Using the exemplary ``ceph.conf`` file, you would perform the following: 
+
+On ``myserver01``:: 
+
+       mkdir srv/osd.0 
+       mkdir srv/mon.a
+
+On ``myserver02``::
+
+       mkdir srv/osd.1
+       mkdir srv/mon.b
+
+On ``myserver03``::    
+
+       mkdir srv/osd.2
+       mkdir srv/mon.c
+       
+On ``myserver04``::
+
+       mkdir srv/osd.3
+
+.. important:: The ``host`` variable determines which host runs each instance of a Ceph daemon.
+       
diff --git a/doc/create_cluster/deploying_ceph_with_mkcephfs.rst b/doc/create_cluster/deploying_ceph_with_mkcephfs.rst
new file mode 100644 (file)
index 0000000..6be4cee
--- /dev/null
@@ -0,0 +1,19 @@
+================================
+Deploying Ceph with ``mkcephfs``
+================================
+
+Once you have copied your Ceph Configuration to the OSD Cluster hosts, you may deploy Ceph with the ``mkcephfs`` script.
+
+.. note::  ``mkcephfs`` is a quick bootstrapping tool. It does not handle more complex operations, such as upgrades.
+
+       For production environments, you will deploy Ceph using Chef cookbooks (coming soon!). 
+       
+To run ``mkcephfs``, execute the following:: 
+
+       $ mkcephfs -a -c <path>/ceph.conf -k mycluster.keyring
+       
+The script adds an admin key to the ``mycluster.keyring``, which is analogous to a root password. Ceph should begin operating. 
+You can check on the health of your Ceph cluster with the following:: 
+
+       ceph -k mycluster.keyring -c mycluster.conf health
+
index e91b2f27381199eea965f7e76a7abf3ecca32800..1f614142235cae3dd458d4b7d463b6a327a0e68a 100644 (file)
@@ -1,3 +1,5 @@
 ===================
 Deploying with Chef
 ===================
+
+Coming Soon!
\ No newline at end of file
index c1eb2514216180529a5aa3532945a6166b3acde5..278661e1392ceec5b210f931c7161a0b33cfe55b 100644 (file)
@@ -1,13 +1,39 @@
 ==========================
 Creating a Storage Cluster
 ==========================
+Ceph can run with a cluster containing thousands of Object Storage Devices (OSDs). 
+A minimal system will have at least two OSDs for data replication. To configure OSD clusters, you must 
+provide settings in the configuration file. Ceph provides default values for many settings, which you can 
+override in the configuration file. Additionally, you can make runtime modification to the configuration 
+using command-line utilities.
 
+When Ceph starts, it activates three daemons: 
 
+- ``ceph-osd`` (mandatory)
+- ``ceph-mon`` (mandatory)
+- ``ceph-mds`` (mandatory for cephfs only)
+
+Each process, daemon or utility loads the host's configuration file. A process may have information about 
+more than one daemon instance (*i.e.,* multiple contexts). A daemon or utility only has information 
+about a single daemon instance (a single context).
+
+.. note:: Ceph can run on a single host for evaluation purposes.
+
+- :doc:`Ceph Configuration Files <ceph_conf>`
+       - :doc:`OSD Configuration Settings <osd_configuration_settings>`
+       - :doc:`Monitor Configuration Settings <mon_configuration_settings>`
+       - :doc:`Metadata Server Configuration Settings <mds_configuration_settings>`
+- :doc:`Deploying the Ceph Configuration <deploying_ceph_conf>`
+- :doc:`Deploying Ceph with mkcephfs <deploying_ceph_with_mkcephfs>`
+- :doc:`Deploying Ceph with Chef (coming soon) <deploying_with_chef>`
 
 .. toctree::
    :hidden:
 
-
-   building_ceph_conf
-   running_mkcephfs
-   deploying_with_chef
\ No newline at end of file
+   Configuration <ceph_conf>
+   [osd] Settings <osd_configuration_settings>
+   [mon] Settings <mon_configuration_settings>
+   [mds] Settings <mds_configuration_settings>
+   Deploy Config <deploying_ceph_conf>
+   deploying_ceph_with_mkcephfs
+   Chef Coming Soon! <deploying_with_chef>
\ No newline at end of file
diff --git a/doc/create_cluster/mds_configuration_settings.rst b/doc/create_cluster/mds_configuration_settings.rst
new file mode 100644 (file)
index 0000000..415fbdf
--- /dev/null
@@ -0,0 +1,158 @@
+======================================
+Metadata Server Configuration Settings
+======================================
+
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| Setting                           | Type                    | Default    | Description                                    |
++===================================+=========================+============+================================================+
+| ``mds_max_file_size``             | 64-bit Integer Unsigned | 1ULL << 40 |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_cache_size``                | 32-bit Integer          | 100000     |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_cache_mid``                 | Float                   | .7         |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_mem_max``                   | 32-bit Integer          | 1048576    | // KB                                          |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_dir_commit_ratio``          | Float                   | .5         |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_dir_max_commit_size``       | 32-bit Integer          | 90         | // MB                                          |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_decay_halflife``            | Float                   | 5          |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_beacon_interval``           | Float                   | 4          |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_beacon_grace``              | Float                   | 15         |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_blacklist_interval``        | Float                   | 24.0*60.0  | // how long to blacklist failed nodes          |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_session_timeout``           | Float                   | 60         | // cap bits and leases time out if client idle |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_session_autoclose``         | Float                   | 300        | // autoclose idle session                      |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_reconnect_timeout``         | Float                   | 45         | // secs to wait for clients during mds restart |   
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_tick_interval``             | Float                   | 5          |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_dirstat_min_interval``      | Float                   | 1          | //try to avoid propagating more often than x   |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_scatter_nudge_interval``    | Float                   | 5          | // how quickly dirstat changes propagate up    |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_client_prealloc_inos``      | 32-bit Integer          | 1000       |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_early_reply``               | Boolean                 | true       |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_use_tmap``                  | Boolean                 | true       | // use trivialmap for dir updates              |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_default_dir_hash``          | 32-bit Integer          |            | CEPH_STR_HASH_RJENKINS                         |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_log``                       | Boolean                 | true       |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_log_skip_corrupt_events``   | Boolean                 | false      |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_log_max_events``            | 32-bit Integer          | -1         |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_log_max_segments``          | 32-bit Integer          | 30         | // segment size defined by FileLayout  above   |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_log_max_expiring``          | 32-bit Integer          | 20         |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_log_eopen_size``            | 32-bit Integer          | 100        | // # open inodes per log entry                 |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_bal_sample_interval``       | Float                   | 3.0        | // every 5 seconds                             |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_bal_replicate_threshold``   | Float                   | 8000       |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_bal_unreplicate_threshold`` | Float                   | 0          |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_bal_frag``                  | Boolean                 | false      |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_bal_split_size``            | 32-bit Integer          | 10000      |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_bal_split_rd``              | Float                   | 25000      |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_bal_split_wr``              | Float                   | 10000      |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_bal_split_bits``            | 32-bit Integer          | 3          |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_bal_merge_size``            | 32-bit Integer          | 50         |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_bal_merge_rd``              | Float                   | 1000       |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_bal_merge_wr``              | Float                   | 1000       |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_bal_interval``              | 32-bit Integer          | 10         | // seconds                                     |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_bal_fragment_interval``     | 32-bit Integer          | 5          | // seconds                                     |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_bal_idle_threshold``        | Float                   | 0          |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_bal_max``                   | 32-bit Integer          | -1         |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_bal_max_until``             | 32-bit Integer          | -1         |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_bal_mode``                  | 32-bit Integer          | 0          |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_bal_min_rebalance``         | Float                   | .1         | // must be x above avg before we export        |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_bal_min_start``             | Float                   | .2         | // if we need less x. we don't do anything     |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_bal_need_min``              | Float                   | .8         | // take within this range of what we need      |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_bal_need_max``              | Float                   | 1.2        |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_bal_midchunk``              | Float                   | .3         | // any sub bigger than this taken in full      |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_bal_minchunk``              | Float                   | .001       | // never take anything smaller than this       |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_bal_target_removal_min``    | 32-bit Integer          | 5          | // min bal iters before old target is removed  |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_bal_target_removal_max``    | 32-bit Integer          | 10         | // max bal iters before old target is removed  |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_replay_interval``           | Float                   | 1.0        | // time to wait before starting replay again   |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_shutdown_check``            | 32-bit Integer          | 0          |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_thrash_exports``            | 32-bit Integer          | 0          |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_thrash_fragments``          | 32-bit Integer          | 0          |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_dump_cache_on_map``         | Boolean                 | false      |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_dump_cache_after_rejoin``   | Boolean                 | false      |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_verify_scatter``            | Boolean                 | false      |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_debug_scatterstat``         | Boolean                 | false      |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_debug_frag``                | Boolean                 | false      |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_debug_auth_pins``           | Boolean                 | false      |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_debug_subtrees``            | Boolean                 | false      |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_kill_mdstable_at``          | 32-bit Integer          | 0          |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_kill_export_at``            | 32-bit Integer          | 0          |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_kill_import_at``            | 32-bit Integer          | 0          |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_kill_link_at``              | 32-bit Integer          | 0          |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_kill_rename_at``            | 32-bit Integer          | 0          |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_wipe_sessions``             | Boolean                 | 0          |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_wipe_ino_prealloc``         | Boolean                 | 0          |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_skip_ino``                  | 32-bit Integer          | 0          |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``max_mds``                       | 32-bit Integer          | 1          |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_standby_for_name``          | String                  | ""         |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_standby_for_rank``          | 32-bit Integer          | -1         |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+| ``mds_standby_replay``            | Boolean                 | false      |                                                |
++-----------------------------------+-------------------------+------------+------------------------------------------------+
+
+
+//  make it (mds_session_timeout - mds_beacon_grace |
\ No newline at end of file
diff --git a/doc/create_cluster/mon_configuration_settings.rst b/doc/create_cluster/mon_configuration_settings.rst
new file mode 100644 (file)
index 0000000..b116993
--- /dev/null
@@ -0,0 +1,63 @@
+==============================
+Monitor Configuration Settings
+==============================
+
+
+
++-----------------------------------+----------------+---------------+-----------------------------------------------------------+
+| Setting                           | Type           | Default Value | Description                                               |
++===================================+================+===============+===========================================================+
+| ``mon data``                      | String         | ""            |                                                           |
++-----------------------------------+----------------+---------------+-----------------------------------------------------------+
+| ``mon sync fs threshold``         | 32-bit Integer | 5             | // sync when writing this many objects; 0 to disable.     |
++-----------------------------------+----------------+---------------+-----------------------------------------------------------+
+| ``mon tick interval``             | 32-bit Integer | 5             |                                                           |
++-----------------------------------+----------------+---------------+-----------------------------------------------------------+
+| ``mon subscribe interval``        | Double         | 300           |                                                           |
++-----------------------------------+----------------+---------------+-----------------------------------------------------------+
+| ``mon osd auto mark in``          | Boolean        | false         |         // mark any booting osds 'in'                     |
++-----------------------------------+----------------+---------------+-----------------------------------------------------------+
+| ``mon osd auto mark auto out in`` | Boolean        | true          | // mark booting auto-marked-out osds 'in'                 |
++-----------------------------------+----------------+---------------+-----------------------------------------------------------+
+| ``mon osd auto mark new in``      | Boolean        | true          |      // mark booting new osds 'in'                        |
++-----------------------------------+----------------+---------------+-----------------------------------------------------------+
+| ``mon osd down out interval``     | 32-bit Integer | 300           | // seconds                                                |
++-----------------------------------+----------------+---------------+-----------------------------------------------------------+
+| ``mon lease``                     | Float          | 5             |       // lease interval                                   |
++-----------------------------------+----------------+---------------+-----------------------------------------------------------+
+| ``mon lease renew interval``      | Float          | 3             | // on leader | to renew the lease                         |
++-----------------------------------+----------------+---------------+-----------------------------------------------------------+
+| ``mon lease ack timeout``         | Float          | 10.0          | // on leader | if lease isn't acked by all peons          |
++-----------------------------------+----------------+---------------+-----------------------------------------------------------+
+| ``mon clock drift allowed``       | Float          | .050          | // allowed clock drift between monitors                   |
++-----------------------------------+----------------+---------------+-----------------------------------------------------------+
+| ``mon clock drift warn backoff``  | Float          | 5             | // exponential backoff for clock drift warnings           |
++-----------------------------------+----------------+---------------+-----------------------------------------------------------+
+| ``mon accept timeout``            | Float          | 10.0          |    // on leader | if paxos update isn't accepted          |
++-----------------------------------+----------------+---------------+-----------------------------------------------------------+
+| ``mon pg create interval``        | Float          | 30.0          | // no more than every 30s                                 |
++-----------------------------------+----------------+---------------+-----------------------------------------------------------+
+| ``mon pg stuck threshold``        | 32-bit Integer | 300           | // number of seconds after which pgs can be considered    |
++-----------------------------------+----------------+---------------+-----------------------------------------------------------+
+| ``mon osd full ratio``            | Float          | .95           | // what % full makes an OSD "full"                        |
++-----------------------------------+----------------+---------------+-----------------------------------------------------------+
+| ``mon osd nearfull ratio``        | Float          | .85           | // what % full makes an OSD near full                     |
++-----------------------------------+----------------+---------------+-----------------------------------------------------------+
+| ``mon globalid prealloc``         | 32-bit Integer | 100           |   // how many globalids to prealloc                       |
++-----------------------------------+----------------+---------------+-----------------------------------------------------------+
+| ``mon osd report timeout``        | 32-bit Integer | 900           |  // grace period before declaring unresponsive OSDs dead  |
++-----------------------------------+----------------+---------------+-----------------------------------------------------------+
+| ``mon force standby active``      | Boolean        | true          | // should mons force standby-replay mds to be active      |
++-----------------------------------+----------------+---------------+-----------------------------------------------------------+
+| ``mon min osdmap epochs``         | 32-bit Integer | 500           |                                                           |
++-----------------------------------+----------------+---------------+-----------------------------------------------------------+
+| ``mon max pgmap epochs``          | 32-bit Integer | 500           |                                                           |
++-----------------------------------+----------------+---------------+-----------------------------------------------------------+
+| ``mon max log epochs``            | 32-bit Integer | 500           |                                                           |
++-----------------------------------+----------------+---------------+-----------------------------------------------------------+
+| ``mon probe timeout``             | Double         | 2.0           |                                                           |
++-----------------------------------+----------------+---------------+-----------------------------------------------------------+
+| ``mon slurp timeout``             | Double         | 10.0          |                                                           |
++-----------------------------------+----------------+---------------+-----------------------------------------------------------+
+
+inactive | unclean | or stale (see doc/control.rst under dump stuck for more info |
\ No newline at end of file
diff --git a/doc/create_cluster/osd_configuration_settings.rst b/doc/create_cluster/osd_configuration_settings.rst
new file mode 100644 (file)
index 0000000..b4e908b
--- /dev/null
@@ -0,0 +1,151 @@
+==========================
+osd Configuration Settings
+==========================
+
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| Setting                                 | Type                | Default Value         | Description                                    |
++=========================================+=====================+=======================+================================================+
+| ``osd auto upgrade tmap``               | Boolean             | True                  | Uses ``tmap`` for ``omap`` on old objects.     |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd tmapput sets users tmap``         | Boolean             | False                 | Uses ``tmap`` for debugging only.              |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd data``                            | String              | None                  |                                                |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd journal``                         | String              | None                  |                                                |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd journal size``                    | 32-bit Int          | 0                     | The size of the journal in MBs.                |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd max write size``                  | 32-bit Int          | 90                    | The size of the maximum x to write in MBs.     |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd balance reads``                   | Boolean             | False                 | Load balance reads?                            |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd shed reads``                      | 32-bit Int          | False (0)             | Forward from primary to replica.               |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd shed reads min latency``          | Double              | .01                   | The minimum local latency.                     |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd shed reads min latency diff``     | Double              | 1.5                   | Percentage difference from peer. 150% default. |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd client message size cap``         | 64-bit Int Unsigned | 500*1024L*1024L       | Client data allowed in-memory. 200MB default.  |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd stat refresh interval``           | 64-bit Int Unsigned | .5                    | The status refresh interval in seconds.        |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd pg bits``                         | 32-bit Int          | 6                     | Placement group bits per OSD.                  |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd pgp bits``                        | 32-bit Int          | 4                     | Placement group p bits per OSD?                |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd pg layout``                       | 32-bit Int          | 2                     | Placement Group bits ? per OSD?                |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd min rep``                         | 32-bit Int          | 1                     | Need a description.                            |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd max rep``                         | 32-bit Int          | 10                    | Need a description.                            |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd min raid width``                  | 32-bit Int          | 3                     | The minimum RAID width.                        |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd max raid width``                  | 32-bit Int          | 2                     | The maximum RAID width.                        |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd pool default crush rule``         | 32-bit Int          | 0                     |                                                |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd pool default size``               | 32-bit Int          | 2                     |                                                |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd pool default pg num``             | 32-bit Int          | 8                     |                                                |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd pool default pgp num``            | 32-bit Int          | 8                     |                                                |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd map cache max``                   | 32-bit Int          | 250                   |                                                |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd map message max``                 | 32-bit Int          | 100                   |  // max maps per MOSDMap message               |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd op threads``                      | 32-bit Int          | 2                     |    // 0 == no threading                        |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd disk threads``                    | 32-bit Int          | 1                     |                                                |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd recovery threads``                | 32-bit Int          | 1                     |                                                |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd recover clone overlap``           | Boolean             | false                 | // preserve clone overlap during rvry/migrat   |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd backfill scan min``               | 32-bit Int          | 64                    |                                                |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd backfill scan max``               | 32-bit Int          | 512                   |                                                |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd op thread timeout``               | 32-bit Int          | 30                    |                                                |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd backlog thread timeout``          | 32-bit Int          | 60*60*1               |                                                |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd recovery thread timeout``         | 32-bit Int          | 30                    |                                                |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd snap trim thread timeout``        | 32-bit Int          | 60*60*1               |                                                |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd scrub thread timeout``            | 32-bit Int          | 60                    |                                                |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd scrub finalize thread timeout``   | 32-bit Int          | 60*10                 |                                                |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd remove thread timeout``           | 32-bit Int          | 60*60                 |                                                |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd command thread timeout``          | 32-bit Int          | 10*60                 |                                                |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd age``                             | Float               | .8                    |                                                |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd age time``                        | 32-bit Int          | 0                     |                                                |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd heartbeat interval``              | 32-bit Int          | 1                     |                                                |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd mon heartbeat interval``          | 32-bit Int          | 30                    |  // if no peers | ping monitor                 |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd heartbeat grace``                 | 32-bit Int          | 20                    |                                                |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd mon report interval max``         | 32-bit Int          | 120                   |                                                |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd mon report interval min``         | 32-bit Int          | 5                     |  // pg stats | failures | up thru | boot.      |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd mon ack timeout``                 | 32-bit Int          | 30                    | // time out a mon if it doesn't ack stats      |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd min down reporters``              | 32-bit Int          | 1                     | // num OSDs needed to report a down OSD        |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd min down reports``                | 32-bit Int          | 3                     | // num times a down OSD must be reported       |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd default data pool replay window`` | 32-bit Int          | 45                    |                                                |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd preserve trimmed log``            | Boolean             | true                  |                                                |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd auto mark unfound lost``          | Boolean             | false                 |                                                |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd recovery delay start``            | Float               | 15                    |                                                |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd recovery max active``             | 32-bit Int          | 5                     |                                                |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd recovery max chunk``              | 64-bit Int Unsigned | 1<<20                 |  // max size of push chunk                     |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd recovery forget lost objects``    | Boolean             | false                 |   // off for now                               |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd max scrubs``                      | 32-bit Int          | 1                     |                                                |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd scrub load threshold``            | Float               | 0.5                   |                                                |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd scrub min interval``              | Float               | 300                   |                                                |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd scrub max interval``              | Float               | 60*60*24              |   // once a day                                |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd auto weight``                     | Boolean             | false                 |                                                |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd class error timeout``             | Double              | 60.0                  |  // seconds                                    |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd class timeout``                   | Double              | 60*60.0               | // seconds                                     |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd class dir``                       | String              | "/rados-classes"      | CEPH LIBDIR                                    |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd check for log corruption``        | Boolean             | false                 |                                                |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd use stale snap``                  | Boolean             | false                 |                                                |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd rollback to cluster snap``        | String              | ""                    |                                                |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd default notify timeout``          | 32-bit Int Unsigned | 30                    | // default notify timeout in seconds           |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd kill backfill at``                | 32-bit Int          | 0                     |                                                |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd min pg log entries``              | 32-bit Int Unsigned | 1000                  | // num entries to keep in pg log when trimming |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd op complaint time``               | Float               | 30                    | // how old in secs makes op complaint-worthy   |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
+| ``osd command max records``             | 32-bit Int          | 256                   |                                                |
++-----------------------------------------+---------------------+-----------------------+------------------------------------------------+
\ No newline at end of file
diff --git a/doc/create_cluster/running_mkcephfs.rst b/doc/create_cluster/running_mkcephfs.rst
deleted file mode 100644 (file)
index 490d63d..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-====================
-Running ``mkcephfs``
-====================
index 34c644b787c11498ba191974270d40469a874222..0c9950a0c6ccf8dfa161ddf54db60e4dfb0a03f0 100644 (file)
@@ -2,13 +2,50 @@
 Build Ceph Packages
 ===================
 
-You can create installation packages from the latest code using ``dpkg-buildpackage`` for Debian/Ubuntu or ``rpmbuild`` for the RPM Package Manager.
+To build packages, you must clone the `Ceph`_ repository. 
+You can create installation packages from the latest code using ``dpkg-buildpackage`` for Debian/Ubuntu 
+or ``rpmbuild`` for the RPM Package Manager.
 
-Debian
-------
+.. tip:: When building on a multi-core CPU, use the ``-j`` and the number of cores * 2. 
+   For example, use ``-j4`` for a dual-core processor to accelerate the build.
 
-To create ``.deb`` packages, ensure that you have installed the `build prerequisites <build_prerequisites>`_ and install ``debhelper``. The requirements for 
-``debhelper`` include:
 
-- ``debhelper``
+Advanced Package Tool (APT)
+---------------------------
 
+To create ``.deb`` packages for Debian/Ubuntu, ensure that you have cloned the `Ceph`_ repository, 
+installed the `build prerequisites`_ and installed ``debhelper``:: 
+
+       $ sudo apt-get install debhelper
+       
+Once you have installed debhelper, you can build the packages: 
+
+       $ sudo dpkg-buildpackage
+       
+For multi-processor CPUs use the ``-j`` option to accelerate the build.        
+       
+RPM Package Manager
+-------------------
+
+To create ``.prm`` packages, ensure that you have cloned the `Ceph`_ repository, 
+installed the `build prerequisites`_ and installed ``rpm-build`` and ``rpmdevtools``::
+
+       $ yum install rpm-build rpmdevtools
+       
+Once you have installed the tools, setup an RPM compilation environment::
+
+       $ rpmdev-setuptree
+
+Fetch the source tarball for the RPM compilation environment:: 
+
+       $ wget -P ~/rpmbuild/SOURCES/ http://ceph.newdream.net/download/ceph-<version>.tar.gz
+
+Build the RPM packages::
+
+       $ rpmbuild -tb ~/rpmbuild/SOURCES/ceph-<version>.tar.gz
+       
+For multi-processor CPUs use the ``-j`` option to accelerate the build.        
+
+
+.. _build prerequisites: ../build_prerequisites
+.. _Ceph: ../cloning_the_ceph_source_code_repository
\ No newline at end of file
index a85d3ed530d646fc6e3ec04262a370779abbaa06..6333436eabb045b7dc7b4271d534afbec707d618 100644 (file)
@@ -35,17 +35,11 @@ depend on the following:
 
 On Ubuntu, execute ``sudo apt-get install`` for each dependency that isn't installed on your host. ::
 
-       $ sudo apt-get install autotools-dev autoconf automake cdbs
-         gcc g++ git libboost-dev libedit-dev libssl-dev libtool
-         libfcgi libfcgi-dev libfuse-dev linux-kernel-headers
-         libcrypto++-dev libcrypto++ libexpat1-dev libgtkmm-2.4-dev
+       $ sudo apt-get install autotools-dev autoconf automake cdbs gcc g++ git libboost-dev libedit-dev libssl-dev libtool libfcgi libfcgi-dev libfuse-dev linux-kernel-headers libcrypto++-dev libcrypto++ libexpat1-dev libgtkmm-2.4-dev
 
 On Debian/Squeeze, execute ``aptitude install`` for each dependency that isn't installed on your host. ::
 
-       $ aptitude install autotools-dev autoconf automake cdbs
-         gcc g++ git libboost-dev libedit-dev libssl-dev libtool
-         libfcgi libfcgi-dev libfuse-dev linux-kernel-headers
-         libcrypto++-dev libcrypto++ libexpat1-dev libgtkmm-2.4-dev
+       $ aptitude install autotools-dev autoconf automake cdbs gcc g++ git libboost-dev libedit-dev libssl-dev libtool libfcgi libfcgi-dev libfuse-dev linux-kernel-headers libcrypto++-dev libcrypto++ libexpat1-dev libgtkmm-2.4-dev
 
 
 Ubuntu Requirements
@@ -61,8 +55,7 @@ Ubuntu Requirements
 
 Execute ``sudo apt-get install`` for each dependency that isn't installed on your host. ::
 
-       $ sudo apt-get install uuid-dev libkeytutils-dev libgoogle-perftools-dev
-         libatomic-ops-dev libaio-dev libgdata-common libgdata13
+       $ sudo apt-get install uuid-dev libkeytutils-dev libgoogle-perftools-dev libatomic-ops-dev libaio-dev libgdata-common libgdata13
 
 Debian
 ------
@@ -89,7 +82,7 @@ Prerequisites for Building Ceph Documentation
 Ceph utilizes Python's Sphinx documentation tool. For details on
 the Sphinx documentation tool, refer to: `Sphinx <http://sphinx.pocoo.org>`_
 Follow the directions at `Sphinx 1.1.3 <http://pypi.python.org/pypi/Sphinx>`_
-to install Sphinx. To run Sphinx, with `admin/build-doc`, at least the following are required:
+to install Sphinx. To run Sphinx, with ``admin/build-doc``, at least the following are required:
 
 - ``python-dev``
 - ``python-pip``
index aec425a87d4f977c8cdd67f8a692892e82b9e568..626c16946615c5f2d6029238ab51e05985929652 100644 (file)
@@ -20,6 +20,9 @@ You can use ``make -j`` to execute multiple jobs depending upon your system. For
 To install Ceph locally, you may also use:: 
 
        $ make install
+
+If you install Ceph locally, ``make`` will place the executables in ``usr/local/bin``. 
+You may add the ``ceph.conf`` file to the ``usr/local/bin`` directory to run an evaluation environment of Ceph from a single directory.
        
 Building Ceph Documentation
 ===========================
index 7666b466834b102cd19384e565c87814a80c609a..a0f64ef6887eb5fa30b28be570e78ff5ebc062d7 100644 (file)
@@ -60,3 +60,8 @@ Once you clone the source code and submodules, your Ceph repository will be on t
 - ``master``: The unstable development branch.
 - ``stable``: The bugfix branch.
 - ``next``: The release candidate branch.
+
+::
+
+       git checkout master
+
index 5a3ce1a48908705bfe39accfbf493c78c1193513..73f8d24285c10f9b7aaa5febdd7a54d35364e729 100644 (file)
@@ -1,6 +1,6 @@
 ==========================
 Downloading a Ceph Release
 ==========================
-As Ceph development progresses, the Ceph team releases new versions. You may download Ceph releases here:
+As Ceph development progresses, the Ceph team releases new versions of the source code. You may download source code for Ceph releases here:
 
 `Ceph Releases <http://ceph.newdream.net/download/>`_
\ No newline at end of file
index 9bf6d0913115622a49a3bfd7b5e97efcfbe342ee..6a0ef0ee782ee6c7305edb0fb03b36349491c452 100644 (file)
@@ -1,41 +1,66 @@
-====================
-Downloading Packages
-====================
+==================================
+Downloading Debian/Ubuntu Packages
+==================================
+We automatically build Debian/Ubuntu packages for any branches or tags that appear in 
+the ``ceph.git`` `repository <http://github.com/ceph/ceph>`_. If you want to build your own packages
+(e.g., for RPM), see `Build Ceph Packages <../build_from_source/build_packages>`_.
 
-We automatically build Debian and Ubuntu packages for any branches or tags that appear in 
-the ``ceph.git`` `repository <http://github.com/ceph/ceph>`_. We build packages for the following 
-architectures:
+When you download release packages, you will receive the latest package build, which may be several weeks behind the current release
+or the most recent code. It may contain bugs that have already been fixed in the most recent versions of the code. Until packages
+contain only stable code, you should carefully consider the tradeoffs of installing from a package or retrieving the latest release
+or the most current source code and building Ceph.
 
-- ``amd64`` 
-- ``i386`` 
+When you execute the following commands to install the Debian/Ubuntu Ceph packages, replace ``{ARCH}`` with the 
+architecture of your CPU (e.g., ``amd64`` or ``i386``), ``{DISTRO}`` with the code name of your operating system 
+(e.g., ``precise``, rather than the OS version number) and ``{BRANCH}`` with the version of Ceph you want to 
+run (e.g., ``master``, ``stable``, ``unstable``, ``v0.44``, etc.). 
 
-For each architecture, we build packages for the following distributions:
+Adding Release Packages to APT
+------------------------------
+We provide stable release packages for Debian/Ubuntu, which are signed signed with the ``release.asc`` key.
+Click `here <http://ceph.newdream.net/debian/dists>`_ to see the distributions and branches supported.
+To install a release package, you must first add a release key. :: 
 
-- Debian 7.0 (``wheezy``)
-- Debian 6.0 (``squeeze``)
-- Debian unstable (``sid``)
-- Ubuntu 12.04 (``precise``)
-- Ubuntu 11.10 (``oneiric``)
-- Ubuntu 11.04 (``natty``)
-- Ubuntu 10.10 (``maverick``)
+       $ wget -q -O- https://raw.github.com/ceph/ceph/master/keys/release.asc \ | sudo apt-key add -
 
-When you execute the following commands to install the Ceph packages, replace ``{ARCH}`` with the architecture of your CPU,
-``{DISTRO}`` with the code name of your operating system (e.g., ``wheezy``, rather than the version number) and 
-``{BRANCH}`` with the version of Ceph you want to run (e.g., ``master``, ``stable``, ``unstable``, ``v0.44``, etc.). ::
+For Debian/Ubuntu releases, we use the Advanced Package Tool (APT). To retrieve the release packages and updates
+and install them with ``apt``, you must add a ``ceph.list`` file to your ``apt`` configuration with the following
+path::
 
-       wget -q -O- https://raw.github.com/ceph/ceph/master/keys/autobuild.asc \
-       | sudo apt-key add -
+       etc/apt/sources.list.d/ceph.list
+       
+Open the file and add the following line::
 
-       sudo tee /etc/apt/sources.list.d/ceph.list <<EOF
-       deb http://ceph.newdream.net/debian-snapshot-{ARCH}/{BRANCH}/ {DISTRO} main
-       deb-src http://ceph.newdream.net/debian-snapshot-{ARCH}/{BRANCH}/ {DISTRO} main
-       EOF
+       deb http://ceph.newdream.net/debian/{BRANCH}/ {DISTRO} main
 
-       sudo apt-get update
-       sudo apt-get install ceph
+Remember to replace ``{BRANCH}`` with the branch you want to use and replace ``{DISTRO}`` with the Linux distribution for your host. Then,
+save the file.
 
+Adding Autobuild Packages to APT
+--------------------------------
+We provide unstable release packages for Debian/Ubuntu, which contain the latest code and bug fixes. 
+The autobuild packages are signed signed with the ``autobuild.asc`` key. To install an autobuild package, 
+you must first add an autobuild key::
+
+       wget -q -O- https://raw.github.com/ceph/ceph/master/keys/autobuild.asc \ | sudo apt-key add -
+
+For Debian/Ubuntu releases, we use the Advanced Package Tool (APT). To retrieve the autobuild packages and updates
+and install them with ``apt``, you must add a ``ceph.list`` file to your ``apt`` configuration with the following
+path::
+
+       etc/apt/sources.list.d/ceph.list
+       
+Open the file and add the following lines::
+
+       deb http://ceph.newdream.net/debian-snapshot-amd64/{BRANCH}/ {DISTRO} main
+       deb-src http://ceph.newdream.net/debian-snapshot-amd64/{BRANCH}/ {DISTRO} main
+
+Remember to replace ``{BRANCH}`` with the branch you want to use and replace ``{DISTRO}`` with the Linux distribution for your host. Then,
+save the file.
+
+Downloading Packages
+--------------------
+Once you add either release or autobuild packages for Debian/Ubuntu, you may download them with ``apt`` as follows::
+
+       sudo apt-get update
 
-When you download packages, you will receive the latest package build, which may be several weeks behind the current release
-or the most recent code. It may contain bugs that have already been fixed in the most recent versions of the code. Until packages
-contain only stable code, you should carefully consider the tradeoffs of installing from a package or retrieving the latest release
-or the most current source code and building Ceph.
\ No newline at end of file
index 21c78a44f59754897a4bab049f088d16f1ee741b..bfd1b617886c9222e554517e5f96a328cd8ff8b0 100644 (file)
@@ -1,14 +1,31 @@
-===========================
-File System Recommendations
-===========================
-Ceph OSDs depend on the Extended Attributes (XATTRS) of the underlying file system for:
+=========================================
+Hard Disk and File System Recommendations
+=========================================
+
+.. important:: Disable disk caching and asynchronous write.
+
+Ceph aims for data safety, which means that when the application receives notice that data was 
+written to the disk, that data was actually written to the disk and not still in a transient state in 
+a buffer or cache pending a lazy write to the hard disk.
+
+For data safety, you should mount your file system with caching disabled. Your file system should be
+mounted with ``sync`` and NOT ``async``. For example, your ``fstab`` file would reflect ``sync``. :: 
+
+       /dev/hda    /    xfs        sync    0   0
+
+Use ``hdparm`` to disable write caching on the hard disk:: 
+
+       $ hdparm -W 0 /dev/hda 0         
+
+       
+Ceph OSDs depend on the Extended Attributes (XATTRs) of the underlying file system for:
 
 - Internal object state
 - Snapshot metadata
 - RADOS Gateway Access Control Lists (ACLs). 
 
 Ceph OSDs rely heavily upon the stability and performance of the underlying file system. The 
-underlying file system must provide sufficient capacity for XATTRS. File system candidates for 
+underlying file system must provide sufficient capacity for XATTRs. File system candidates for 
 Ceph include B tree and B+ tree file systems such as: 
 
 - ``btrfs``
@@ -18,14 +35,17 @@ Ceph include B tree and B+ tree file systems such as:
 
    The RADOS Gateway's ACL and Ceph snapshots easily surpass the 4-kilobyte limit for XATTRs in ``ext4``, 
    causing the ``ceph-osd`` process to crash. So ``ext4`` is a poor file system choice if 
-   you intend to deploy the RADOS Gateway or use snapshots.
+   you intend to deploy the RADOS Gateway or use snapshots. Version 0.45 or newer uses ``leveldb`` to
+   bypass this limitation.
   
-.. tip:: Use `btrfs`
+.. tip:: Use ``xfs`` initially and ``btrfs`` when it is ready for production.
 
    The Ceph team believes that the best performance and stability will come from ``btrfs.`` 
    The ``btrfs`` file system has internal transactions that keep the local data set in a consistent state. 
    This makes OSDs based on ``btrfs`` simple to deploy, while providing scalability not 
    currently available from block-based file systems. The 64-kb XATTR limit for ``xfs``
    XATTRS is enough to accommodate RDB snapshot metadata and RADOS Gateway ACLs. So ``xfs`` is the second-choice 
-   file system of the Ceph team. If you only plan to use RADOS and ``rbd`` without snapshots and without 
-   ``radosgw``, the ``ext4`` file system should work just fine.
+   file system of the Ceph team in the long run, but ``xfs`` is currently more stable than ``btrfs``.  
+   If you only plan to use RADOS and ``rbd`` without snapshots and without ``radosgw``, the ``ext4`` 
+   file system should work just fine.
+
diff --git a/doc/install/host_recommendations.rst b/doc/install/host_recommendations.rst
new file mode 100644 (file)
index 0000000..bd60990
--- /dev/null
@@ -0,0 +1,86 @@
+====================
+Host Recommendations
+====================
+We recommend using a dedicated Administration host for larger deployments, particularly when you intend to build Ceph from source
+or build your own packages. 
+
+.. important:: The Administration host must have ``root`` access to OSD Cluster hosts for installation and maintenance.
+
+If you are installing Ceph on a single host for the first time to learn more about it, your local host is effectively your Administration host.
+
+Enable Extended Attributes (XATTRs)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+If you are using a file system other than ``XFS`` or ``btrfs``, you need to enable extended attributes. ::
+
+       mount -t ext4 -o user_xattr /dev/hda mount/mount_point 
+
+Install Build Prerequisites
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Install `build prerequisites`_ on your Administration host machine. If you want to 
+build install packages on each OSD Cluster host, install the `build prerequisites`_
+on each OSD Cluster host.
+
+Configure SSH
+~~~~~~~~~~~~~
+Before you can install and configure Ceph on an OSD Cluster host you need to configure SSH on 
+the Administration host and on each OSD Cluster host. 
+
+You must be able to login via SSH from your Administration host to each OSD Cluster host 
+as ``root`` using the short name to identify the OSD Cluster host. Your Administration host must be able 
+to connect to each OSD Cluster host using the OSD Cluster host's short name, not its full domain name (e.g., ``shortname`` 
+not ``shortname.domain.com``).
+
+To connect to an OSD Cluster host from your Administration host using the OSD Cluster short name only, 
+add a host configuration for the OSD Cluster host to your ``~/.ssh_config file``. You must add an entry 
+for each host in your cluster. Set the user name to ``root`` or a username with root privileges. For example:: 
+
+       Host shortname1
+               Hostname shortname1.domain.com
+               User root
+       Host shortname2
+               Hostname shortname2.domain.com
+               User root
+
+You must be able to use ``sudo`` over SSH from the Administration host on each OSD Cluster host
+without ``sudo`` prompting you for a password.
+
+If you have a public key for your root password in ``.ssh/id_rsa.pub``, you must copy the key and append it
+to the contents of the ``.ssh/authorized_keys`` file on each OSD Cluster host. Create the ``.ssh/authorized_keys``
+file if it doesn't exist. When you open an SSH connection from the Administration host to an OSD Cluster host, 
+SSH uses the private key in the home directory of the Administration host and tries to match it with a public
+key in the home directory of the OSD Cluster host. If the SSH keys match, SSH will log you in automatically. 
+If the SSH keys do not match, SSH will prompt you for a password. 
+
+To generate an SSH key pair on your Administration host, log in with ``root`` permissions, go to your ``/home`` directory and enter the following::
+
+       $ ssh-keygen
+
+Add Packages to OSD Cluster Hosts
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Add the packages you downloaded or built on the Administration host to each OSD Cluster host. Perform the same steps 
+from `Installing Debian/Ubuntu Packages`_ for each OSD Cluster host. To expedite adding 
+the ``etc/apt/sources.list.d/ceph.list`` file to each OSD Cluster host, consider using ``tee``. 
+::
+
+       $ sudo tee /etc/apt/sources.list.d/ceph.list <<EOF
+
+A prompt will appear, and you can add lines to the ``ceph.list`` file. For release packages, enter::
+
+       > deb http://ceph.newdream.net/debian/{BRANCH}/ {DISTRO} main
+       
+For snapshot packages, enter:: 
+
+       > deb http://ceph.newdream.net/debian-snapshot-amd64/{BRANCH}/ {DISTRO} main
+       > deb-src http://ceph.newdream.net/debian-snapshot-amd64/{BRANCH}/ {DISTRO} main        
+
+For packages you built on your Administration host, consider making them accessible via HTTP, and enter:: 
+
+       > deb http://{adminhostname}.domainname.com/{package directory}
+       
+Once you have added the package directories, close the file. :: 
+
+       > EOF
+
+
+.. _build prerequisites: ../build_from_source/build_prerequisites
+.. _Installing Debian/Ubuntu Packages: ../download_packages
\ No newline at end of file
index 48355472a6b1d795047178d4bd9250e3ce870eca..c5556c4929bd7170904d3fbf324c77817f400569 100644 (file)
@@ -10,14 +10,17 @@ The following sections provide guidance for configuring a storage cluster and in
 
 1. :doc:`Hardware Recommendations <hardware_recommendations>`
 2. :doc:`File System Recommendations <file_system_recommendations>`
-3. :doc:`Download Ceph Packages <download_packages>`
-4. :doc:`Building Ceph from Source <building_ceph_from_source>`
-
+3. :doc:`Host Recommendations <host_recommendations>`
+4. :doc:`Download Ceph Packages <download_packages>`
+5. :doc:`Building Ceph from Source <building_ceph_from_source>`
+6. :doc:`Installing Packages <installing_packages>`
 
 .. toctree::
    :hidden:
 
    Hardware Recs <hardware_recommendations>
    File System Recs <file_system_recommendations>
+   Host Recs <host_recommendations>
    Download Packages <download_packages>
    Build From Source <building_ceph_from_source>
+   Install Packages <installing_packages>
diff --git a/doc/install/installing_packages.rst b/doc/install/installing_packages.rst
new file mode 100644 (file)
index 0000000..b931728
--- /dev/null
@@ -0,0 +1,29 @@
+========================
+Installing Ceph Packages
+========================
+Once you have downloaded or built Ceph packages, you may install them on your Admin host and OSD Cluster hosts.
+
+
+.. important:: All hosts should be running the same package version. 
+   To ensure that you are running the same version on each host with APT, you may 
+   execute ``sudo apt-get update`` on each host before you install the packages.
+
+
+Installing Packages with APT
+----------------------------
+Once you download or build the packages and add your packages to APT 
+(see `Downloading Debian/Ubuntu Packages <../download_packages>`_), you may install them as follows::
+
+       $ sudo apt-get install ceph
+
+
+Installing Packages with RPM
+----------------------------
+Once you have built your RPM packages, you may install them as follows::
+
+       rpm -i rpmbuild/RPMS/x86_64/ceph-*.rpm
+
+
+Proceed to Creating a Cluster
+-----------------------------
+Once you have prepared your hosts and installed Ceph pages, proceed to `Creating a Storage Cluster <../../create_cluster>`_. 
\ No newline at end of file
index 882c69aa737bec635ce94bc351d17729df955a93..48d8f17c888903d109d3778faeb2c12307493719 100644 (file)
@@ -2,25 +2,11 @@
 Quick Start
 ===========
 
-Ceph is intended for large-scale deployments, but you may install Ceph on a single host. Quick start is intended for Ubuntu Linux distributions. 
-
-
-Install from a Package
-----------------------
-
-1. Login to your server
-2. Make a directory for ceph packages
-3. 
-
-
-
-
-
-
-Install from Source
--------------------
-
-
-
-
-
+Ceph is intended for large-scale deployments, but you may install Ceph on a single host. Quick start is intended for Debian/Ubuntu Linux distributions. 
+
+1. Login to your host.
+2. Make a directory for Ceph packages. *e.g.,* ``$ mkdir ceph``
+3. `Get Ceph packages <../../install/download_packages>`_ and add them to your APT configuration file.
+4. Update and Install Ceph packages. See `Downloading Debian/Ubuntu Packages <../../install/download_packages>`_ and `Installing Packages <../../install/installing_packages>`_ for details.
+5. Add a ``ceph.conf`` file. See `Ceph Configuration Files <../../create_cluster/ceph_conf>`_ for details.
+6. Run Ceph. See `Deploying Ceph with mkcephfs <../../create_cluster/deploying_ceph_with_mkcephfs>`_
\ No newline at end of file