From mboxrd@z Thu Jan 1 00:00:00 1970 From: Zhilong Liu Subject: Re: [PATCH -v3 1/1] mdadm/test: Add one test case for raid5 reshape Date: Wed, 19 Jul 2017 17:14:43 +0800 Message-ID: <3cfc0d84-e64b-92bc-c923-11efac1d9709@suse.com> References: <1500368140-23563-1-git-send-email-xni@redhat.com> <571877982.32043460.1500443653100.JavaMail.zimbra@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <571877982.32043460.1500443653100.JavaMail.zimbra@redhat.com> Sender: linux-raid-owner@vger.kernel.org To: Xiao Ni Cc: linux-raid@vger.kernel.org, jes sorensen List-Id: linux-raid.ids On 07/19/2017 01:54 PM, Xiao Ni wrote: > > ----- Original Message ----- >> From: "Zhilong Liu" >> To: "Xiao Ni" , linux-raid@vger.kernel.org >> Cc: "jes sorensen" >> Sent: Tuesday, July 18, 2017 6:34:33 PM >> Subject: Re: [PATCH -v3 1/1] mdadm/test: Add one test case for raid5 reshape >> >> >> >> On 07/18/2017 04:55 PM, Xiao Ni wrote: >>> This case trys to allow raid5 reshape to use backwards direction. >>> It changes chunksize after reshape and stop the raid. Then start >>> the raid again. >>> >>> Signed-off-by: Xiao Ni >>> Suggested-by: Jes Sorensen >>> Suggested-by: Zhilong Liu >>> --- >>> test | 8 ++++++++ >>> tests/02r5grow | 16 ++++++++++++++++ >>> 2 files changed, 24 insertions(+) >>> >>> diff --git a/test b/test >>> index 87e2df2..51da2dc 100755 >>> --- a/test >>> +++ b/test >>> @@ -320,6 +320,14 @@ check() { >>> grep -sq "inactive" /proc/mdstat || >>> die "array is not inactive!" >>> ;; >>> + # It only can be used when there is only one raid >>> + chunk ) >>> + chunk_size=`cat /proc/mdstat | awk -F',' '/chunk/{print $2}' | awk >>> '{print $1}' | sed s/k//g` >> Hi, >> only from my opinion, how about shrink the command: >> # awk -F',' '/chunk/{print $2}' /proc/mdstat | awk -F'[a-z]' '{print $1}' >>> + if [ $chunk_size -ne $2 ]; then >>> + echo >&2 "chunksize is not right" >>> + exit 1 >>> + fi > Yes, you are a shell expert :) > >> how about using the func die() >> [ "$chunk_size" -ne "$2" ] && >> die "chunk should be $2, but is $chunk_size" > I tried this and did a simple test. It gave a error: > [root@dell-per210-01 mdadm]# ./test --tests=02r5grow > Testing on linux-3.10.0-685.el7.x86_64 kernel > tests/02r5grow... FAILED - see /var/tmp/02r5grow.log and /var/tmp/fail02r5grow.log for details > ./test: line 80: [: too many arguments > > It was introduced by this 20d10b4b. It looks like the check have errors: > if [ ! -z ${array[@]} -a ${#array[@]} -ge 1 ] Yes, thanks for catching this, this condition would get parsing error when array[] has few members. it should correct as: [ ! -z "$array" -a ${#array[@]}] -ge 1 ] check the array[index](first member) is enough, I should fix it. Thanks, -Zhilong > > Regards > Xiao >> Thanks, >> -Zhilong >> >>> + ;; >>> * ) >>> die "unknown check $1" >>> ;; >>> diff --git a/tests/02r5grow b/tests/02r5grow >>> index 386e82e..20db4cd 100644 >>> --- a/tests/02r5grow >>> +++ b/tests/02r5grow >>> @@ -34,3 +34,19 @@ 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 -As >>> +check state UUU >>> +check chunk 64 >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-raid" in >> the body of a message to majordomo@vger.kernel.org >> More majordomo info at http://vger.kernel.org/majordomo-info.html >> > -- > To unsubscribe from this list: send the line "unsubscribe linux-raid" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html >