hum... could we allow start with a initial position, and stop at any time? maybe a pause too... (set speed to 0bytes/sec) with pause we could pause get the actual position, stop, and start from that position later 2011/3/15 CoolCold <coolthecold@xxxxxxxxx>: > On Tue, Mar 15, 2011 at 6:28 AM, Roberto Spadim <roberto@xxxxxxxxxxxxx> wrote: >> does mdadm have check? could it have check with a startup position? >> could the mdadm report last checked position? >> this could help partial checks.. > Testing with loop devices shows it works. > limits are set: > root@nekotaz2:/storage/ovzs/keke# cat /sys/block/md5/md/sync_{min,max} > 500000 > 700000 > > calling check & viewing status: > root@nekotaz2:/storage/ovzs/keke# echo check > /sys/block/md5/md/sync_action > root@nekotaz2:/storage/ovzs/keke# cat /proc/mdstat > Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] > md5 : active raid1 loop1[1] loop0[0] > 1048512 blocks [2/2] [UU] > [====>................] check = 24.2% (254608/1048512) > finish=5.7min speed=2304K/sec > > Here 254608 is 500000/2 = 250000 + some progress for delay in between > of "echo check" & "cat /proc/mdstat" > In result, it stops on 350000 which is exactly 700000/2 > > root@nekotaz2:/storage/ovzs/keke# cat /proc/mdstat > Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] > md5 : active raid1 loop1[1] loop0[0] > 1048512 blocks [2/2] [UU] > [======>..............] check = 33.3% (350000/1048512) > finish=76.4min speed=151K/sec > > Speed & finish time are still being calculated though. > > Also, see Nail's message. > >> >> 2011/3/15 CoolCold <coolthecold@xxxxxxxxx>: >>> Hello! >>> >>> On Tue, Feb 8, 2011 at 3:25 AM, NeilBrown <neilb@xxxxxxx> wrote: >>> [snip] >>>> Then start either the >>>> 'next' array at the beginning, or the 'current' array at the current point >>>> (write to sync_min). >>> I couldn't find documentation for sync_min/sync_max sysfs params at >>> least for repo cloned from >>> git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-2.6.37.y.git >>> coolcold@coolcold:~/gits/linux-2.6.37.y$ grep -qi sync_min >>> Documentation/md.txt || echo failed find docs >>> failed find docs >>> >>> As I could understand from sources - resync_min & resync_max are >>> expressed in sectors (512bytes?) and are set to 0 & total sectors on >>> device accordingly. resync_max value should be divisible by array >>> chunk size (in sectors) . After setting this values, one can trugger >>> "check" / "repair" into sync_action. >>> >>> My basic idea is to use this method to clear pending sectors from >>> SMART checks and looks like this gonna work, am i right? >>> >>>> Then wait for however long you want, abort the check (write 'idle' to >>>> 'sync_action') and find out where it got up to (read sync_min) and record >>>> that for next time. >>>> >>>> NeilBrown >>>> >>> >>> >>> -- >>> Best regards, >>> [COOLCOLD-RIPN] >>> -- >>> To unsubscribe from this list: send the line "unsubscribe linux-raid" in >>> the body of a message to majordomo@xxxxxxxxxxxxxxx >>> More majordomo info at http://vger.kernel.org/majordomo-info.html >>> >> >> >> >> -- >> Roberto Spadim >> Spadim Technology / SPAEmpresarial >> > > > > -- > Best regards, > [COOLCOLD-RIPN] > -- > To unsubscribe from this list: send the line "unsubscribe linux-raid" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- Roberto Spadim Spadim Technology / SPAEmpresarial -- To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html