linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Qu Wenruo <quwenruo@cn.fujitsu.com>
To: <linux-btrfs@vger.kernel.org>
Subject: [PATCH 1/2] btrfs-progs: mkfs: Warn user for minimal RAID5/6 devices setup
Date: Fri, 2 Sep 2016 09:41:44 +0800	[thread overview]
Message-ID: <20160902014145.7817-1-quwenruo@cn.fujitsu.com> (raw)

For RAID5, 2 devices setup is just RAID1 with more overhead.
For RAID6, 3 devices setup is RAID1 with 3 copies, not what most user
want.

So warn user at mkfs time for such case, and add explain in man pages.

Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
---
 Documentation/mkfs.btrfs.asciidoc | 15 +++++++++++----
 utils.c                           | 10 ++++++++--
 2 files changed, 19 insertions(+), 6 deletions(-)

diff --git a/Documentation/mkfs.btrfs.asciidoc b/Documentation/mkfs.btrfs.asciidoc
index 98fe694..846c08f 100644
--- a/Documentation/mkfs.btrfs.asciidoc
+++ b/Documentation/mkfs.btrfs.asciidoc
@@ -263,18 +263,25 @@ There are the following block group types available:
 .2+^.<h| Profile   3+^.^h| Redundancy           .2+^.<h| Min/max devices
       ^.^h| Copies   ^.^h| Parity     ^.<h| Striping
 | single  | 1            |                |            | 1/any
-| DUP     | 2 / 1 device |                |            | 1/any ^(see note)^
+| DUP     | 2 / 1 device |                |            | 1/any ^(see note1)^
 | RAID0   |              |                | 1 to N     | 2/any
 | RAID1   | 2            |                |            | 2/any
 | RAID10  | 2            |                | 1 to N     | 4/any
-| RAID5   | 1            | 1              | 2 to N - 1 | 2/any
-| RAID6   | 1            | 2              | 3 to N - 2 | 3/any
+| RAID5   | 1            | 1              | 2 to N - 1 | 2/any ^(see note2)^
+| RAID6   | 1            | 2              | 3 to N - 2 | 3/any ^(see note3)^
 |=============================================================
 
-'Note:' DUP may exist on more than 1 device if it starts on a single device and
+'Note1:' DUP may exist on more than 1 device if it starts on a single device and
 another one is added. Since version 4.5.1, *mkfs.btrfs* will let you create DUP
 on multiple devices.
 
+'Note2:' It's not recommended to use 2 devices RAID5. In that case,
+parity stripe will contains the same data of data stripe, making RAID5 degraded
+to RAID1 with more overhead.
+
+'Note3:' It's also not recommended to use 3 devices RAID6, unless one wants to
+get 3 copies RAID1, which btrfs doesn't provide yet.
+
 DUP PROFILES ON A SINGLE DEVICE
 -------------------------------
 
diff --git a/utils.c b/utils.c
index 82f3376..1d6879a 100644
--- a/utils.c
+++ b/utils.c
@@ -3314,6 +3314,7 @@ int test_num_disk_vs_raid(u64 metadata_profile, u64 data_profile,
 	u64 dev_cnt, int mixed, int ssd)
 {
 	u64 allowed = 0;
+	u64 profile = metadata_profile | data_profile;
 
 	switch (dev_cnt) {
 	default:
@@ -3328,8 +3329,7 @@ int test_num_disk_vs_raid(u64 metadata_profile, u64 data_profile,
 		allowed |= BTRFS_BLOCK_GROUP_DUP;
 	}
 
-	if (dev_cnt > 1 &&
-	    ((metadata_profile | data_profile) & BTRFS_BLOCK_GROUP_DUP)) {
+	if (dev_cnt > 1 && profile & BTRFS_BLOCK_GROUP_DUP) {
 		warning("DUP is not recommended on filesystem with multiple devices");
 	}
 	if (metadata_profile & ~allowed) {
@@ -3349,6 +3349,12 @@ int test_num_disk_vs_raid(u64 metadata_profile, u64 data_profile,
 		return 1;
 	}
 
+	if (dev_cnt == 3 && profile & BTRFS_BLOCK_GROUP_RAID6) {
+		warning("RAID6 is not recommended on filesystem with 3 devices only");
+	}
+	if (dev_cnt == 2 && profile & BTRFS_BLOCK_GROUP_RAID5) {
+		warning("RAID5 is not recommended on filesystem with 2 devices only");
+	}
 	warning_on(!mixed && (data_profile & BTRFS_BLOCK_GROUP_DUP) && ssd,
 		   "DUP may not actually lead to 2 copies on the device, see manual page");
 
-- 
2.9.3




             reply	other threads:[~2016-09-02  1:41 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-02  1:41 Qu Wenruo [this message]
2016-09-02  1:41 ` [PATCH 2/2] btrfs-progs: Doc: Add warning for build RAID btrfs on partions from the same device Qu Wenruo
2016-09-06 15:40   ` David Sterba
2016-09-02  1:59 ` [PATCH 1/2] btrfs-progs: mkfs: Warn user for minimal RAID5/6 devices setup Steven Haigh
2016-09-05 16:48   ` David Sterba
  -- strict thread matches above, loose matches on Subject: below --
2016-09-02  6:59 Wilson Meier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160902014145.7817-1-quwenruo@cn.fujitsu.com \
    --to=quwenruo@cn.fujitsu.com \
    --cc=linux-btrfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).