OS Recommendations

Ceph Dependencies

As a general rule, we recommend deploying Ceph on newer releases of Linux. We also recommend deploying on releases with long-term support.

Linux Kernel

  • Ceph Kernel Client: We currently recommend:
    • NOT v3.15 (there is a deadlock regression)
    • v3.14 or later (but not v3.15)
    • v3.6.6 or later in the v3.6 stable series
    • v3.4.20 or later in the v3.4 stable series
  • btrfs: If you use the btrfs file system with Ceph, we recommend using a recent Linux kernel (v3.14 or later).

glibc

  • fdatasync(2): With Firefly v0.80 and beyond, use fdatasync(2) instead of fsync(2) to improve performance.
  • syncfs(2): For non-btrfs filesystems such as XFS and ext4 where more than one ceph-osd daemon is used on a single server, Ceph performs significantly better with the syncfs(2) system call (added in kernel 2.6.39 and glibc 2.14). New versions of Ceph (v0.55 and later) do not depend on glibc support.

Platforms

The charts below show how Ceph’s requirements map onto various Linux platforms. Generally speaking, there is very little dependence on specific distributions aside from the kernel and system initialization package (i.e., sysvinit, upstart, systemd).

Firefly (0.80)

Distro Release Code Name Kernel Notes Testing
Ubuntu 12.04 Precise Pangolin linux-3.2.0 1, 2 B, I, C
Ubuntu 14.04 Trusty Tahr linux-3.13.0   B, I, C
Debian 6.0 Squeeze linux-2.6.32 1, 2, 3 B
Debian 7.0 Wheezy linux-3.2.0 1, 2 B
CentOS 6 N/A linux-2.6.32 1, 2 B, I
RHEL 6   linux-2.6.32 1, 2 B, I, C
RHEL 7   linux-3.10.0   B, I, C
Fedora 19.0 Schrödinger’s Cat linux-3.10.0   B
Fedora 20.0 Heisenbug linux-3.14.0   B

NOTE: Ceph also supports Quantal, Raring and Saucy. However, we recommend using LTS releases.

Emperor (0.72)

Distro Release Code Name Kernel Notes Testing
Ubuntu 12.04 Precise Pangolin linux-3.2.0 1, 2 B, I, C
Ubuntu 12.10 Quantal Quetzal linux-3.5.4 2 B
Ubuntu 13.04 Raring Ringtail linux-3.8.5   B
Debian 6.0 Squeeze linux-2.6.32 1, 2, 3 B
Debian 7.0 Wheezy linux-3.2.0 1, 2 B
CentOS 6.3 N/A linux-2.6.32 1, 2 B, I
RHEL 6.3   linux-2.6.32 1, 2 B, I
Fedora 18.0 Spherical Cow linux-3.6.0   B
Fedora 19.0 Schrödinger’s Cat linux-3.10.0   B
OpenSuse 12.2 N/A linux-3.4.0 2 B

Dumpling (0.67)

Distro Release Code Name Kernel Notes Testing
Ubuntu 12.04 Precise Pangolin linux-3.2.0 1, 2 B, I, C
Ubuntu 12.10 Quantal Quetzal linux-3.5.4 2 B
Ubuntu 13.04 Raring Ringtail linux-3.8.5   B
Debian 6.0 Squeeze linux-2.6.32 1, 2, 3 B
Debian 7.0 Wheezy linux-3.2.0 1, 2 B
CentOS 6.3 N/A linux-2.6.32 1, 2 B, I
RHEL 6.3   linux-2.6.32 1, 2 B, I
Fedora 18.0 Spherical Cow linux-3.6.0   B
Fedora 19.0 Schrödinger’s Cat linux-3.10.0   B
OpenSuse 12.2 N/A linux-3.4.0 2 B

Cuttlefish (0.61)

Distro Release Code Name Kernel Notes Testing
Ubuntu 12.04 Precise Pangolin linux-3.2.0 1, 2 B, I, C
Ubuntu 12.10 Quantal Quetzal linux-3.5.4 2 B
Ubuntu 13.04 Raring Ringtail linux-3.8.5   B
Debian 6.0 Squeeze linux-2.6.32 1, 2, 3 B
Debian 7.0 Wheezy linux-3.2.0 1, 2 B
CentOS 6.3 N/A linux-2.6.32 1, 2 B, I
RHEL 6.3   linux-2.6.32 1, 2 B, I
Fedora 17.0 Beefy Miracle linux-3.3.4 1, 2 B
Fedora 18.0 Spherical Cow linux-3.6.0   B
OpenSuse 12.2 N/A linux-3.4.0 2 B

Bobtail (0.56)

Distro Release Code Name Kernel Notes Testing
Ubuntu 11.04 Natty Narwhal linux-2.6.38 1, 2, 3 B
Ubuntu 11.10 Oneric Ocelot linux-3.0.0 1, 2 B
Ubuntu 12.04 Precise Pangolin linux-3.2.0 1, 2 B, I, C
Ubuntu 12.10 Quantal Quetzal linux-3.5.4 2 B
Debian 6.0 Squeeze linux-2.6.32 1, 2, 3 B
Debian 7.0 Wheezy linux-3.2.0 1, 2 B
CentOS 6.3 N/A linux-2.6.32 1, 2 B, I
Fedora 17.0 Beefy Miracle linux-3.3.4 1, 2 B
Fedora 18.0 Spherical Cow linux-3.6.0   B
OpenSuse 12.2 N/A linux-3.4.0 2 B

Argonaut (0.48)

Distro Release Code Name Kernel Notes Testing
Ubuntu 11.04 Natty Narwhal linux-2.6.38 1, 2, 3 B
Ubuntu 11.10 Oneric Ocelot linux-3.0.0 1, 2, 3 B
Ubuntu 12.04 Precise Pangolin linux-3.2.0 1, 2 B, I, C
Ubuntu 12.10 Quantal Quetzal linux-3.5.4 2 B
Debian 6.0 Squeeze linux-2.6.32 1, 2, 3 B
Debian 7.0 Wheezy linux-3.2.0 1, 2, 3 B

Notes

  • 1: The default kernel has an older version of btrfs that we do not recommend for ceph-osd storage nodes. Upgrade to a recommended kernel or use XFS or ext4.
  • 2: The default kernel has an old Ceph client that we do not recommend for kernel client (kernel RBD or the Ceph file system). Upgrade to a recommended kernel.
  • 3: The default kernel or installed version of glibc does not support the syncfs(2) system call. Putting multiple ceph-osd daemons using XFS or ext4 on the same host will not perform as well as they could.

Testing

  • B: We continuously build all branches on this platform and exercise basic unit tests. We build release packages for this platform.
  • I: We do basic installation and functionality tests of releases on this platform.
  • C: We run a comprehensive functional, regression, and stress test suite on this platform on a continuous basis. This includes development branches, pre-release, and released code.