237 lines
7.8 KiB
Diff
237 lines
7.8 KiB
Diff
|
From a944da4e1a56cd926e6b21f5aaebc13198265419 Mon Sep 17 00:00:00 2001
|
||
|
From: Mariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com>
|
||
|
Date: Fri, 23 Feb 2024 15:51:42 +0100
|
||
|
Subject: [PATCH 15/41] mdadm: remove TODO
|
||
|
|
||
|
This file is not updated in 16 years.
|
||
|
No reasons to keep it. Remove it.
|
||
|
|
||
|
Signed-off-by: Mariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com>
|
||
|
---
|
||
|
TODO | 213 -----------------------------------------------------------
|
||
|
1 file changed, 213 deletions(-)
|
||
|
delete mode 100644 TODO
|
||
|
|
||
|
diff --git a/TODO b/TODO
|
||
|
deleted file mode 100644
|
||
|
index 279d20db..00000000
|
||
|
--- a/TODO
|
||
|
+++ /dev/null
|
||
|
@@ -1,213 +0,0 @@
|
||
|
- - add 'name' field to metadata type and use it.
|
||
|
- - use validate_geometry more
|
||
|
- - metadata should be able to check/reject bitmap stuff.
|
||
|
-
|
||
|
-DDF:
|
||
|
- Three new metadata types:
|
||
|
- ddf - used only to create a container.
|
||
|
- ddf-bvd - used to create an array in a container
|
||
|
- ddf-svd - used to create a secondary array from bvds.
|
||
|
-
|
||
|
- Usage:
|
||
|
- mdadm -C /dev/ddf1 /dev/sd[abcdef]
|
||
|
- mdadm -C /dev/md1 -e ddf /dev/sd[a-f]
|
||
|
- mdadm -C /dev/md1 -l container /dev/sd[a-f]
|
||
|
-
|
||
|
- Each of these create a new ddf container using all those
|
||
|
- devices. The name 'ddf*' signals that ddf metadata should be used.
|
||
|
- '-e ddf' only supports one level - 'container'. 'container' is only
|
||
|
- supported by ddf.
|
||
|
-
|
||
|
- mdadm -C /dev/md1 -l0 -n4 /dev/ddf1 # or maybe not ???
|
||
|
- mdadm -C /dev/md1 -l1 -n2 /dev/sda /dev/sdb
|
||
|
- If exactly one device is given, and it is a container, we select
|
||
|
- devices from that container.
|
||
|
- If devices are given that are already in use, they must be in use by
|
||
|
- a container, and the array is created in the container.
|
||
|
- If devices given are bvds, we slip under the hood to make
|
||
|
- the svd arrays.
|
||
|
-
|
||
|
- mdadm -A /dev/ddf ......
|
||
|
- base drives make a container. Anything in that container is started
|
||
|
- auto-read-only.
|
||
|
- if /dev/ddf is already assembled, we assemble bvds and svds inside it.
|
||
|
-
|
||
|
-
|
||
|
-2005-dec-20
|
||
|
- Want an incremental assembly mode to work nicely with udev.
|
||
|
- Core usage would be something like
|
||
|
- mdadm --incr-assemble /dev/newdevice
|
||
|
- This would
|
||
|
- - examine the device to determine uuid etc.
|
||
|
- - look for a match in /etc/mdadm.conf, abort if not found
|
||
|
- - find that device and collect current contents
|
||
|
- - perform an 'assemble' analysis to make sure we have the best set of devices.
|
||
|
- - remove or add devices as appropriate
|
||
|
- - possibly start the array if it was complete
|
||
|
-
|
||
|
- Other usages could involve
|
||
|
- - specify which array to auto-add to.
|
||
|
- This requires an existing array for uuid matching... is there any point?
|
||
|
-
|
||
|
- -
|
||
|
-
|
||
|
-
|
||
|
-2004-june-02
|
||
|
- * Don't print 'errors' flag, it is meaningless. DONE
|
||
|
- * Handle new superblock format
|
||
|
- * create device file on demand, particularly partitionable devices. DONE
|
||
|
- BUT figure a way to create the partition devices.
|
||
|
- auto=partN
|
||
|
- * Use Event: interface to listen for events. DONE, untested
|
||
|
- * Make sure mdadm -As can assemble multi-level RAIDs ok.
|
||
|
- * --build to build raid1 or multipath arrays
|
||
|
- clean or not ???
|
||
|
-
|
||
|
-----------------------------------------------------------------------------
|
||
|
-* mdadm --monitor to monitor failed multipath paths and re-instate them.
|
||
|
-
|
||
|
-* Maybe make "--help" fit in 80x24 and have a --long-help with more info. DONE
|
||
|
-
|
||
|
-
|
||
|
-* maybe "missing" instead of <bold>missing</> in doco DONE
|
||
|
-* possibly wait for resync to start, or even finish while assembling.- NO
|
||
|
-
|
||
|
-* -Db should have a devices= entry if possible. - DONE
|
||
|
-* when assembling multipath arrays, ignore any error indicators. - DONE
|
||
|
-* rationalise --monitor usage:
|
||
|
- mdadm --monitor
|
||
|
- doesn't do as expected. DONE
|
||
|
-
|
||
|
-* --assemble could have a --update option. - DONE
|
||
|
- following word can be:
|
||
|
- sparc2.2
|
||
|
- super-minor
|
||
|
-
|
||
|
-* mdadm /dev/md11, where md11 is raid0 can segfault, particularly when looking in the
|
||
|
- [UU_UUU] string ... which doesn't exist !
|
||
|
-It should be more sensible. DONE
|
||
|
-
|
||
|
-Example:
|
||
|
-
|
||
|
-from Raimund Sacherer <raimund.sacherer@ngit.at>
|
||
|
-
|
||
|
-mke2fs -m0 -q /dev/ram1 300
|
||
|
-mount -n -t ext2 /dev/ram1 /tmp
|
||
|
-echo DEVICE /dev/[sh]* >> /tmp/mdadm.conf
|
||
|
-mdadm -Esb /dev/[sh]* 2>/dev/null >> /tmp/mdadm.conf
|
||
|
-mdadm -ARsc /tmp/mdadm.conf
|
||
|
-umount /tmp
|
||
|
-
|
||
|
-
|
||
|
-?? Allow -S /dev/md? - current complains subsequent not a/d/r - DONE
|
||
|
-
|
||
|
-* new "Query" mode to subsume --detail and --examine.
|
||
|
- --query or -Q, takes a device and tells if it is an MD device,
|
||
|
- and also tells in a raid superblock is found.
|
||
|
- DONE
|
||
|
-
|
||
|
-* write mdstat.c to parse /proc/mdstat file
|
||
|
- Build list of arrays: name, rebuild-percent
|
||
|
- DONE
|
||
|
-
|
||
|
-* parse /proc/partitions and map major/minor into /dev/* names,
|
||
|
- and use that for default DEVICE list ????
|
||
|
-
|
||
|
-* --detail --scan to read /proc/mdstat, and then iterate over these,
|
||
|
- but assume --brief. --verbose can override
|
||
|
- check each subdevice to see if it is in conf_get_devs.
|
||
|
- Warn if not.
|
||
|
- DONE, but don't warn yet...
|
||
|
-
|
||
|
-* Support multipath ... maybe...
|
||
|
- maybe DONE
|
||
|
-
|
||
|
-* --follow to syslog
|
||
|
-
|
||
|
-* --follow to move spares around DONE
|
||
|
-
|
||
|
-* --follow to notice other events: DONE
|
||
|
- rebuild started
|
||
|
- spare activated
|
||
|
- spare removed
|
||
|
- spare added
|
||
|
-
|
||
|
-------------------------------------
|
||
|
-- --examine --scan scans all drives and build an mdadm.conf file DONE
|
||
|
-
|
||
|
-- check superblock checksum in examine DONE
|
||
|
-- report "chunk" or "rounding" depending on raid level DONE
|
||
|
-- report "linear" instead of "-1" for raid level DONE
|
||
|
-- decode ayout depending on raid level DONE
|
||
|
-- --verbose and --force flags. DONE
|
||
|
-
|
||
|
-- set md_minor, *_disks for Create - DONE
|
||
|
-- for create raid5, how to choose between
|
||
|
- all working, but not insync
|
||
|
- one missing, one spare, insync DONE (--force)
|
||
|
-- and for raid1 - some failed drives... (missing)
|
||
|
-
|
||
|
-- when RUN_ARRAY, make sure *_disks counts are right
|
||
|
-
|
||
|
-- get --detail to extract extra stuff from superblock,
|
||
|
- like uuid DONE
|
||
|
-- --detail --brief to give a config file line DONE
|
||
|
-- parse config file. DONE
|
||
|
-- test...
|
||
|
-
|
||
|
-- when --assemble --scan, if an underlying device is an md device,
|
||
|
- then try to assemble that device first.
|
||
|
-
|
||
|
-
|
||
|
-- mdadm -S /dev/md0 /dev/md1 gives internal error FIXED
|
||
|
-
|
||
|
-- mdadm --detail --scan print summary of what it can find? DONE
|
||
|
-
|
||
|
-
|
||
|
----------
|
||
|
-Assemble doesn't add spares. - DONE
|
||
|
-Create to allow "missing" name for devices.
|
||
|
-Create to accept "--force" for do exactly what is requested
|
||
|
-- get Assemble to upgrade devices if force flag.
|
||
|
-ARRAY lines in config file to have super_minor=n
|
||
|
-ARRAY lines in config file to have device=pattern, and only accept
|
||
|
- those devices
|
||
|
- If UUID given, insist on that
|
||
|
- If not, but super_minor given, require all found with that minor
|
||
|
- to have same uuid
|
||
|
- If only device given, all valid supers on those devices must have
|
||
|
- same uuid
|
||
|
-allow /dev/mdX as first argument before any options
|
||
|
-Possible --dry-run option for create and assemble--force
|
||
|
-
|
||
|
-Assemble to check that all devices mentioned in superblock
|
||
|
- are present.
|
||
|
-
|
||
|
-New mode: --Monitor (or --Follow)
|
||
|
- Periodically check status of all arrays (listed in config file).
|
||
|
- Log every event and apparent cause - or differences
|
||
|
- Email and alert - or run a program - for important events
|
||
|
- Move spares around if necessary.
|
||
|
-
|
||
|
- An Array line can have a spare-group= field that indicates that
|
||
|
- the array shares spares with other arrays with the same
|
||
|
- spare-group name.
|
||
|
- If an array has a failed and no spares, then check all other
|
||
|
- arrays in the spare group. If one has no failures and a spare,
|
||
|
- then consider that spare.
|
||
|
- Choose the smallest considered spare that is large enough.
|
||
|
- If there is one, then hot-remove it from it's home, and
|
||
|
- hot-add it to the array in question.
|
||
|
-
|
||
|
- --mail-to address
|
||
|
- --alert-handler program
|
||
|
-
|
||
|
- Will also extract information from /proc/mdstat if present,
|
||
|
- and consider 20% marks in rebuild as events.
|
||
|
-
|
||
|
- Events are:
|
||
|
- drive fails - causes mail to be sent
|
||
|
- rebuild started
|
||
|
- spare activated
|
||
|
- spare removed
|
||
|
- spare added
|
||
|
--
|
||
|
2.40.1
|
||
|
|