]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
doc: recommend against btrfs 16044/head
authorSage Weil <sage@redhat.com>
Fri, 30 Jun 2017 17:54:18 +0000 (13:54 -0400)
committerSage Weil <sage@redhat.com>
Fri, 30 Jun 2017 17:54:18 +0000 (13:54 -0400)
Signed-off-by: Sage Weil <sage@redhat.com>
doc/dev/index.rst
doc/dev/object-store.rst
doc/dev/osd_internals/osd_throttles.rst
doc/install/manual-deployment.rst
doc/man/8/ceph-deploy.rst
doc/man/8/ceph-osd.rst
doc/rados/configuration/ceph-conf.rst
doc/rados/configuration/filesystem-recommendations.rst
doc/rados/troubleshooting/troubleshooting-osd.rst
doc/start/hardware-recommendations.rst
doc/start/os-recommendations.rst

index abefa34a2d25b4b728ba603ca94d842b8b023012..9cc3c03e06c4399268d40cab99964727c1daac54 100644 (file)
@@ -1149,7 +1149,7 @@ reduce the number of tests that are triggered. For instance::
   teuthology-suite --suite rados --subset 0/4000
 
 will run as few tests as possible. The tradeoff in this case is that
-some tests will only run on ``xfs`` and not on ``ext4`` or ``btrfs``,
+not all combinations of test variations will together,
 but no matter how small a ratio is provided in the ``--subset``,
 teuthology will still ensure that all files in the suite are in at
 least one test. Understanding the actual logic that drives this
index 8e00d197085986a207c6e00f0e20e0c273055968..355f51548329eb1b095b9411331d4647364d30e0 100644 (file)
@@ -57,6 +57,9 @@
     "PrimaryLogPG" -> "OSDMap"
 
     "ObjectStore" -> "FileStore"
+    "ObjectStore" -> "BlueStore"
+
+    "BlueStore" -> "rocksdb"
 
     "FileStore" -> "xfs"
     "FileStore" -> "btrfs"
index e1142b3f7994e8722a6f82a2bc43b3852481f8e3..6739bd9ea5ae303c88585ed761498368556fa567 100644 (file)
@@ -17,7 +17,7 @@ flushing and block in FileStore::_do_op if we have exceeded any hard
 limits until the background flusher catches up.
 
 The relevant config options are filestore_wbthrottle*.  There are
-different defaults for btrfs and xfs.  Each set has hard and soft
+different defaults for xfs and btrfs.  Each set has hard and soft
 limits on bytes (total dirty bytes), ios (total dirty ios), and
 inodes (total dirty fds).  The WBThrottle will begin flushing
 when any of these hits the soft limit and will block in throttle()
index e60c6beab2a41823be1ff76a4f473df82ba8c19d..db06fdf3a49b196a77724b8b4edcd5c39984b188 100644 (file)
@@ -323,7 +323,7 @@ on  ``node2`` and ``node3``:
 #. Prepare the OSD. ::
 
        ssh {node-name}
-       sudo ceph-disk prepare --cluster {cluster-name} --cluster-uuid {uuid} --fs-type {ext4|xfs|btrfs} {data-path} [{journal-path}]
+       sudo ceph-disk prepare --cluster {cluster-name} --cluster-uuid {uuid} {data-path} [{journal-path}]
 
    For example::
 
index 3f197504ed96813179dbdc40a584098b960400e3..ff96574dff6b290ba6ee4c3b49486dd82886a396 100644 (file)
@@ -522,7 +522,7 @@ Options
 
 .. option:: --fs-type
 
-       Filesystem to use to format disk ``(xfs, btrfs or ext4)``.
+       Filesystem to use to format disk ``(xfs, btrfs or ext4)``.  Note that support for btrfs and ext4 is no longer tested or recommended; please use xfs.
 
 .. option:: --fsid
 
index 3b89740fc2c00c7fc7befa5e7e7e9e3158268bfa..388e339d97562f1513bfa512ca8af86bf447c4d1 100644 (file)
@@ -20,7 +20,7 @@ Description
 system. It is responsible for storing objects on a local file system
 and providing access to them over the network.
 
