* sync action not working/ignored
@ 2012-09-22 22:27 Alexander Kühn
2012-09-23 5:59 ` Mikael Abrahamsson
2012-09-26 1:47 ` NeilBrown
0 siblings, 2 replies; 4+ messages in thread
From: Alexander Kühn @ 2012-09-22 22:27 UTC (permalink / raw)
To: linux-raid
Hi,
for some reason linux appears to be ignoring my sync_action requests:
root@nas:~# uname -a
Linux nas 3.5.4 #1 SMP Sat Sep 15 15:41:21 CEST 2012 x86_64 GNU/Linux
root@nas:~# echo /sys/block/md*/md/sync_action
/sys/block/md1/md/sync_action
root@nas:~# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md1 : active (auto-read-only) raid5 sdb[5] sdg[9] sdd[7] sdf[6] sde[8]
sdc[2] sda[1]
11719408128 blocks super 1.2 level 5, 64k chunk, algorithm 2
[7/7] [UUUUUUU]
bitmap: 0/15 pages [0KB], 65536KB chunk
unused devices: <none>
root@nas:~# echo check >/sys/block/md1/md/sync_action
root@nas:~# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md1 : active (auto-read-only) raid5 sdb[5] sdg[9] sdd[7] sdf[6] sde[8]
sdc[2] sda[1]
11719408128 blocks super 1.2 level 5, 64k chunk, algorithm 2
[7/7] [UUUUUUU]
bitmap: 0/15 pages [0KB], 65536KB chunk
unused devices: <none>
root@nas:~# echo repair >/sys/block/md1/md/sync_action
root@nas:~# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md1 : active (auto-read-only) raid5 sdb[5] sdg[9] sdd[7] sdf[6] sde[8]
sdc[2] sda[1]
11719408128 blocks super 1.2 level 5, 64k chunk, algorithm 2
[7/7] [UUUUUUU]
bitmap: 0/15 pages [0KB], 65536KB chunk
unused devices: <none>
root@nas:~# mdadm -Q --detail /dev/md1
/dev/md1:
Version : 1.2
Creation Time : Thu Sep 9 20:43:43 2010
Raid Level : raid5
Array Size : 11719408128 (11176.50 GiB 12000.67 GB)
Used Dev Size : 1953234688 (1862.75 GiB 2000.11 GB)
Raid Devices : 7
Total Devices : 7
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Sat Sep 22 23:28:50 2012
State : active
Active Devices : 7
Working Devices : 7
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 64K
Name : nas:1 (local to host nas)
UUID : 5dbc572f:0e6b18bd:125db183:3511c054
Events : 109708
Number Major Minor RaidDevice State
5 8 16 0 active sync /dev/sdb
1 8 0 1 active sync /dev/sda
2 8 32 2 active sync /dev/sdc
8 8 64 3 active sync /dev/sde
6 8 80 4 active sync /dev/sdf
7 8 48 5 active sync /dev/sdd
9 8 96 6 active sync /dev/sdg
Nothing in dmesg/syslog.
No idea what's going on. :(
Alex.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: sync action not working/ignored
2012-09-22 22:27 sync action not working/ignored Alexander Kühn
@ 2012-09-23 5:59 ` Mikael Abrahamsson
2012-09-24 7:48 ` Sebastian Riemer
2012-09-26 1:47 ` NeilBrown
1 sibling, 1 reply; 4+ messages in thread
From: Mikael Abrahamsson @ 2012-09-23 5:59 UTC (permalink / raw)
To: Alexander Kühn; +Cc: linux-raid
[-- Attachment #1: Type: TEXT/PLAIN, Size: 662 bytes --]
On Sun, 23 Sep 2012, Alexander Kühn wrote:
> root@nas:~# echo /sys/block/md*/md/sync_action
> /sys/block/md1/md/sync_action
> root@nas:~# cat /proc/mdstat
> Personalities : [raid6] [raid5] [raid4]
> md1 : active (auto-read-only) raid5 sdb[5] sdg[9] sdd[7] sdf[6] sde[8] sdc[2]
> sda[1]
> 11719408128 blocks super 1.2 level 5, 64k chunk, algorithm 2 [7/7]
> [UUUUUUU]
> bitmap: 0/15 pages [0KB], 65536KB chunk
I'd imagine that it's the "(auto-read-only)" that is the culprit here. If
you can do something that writes to the array (mount of a filesystem for
instance) and then reproduce the problem?
--
Mikael Abrahamsson email: swmike@swm.pp.se
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: sync action not working/ignored
2012-09-23 5:59 ` Mikael Abrahamsson
@ 2012-09-24 7:48 ` Sebastian Riemer
0 siblings, 0 replies; 4+ messages in thread
From: Sebastian Riemer @ 2012-09-24 7:48 UTC (permalink / raw)
To: Mikael Abrahamsson; +Cc: Alexander Kühn, linux-raid
On 23.09.2012 07:59, Mikael Abrahamsson wrote:
> On Sun, 23 Sep 2012, Alexander Kühn wrote:
>
>> root@nas:~# echo /sys/block/md*/md/sync_action
>> /sys/block/md1/md/sync_action
>> root@nas:~# cat /proc/mdstat
>> Personalities : [raid6] [raid5] [raid4]
>> md1 : active (auto-read-only) raid5 sdb[5] sdg[9] sdd[7] sdf[6]
>> sde[8] sdc[2] sda[1]
>> 11719408128 blocks super 1.2 level 5, 64k chunk, algorithm 2
>> [7/7] [UUUUUUU]
>> bitmap: 0/15 pages [0KB], 65536KB chunk
>
> I'd imagine that it's the "(auto-read-only)" that is the culprit here.
> If you can do something that writes to the array (mount of a
> filesystem for instance) and then reproduce the problem?
>
Indeed, use "mdadm -w /dev/md1" to set it writeable. This immediately
starts pending sync actions. In the kernel code in "drivers/md/md.c"
there is the function "action_store" which handles your "sync_action"
sysfs file writes. I just sets some bits in "mddev->recovery".
--
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
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: sync action not working/ignored
2012-09-22 22:27 sync action not working/ignored Alexander Kühn
2012-09-23 5:59 ` Mikael Abrahamsson
@ 2012-09-26 1:47 ` NeilBrown
1 sibling, 0 replies; 4+ messages in thread
From: NeilBrown @ 2012-09-26 1:47 UTC (permalink / raw)
To: Alexander Kühn; +Cc: linux-raid
[-- Attachment #1: Type: text/plain, Size: 4712 bytes --]
On Sun, 23 Sep 2012 00:27:34 +0200 Alexander Kühn
<alexander.kuehn@nagilum.de> wrote:
> Hi,
> for some reason linux appears to be ignoring my sync_action requests:
> root@nas:~# uname -a
> Linux nas 3.5.4 #1 SMP Sat Sep 15 15:41:21 CEST 2012 x86_64 GNU/Linux
> root@nas:~# echo /sys/block/md*/md/sync_action
> /sys/block/md1/md/sync_action
> root@nas:~# cat /proc/mdstat
> Personalities : [raid6] [raid5] [raid4]
> md1 : active (auto-read-only) raid5 sdb[5] sdg[9] sdd[7] sdf[6] sde[8]
> sdc[2] sda[1]
> 11719408128 blocks super 1.2 level 5, 64k chunk, algorithm 2
> [7/7] [UUUUUUU]
> bitmap: 0/15 pages [0KB], 65536KB chunk
>
> unused devices: <none>
> root@nas:~# echo check >/sys/block/md1/md/sync_action
> root@nas:~# cat /proc/mdstat
> Personalities : [raid6] [raid5] [raid4]
> md1 : active (auto-read-only) raid5 sdb[5] sdg[9] sdd[7] sdf[6] sde[8]
> sdc[2] sda[1]
> 11719408128 blocks super 1.2 level 5, 64k chunk, algorithm 2
> [7/7] [UUUUUUU]
> bitmap: 0/15 pages [0KB], 65536KB chunk
>
> unused devices: <none>
> root@nas:~# echo repair >/sys/block/md1/md/sync_action
> root@nas:~# cat /proc/mdstat
> Personalities : [raid6] [raid5] [raid4]
> md1 : active (auto-read-only) raid5 sdb[5] sdg[9] sdd[7] sdf[6] sde[8]
> sdc[2] sda[1]
> 11719408128 blocks super 1.2 level 5, 64k chunk, algorithm 2
> [7/7] [UUUUUUU]
> bitmap: 0/15 pages [0KB], 65536KB chunk
>
> unused devices: <none>
> root@nas:~# mdadm -Q --detail /dev/md1
> /dev/md1:
> Version : 1.2
> Creation Time : Thu Sep 9 20:43:43 2010
> Raid Level : raid5
> Array Size : 11719408128 (11176.50 GiB 12000.67 GB)
> Used Dev Size : 1953234688 (1862.75 GiB 2000.11 GB)
> Raid Devices : 7
> Total Devices : 7
> Persistence : Superblock is persistent
>
> Intent Bitmap : Internal
>
> Update Time : Sat Sep 22 23:28:50 2012
> State : active
> Active Devices : 7
> Working Devices : 7
> Failed Devices : 0
> Spare Devices : 0
>
> Layout : left-symmetric
> Chunk Size : 64K
>
> Name : nas:1 (local to host nas)
> UUID : 5dbc572f:0e6b18bd:125db183:3511c054
> Events : 109708
>
> Number Major Minor RaidDevice State
> 5 8 16 0 active sync /dev/sdb
> 1 8 0 1 active sync /dev/sda
> 2 8 32 2 active sync /dev/sdc
> 8 8 64 3 active sync /dev/sde
> 6 8 80 4 active sync /dev/sdf
> 7 8 48 5 active sync /dev/sdd
> 9 8 96 6 active sync /dev/sdg
>
> Nothing in dmesg/syslog.
> No idea what's going on. :(
Thanks for the report.
I've queued up a patch which will cause changes to sync_action to clear the
read-auto status.
NeilBrown
From f1b6162a19c8217acd7762de03eeb80cea6d399b Mon Sep 17 00:00:00 2001
From: NeilBrown <neilb@suse.de>
Date: Wed, 26 Sep 2012 11:46:00 +1000
Subject: [PATCH] md: writing to sync_action should clear the read-auto state.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
In some cases array are started in 'read-auto' state where in
nothing gets written to any device until the array is written
to. The purpose of this is to make accidental auto-assembly
of the wrong arrays less of a risk, and to allow arrays to be
started to read suspend-to-disk images without actually changing
anything (as might happen if the array were dirty and a
resync seemed necessary).
Explicitly writing the 'sync_action' for a read-auto array currently
doesn't clear the read-auto state, so the sync action doesn't
happen, which can be confusing.
So allow any successful write to sync_action to clear any read-auto
state.
Reported-by: Alexander Kühn <alexander.kuehn@nagilum.de>
Signed-off-by: NeilBrown <neilb@suse.de>
diff --git a/drivers/md/md.c b/drivers/md/md.c
index 373b3eb..e868f0c 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -4296,6 +4296,13 @@ action_store(struct mddev *mddev, const char *page, size_t len)
set_bit(MD_RECOVERY_REQUESTED, &mddev->recovery);
set_bit(MD_RECOVERY_SYNC, &mddev->recovery);
}
+ if (mddev->ro == 2) {
+ /* A write to sync_action is enough to justify
+ * canceling read-auto mode
+ */
+ mddev->ro = 0;
+ md_wakeup_thread(mddev->sync_thread);
+ }
set_bit(MD_RECOVERY_NEEDED, &mddev->recovery);
md_wakeup_thread(mddev->thread);
sysfs_notify_dirent_safe(mddev->sysfs_action);
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 828 bytes --]
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2012-09-26 1:47 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-09-22 22:27 sync action not working/ignored Alexander Kühn
2012-09-23 5:59 ` Mikael Abrahamsson
2012-09-24 7:48 ` Sebastian Riemer
2012-09-26 1:47 ` NeilBrown
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).