DmraidSupport

  • Launchpad Entry: dmraid-support

  • Created: 2008-03-03

  • Contributors: LukeYelavich

  • Packages affected: dmraid, grub, grub-installer, debian-installer, ubiquity, udev, devmapper

This spec is loosely based on the FakeRaidSpec.

Summary

Provide out of the box support for BIOS Software RAID/FakeRAID in Ubuntu Intrepid.

Release Note

  • Ubuntu now supports fakeraid a.k.a SoftRaid/BIOS RAID out of the box. Now you can install Ubuntu onto your existing RAID setup that you already may have for Windows, allowing for an easy dual boot configuration. You can also install Ubuntu onto a brand new softRAID setup as well.

Rationale

Many motherboards and PCI IDE/SATA cards have entered the market since late 2002 supporting S-ATA/IDE RAID. This is in fact fake hardware raid, a.k.a. fakeraid or softraid. A number of power users and servers are using such solutions as a cheap raid solution, particularly well known hardware OEMs. Intel themselves are using this solution for their lower end server boards. Many users already have other operating systems such as Windows installed on such a RAID setup, and wish to install Ubuntu as a dual boot configuration. Out of the box Ubuntu support using dmraid would allow these users to install Ubuntu alongside windows, without having to either get rid of the RAID setup, or use another non-RAID hard drive.

Use cases

  • Tina is a power user and does a lot of video editing. She wants a fast and large disk subsystem so she buys a motherboard with SATA RAID support and two or three SATA drives to use in a RAID-0. She wants to be able to install Ubuntu on this system.
  • Tom is a sysadmin and needs to set up a cheap server with a RAID-1 for fault tolerance. He builds a system using s-ata fakeraid and wants to install Ubuntu.
  • John is a gamer and has a motherboard with on-board fakeraid and has it configured with 2 or more hard drives in RAID-0. He would like to now install Ubuntu on the machine and dual-boot with the already-installed Windows OS.

Design

Implementation

  • dmraid and partman-dmraid both need to be moved to main and added to the seeds to provide out of the box support for fakeraid.
  • A new package containing extra pieces such as a dmraid DSO for use with dmeventd needs to be packaged, and moved into main. This includes a logwatch configuration file for use with dmraid.

UI Changes

  • The UI for dmraid's debian-installer component needs to be cleaned up so it is not confusing for users.
    • Partitions on a dmraid set should be able to be created individually, without having to go through a commit action before the user is able to choose what filesystem/mount point to use.
    • Guided partitioning (or preseedability) requires writing a partman-auto-dmraid component to apply all desired partitioning state at once.
  • Based on the above cleanup for debian-installer, ubiquity needs partman-dmraid integration at the backend, as well as for the UI.
    • Need to invent underlying arbitrary partition handling (LVM, MD, DM-RAID).

Code Changes

  • The dmraid initramfs script needs a cleanup, and added functionality, to ensure the RAID array is brought up, and if there are any problems, to notify the user using mountfail.
  • Like LVM, dmraid needs to be started by udev, using dmraid signatures to help identify a dmraid array.
    • "are there any dmraid signatures found? yes: continue, no: move on."
    • "Are all devices available? yes: start, no: give up for now"
  • Vol_id needs to be able to recognise dmraid signatures. See udev-*/extras/volume_id/README and udev-*/extras/volume_id/lib/*.c.
  • Since dmraid signatures are different between manufacturers, and there is more than one implementation in existance for recognising such signatures, dmraid should be extended to be a vol_id helper for dmraid signatures.
  • A utility needs to be written to generate RAID metadata for virtual machine disks, to allow users who don't have dmraid hardware to be able to test dmraid functionality.
    • It should be possible to splat metadata on to a kvm drive and have the VM start up DM-RAID partitions.
    • Once the drive images are created, it should be possible to run something like "mk-fake-dm-raid /kvm-partitions/test1.img /kvm-partitions/test2.img" to add the metadata.
    • In the future it should be possible to provide command-line arguments to state what raid level, and what metadata type to be used.
  • The devmapper package needs to be modified to build and make available the dmeventd daemon, needed for dmraid event logging.
  • Educate grub/grub2 and grub-installer about fakeraid. Currently the installation of grub will fail, since grub doesn't handle the fakeraid installation target (see bug #73141). There is also mention of grub installation issues on the Debian wiki page related to dmraid and installation.

  • Work needs to be done on partman-auto to better handle dmraid's use case for the partitioner UI.


CategorySpec

DmraidSupport (last edited 2008-08-06 16:31:43 by localhost)