Preflight Checklist

New in version 0.60.

Thank you for trying Ceph! We recommend setting up a ceph-deploy admin node and a 3-node Ceph Storage Cluster to explore the basics of Ceph. This Preflight Checklist will help you prepare a ceph-deploy admin node and three Ceph Nodes (or virtual machines) that will host your Ceph Storage Cluster. Before proceeding any further, see OS Recommendations to verify that you have a supported distribution and version of Linux.

In the descriptions below, Node refers to a single machine.

Ceph Deploy Setup

Add Ceph repositories to the ceph-deploy admin node. Then, install ceph-deploy.

Advanced Package Tool (APT)

For Debian and Ubuntu distributions, perform the following steps:

  1. Add the release key:

    wget -q -O- 'https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc' | sudo apt-key add -
  2. Add the Ceph packages to your repository. Replace {ceph-stable-release} with a stable Ceph release (e.g., cuttlefish, dumpling, emperor, firefly, etc.). For example:

    echo deb http://ceph.com/debian-{ceph-stable-release}/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
  3. Update your repository and install ceph-deploy:

    sudo apt-get update && sudo apt-get install ceph-deploy

Note

You can also use the EU mirror eu.ceph.com for downloading your packages. Simply replace http://ceph.com/ by http://eu.ceph.com/

Red Hat Package Manager (RPM)

For Red Hat(rhel6), CentOS (el6), and Fedora 17-19 (f17-f19) perform the following steps:

  1. Add the package to your repository. Open a text editor and create a Yellowdog Updater, Modified (YUM) entry. Use the file path /etc/yum.repos.d/ceph.repo. For example:

    sudo vim /etc/yum.repos.d/ceph.repo

    Paste the following example code. Replace {ceph-release} with the recent major release of Ceph (e.g., firefly). Replace {distro} with your Linux distribution (e.g., el6 for CentOS 6, rhel6 for Red Hat 6, fc18 or fc19 for Fedora 18 or Fedora 19, and sles11 for SLES 11). Finally, save the contents to the /etc/yum.repos.d/ceph.repo file.

    [ceph-noarch]
    name=Ceph noarch packages
    baseurl=http://ceph.com/rpm-{ceph-release}/{distro}/noarch
    enabled=1
    gpgcheck=1
    type=rpm-md
    gpgkey=https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc
  2. Update your repository and install ceph-deploy:

    sudo yum update && sudo yum install ceph-deploy

Note

Some distributions (e.g., RHEL) require you to comment out Defaults requiretty in the /etc/sudoers file for ceph-deploy to work properly. If editing, /etc/sudoers, ensure that you use sudo visudo rather than a text editor.

Note

You can also use the EU mirror eu.ceph.com for downloading your packages. Simply replace http://ceph.com/ by http://eu.ceph.com/

Ceph Node Setup

Important

Do not call ceph-deploy with sudo or run it as root if you are logged in as a different user, because it will not issue sudo commands needed on the remote host.

If you are using ceph-deploy version 1.1.3 and beyond, ceph-deploy will attempt to create the SSH key and copy it to the initial monitor nodes automatically when you create the new cluster.

Start from your ceph-deploy admin node. The admin node needs to have password-less SSH access to each Ceph Node listed below.

For example, for three monitor nodes (with hostnames node1, node2, and node3) it would look like:

ceph-deploy new node1 node2 node3

This command will create the following files in the current directory of the admin node:

  • ceph.conf
  • ceph.log
  • ceph.mon.keyring

For other Ceph Nodes in this example (and for initial monitors prior to ceph-deploy v1.1.3) perform the following steps:

  1. Create a user on each Ceph Node.

    ssh user@ceph-server
    sudo useradd -d /home/ceph -m ceph
    sudo passwd ceph
  2. Add sudo privileges for the user on each Ceph Node.

    echo "ceph ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/ceph
    sudo chmod 0440 /etc/sudoers.d/ceph
  3. Install an SSH server (if necessary) on each Ceph Node:

    sudo apt-get install openssh-server

    or:

    sudo yum install openssh-server
  4. Configure your ceph-deploy admin node with password-less SSH access to each Ceph Node. When configuring SSH access, do not use sudo or the root user. Leave the passphrase empty:

    ssh-keygen
    Generating public/private key pair.
    Enter file in which to save the key (/ceph-client/.ssh/id_rsa):
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /ceph-client/.ssh/id_rsa.
    Your public key has been saved in /ceph-client/.ssh/id_rsa.pub.
  5. Copy the key to each Ceph Node.

    ssh-copy-id ceph@node1
    ssh-copy-id ceph@node2
    ssh-copy-id ceph@node3
  6. Modify the ~/.ssh/config file of your ceph-deploy admin node so that it logs in to Ceph Nodes as the user you created (e.g., ceph).

    Host node1
       Hostname node1
       User ceph
    Host node2
       Hostname node2
       User ceph
    Host node3
       Hostname node3
       User ceph
  7. Ensure connectivity using ping with short hostnames (hostname -s). Address hostname resolution issues and firewall issues as necessary. Note: Hostnames should resolve to a network IP address, not to the loopback IP address (e.g., hostnames should resolve to an IP address other than 127.0.0.1).

Note

If you use your admin node as one of the Ceph Nodes, you must perform these steps on the admin node too.

Summary

This completes the Quick Start Preflight. Proceed to the Storage Cluster Quick Start.