[RFC] mdadm 3.0 in anaconda for F11

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

 



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

[Index of Archives]     [Kickstart]     [Fedora Users]     [Fedora Legacy List]     [Fedora Maintainers]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]
  Powered by Linux