-The datapath argument should be a directory on a btrfs file system
+The datapath argument should be a directory on a xfs file system
 where the object data resides. The journal is optional, and is only
 useful performance-wise when it resides on a different disk than
 datapath with low latency (ideally, an NVRAM device).
index a56eee880000ec32fa61f7dbf29af8e5686ba324..c5cf27cb72c5f7be743ff662e35f3e31d5eb880b 100644 (file)
@@ -383,8 +383,9 @@ use with Ceph, and mount it to the directory you just created::
        sudo mkfs -t {fstype} /dev/{disk}
        sudo mount -o user_xattr /dev/{hdd} /var/lib/ceph/osd/ceph-{osd-number}
 
-We recommend using the ``xfs`` file system or the ``btrfs`` file system when
-running :command:`mkfs`.
+We recommend using the ``xfs`` file system when running
+:command:`mkfs`.  (``btrfs`` and ``ext4`` are not recommended and no
+longer tested.)
 
 See the `OSD Config Reference`_ for additional configuration details.
 
index 6225dd379ad51238b50cabee3cdb205f3ba54148..c967d60ce0752261fb15ca3dc0ca0f5ad4025415 100644 (file)
@@ -34,16 +34,12 @@ Recommended
 
 We currently recommend ``XFS`` for production deployments.
 
-We used to recommend ``btrfs`` for testing, development, and any non-critical
-deployments becuase it has the most promising set of features.  However, we
-now plan to avoid using a kernel file system entirely with the new BlueStore
-backend.  ``btrfs`` is still supported and has a comparatively compelling
-set of features, but be mindful of its stability and support status in your
-Linux distribution.
-
 Not recommended
 ---------------
 
+We recommand *against* using ``btrfs`` due to the lack of a stable
+version to test against and frequent bugs in the ENOSPC handling.
+
 We recommend *against* using ``ext4`` due to limitations in the size
 of xattrs it can store, and the problems this causes with the way Ceph
 handles long RADOS object names.  Although these issues will generally
@@ -64,36 +60,3 @@ following configuration option::
           to use RGW or other librados clients that do not properly
           handle or politely surface any resulting ENAMETOOLONG
           errors.
-
-
-Filesystem Background Info
-==========================
-
-The ``XFS``, ``btrfs`` and ``ext4`` file systems provide numerous
-advantages in highly scaled data storage environments when `compared`_
-to ``ext3``.
-
-``XFS``, ``btrfs`` and ``ext4`` are `journaling file systems`_, which means that
-they are more robust when recovering from crashes, power outages, etc. These
-filesystems journal all of the changes they will make before performing writes.
-
-``XFS`` was developed for Silicon Graphics, and is a mature and stable
-filesystem. By contrast, ``btrfs`` is a relatively new file system that aims
-to address the long-standing wishes of system administrators working with 
-large scale data storage environments. ``btrfs`` has some unique features
-and advantages compared to other Linux filesystems. 
-
-``btrfs`` is a `copy-on-write`_ filesystem. It supports file creation
-timestamps and checksums that verify metadata integrity, so it can detect
-bad copies of data and fix them with the good copies. The copy-on-write 
-capability means that ``btrfs`` can support snapshots that are writable.
-``btrfs`` supports transparent compression and other features.
-
-``btrfs`` also incorporates multi-device management into the file system,
-which enables you to support heterogeneous disk storage infrastructure,
-data allocation policies. The community also aims to provide ``fsck``, 
-deduplication, and data encryption support in the future.
-
-.. _copy-on-write: http://en.wikipedia.org/wiki/Copy-on-write
-.. _compared: http://en.wikipedia.org/wiki/Comparison_of_file_systems
-.. _journaling file systems: http://en.wikipedia.org/wiki/Journaling_file_system
index f72c6a4adc1c5d8029194d0a456b5405b250ce3f..85e8ced6cb49f89e6f87efe883a235b4a5d0a288 100644 (file)
@@ -286,10 +286,11 @@ A storage drive should only support one OSD. Sequential read and sequential
 write throughput can bottleneck if other processes share the drive, including
 journals, operating systems, monitors, other OSDs and non-Ceph processes.
 
