From ee44db4a5119c75f81c1cae9bf091d507289fa43 Mon Sep 17 00:00:00 2001 From: John Wilkins Date: Mon, 30 Apr 2012 19:03:53 -0700 Subject: [PATCH] Significant updates to introduction, getting packages, building from source, installing packages, and creating a cluster. Signed-off-by: John Wilkins Signed-off-by: Tommi Virtanen --- doc/create_cluster/building_ceph_conf.rst | 3 - doc/create_cluster/ceph_conf.rst | 172 ++++++++++++++++++ doc/create_cluster/demo-ceph.conf | 37 ++++ doc/create_cluster/deploying_ceph_conf.rst | 47 +++++ .../deploying_ceph_with_mkcephfs.rst | 19 ++ doc/create_cluster/deploying_with_chef.rst | 2 + doc/create_cluster/index.rst | 34 +++- .../mds_configuration_settings.rst | 158 ++++++++++++++++ .../mon_configuration_settings.rst | 63 +++++++ .../osd_configuration_settings.rst | 151 +++++++++++++++ doc/create_cluster/running_mkcephfs.rst | 3 - .../build_from_source/build_packages.rst | 49 ++++- .../build_from_source/build_prerequisites.rst | 15 +- .../build_from_source/building_ceph.rst | 3 + ...loning_the_ceph_source_code_repository.rst | 5 + .../downloading_a_ceph_release.rst | 2 +- doc/install/download_packages.rst | 87 +++++---- doc/install/file_system_recommendations.rst | 38 +++- doc/install/host_recommendations.rst | 86 +++++++++ doc/install/index.rst | 9 +- doc/install/installing_packages.rst | 29 +++ doc/start/quick_start.rst | 30 +-- 22 files changed, 949 insertions(+), 93 deletions(-) delete mode 100644 doc/create_cluster/building_ceph_conf.rst create mode 100644 doc/create_cluster/ceph_conf.rst create mode 100644 doc/create_cluster/demo-ceph.conf create mode 100644 doc/create_cluster/deploying_ceph_conf.rst create mode 100644 doc/create_cluster/deploying_ceph_with_mkcephfs.rst create mode 100644 doc/create_cluster/mds_configuration_settings.rst create mode 100644 doc/create_cluster/mon_configuration_settings.rst create mode 100644 doc/create_cluster/osd_configuration_settings.rst delete mode 100644 doc/create_cluster/running_mkcephfs.rst create mode 100644 doc/install/host_recommendations.rst create mode 100644 doc/install/installing_packages.rst diff --git a/doc/create_cluster/building_ceph_conf.rst b/doc/create_cluster/building_ceph_conf.rst deleted file mode 100644 index 7b3c24bf134d3..0000000000000 --- a/doc/create_cluster/building_ceph_conf.rst +++ /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 index 0000000000000..0bad48f08d3b7 --- /dev/null +++ b/doc/create_cluster/ceph_conf.rst @@ -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 index 0000000000000..06821fc3d4d35 --- /dev/null +++ b/doc/create_cluster/demo-ceph.conf @@ -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 index 0000000000000..13ca0132c9329 --- /dev/null +++ b/doc/create_cluster/deploying_ceph_conf.rst @@ -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 /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 + diff --git a/doc/create_cluster/deploying_with_chef.rst b/doc/create_cluster/deploying_with_chef.rst index e91b2f2738119..1f614142235ca 100644 --- a/doc/create_cluster/deploying_with_chef.rst +++ b/doc/create_cluster/deploying_with_chef.rst @@ -1,3 +1,5 @@ =================== Deploying with Chef =================== + +Coming Soon! \ No newline at end of file diff --git a/doc/create_cluster/index.rst b/doc/create_cluster/index.rst index c1eb251421618..278661e1392ce 100644 --- a/doc/create_cluster/index.rst +++ b/doc/create_cluster/index.rst @@ -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 ` + - :doc:`OSD Configuration Settings ` + - :doc:`Monitor Configuration Settings ` + - :doc:`Metadata Server Configuration Settings ` +- :doc:`Deploying the Ceph Configuration ` +- :doc:`Deploying Ceph with mkcephfs ` +- :doc:`Deploying Ceph with Chef (coming soon) ` .. toctree:: :hidden: - - building_ceph_conf - running_mkcephfs - deploying_with_chef \ No newline at end of file + Configuration + [osd] Settings + [mon] Settings + [mds] Settings + Deploy Config + deploying_ceph_with_mkcephfs + Chef Coming Soon! \ 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 index 0000000000000..415fbdfc945da --- /dev/null +++ b/doc/create_cluster/mds_configuration_settings.rst @@ -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 index 0000000000000..b116993523310 --- /dev/null +++ b/doc/create_cluster/mon_configuration_settings.rst @@ -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 index 0000000000000..b4e908bbf91cd --- /dev/null +++ b/doc/create_cluster/osd_configuration_settings.rst @@ -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 index 490d63d564e0f..0000000000000 --- a/doc/create_cluster/running_mkcephfs.rst +++ /dev/null @@ -1,3 +0,0 @@ -==================== -Running ``mkcephfs`` -==================== diff --git a/doc/install/build_from_source/build_packages.rst b/doc/install/build_from_source/build_packages.rst index 34c644b787c11..0c9950a0c6ccf 100644 --- a/doc/install/build_from_source/build_packages.rst +++ b/doc/install/build_from_source/build_packages.rst @@ -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 `_ 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-.tar.gz + +Build the RPM packages:: + + $ rpmbuild -tb ~/rpmbuild/SOURCES/ceph-.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 diff --git a/doc/install/build_from_source/build_prerequisites.rst b/doc/install/build_from_source/build_prerequisites.rst index a85d3ed530d64..6333436eabb04 100644 --- a/doc/install/build_from_source/build_prerequisites.rst +++ b/doc/install/build_from_source/build_prerequisites.rst @@ -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 `_ Follow the directions at `Sphinx 1.1.3 `_ -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`` diff --git a/doc/install/build_from_source/building_ceph.rst b/doc/install/build_from_source/building_ceph.rst index aec425a87d4f9..626c16946615c 100644 --- a/doc/install/build_from_source/building_ceph.rst +++ b/doc/install/build_from_source/building_ceph.rst @@ -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 =========================== diff --git a/doc/install/build_from_source/cloning_the_ceph_source_code_repository.rst b/doc/install/build_from_source/cloning_the_ceph_source_code_repository.rst index 7666b466834b1..a0f64ef6887eb 100644 --- a/doc/install/build_from_source/cloning_the_ceph_source_code_repository.rst +++ b/doc/install/build_from_source/cloning_the_ceph_source_code_repository.rst @@ -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 + diff --git a/doc/install/build_from_source/downloading_a_ceph_release.rst b/doc/install/build_from_source/downloading_a_ceph_release.rst index 5a3ce1a489087..73f8d24285c10 100644 --- a/doc/install/build_from_source/downloading_a_ceph_release.rst +++ b/doc/install/build_from_source/downloading_a_ceph_release.rst @@ -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 `_ \ No newline at end of file diff --git a/doc/install/download_packages.rst b/doc/install/download_packages.rst index 9bf6d09131156..6a0ef0ee782ee 100644 --- a/doc/install/download_packages.rst +++ b/doc/install/download_packages.rst @@ -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 `_. 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 `_. 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 `_ 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 < 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 diff --git a/doc/install/index.rst b/doc/install/index.rst index 48355472a6b1d..c5556c4929bd7 100644 --- a/doc/install/index.rst +++ b/doc/install/index.rst @@ -10,14 +10,17 @@ The following sections provide guidance for configuring a storage cluster and in 1. :doc:`Hardware Recommendations ` 2. :doc:`File System Recommendations ` -3. :doc:`Download Ceph Packages ` -4. :doc:`Building Ceph from Source ` - +3. :doc:`Host Recommendations ` +4. :doc:`Download Ceph Packages ` +5. :doc:`Building Ceph from Source ` +6. :doc:`Installing Packages ` .. toctree:: :hidden: Hardware Recs File System Recs + Host Recs Download Packages Build From Source + Install Packages diff --git a/doc/install/installing_packages.rst b/doc/install/installing_packages.rst new file mode 100644 index 0000000000000..b931728dc64a2 --- /dev/null +++ b/doc/install/installing_packages.rst @@ -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 diff --git a/doc/start/quick_start.rst b/doc/start/quick_start.rst index 882c69aa737be..48d8f17c88890 100644 --- a/doc/start/quick_start.rst +++ b/doc/start/quick_start.rst @@ -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 -- 2.39.5