Re: harmful parallel AoE check/resync

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

 



Ferenc Wagner <wferi@xxxxxxx> writes:

> md_do_sync() in md.c takes care not to resync/check MD devices built
> on different parts of the same physical device in parallel.  This does
> not account for AoE devices, which, however, most of the time share
> and are limited by network bandwidth.

...and may also share underlying backing devices at the far end.

I run a cluster with a lot of cross-access of storage via AoE, combined
using md. In fact, every RAID device on every host shares physical devices
behind AoE, so I crack this particular nut locally with the following
sledge-hammer:

diff --git a/drivers/md/md.c b/drivers/md/md.c
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -5744,8 +5744,7 @@
 			if (mddev2 == mddev)
 				continue;
 			if (!mddev->parallel_resync
-			&&  mddev2->curr_resync
-			&&  match_mddev_units(mddev, mddev2)) {
+			&&  mddev2->curr_resync) {
 				DEFINE_WAIT(wq);
 				if (mddev < mddev2 && mddev->curr_resync == 2) {
 					/* arbitrarily yield */

This clearly isn't the right solution more generally, though, and it'd be
great to have a more elegant way of defining which backing devices conflict
with one another, and which are independent.

Cheers,

Chris.
--
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