* [PATCH 01/13] mdadm/manpage: raid10 doesn't support resize 'far' arrays
2017-12-01 9:48 [RFC PATCH 00/13] mdadm/test: Basic improvement for some cases Zhilong Liu
@ 2017-12-01 9:48 ` Zhilong Liu
2017-12-01 9:48 ` [PATCH 02/13] mdadm/test: did basic improvement for 00names Zhilong Liu
` (11 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: Zhilong Liu @ 2017-12-01 9:48 UTC (permalink / raw)
To: jsorensen; +Cc: linux-raid, Zhilong Liu
md->raid10_resize(): Resize of 'far' arrays is not supported.
Signed-off-by: Zhilong Liu <zlliu@suse.com>
---
mdadm.8.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mdadm.8.in b/mdadm.8.in
index f0fd1fc..270781c 100644
--- a/mdadm.8.in
+++ b/mdadm.8.in
@@ -2761,7 +2761,7 @@ can be changed. Once the change is complete a new bitmap can be created.
.PP
Note:
.B "--grow --size"
-is not yet supported for external file bitmap.
+is not yet supported for external file bitmap and 'far' mode of raid10.
.SS RAID\-DEVICES CHANGES
--
1.8.5.6
^ permalink raw reply related [flat|nested] 14+ messages in thread* [PATCH 02/13] mdadm/test: did basic improvement for 00names
2017-12-01 9:48 [RFC PATCH 00/13] mdadm/test: Basic improvement for some cases Zhilong Liu
2017-12-01 9:48 ` [PATCH 01/13] mdadm/manpage: raid10 doesn't support resize 'far' arrays Zhilong Liu
@ 2017-12-01 9:48 ` Zhilong Liu
2017-12-01 9:48 ` [PATCH 03/13] mdadm/test: redraft the 00raid1 test case Zhilong Liu
` (10 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: Zhilong Liu @ 2017-12-01 9:48 UTC (permalink / raw)
To: jsorensen; +Cc: linux-raid, Zhilong Liu
1. clean the code style
2. add raid10 in test
3. delete the temp file once finish testing.
Signed-off-by: Zhilong Liu <zlliu@suse.com>
---
tests/00names | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/tests/00names b/tests/00names
index 7a066d8..d0ee3e9 100644
--- a/tests/00names
+++ b/tests/00names
@@ -4,10 +4,13 @@ set -x -e
conf=$targetdir/mdadm.conf
echo "CREATE names=yes" > $conf
-for i in linear raid0 raid1 raid4 raid5 raid6
+for i in linear raid0 raid1 raid4 raid5 raid6 raid10
do
- mdadm -CR --config $conf /dev/md/$i -l $i -n 4 $dev4 $dev3 $dev2 $dev1
- check $i
- [ -d /sys/class/block/md_$i/md ]
- mdadm -S md_$i
+ mdadm -CR --config $conf /dev/md/$i -l $i -n 4 $dev4 $dev3 $dev2 $dev1
+ check $i
+ [ -d /sys/class/block/md_$i/md ] || exit 1
+ mdadm -S md_$i
done
+rm $conf
+
+exit 0
--
1.8.5.6
^ permalink raw reply related [flat|nested] 14+ messages in thread* [PATCH 03/13] mdadm/test: redraft the 00raid1 test case
2017-12-01 9:48 [RFC PATCH 00/13] mdadm/test: Basic improvement for some cases Zhilong Liu
2017-12-01 9:48 ` [PATCH 01/13] mdadm/manpage: raid10 doesn't support resize 'far' arrays Zhilong Liu
2017-12-01 9:48 ` [PATCH 02/13] mdadm/test: did basic improvement for 00names Zhilong Liu
@ 2017-12-01 9:48 ` Zhilong Liu
2017-12-01 9:48 ` [PATCH 04/13] mdadm/test: redraft 00raid4 " Zhilong Liu
` (9 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: Zhilong Liu @ 2017-12-01 9:48 UTC (permalink / raw)
To: jsorensen; +Cc: linux-raid, Zhilong Liu
Make it cover different metadata version and
bitmap.
Signed-off-by: Zhilong Liu <zlliu@suse.com>
---
tests/00raid1 | 23 +++++++++++++++++------
1 file changed, 17 insertions(+), 6 deletions(-)
diff --git a/tests/00raid1 b/tests/00raid1
index c93465d..939205f 100644
--- a/tests/00raid1
+++ b/tests/00raid1
@@ -2,17 +2,29 @@
# create a simple mirror
# test version0, version1, and no super
# test resync and recovery.
+bmf=$targetdir/bmf
-mdadm -CR $md0 -l 1 -n2 $dev0 $dev1
-check resync
-check raid1
-testdev $md0 1 $mdsize1a 64
-mdadm -S $md0
+for bm in $bmf internal none
+do
+ for metadata in 0.90 1.0 1.1 1.2 default
+ do
+ [ "$bm" == "$bmf" -a -f "$bmf" ] && rm $bmf
+ mdadm -CR $md0 -l 1 -n2 -b $bm -e $metadata $dev0 $dev1
+ check resync
+ check raid1
+ check wait
+ testdev $md0 1 $mdsize1a 64
+ mdadm -S $md0
+ done
+done
+[ -f "$bmf"] && rm $bmf
# now with version-0.90 superblock, spare
mdadm -CR $md0 -e0.90 --level=raid1 -n3 -x2 $dev0 missing missing $dev1 $dev2
check recovery
check raid1
+check wait
+check state UUU
testdev $md0 1 $mdsize0 64
mdadm -S $md0
@@ -30,5 +42,4 @@ check nosync
testdev $md0 1 $size 1
mdadm -S $md0
-
exit 0
--
1.8.5.6
^ permalink raw reply related [flat|nested] 14+ messages in thread* [PATCH 04/13] mdadm/test: redraft 00raid4 test case
2017-12-01 9:48 [RFC PATCH 00/13] mdadm/test: Basic improvement for some cases Zhilong Liu
` (2 preceding siblings ...)
2017-12-01 9:48 ` [PATCH 03/13] mdadm/test: redraft the 00raid1 test case Zhilong Liu
@ 2017-12-01 9:48 ` Zhilong Liu
2017-12-01 9:48 ` [PATCH 05/13] mdadm/test: redraft the 00raid5 " Zhilong Liu
` (8 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: Zhilong Liu @ 2017-12-01 9:48 UTC (permalink / raw)
To: jsorensen; +Cc: linux-raid, Zhilong Liu
make it cover different metadata and bitmap.
Signed-off-by: Zhilong Liu <zlliu@suse.com>
---
tests/00raid4 | 26 ++++++++++++++++++++------
1 file changed, 20 insertions(+), 6 deletions(-)
diff --git a/tests/00raid4 b/tests/00raid4
index 00a14f2..36606b0 100644
--- a/tests/00raid4
+++ b/tests/00raid4
@@ -1,16 +1,30 @@
# create a simple raid4 set
+bmf=$targetdir/bmf
-mdadm -CfR $md0 -l 4 -n3 $dev0 $dev1 $dev2
-check resync ; check raid[45]
-testdev $md0 2 $mdsize1 512
-mdadm -S $md0
+for bm in $bmf internal none
+do
+ for metadata in 0.90 1.0 1.1 1.2 default
+ do
+ [ "$bm" == "$bmf" -a -f "$bmf" ] && rm $bmf
+ mdadm -CfR $md0 -l 4 -b $bm -e $metadata -n3 $dev0 $dev1 $dev2
+ check resync
+ check raid4
+ check wait
+ check state UUU
+ testdev $md0 2 $mdsize1 512
+ mdadm -S $md0
+ done
+done
+rm $bmf
# now with version-1 superblock
mdadm -CR $md0 -e1 --level=raid4 -n4 $dev0 $dev1 $dev2 $dev3
-check recovery; check raid[45]
+check recovery
+check raid4
+check wait
+check state UUUU
testdev $md0 3 $mdsize1 512
mdadm -S $md0
-
exit 0
--
1.8.5.6
^ permalink raw reply related [flat|nested] 14+ messages in thread* [PATCH 05/13] mdadm/test: redraft the 00raid5 test case
2017-12-01 9:48 [RFC PATCH 00/13] mdadm/test: Basic improvement for some cases Zhilong Liu
` (3 preceding siblings ...)
2017-12-01 9:48 ` [PATCH 04/13] mdadm/test: redraft 00raid4 " Zhilong Liu
@ 2017-12-01 9:48 ` Zhilong Liu
2017-12-01 9:48 ` [PATCH 06/13] mdadm/test: redraft the 00raid6 " Zhilong Liu
` (7 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: Zhilong Liu @ 2017-12-01 9:48 UTC (permalink / raw)
To: jsorensen; +Cc: linux-raid, Zhilong Liu
make it cover different layout, bitmap and
metadata versions, and cover resync/recover
features.
Signed-off-by: Zhilong Liu <zlliu@suse.com>
---
tests/00raid5 | 51 ++++++++++++++++++++++++++-------------------------
1 file changed, 26 insertions(+), 25 deletions(-)
diff --git a/tests/00raid5 b/tests/00raid5
index b2b7a97..b891694 100644
--- a/tests/00raid5
+++ b/tests/00raid5
@@ -1,33 +1,34 @@
# create a simple raid5 set
-mdadm -CfR $md0 -e 0.90 -l 5 -n3 $dev0 $dev1 $dev2
-check resync
-testdev $md0 2 $mdsize0 512
-mdadm -S $md0
+bmf=$targetdir/bmf
-# now with version-1 superblock
-mdadm -CR $md0 -e1 --level=raid5 -n4 $dev0 $dev1 $dev2 $dev3
-check recovery
-testdev $md0 3 $mdsize1 512
-mdadm -S $md0
-
-# now same again with explicit layout
-
-for lo in la ra left-symmetric right-symmetric
+for bm in $bmf internal none
do
-
- mdadm -CfR $md0 -l 5 -p $lo -n3 $dev0 $dev1 $dev2
- check resync ; check raid5
- testdev $md0 2 $mdsize1 512
- mdadm -S $md0
-
- # now with version-1 superblock
- mdadm -CR $md0 -e1 --level=raid5 --layout $lo -n4 $dev0 $dev1 $dev2 $dev3
- check recovery ; check raid5
- testdev $md0 3 $mdsize1 512
- mdadm -S $md0
-
+ for metadata in 0.90 1.0 1.1 1.2 default
+ do
+ for lo in la ra left-symmetric right-symmetric
+ do
+ [ "$bm" == "$bmf" -a -f "$bmf" ] && rm $bmf
+ mdadm -CfR $md0 -e $metadata -b $bm -l5 --layout $lo -n3 $dev0 $dev1 $dev2
+ check resync
+ check raid5
+ check wait
+ check state UUU
+ testdev $md0 2 $mdsize1 512
+ mdadm -S $md0
+
+ [ "$bm" == "$bmf" -a -f "$bmf" ] && rm $bmf
+ mdadm -CR $md0 -e $metadata -b $bm --level=raid5 --layout $lo -n4 $dev0 $dev1 $dev2 $dev3
+ check recovery
+ check raid5
+ check wait
+ check state UUUU
+ testdev $md0 3 $mdsize1 512
+ mdadm -S $md0
+ done
+ done
done
+[ -f "$bmf" ] && rm $bmf
exit 0
--
1.8.5.6
^ permalink raw reply related [flat|nested] 14+ messages in thread* [PATCH 06/13] mdadm/test: redraft the 00raid6 test case
2017-12-01 9:48 [RFC PATCH 00/13] mdadm/test: Basic improvement for some cases Zhilong Liu
` (4 preceding siblings ...)
2017-12-01 9:48 ` [PATCH 05/13] mdadm/test: redraft the 00raid5 " Zhilong Liu
@ 2017-12-01 9:48 ` Zhilong Liu
2017-12-01 9:48 ` [PATCH 07/13] mdadm/test: redraft the 00raid10 " Zhilong Liu
` (6 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: Zhilong Liu @ 2017-12-01 9:48 UTC (permalink / raw)
To: jsorensen; +Cc: linux-raid, Zhilong Liu
make it cover different metadata and bitmap,
do more basic checking during testing.
Signed-off-by: Zhilong Liu <zlliu@suse.com>
---
tests/00raid6 | 27 ++++++++++++++++-----------
1 file changed, 16 insertions(+), 11 deletions(-)
diff --git a/tests/00raid6 b/tests/00raid6
index 6977af9..4ea8fee 100644
--- a/tests/00raid6
+++ b/tests/00raid6
@@ -1,16 +1,21 @@
# create a simple raid6 set
+bmf=$targetdir/bmf
-mdadm -CfR $md0 -e0.90 -l 6 -n4 $dev0 $dev1 $dev2 $dev3
-check resync ; check raid6
-testdev $md0 2 $mdsize0 512
-mdadm -S $md0
-
-# now with version-1 superblock
-mdadm -CR $md0 -e1 --level=raid6 -n5 $dev0 $dev1 $dev2 $dev3 $dev4
-check resync ; check raid6
-testdev $md0 3 $mdsize1 512
-mdadm -S $md0
-
+for bm in $bmf internal none
+do
+ for metadata in 0.90 1.0 1.1 1.2 default
+ do
+ [ "$bm" == "$bmf" -a -f "$bmf" ] && rm $bmf
+ mdadm -CfR $md0 -l6 -b $bm -e $metadata -n4 $dev0 $dev1 $dev2 $dev3
+ check resync
+ check wait
+ check raid6
+ check state UUUU
+ testdev $md0 2 $mdsize1 512
+ mdadm -S $md0
+ done
+done
+rm $bmf
exit 0
--
1.8.5.6
^ permalink raw reply related [flat|nested] 14+ messages in thread* [PATCH 07/13] mdadm/test: redraft the 00raid10 test case
2017-12-01 9:48 [RFC PATCH 00/13] mdadm/test: Basic improvement for some cases Zhilong Liu
` (5 preceding siblings ...)
2017-12-01 9:48 ` [PATCH 06/13] mdadm/test: redraft the 00raid6 " Zhilong Liu
@ 2017-12-01 9:48 ` Zhilong Liu
2017-12-01 9:48 ` [PATCH 08/13] mdadm/test: redraft 02r5grow and rename it as 02r5grow-resize Zhilong Liu
` (5 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: Zhilong Liu @ 2017-12-01 9:48 UTC (permalink / raw)
To: jsorensen; +Cc: linux-raid, Zhilong Liu
make it cover different bitmap, metadata and
"near, far, offset" layouts.
Signed-off-by: Zhilong Liu <zlliu@suse.com>
---
tests/00raid10 | 41 +++++++++++++++++++++++++++++------------
1 file changed, 29 insertions(+), 12 deletions(-)
diff --git a/tests/00raid10 b/tests/00raid10
index 796b970..9929ee7 100644
--- a/tests/00raid10
+++ b/tests/00raid10
@@ -1,18 +1,35 @@
# Create some raid10 arrays, all with 6 devices and one spare
devs="$dev0 $dev1 $dev2 $dev3 $dev4 $dev5 $dev6"
+bmf=$targetdir/bm
-for lo in n2 n3 f2 f3
+for bm in $bmf internal none
do
- cm=1
- case $lo in
- f2 ) m=3 cm=2;;
- f3 ) m=2 cm=3;;
- n2 ) m=3;;
- n3 ) m=2;;
- esac
- mdadm --create --run --level=raid10 --layout $lo --raid-disks 6 -x 1 $md0 $devs
- check resync ; check raid10
- testdev $md0 $m $mdsize1 $[512*cm]
- mdadm -S $md0
+ for metadata in 0.90 1.1 1.2 default
+ do
+ for lo in n2 n3 f2 f3 o2 o3
+ do
+ cm=1
+ case $lo in
+ f2 ) m=3 cm=2;;
+ f3 ) m=2 cm=3;;
+ n2 ) m=3;;
+ n3 ) m=2;;
+ o3 ) m=2;;
+ o2 ) m=3;;
+ esac
+ [ "$bm" == "$bmf" -a -f $bmf ] && rm $bmf
+ mdadm --create --run --level=raid10 -e $metadata -b $bm --layout $lo --raid-disks 6 -x 1 $md0 $devs
+ check resync
+ check raid10
+ check wait
+ check state UUUUUU
+ check spares 1
+ testdev $md0 $m $mdsize1 $[512*cm]
+ mdadm -S $md0
+ done
+ done
done
+[ -f $bmf ] && rm $bmf
+
+exit 0
--
1.8.5.6
^ permalink raw reply related [flat|nested] 14+ messages in thread* [PATCH 08/13] mdadm/test: redraft 02r5grow and rename it as 02r5grow-resize
2017-12-01 9:48 [RFC PATCH 00/13] mdadm/test: Basic improvement for some cases Zhilong Liu
` (6 preceding siblings ...)
2017-12-01 9:48 ` [PATCH 07/13] mdadm/test: redraft the 00raid10 " Zhilong Liu
@ 2017-12-01 9:48 ` Zhilong Liu
2017-12-01 9:48 ` [PATCH 09/13] mdadm/test: redraft 02r6grow and rename it as 02r6grow-resize Zhilong Liu
` (4 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: Zhilong Liu @ 2017-12-01 9:48 UTC (permalink / raw)
To: jsorensen; +Cc: linux-raid, Zhilong Liu
add checking "component_size > chunk_size"
add checking resize doesn't support with external-file bitmap.
add some basic checking.
Signed-off-by: Zhilong Liu <zlliu@suse.com>
---
tests/02r5grow | 53 --------------------------------
tests/02r5grow-resize | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 85 insertions(+), 53 deletions(-)
delete mode 100644 tests/02r5grow
create mode 100644 tests/02r5grow-resize
diff --git a/tests/02r5grow b/tests/02r5grow
deleted file mode 100644
index bb9bd6d..0000000
--- a/tests/02r5grow
+++ /dev/null
@@ -1,53 +0,0 @@
-
-
-# create a small raid5 array, make it larger. Then make it smaller
-
-mdadm -CR $md0 -e0.90 --level raid5 --chunk=64 --raid-disks 3 --size $[size/2] $dev1 $dev2 $dev3
-check wait
-check state UUU
-testdev $md0 2 $[size/2] 32
-
-mdadm --grow $md0 --size max
-check resync
-check wait
-testdev $md0 2 $mdsize0 32
-
-mdadm --grow $md0 --size $[size/2]
-check nosync
-testdev $md0 2 $[size/2] 32
-
-mdadm -S $md0
-
-# same again with version 1.1 superblock
-mdadm -CR $md0 --level raid5 --metadata=1.1 --chunk=128 --raid-disks 4 --size $[size/2] $dev1 $dev2 $dev3 $dev4
-check wait
-check state UUUU
-testdev $md0 3 $[size/2] 128
-
-mdadm --grow $md0 --size max
-check resync
-check wait
-testdev $md0 3 $[mdsize1_l] 128
-
-mdadm --grow $md0 --size $[size/2]
-check nosync
-sh tests/testdev $md0 3 $[size/2] 128
-
-mdadm -S $md0
-
-# create a raid5 array and change the chunk
-mdadm -CR $md0 --level raid5 --metadata=1.1 --chunk=32 --raid-disks 3 --size $[size/2] $dev1 $dev2 $dev3
-check wait
-check state UUU
-check chunk 32
-
-mdadm $md0 --grow --chunk=64
-check reshape
-check wait
-check chunk 64
-
-mdadm -S $md0
-mdadm -A $md0 $dev1 $dev2 $dev3
-check state UUU
-check chunk 64
-mdadm -S $md0
diff --git a/tests/02r5grow-resize b/tests/02r5grow-resize
new file mode 100644
index 0000000..0f381b7
--- /dev/null
+++ b/tests/02r5grow-resize
@@ -0,0 +1,85 @@
+
+# create a small raid5 array, make it larger. Then make it smaller
+mdadm -CR $md0 -e0.90 --level raid5 --chunk=64 --raid-disks 3 --size $[size/2] $dev1 $dev2 $dev3
+check wait
+check state UUU
+testdev $md0 2 $[size/2] 32
+
+mdadm --grow $md0 --size max
+check resync
+check wait
+check raid5
+check state UUU
+testdev $md0 2 $mdsize0 32
+
+# resize the component_size less than chunk_size
+mdadm --grow $md0 --size 63
+[ $? -eq '0' ] && exit 1
+
+mdadm --grow $md0 --size $[size/2]
+check nosync
+check raid5
+check state UUU
+testdev $md0 2 $[size/2] 32
+
+mdadm -S $md0
+
+# same again with version 1.1 superblock
+mdadm -CR $md0 --level raid5 --metadata=1.1 --chunk=128 --raid-disks 4 --size $[size/2] $dev1 $dev2 $dev3 $dev4
+check wait
+check state UUUU
+check raid5
+testdev $md0 3 $[size/2] 128
+
+mdadm --grow $md0 --size max
+check resync
+check wait
+check raid5
+check state UUUU
+testdev $md0 3 $[mdsize1_l] 128
+
+# resize the component_size less than chunk_size
+mdadm --grow $md0 --size 127
+[ $? -eq '0' ] && exit 1
+
+mdadm --grow $md0 --size $[size/2]
+check nosync
+check raid5
+check state UUUU
+testdev $md0 3 $[size/2] 128
+
+mdadm -S $md0
+
+# doesn't support to resize raid5 based-on external bitmap
+bm=$targetdir/bm
+[ -f $bm ] && rm $bm
+mdadm -CR $md0 --level raid5 --metadata=1.1 -b $bm --chunk=128 --raid-disks 4 --size $[size/2] $dev1 $dev2 $dev3 $dev4
+check wait
+check raid5
+check state UUUU
+testdev $md0 3 $[size/2] 128
+
+mdadm --grow $md0 --size max
+[ $? -eq '0' ] && exit 1
+
+rm $bm
+mdadm -S $md0
+
+# create a raid5 array and change the chunk
+mdadm -CR $md0 --level raid5 --metadata=1.1 --chunk=32 --raid-disks 3 --size $[size/2] $dev1 $dev2 $dev3
+check wait
+check state UUU
+check chunk 32
+
+mdadm $md0 --grow --chunk=64
+check reshape
+check wait
+check chunk 64
+
+mdadm -S $md0
+mdadm -A $md0 $dev1 $dev2 $dev3
+check state UUU
+check chunk 64
+mdadm -S $md0
+
+exit 0
--
1.8.5.6
^ permalink raw reply related [flat|nested] 14+ messages in thread* [PATCH 09/13] mdadm/test: redraft 02r6grow and rename it as 02r6grow-resize
2017-12-01 9:48 [RFC PATCH 00/13] mdadm/test: Basic improvement for some cases Zhilong Liu
` (7 preceding siblings ...)
2017-12-01 9:48 ` [PATCH 08/13] mdadm/test: redraft 02r5grow and rename it as 02r5grow-resize Zhilong Liu
@ 2017-12-01 9:48 ` Zhilong Liu
2017-12-01 9:48 ` [PATCH 10/13] mdadm/test: add new test 02r10grow-resize Zhilong Liu
` (3 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: Zhilong Liu @ 2017-12-01 9:48 UTC (permalink / raw)
To: jsorensen; +Cc: linux-raid, Zhilong Liu
add checking "component_size > chunk_size"
add checking resize doesn't support with external-file bitmap.
add some basic checking.
Signed-off-by: Zhilong Liu <zlliu@suse.com>
---
tests/02r6grow | 36 ---------------------------
tests/02r6grow-resize | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 69 insertions(+), 36 deletions(-)
delete mode 100644 tests/02r6grow
create mode 100644 tests/02r6grow-resize
diff --git a/tests/02r6grow b/tests/02r6grow
deleted file mode 100644
index 759e627..0000000
--- a/tests/02r6grow
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-# create a small raid6 array, make it larger. Then make it smaller
-
-mdadm -CR $md0 -e 0.90 --level raid6 --chunk=64 --raid-disks 4 --size $[size/2] $dev1 $dev2 $dev3 $dev4
-check wait
-check state UUUU
-testdev $md0 2 $[size/2] 32
-
-mdadm --grow $md0 --size max
-check resync
-check wait
-testdev $md0 2 $mdsize0 32
-
-mdadm --grow $md0 --size $[size/2]
-check nosync
-testdev $md0 2 $[size/2] 32
-
-mdadm -S $md0
-
-# same again with version 1.1 superblock
-mdadm -CR $md0 --level raid6 --metadata=1.1 --chunk=128 --raid-disks 4 --size $[size/2] $dev1 $dev2 $dev3 $dev4
-check wait
-check state UUUU
-testdev $md0 2 $[size/2] 128
-
-mdadm --grow $md0 --size max
-check resync
-check wait
-testdev $md0 2 $[mdsize1_l] 128
-
-mdadm --grow $md0 --size $[size/2]
-check nosync
-testdev $md0 2 $[size/2] 128
-
-mdadm -S $md0
diff --git a/tests/02r6grow-resize b/tests/02r6grow-resize
new file mode 100644
index 0000000..c5c3301
--- /dev/null
+++ b/tests/02r6grow-resize
@@ -0,0 +1,69 @@
+
+
+# create a small raid6 array, make it larger. Then make it smaller
+mdadm -CR $md0 -e 0.90 --level raid6 --chunk=64 --raid-disks 4 --size $[size/2] $dev1 $dev2 $dev3 $dev4
+check wait
+check raid6
+check state UUUU
+testdev $md0 2 $[size/2] 32
+
+mdadm --grow $md0 --size max
+check resync
+check wait
+check raid6
+check state UUUU
+testdev $md0 2 $mdsize0 32
+
+# resize the component_size less than chunk_size
+mdadm --grow $md0 --size 63
+[ $? -eq '0' ] && exit 1
+
+mdadm --grow $md0 --size $[size/2]
+check nosync
+check raid6
+check state UUUU
+testdev $md0 2 $[size/2] 32
+
+mdadm -S $md0
+
+# same again with version 1.1 superblock
+mdadm -CR $md0 --level raid6 --metadata=1.1 --chunk=128 --raid-disks 4 --size $[size/2] $dev1 $dev2 $dev3 $dev4
+check wait
+check raid6
+check state UUUU
+testdev $md0 2 $[size/2] 128
+
+mdadm --grow $md0 --size max
+check resync
+check wait
+check raid6
+check state UUUU
+testdev $md0 2 $[mdsize1_l] 128
+
+# resize the component_size less than chunk_size
+mdadm --grow $md0 --size 127
+[ $? -eq '0' ] && exit 1
+
+mdadm --grow $md0 --size $[size/2]
+check nosync
+check raid6
+check state UUUU
+testdev $md0 2 $[size/2] 128
+
+mdadm -S $md0
+
+# doesn't support to resize raid6 based-on external bitmap
+bm=$targetdir/bm
+[ -f $bm ] && rm $bm
+mdadm -CR $md0 --level raid6 --metadata=1.1 -b $bm --chunk=128 --raid-disks 4 --size $[size/2] $dev1 $dev2 $dev3 $dev4
+check wait
+check raid6
+check state UUUU
+
+mdadm --grow $md0 --size max
+[ $? -eq '0' ] && exit 1
+
+rm $bm
+mdadm -S $md0
+
+exit 0
--
1.8.5.6
^ permalink raw reply related [flat|nested] 14+ messages in thread* [PATCH 10/13] mdadm/test: add new test 02r10grow-resize
2017-12-01 9:48 [RFC PATCH 00/13] mdadm/test: Basic improvement for some cases Zhilong Liu
` (8 preceding siblings ...)
2017-12-01 9:48 ` [PATCH 09/13] mdadm/test: redraft 02r6grow and rename it as 02r6grow-resize Zhilong Liu
@ 2017-12-01 9:48 ` Zhilong Liu
2017-12-01 9:48 ` [PATCH 11/13] mdadm/test: did basic improvement for 05r1-internalbitmap Zhilong Liu
` (2 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: Zhilong Liu @ 2017-12-01 9:48 UTC (permalink / raw)
To: jsorensen; +Cc: linux-raid, Zhilong Liu
This case mainly tested the resize feature
of raid10.
Signed-off-by: Zhilong Liu <zlliu@suse.com>
---
tests/02r10grow-resize | 103 +++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 103 insertions(+)
create mode 100644 tests/02r10grow-resize
diff --git a/tests/02r10grow-resize b/tests/02r10grow-resize
new file mode 100644
index 0000000..d376a83
--- /dev/null
+++ b/tests/02r10grow-resize
@@ -0,0 +1,103 @@
+
+# Create some raid10 arrays and test resize
+devs="$dev0 $dev1 $dev2 $dev3"
+for metadata in 0.90 1.2
+do
+ for chunk in 64 128
+ do
+ for lo in n2 n3 o2 o3
+ do
+ mdadm -CR -l raid10 -e $metadata -b internal --chunk=$chunk --layout $lo --size $[size/2] --raid-disks 4 $md0 $devs
+ check resync
+ check wait
+ check raid10
+ check state UUUU
+
+ mdadm --grow $md0 --size max
+ check resync
+ check wait
+ check raid10
+ check state UUUU
+
+ mdadm --grow $md0 --size $(expr $chunk - 1)
+ [ $? -eq 0 ] && exit 1
+
+ mdadm --grow $md0 --size $[size/2]
+ check nosync
+ check raid10
+ check state UUUU
+
+ mdadm -S $md0
+ done
+ done
+done
+
+# doesn't support to resize raid10 based on far mode
+for metadata in 1.0 1.1
+do
+ for lo in f2 f3
+ do
+ mdadm -CR -l raid10 -e $metadata -b internal --chunk=64 --layout $lo --size $[size/2] --raid-disks 4 $md0 $devs
+ check resync
+ check wait
+ check raid10
+ check state UUUU
+
+ mdadm --grow $md0 --size max
+ [ $? -eq 0 ] && exit 1
+
+ mdadm --grow $md0 --size 63
+ [ $? -eq '0' ] && exit 1
+
+ mdadm --grow $md0 --size 256
+ [ $? -eq '0' ] && exit 1
+
+ mdadm -S $md0
+ done
+done
+
+# doesn't support to resize raid10 based-on external bitmap
+bm=$targetdir/bm
+[ -f $bm ] && rm $bm
+mdadm -CR $md0 --level raid10 --metadata=1.1 -b $bm --chunk=128 --raid-disks 4 --size $[size/2] $dev1 $dev2 $dev3 $dev4
+check wait
+check raid10
+check state UUUU
+
+mdadm --grow $md0 --size max
+[ $? -eq '0' ] && exit 1
+
+mdadm --grow $md0 --size 127
+[ $? -eq '0' ] && exit 1
+
+mdadm --grow $md0 --size 256
+[ $? -eq '0' ] && exit 1
+
+rm $bm
+mdadm -S $md0
+
+# same again with version 1.1 superblock
+mdadm -CR $md0 --level raid10 --metadata=1.1 --chunk=128 --raid-disks 4 --size $[size/2] $dev1 $dev2 $dev3 $dev4
+check wait
+check raid10
+check state UUUU
+
+mdadm --grow $md0 --size max
+check resync
+check wait
+check raid10
+check state UUUU
+testdev $md0 2 $[mdsize1_l] 128
+
+mdadm --grow $md0 --size 127
+[ $? -eq 0 ] && exit 1
+
+mdadm --grow $md0 --size $[size/2]
+check nosync
+check raid10
+check state UUUU
+testdev $md0 2 $[size/2] 128
+
+mdadm -S $md0
+
+exit 0
--
1.8.5.6
^ permalink raw reply related [flat|nested] 14+ messages in thread* [PATCH 11/13] mdadm/test: did basic improvement for 05r1-internalbitmap
2017-12-01 9:48 [RFC PATCH 00/13] mdadm/test: Basic improvement for some cases Zhilong Liu
` (9 preceding siblings ...)
2017-12-01 9:48 ` [PATCH 10/13] mdadm/test: add new test 02r10grow-resize Zhilong Liu
@ 2017-12-01 9:48 ` Zhilong Liu
2017-12-01 9:48 ` [PATCH 12/13] mdadm/test: did basic improvement for 05r1-n3-bitmapfile Zhilong Liu
2017-12-01 9:48 ` [PATCH 13/13] mdadm/test: Change check nosync as check recovery in 05r1-re-add-nosuper Zhilong Liu
12 siblings, 0 replies; 14+ messages in thread
From: Zhilong Liu @ 2017-12-01 9:48 UTC (permalink / raw)
To: jsorensen; +Cc: linux-raid, Zhilong Liu
clean the code style.
add sleep after add new device so that udev could
have enough time to execute.
Signed-off-by: Zhilong Liu <zlliu@suse.com>
---
tests/05r1-internalbitmap | 26 +++++++++++++++++---------
1 file changed, 17 insertions(+), 9 deletions(-)
diff --git a/tests/05r1-internalbitmap b/tests/05r1-internalbitmap
index dd7232a..587d5d8 100644
--- a/tests/05r1-internalbitmap
+++ b/tests/05r1-internalbitmap
@@ -2,8 +2,10 @@
#
# create a raid1 with an internal bitmap
#
-mdadm --create -e0.90 --run $md0 --level=1 -n2 --delay=1 --bitmap internal --bitmap-chunk=4 $dev1 $dev2
+mdadm --create -e0.90 --run $md0 --level=1 -n2 --delay=1 --bitmap internal --bitmap-chunk=4 $dev1 $dev2
check wait
+check raid1
+check state UU
testdev $md0 1 $mdsize0 64
mdadm -S $md0
@@ -14,8 +16,9 @@ sleep 4
dirty2=`mdadm -X $dev2 | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
if [ $dirty1 -lt 400 -o $dirty2 -ne 0 ]
-then echo >&2 "ERROR bad 'dirty' counts: $dirty1 and $dirty2"
- exit 1
+then
+ echo >&2 "ERROR bad 'dirty' counts: $dirty1 and $dirty2"
+ exit 1
fi
mdadm $md0 -f $dev1
testdev $md0 1 $mdsize0 64
@@ -23,16 +26,19 @@ sleep 4
dirty3=`mdadm -X $dev2 | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
if [ $dirty3 -lt 400 ]
then
- echo >&2 "ERROR dirty count $dirty3 is too small"
- exit 2
+ echo >&2 "ERROR dirty count $dirty3 is too small"
+ exit 2
fi
-
mdadm -S $md0
mdadm --assemble -R $md0 $dev2
mdadm --zero-superblock $dev1
mdadm $md0 --add $dev1
+sleep 1
check recovery
+check wait
+check raid1
+check state UU
dirty4=`mdadm -X $dev2 | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
check wait
@@ -40,8 +46,10 @@ sleep 4
dirty5=`mdadm -X $dev2 | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
if [ $dirty4 -lt 400 -o $dirty5 -ne 0 ]
-then echo echo >&2 "ERROR bad 'dirty' counts at end: $dirty4 $dirty5"
- exit 1
+then
+ echo echo >&2 "ERROR bad 'dirty' counts at end: $dirty4 $dirty5"
+ exit 1
fi
-
mdadm -S $md0
+
+exit 0
--
1.8.5.6
^ permalink raw reply related [flat|nested] 14+ messages in thread* [PATCH 12/13] mdadm/test: did basic improvement for 05r1-n3-bitmapfile
2017-12-01 9:48 [RFC PATCH 00/13] mdadm/test: Basic improvement for some cases Zhilong Liu
` (10 preceding siblings ...)
2017-12-01 9:48 ` [PATCH 11/13] mdadm/test: did basic improvement for 05r1-internalbitmap Zhilong Liu
@ 2017-12-01 9:48 ` Zhilong Liu
2017-12-01 9:48 ` [PATCH 13/13] mdadm/test: Change check nosync as check recovery in 05r1-re-add-nosuper Zhilong Liu
12 siblings, 0 replies; 14+ messages in thread
From: Zhilong Liu @ 2017-12-01 9:48 UTC (permalink / raw)
To: jsorensen; +Cc: linux-raid, Zhilong Liu
Clean the code style.
Add sleep after add new device so that udev could
have enough time to execute.
Signed-off-by: Zhilong Liu <zlliu@suse.com>
---
tests/05r1-n3-bitmapfile | 25 ++++++++++++++++---------
1 file changed, 16 insertions(+), 9 deletions(-)
diff --git a/tests/05r1-n3-bitmapfile b/tests/05r1-n3-bitmapfile
index f1c3f1e..b7002dd 100644
--- a/tests/05r1-n3-bitmapfile
+++ b/tests/05r1-n3-bitmapfile
@@ -6,8 +6,10 @@
#
bmf=$targetdir/bitmap
rm -f $bmf
-mdadm --create -e0.90 --run $md0 --level=1 -n3 --delay=1 --bitmap $bmf $dev1 $dev2 $dev3
+mdadm --create -e0.90 --run $md0 --level=1 -n3 --delay=1 --bitmap $bmf $dev1 $dev2 $dev3
check wait
+check raid1
+check state UUU
testdev $md0 1 $mdsize0 64
mdadm -S $md0
@@ -18,8 +20,9 @@ sleep 4
dirty2=`mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
if [ $dirty1 -lt 400 -o $dirty2 -ne 0 ]
-then echo >&2 "ERROR bad 'dirty' counts: $dirty1 and $dirty2"
- exit 1
+then
+ echo >&2 "ERROR bad 'dirty' counts: $dirty1 and $dirty2"
+ exit 1
fi
mdadm $md0 -f $dev2
testdev $md0 1 $mdsize0 64
@@ -27,17 +30,20 @@ sleep 4
dirty3=`mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
if [ $dirty3 -lt 400 ]
then
- echo >&2 "ERROR dirty count $dirty3 is too small"
- exit 2
+ echo >&2 "ERROR dirty count $dirty3 is too small"
+ exit 2
fi
-
mdadm -S $md0
mdadm --assemble -R $md0 --bitmap=$bmf $dev1 $dev3
check nosync
mdadm --zero-superblock $dev2
mdadm $md0 --add $dev2
+sleep 1
check recovery
+check wait
+check raid1
+check state UUU
dirty4=`mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
check wait
@@ -45,9 +51,10 @@ sleep 4
dirty5=`mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
if [ $dirty4 -lt 400 -o $dirty5 -ne 0 ]
-then echo echo >&2 "ERROR bad 'dirty' counts at end: $dirty4 $dirty5"
- exit 1
+then
+ echo >&2 "ERROR bad 'dirty' counts at end: $dirty4 $dirty5"
+ exit 1
fi
-
mdadm -S $md0
+
exit 0
--
1.8.5.6
^ permalink raw reply related [flat|nested] 14+ messages in thread* [PATCH 13/13] mdadm/test: Change check nosync as check recovery in 05r1-re-add-nosuper
2017-12-01 9:48 [RFC PATCH 00/13] mdadm/test: Basic improvement for some cases Zhilong Liu
` (11 preceding siblings ...)
2017-12-01 9:48 ` [PATCH 12/13] mdadm/test: did basic improvement for 05r1-n3-bitmapfile Zhilong Liu
@ 2017-12-01 9:48 ` Zhilong Liu
12 siblings, 0 replies; 14+ messages in thread
From: Zhilong Liu @ 2017-12-01 9:48 UTC (permalink / raw)
To: jsorensen; +Cc: linux-raid, Zhilong Liu
The commit: 091e8e6e061a (Manage: Remove all references
to md_get_version()) has been result in the case failure
due to deprecate the API md_get_version(). So modify the
test case to check recovery when execute re-add.
Signed-off-by: Zhilong Liu <zlliu@suse.com>
---
tests/05r1-re-add-nosuper | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/tests/05r1-re-add-nosuper b/tests/05r1-re-add-nosuper
index 058d602..030acdf 100644
--- a/tests/05r1-re-add-nosuper
+++ b/tests/05r1-re-add-nosuper
@@ -9,6 +9,8 @@ rm -f $bmf
mdadm -B $md0 -l1 -n2 -b$bmf -d1 $dev1 $dev2
check resync
check wait
+check state UU
+check raid1
testdev $md0 1 $size 1
sleep 4
@@ -16,7 +18,11 @@ mdadm $md0 -f $dev2
sleep 1
mdadm $md0 -r $dev2
mdadm $md0 --re-add $dev2
-check nosync
+sleep 1
+check recovery
+check wait
+check state UU
+check raid1
mdadm $md0 -f $dev2
sleep 1
@@ -24,6 +30,8 @@ mdadm $md0 -r $dev2
testdev $md0 1 $size 1
mdadm $md0 --re-add $dev2
check wait
+check state UU
+check raid1
cmp --bytes=$[$mdsize0*1024] $dev1 $dev2
mdadm $md0 -f $dev2; sleep 1
@@ -31,8 +39,14 @@ mdadm $md0 -r $dev2
if dd if=/dev/zero of=$md0 ; then : ; fi
blockdev --flushbufs $md0 # make sure writes have been sent
mdadm $md0 --re-add $dev2
+sleep 1
check recovery
check wait
+check state UU
+check raid1
# should BLKFLSBUF and then read $dev1/$dev2...
cmp --bytes=$[$mdsize0*1024] $file1 $file2
mdadm -S $md0
+rm -f $bmf
+
+exit 0
--
1.8.5.6
^ permalink raw reply related [flat|nested] 14+ messages in thread