Re: Checkarray doesn't seem to do anything

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Mar 01, 2016 at 05:50:09PM -0700, rodman@xxxxxxxxxxxxx wrote:
> 
> It appears this is not an Mdadm bug but is in fact kernel/dash issue as
> you noted, Piergiorgio.
> 
> >From the bug tracker here: 
> https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=787950
> 
> "This is a kernel/dash issue. In kernel 4.0, the md sysfs implementation
> does not work with partial reads from /sys/block/md0/md/sync_action;
> the read syscall returns the entire contents of the file even if you
> try to read less. Dash has an inefficient implementation which reads
> input one byte at a time, and fails when it hits the kernel
> misbehavior."

Just tested:

dd if=/sys/block/md0/md/sync_action bs=1 count=1

On kernel 3.x I get "i", on kernel 4.x I get "idle"... :-)

> 
> The work around is what you said.  Substitute bash for sh at the
> beginning of the script.  Unfortunately that doesn't work for me as I
> get this error when trying to run checkarray now:
> "checkarray: E: /sys/block/md0/md/sync_action not writeable."

Well, first check the permissions with:

ls -l /sys/block/md0/md/sync_action

Then make sure you're root, otherwise it will
not be possible to write, of course.

bye,

pg

> 
> I'll do some research to see what's that's about.  I'm glad to know its
> not a Mdadm issue per say.
> 
> Rodman Frowert
> 
> -------- Original Message --------
> Subject: Re: Checkarray doesn't seem to do anything
> From: Piergiorgio Sartor <piergiorgio.sartor@xxxxxxxx>
> Date: Tue, March 01, 2016 4:25 pm
> To: rodman@xxxxxxxxxxxxx
> Cc: linux-raid@xxxxxxxxxxxxxxx
> 
> On Tue, Mar 01, 2016 at 02:57:21PM -0700, rodman@xxxxxxxxxxxxx wrote:
> > Thank you for that information. My kernel is 4.2.0.
> 
> I guess the problem is the same.
> 
> > 
> > Is this it's intended behavior or is it simply a bug that has not been
> > corrected?
> 
> Well, I think it is a bug.
> I'm not sure if "dash" bug or kernel bug.
> I suspect "dash", since "bash" works...
> 
> > 
> > I only bring this up as nearly all mdadm config tutorials at some point
> > mention the checkarray function. They also point out that checkarray is
> > also auto configured in the cron tab (cron.d) to run once a month. But
> > of course, if checkarray doesn't work then people may think it is
> > running once a month when it really isn't.
> 
> Exactly!
> I've some Ubuntu 14.04.x with old kernel, and one
> with new kernel.
> This one has a "weak" HDD in RAID (one / some blocks
> waiting for relocation).
> In my sytems the check occurs weekly, but it did not!
> Tried from command line to no avail...
> Debugging the script led to the previous result.
> 
> I'm not sure, maybe someone should file a bug, but I
> have not to much faith in Ubuntu md/mdadm support.
> In the past they were slow or no reacting, and "mdadm"
> was always an obsolete version (like it is in 14.04.x).
> Maybe Debian could be a better place, not sure.
> 
> bye,
> 
> pg
> 
> > 
> > 
> > Rodman Frowert -------- Original Message --------
> > Subject: Re: Checkarray doesn't seem to do anything
> > From: Piergiorgio Sartor <piergiorgio.sartor@xxxxxxxx>
> > Date: Tue, March 01, 2016 3:33 pm
> > To: rodman@xxxxxxxxxxxxx
> > Cc: linux-raid@xxxxxxxxxxxxxxx
> > 
> > On Tue, Mar 01, 2016 at 02:09:44PM -0700, rodman@xxxxxxxxxxxxx wrote:
> > > 
> > > Hello,
> > > 
> > > I have a question as it pertains to the checkarray function of Mdadm.
> > I
> > > can't actually get it to do anything. I'm running Ubuntu 14.04.4
> > Server
> > > LTS with the latest mdadm installed. I have a single RAID 1 mirror
> > > configured and working properly near as I can tell. 
> > > 
> > > I can force a check if I issue "echo check >
> > > /sys/block/md0/md/sync_action" as root. I can then see the status of
> > > the check via /proc/mdstat or using the --detail switch on mdadm
> > itself.
> > > 
> > > However, nothing happens if I type in:
> > > /usr/share/mdadm/checkarray -a
> > > or
> > > /usr/share/mdadm/checkarray -a /dev/mdX
> > > or
> > > /usr/share/mdadm/checkarray -as
> > > 
> > > I've tried the commands as root and using sudo. The array sits idle
> > > after all of the above commands. The only thing I can actually get
> > > checkarray to perform is to give me the help output if I pass it -h.
> > I
> > > have attached, below, the current status of the mdadm managed array. 
> > > Doing some Googling I haven't been able to find anyone else that
> > isn't
> > > able to use the checkarray function so I must be doing something
> > wrong.
> > > 
> > > Any ideas?
> > 
> > Well, yes, I've the same problem.
> > 
> > Ubuntu 14.04.x with kernel 3.13, "checkarray" works.
> > Ubuntu 14.04.x with kernel 4.11 (I think), "checkarray"
> > does not work.
> > 
> > The script runs with "dash" (not "bash") and it has
> > a "read cur_status < something_from_sysfs" in order to check
> > the array status.
> > With kernel 3.13, the "read" returns the proper value,
> > with kernel 4.11 (I think) the very same "read" exits
> > the script without any message or else.
> > 
> > One option is to use "bash", that is change the top
> > of the script from: #!/bin/sh to #!/bin/bash
> > 
> > Another is to change the "read", with a "cat", that is
> > something like: cur_status=$( cat something_from_sysfs )
> > 
> > You can check yourself, there is only one "read" in
> > the script (if I recall correctly).
> > 
> > Hope this helps,
> > 
> > bye,
> > 
> > pg
> > 
> > > 
> > > Rodman Frowert
> > > 
> > 
> > > 
> > > cat /proc/mdstat shows:
> > > ------------------
> > > rodman@nas:/usr/share/mdadm$ cat /proc/mdstat
> > > Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5]
> > > [raid4] [raid10]
> > > md0 : active raid1 sdc1[1] sdb1[0]
> > > 5860389696 blocks super 1.2 [2/2] [UU]
> > > -----------------
> > > 
> > > sudo mdadm --detail /dev/md0 shows:
> > > ------------------
> > > rodman@nas:/usr/share/mdadm$ sudo mdadm --detail /dev/md0
> > > /dev/md0:
> > > Version : 1.2
> > > Creation Time : Fri Feb 26 14:07:40 2016
> > > Raid Level : raid1
> > > Array Size : 5860389696 (5588.90 GiB 6001.04 GB)
> > > Used Dev Size : 5860389696 (5588.90 GiB 6001.04 GB)
> > > Raid Devices : 2
> > > Total Devices : 2
> > > Persistence : Superblock is persistent
> > > 
> > > Update Time : Tue Mar 1 07:40:19 2016
> > > State : clean
> > > Active Devices : 2
> > > Working Devices : 2
> > > Failed Devices : 0
> > > Spare Devices : 0
> > > 
> > > Name : nas:0 (local to host nas)
> > > UUID : 4765e7df:0e1a6ad2:1321765f:a2d9f2c9
> > > Events : 164
> > > 
> > > Number Major Minor RaidDevice State
> > > 0 8 17 0 active sync /dev/sdb1
> > > 1 8 33 1 active sync /dev/sdc1
> > > 
> > > -----------------
> > > --
> > > 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
> > 
> > -- 
> > 
> > piergiorgio
> > --
> > 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
> > --
> > 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
> 
> -- 
> 
> piergiorgio

-- 

piergiorgio
--
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



[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux