Hi, I'd like to start discussion about changes needed in anaconda to support newer version of mdadm tool (v3.0). This version contains support for external metadata formats like IMSM or DDF. Version 3.0 introduces the container which is a collection of disks with the same metadata. Before creating array, the container must be created. # mdadm -CR /dev/md/imsm -e imsm -n 2 /dev/sdb /dev/sdc # mdadm -CR /dev/md/raid1 -a mdp -l 1 -n 2 /dev/sdb /dev/sdc For each container mdadm will start a program mdmon which will monitor the array. After stopping the array, container must be stopped. # mdadm -S /dev/md/raid1 # mdadm -S /dev/md/imsm To activate created before array, we can run: # mdadm -E --scan > /tmp/mdadm.conf # mdadm -Asc /tmp/mdadm.conf Below are my first comments on information, I've found on page http://fedoraproject.org/wiki/Anaconda/StorageRewrite. > > We are using raid.py module which is a mdadm tool wrapper > > (via isys.py module). Besides these two files, there is the file fsset.py which is used to create raid devices. > > It provides this functionality: > > - get available raid levels (using /proc/mdstat) In version 3.0 we have container in /proc/mdstat, so function getRaidLevels() should be rewritten. # cat /proc/mdstat Personalities : [raid1] md126 : active raid1 sdb[1] sdc[0] 156288640 blocks super external:/md127/0 [2/2] [UU] [====>................] resync = 24.6% (38464064/156288640) finish=32.6min speed=60096K/sec md127 : inactive sdc[1](S) sdb[0](S) 4514 blocks super external:imsm unused devices: <none> > > - provide raid levels properties (min members, max spares) Possible changes in makeDevice(). > > - enumerate raid components (using partedUtils) Possible changes in scanForRaid(drives). > > Using these mdadm calls: > > - mdadm --examine (Misc mode of mdadm) Function: _getRaidInfo() mdadm returns level as string: "raid1" instead of number: 1 > > - mdadm --stop (Misc mode) Function: raidstop() Stopping of the container should be added. > > - mdadm --detail --scan (Misc mode) Method: RAIDDevice.mdadmConf() mdadm returns 2 lines, one for array and second for container. > > - mdadm --create (Create mode) Method: RAIDDevice.setupDevice() Creating container should be added. > > - mdadm --assemble (Assemble mode) Function: raidstart() Assembling of container should be added. As temporary development solution can we create new class RAIDImsmDevice based on class RAIDDevice? The class RAIDDevice we will leave unchanged. > > There is no mdraid library. > > I asked Doug Ledford (owner of mdadm package) about his view which > > is: > > - there are no plans to write complete md library which could > > be shared by mdadm and python bindings I've found out on irc today that some functions from files (isis.py, fsset.py, raid.py) which execute mdadm can be moved to another modules. Are there, at this moment, only plans about move these functions, or is there any new code I can start investigate? Regads, Jacek _______________________________________________ Anaconda-devel-list mailing list Anaconda-devel-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/anaconda-devel-list