-Ceph acknowledges writes *after* journaling, so fast SSDs are an attractive
-option to accelerate the response time--particularly when using the ``XFS`` or
-``ext4`` filesystems. By contrast, the ``btrfs`` filesystem can write and journal
-simultaneously.
+Ceph acknowledges writes *after* journaling, so fast SSDs are an
+attractive option to accelerate the response time--particularly when
+using the ``XFS`` or ``ext4`` filesystems.  By contrast, the ``btrfs``
+filesystem can write and journal simultaneously.  (Note, however, that
+we recommend against using ``btrfs`` for production deployments.)
 
 .. note:: Partitioning a drive does not change its total throughput or
    sequential read/write limits. Running a journal in a separate partition
@@ -364,10 +365,13 @@ might not have a recent enough version of ``glibc`` to support ``syncfs(2)``.
 Filesystem Issues
 -----------------
 
-Currently, we recommend deploying clusters with XFS. The btrfs
-filesystem has many attractive features, but bugs in the filesystem may
-lead to performance issues.  We do not recommend ext4 because xattr size
-limitations break our support for long object names (needed for RGW).
+Currently, we recommend deploying clusters with XFS.
+
+We recommend against using btrfs or ext4.  The btrfs filesystem has
+many attractive features, but bugs in the filesystem may lead to
+performance issues and suprious ENOSPC errors.  We do not recommend
+ext4 because xattr size limitations break our support for long object
+names (needed for RGW).
 
 For more information, see `Filesystem Recommendations`_.
 
index 779cf8fd54db3666b33fe646d904cea53432ff1b..dda222843874093615b93adb5d16f814a297ec10 100644 (file)
@@ -52,10 +52,7 @@ Data Storage
 Plan your data storage configuration carefully. There are significant cost and
 performance tradeoffs to consider when planning for data storage. Simultaneous
 OS operations, and simultaneous request for read and write operations from
-multiple daemons against a single drive can slow performance considerably. There
-are also file system limitations to consider: btrfs is not quite stable enough
-for production, but it has the ability to journal and write data simultaneously,
-whereas XFS does not.
+multiple daemons against a single drive can slow performance considerably.
 
 .. important:: Since Ceph has to write all data to the journal before it can 
    send an ACK (for XFS at least), having the journal and OSD 
@@ -99,8 +96,7 @@ You may run multiple Ceph OSD Daemons per hard disk drive, but this will likely
 lead to resource contention and diminish the overall throughput. You may store a
 journal and object data on the same drive, but this may increase the time it
 takes to journal a write and ACK to the client. Ceph must write to the journal
-before it can ACK the write. The btrfs filesystem can write journal data and
-object data simultaneously, whereas XFS cannot.
+before it can ACK the write.
 
 Ceph best practices dictate that you should run operating systems, OSD data and
 OSD journals on separate drives.
index 65a3ba3d9976ea3ad048c7a88f2ec0c9d2cb8f8a..1aeb42dca04cddb49f593d62c1fc56153784fba6 100644 (file)
@@ -34,8 +34,8 @@ Linux Kernel
 
 - **B-tree File System (Btrfs)**
 
-  If you use the ``btrfs`` file system with Ceph, we recommend using a
-  recent Linux kernel (3.14 or later).
+  We recommand *against* using ``btrfs`` with Ceph.  However, if you
+  insist on using ``btrfs``, we recommend using a recent Linux kernel.
 
 Platforms
 =========
@@ -130,15 +130,15 @@ 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``.
+  recommend for ``ceph-osd`` storage nodes.  We recommend using ``XFS``.
 
 - **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 regularly fails in QA when the ``btrfs``
-  file system is used.  We do not recommend using ``btrfs`` for backing Ceph OSDs.
+  file system is used.  We do not recommend using ``btrfs`` for
+  backing Ceph OSDs.
 
 
 Testing