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