Re: Checkarray doesn't seem to do anything
From: Piergiorgio Sartor <hidden>
Date: 2016-03-02 17:44:54
On Tue, Mar 01, 2016 at 05:50:09PM -0700, rodman@shellport.com wrote:
It appears this is not an Mdadm bug but is in fact kernel/dash issue as you noted, Piergiorgio.quoted
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 <redacted> Date: Tue, March 01, 2016 4:25 pm To: rodman@shellport.com Cc: linux-raid@vger.kernel.org On Tue, Mar 01, 2016 at 02:57:21PM -0700, rodman@shellport.com wrote:quoted
Thank you for that information. My kernel is 4.2.0.I guess the problem is the same.quoted
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...quoted
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, pgquoted
Rodman Frowert -------- Original Message -------- Subject: Re: Checkarray doesn't seem to do anything From: Piergiorgio Sartor <redacted> Date: Tue, March 01, 2016 3:33 pm To: rodman@shellport.com Cc: linux-raid@vger.kernel.org On Tue, Mar 01, 2016 at 02:09:44PM -0700, rodman@shellport.com wrote:quoted
Hello, I have a question as it pertains to the checkarray function of Mdadm.Iquoted
can't actually get it to do anything. I'm running Ubuntu 14.04.4Serverquoted
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 mdadmitself.quoted
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.Iquoted
have attached, below, the current status of the mdadm managed array. Doing some Googling I haven't been able to find anyone else thatisn'tquoted
able to use the checkarray function so I must be doing somethingwrong.quoted
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, pgquoted
Rodman Frowertquoted
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"inquoted
the body of a message to majordomo@vger.kernel.org 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@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-- piergiorgio
-- piergiorgio