On Fri, 1 Oct 2010 13:36:48 +0100 "Labun, Marcin" <Marcin.Labun@xxxxxxxxx> wrote: > >From f423b226f10cfe3b416c5e0580dde45cd8ca887d Mon Sep 17 00:00:00 2001 > From: Marcin Labun <marcin.labun@xxxxxxxxx> > Date: Wed, 29 Sep 2010 06:12:38 +0200 > Subject: [AUTOREBUILD 0/8] Autorebuild monitor patches based on user defined policy > > This is updated series of patches forming autorebuild functionality in mdadm > monitor based on new policy code. Hi Marcin, thanks for this, and apologies for not replying sooner. I've had a bit of a look and some of it seems good. I haven't had a thorough look yet as I am in the middle of doing some fairly serious refactoring of mdadm (the supertype, and mdinfo structures are going to be heavily changed and largely merged - some super_switch methods will disappear (e.g. getinfo_super) and others will appear (load_container)). Once I have finished that I will review your code more thoroughly and merge it into the new code base. One concern I do have is patch 0002 which removes the spare-group based spare migration. That functionality needs to stay, though obviously the implementation can change. I imagine the 'spare-group' information would be added to each member device as a 'domain' name. Also it is best not to remove functionality and then re-add it a different way, but rather to make sure the functionality works after every change, but just gets extended at various points. Thanks, NeilBrown > > Autorebuild Monitoring application: > Autorebuild monitor is part of monitor application (mdadm -F). In the current > code of mdadm monitor autorebuild feature was based on spare group assignment in > mdadm.conf file and worked only for native metadata. > The new autorebuild implementation works for all metadata types. It uses > the concept of domains in mdadm.conf introduced by Neil Brown. > Monitoring application shall periodically check the state of MD active arrays > and trigger a rebuild if there are eligible spare disks in other containers. > Degraded arrays are checked one by one. For each array a potential spare disk > is searched. If the spare disk matches the domain of the degraded array and > the domain action allows for spare sharing the spare is moved using existing > Manage_subdevs function. If the addition fails, the spare device is moved back > to the original container and next potential spare is tried. The process is > repeated until all arrays are checked and the process is put into a sleep state > for a configured period. > > The design of mdadm monitor requires that there is only one autorebuild process running. > Therefore a new option -no-sharing has been added to Monitor mode, and spare sharing is > allowed in only one instance of Monitor. User is still able to start Monitoring functions > in multiple instances. > > The autorebuild build-in assumptions are: > 1\spares are shared between the arrays of the same metadata > 2\spares are moved only from containers/volumes that are not degraded > 3\spares are moved to containers/volumes lacking a *good* spare (size) > > > 0001-Monitor-set-err-on-arrays-not-in-mdstat.patch > 0002-Monitor-removed-spare-group-based-spare-sharing-code.patch > 0003-mdadm-added-no-sharing-parameter-for-Monitor-mode.patch > 0004-Monitor-link-container-volumes-in-statelist.patch > 0005-imsm-create-mdinfo-list-of-disks-in-a-container-from.patch > 0006-Monitor-autorebuild-funcionality-added.patch > 0007-Monitor-Respect-policy-in-auto-rebuild-in-mdadm-moni.patch > 0008-Monitor-Helper-functions-added-for-spare_sharing-in-.patch > > > Monitor.c | 605 +++++++++++++++++++++++++++++++++++++++++++++++---------- > ReadMe.c | 2 + > mdadm.c | 8 +- > mdadm.h | 8 +- > super-intel.c | 53 +++++ > 5 files changed, 565 insertions(+), 111 deletions(-) > -- 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