forked from pool/mdadm
Accepting request 542977 from home:gqjiang:branches:Base:System
For fate 323171: To support clustered raid10 OBS-URL: https://build.opensuse.org/request/show/542977 OBS-URL: https://build.opensuse.org/package/show/Base:System/mdadm?expand=0&rev=152
This commit is contained in:
parent
850cf2857b
commit
108637af2d
93
0059-To-support-clustered-raid10.patch
Normal file
93
0059-To-support-clustered-raid10.patch
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
From 5339f99606f19ce1eeadebf3c0849933dc0c6fd5 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Guoqing Jiang <gqjiang@suse.com>
|
||||||
|
Date: Mon, 30 Oct 2017 17:09:51 +0800
|
||||||
|
Subject: [PATCH] To support clustered raid10
|
||||||
|
|
||||||
|
We are now considering to extend clustered raid to
|
||||||
|
support raid10. But only near layout is supported,
|
||||||
|
so make the check when create the array or switch
|
||||||
|
the bitmap from internal to clustered.
|
||||||
|
|
||||||
|
Signed-off-by: Guoqing Jiang <gqjiang@suse.com>
|
||||||
|
Signed-off-by: Jes Sorensen <jsorensen@fb.com>
|
||||||
|
---
|
||||||
|
Grow.c | 6 ++++++
|
||||||
|
mdadm.c | 9 +++++++--
|
||||||
|
mdadm.h | 1 +
|
||||||
|
util.c | 11 +++++++++++
|
||||||
|
4 files changed, 25 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/Grow.c b/Grow.c
|
||||||
|
index 0f9e89bcc5ba..80176e32c52f 100644
|
||||||
|
--- a/Grow.c
|
||||||
|
+++ b/Grow.c
|
||||||
|
@@ -359,6 +359,12 @@ int Grow_addbitmap(char *devname, int fd, struct context *c, struct shape *s)
|
||||||
|
|
||||||
|
ncopies = (array.layout & 255) * ((array.layout >> 8) & 255);
|
||||||
|
bitmapsize = bitmapsize * array.raid_disks / ncopies;
|
||||||
|
+
|
||||||
|
+ if (strcmp(s->bitmap_file, "clustered") == 0 &&
|
||||||
|
+ !is_near_layout_10(array.layout)) {
|
||||||
|
+ pr_err("only near layout is supported with clustered raid10\n");
|
||||||
|
+ return 1;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
st = super_by_fd(fd, &subarray);
|
||||||
|
diff --git a/mdadm.c b/mdadm.c
|
||||||
|
index 7cdcdba7c652..87cb33f84ac2 100644
|
||||||
|
--- a/mdadm.c
|
||||||
|
+++ b/mdadm.c
|
||||||
|
@@ -1542,8 +1542,13 @@ int main(int argc, char *argv[])
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (s.level != 1) {
|
||||||
|
- pr_err("--bitmap=clustered is currently supported with RAID mirror only\n");
|
||||||
|
+ if (s.level != 1 && s.level != 10) {
|
||||||
|
+ pr_err("--bitmap=clustered is currently supported with raid1/10 only\n");
|
||||||
|
+ rv = 1;
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+ if (s.level == 10 && !is_near_layout_10(s.layout)) {
|
||||||
|
+ pr_err("only near layout is supported with clustered raid10\n");
|
||||||
|
rv = 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
diff --git a/mdadm.h b/mdadm.h
|
||||||
|
index 85947bf62ff0..3cbf82f18d9e 100644
|
||||||
|
--- a/mdadm.h
|
||||||
|
+++ b/mdadm.h
|
||||||
|
@@ -1434,6 +1434,7 @@ extern int get_linux_version(void);
|
||||||
|
extern int mdadm_version(char *version);
|
||||||
|
extern unsigned long long parse_size(char *size);
|
||||||
|
extern int parse_uuid(char *str, int uuid[4]);
|
||||||
|
+extern int is_near_layout_10(int layout);
|
||||||
|
extern int parse_layout_10(char *layout);
|
||||||
|
extern int parse_layout_faulty(char *layout);
|
||||||
|
extern long parse_num(char *num);
|
||||||
|
diff --git a/util.c b/util.c
|
||||||
|
index c11729e3260e..543ec6cf46ef 100644
|
||||||
|
--- a/util.c
|
||||||
|
+++ b/util.c
|
||||||
|
@@ -397,6 +397,17 @@ unsigned long long parse_size(char *size)
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
|
+int is_near_layout_10(int layout)
|
||||||
|
+{
|
||||||
|
+ int fc, fo;
|
||||||
|
+
|
||||||
|
+ fc = (layout >> 8) & 255;
|
||||||
|
+ fo = layout & (1 << 16);
|
||||||
|
+ if (fc > 1 || fo > 0)
|
||||||
|
+ return 0;
|
||||||
|
+ return 1;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
int parse_layout_10(char *layout)
|
||||||
|
{
|
||||||
|
int copies, rv;
|
||||||
|
--
|
||||||
|
2.10.0
|
||||||
|
|
@ -1,3 +1,9 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Nov 15 01:27:06 UTC 2017 - gqjiang@suse.com
|
||||||
|
|
||||||
|
- Add one mdadm patch to support clustered raid10 (fate#323171)
|
||||||
|
0059-To-support-clustered-raid10.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Mon Aug 21 16:44:54 UTC 2017 - colyli@suse.com
|
Mon Aug 21 16:44:54 UTC 2017 - colyli@suse.com
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package mdadm
|
# spec file for package mdadm
|
||||||
#
|
#
|
||||||
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
|
# Copyright (c) 2017 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
@ -97,6 +97,7 @@ Patch55: 0055-Allow-more-spare-selection-criteria.patch
|
|||||||
Patch56: 0056-Add-sector-size-as-spare-selection-criterion.patch
|
Patch56: 0056-Add-sector-size-as-spare-selection-criterion.patch
|
||||||
Patch57: 0057-super1-fix-sb-max_dev-when-adding-a-new-disk-in-line.patch
|
Patch57: 0057-super1-fix-sb-max_dev-when-adding-a-new-disk-in-line.patch
|
||||||
Patch58: 0058-super1-only-set-clustered-flag-when-bitmap-is-presen.patch
|
Patch58: 0058-super1-only-set-clustered-flag-when-bitmap-is-presen.patch
|
||||||
|
Patch59: 0059-To-support-clustered-raid10.patch
|
||||||
Patch1000: 1000-The-mdcheck-script-now-adds-messages-to-the-system.patch
|
Patch1000: 1000-The-mdcheck-script-now-adds-messages-to-the-system.patch
|
||||||
|
|
||||||
%define _udevdir %(pkg-config --variable=udevdir udev)
|
%define _udevdir %(pkg-config --variable=udevdir udev)
|
||||||
@ -167,6 +168,7 @@ programs but with a very different interface.
|
|||||||
%patch56 -p1
|
%patch56 -p1
|
||||||
%patch57 -p1
|
%patch57 -p1
|
||||||
%patch58 -p1
|
%patch58 -p1
|
||||||
|
%patch59 -p1
|
||||||
%patch1000 -p1
|
%patch1000 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
Loading…
x
Reference in New Issue
Block a user