Description of Problem: Using 7.2, I've tried setting up Software RAID using Disk Druid. This is RAID 0 on 4 18GB SCSI disks. I've noticed that when I do this, it works, but there is one problem that shows up if any disk partitions for separate mount points, including swap partitions, are of the same size: the /dev/md[x] devices ignore what RAID partitions you specify and mix and match different partitions across cylinder boundaries. I consider this a problem for two reasons: (1) it is my understanding that for optimum performance that all RAID partitions for a given RAID device should reside across the same cylinder boundaries (2) even if (1) isn't correct, Disk Druid should not modify which RAID partitions should go into a selected RAID device. FWIW, I tried to workaround the problem using Kickstart -- the problem still occurs here -- the partitions I specify are ignored and partitions are mixed across cylinder boundaries. This indicates an anaconda problem to me. I realize all of this may be confusing, here is an example. Suppose I have four disks. I create a 512 MB partition on each one for a given mount point (say /tmp). These partitions are all on the same cylinder boundaries. I then make the RAID device and specify that each of these partitions -- /dev/sda11, /dev/sdb11, /dev/sdc11, and /dev/sdd11 -- should be used to make up the RAID device for /tmp. Then I create another 512 MB partition on each of the disks for another mount point (say /var/tmp). Again, these partitions are all on the same cylinder boundaries. I then make the RAID device and specify that each of these partitions -- /dev/sda12, /dev/sdb12, /dev/sdc12, and /dev/sdd12 -- should be used to make up the RAID device for /var/tmp. If I then go and edit each of these partitions to verify the partitions that make up each RAID device, or if I go ahead an install and then check the /etc/raidtab afterwords, the RAID device for /tmp might be make up of /dev/sda12, /dev/sdb11, /dev/sdc11, and /dev/sdd12 and /var/tmp might be made up of the other 512 MB partitions, meaning that I now have RAID devices using disk partitions crossing different cylinder boundaries. Trying to "fix" this by restating in Disk Druid which partitions should be used for each device does no good. This problem also exists if swap partitions are used that are the same size (in this example, swap partitions of 512 MB each)--swap might be on /dev/sda10, /dev/sdb11, /dev/sdc10, and /dev/sdd10, with the RAID device using the other partitions. Again, installing from Kickstart also exhibits the same problem. The only workaround is to ensure that the partition sizes for all RAID devices including non-RAID swap partitions must be of different sizes. Version-Release number of selected component (if applicable): 7.2 How Reproducible: everytime Steps to Reproduce: 1. 2. 3. Actual Results: Expected Results: Additional Information:
Two separate problems here really, both of which are elsewhere I'm pretty sure, but I'll just go ahead and clarify the problems and look for the older bugs later. Problem #1: Partitions aren't strongly ordered in Disk Druid and if you have a lot of partitions which are the same size, then there is no way to differentiate between them. This is definitely somewhere in bugzilla and has the tentative patch which is probably going to go in to make the partition ordering much stronger so that you can have predictability there; it was just too large of a change for me to feel comfortable about it when it was reported. Problem #2: Kickstart doesn't allow you to specify "I want a partition this size and I want it to be sdXY". If you do part raid.01 --size 1500 part raid.02 --size 1500 You can easily ensure that raid.01 and raid.02 are the partitions included in your RAID device, but where raid.01 and raid.02 end up isn't well-defined for the same reason as above and also you can't override and force it to be created as sdXY (which may well not happen just because of how it doesn't fit in with things)
I suppose one solution to this problem would be to have, at least as an option, anaconda/kickstart/whatever ensure that partitions that make up a given RAID device fall within the same cylinder boundaries. Is this possible? Users shouldn't have to know that this ensures the highest levels of speed when using software RAID.
This is an enhancement pretty much covered by existing bugzilla requests. I'll let katzj roll it up.
We have some thoughts about making a RAID wizard type of thing which would encompass trying to do things like that.
I think this situation would be best handled by the using the 'by cylinder' partitioning option now available in anaconda. The rest of the request is handled by existing bugzilla requests.