The original (standard) form of names for md devices is , where is a number between 0 and 99. More recent kernels have support for names such as . Under 2.4.x kernels and earlier these two were the only options. Both of them are non-partitionable. Since 2.6.x kernels, a new type of MD device was introduced, a
partitionable array. The device names were modified by changing to . The partitions were identified by adding , where is the partition number; thus for example. Since version 2.6.28 of the
Linux kernel mainline, non-partitionable arrays can be partitioned, the partitions being referred to in the same way as for partitionable arrays for example, . Since version 3.7 of the Linux kernel mainline, md supports
TRIM operations for the underlying
solid-state drives (SSDs), for linear, RAID 0, RAID 1, RAID 5 and RAID 10 layouts.
Booting Since support for MD is found in the kernel, there is an issue with using it before the kernel is running. Specifically it
will not be present if the boot loader is either
(e)LiLo or
GRUB legacy. Although normally present, it
may not be present for GRUB 2. In order to circumvent this problem a filesystem must be used either without md support, or else with RAID1. In the latter case the system will boot by treating the RAID1 device as a normal filesystem, and once the system is running it can be remounted as md and the second disk added to it. This will result in a catch-up, but filesystems are usually small.
External metadata Besides its own formats for RAID volumes metadata, Linux software RAID also supports external metadata formats, since version 2.6.27 of the Linux kernel and version 3.0 of the userspace utility. This allows Linux to use various firmware- or driver-based RAID volumes, also known as "
fake RAID". , there are two supported formats of the external metadata: • DDF (
Disk Data Format), an industry standard defined by the
Storage Networking Industry Association for increased interoperability. • Volume metadata format used by the
Intel Rapid Storage Technology(RST), former Intel Matrix RAID, implemented on many consumer-level motherboards. a
daemon used for monitoring MD multipath devices up to
Linux kernel 2.6.10-rc1, developed by
Red Hat as part of the mdadm package. The program was used to monitor
multipath (
RAID) devices, and is usually started at boot time as a service, and afterwards running as a daemon. Enterprise storage requirements often include the desire to have more than one way to talk to a single disk drive so that in the event of some failure to talk to a disk drive via one controller, the system can automatically switch to another controller and keep going. This is called multipath disk access. The linux kernel implements multipath disk access via the software RAID stack known as the md (Multiple Devices) driver. The kernel portion of the md multipath driver only handles routing I/O requests to the proper device and handling failures on the active path. It does not try to find out if a path that has previously failed might be working again. That's what this daemon does. Upon startup, it reads the current state of the md raid arrays, saves that state, and then waits for the kernel to tell it something interesting has happened. It then wakes up, checks to see if any paths on a multipath device have failed, and if they have then it starts to poll the failed path once every 15 seconds until it starts working again. Once it starts working again, the daemon will then add the path back into the multipath md device it was originally part of as a new spare path. If one is using the filesystem, lists all active md devices with information about them. Mdmpd requires this to find arrays to monitor paths on, to get notification of interesting events and to monitor array reconstruction on Monitor mode.
Technical details RAID 1 The data on a RAID 1 volume is the same as on a normal partition. The RAID information is stored in the last 128kB of the partition. This means, to convert a RAID 1 volume to normal data partition, it is possible to decrease the partition size by 128kB and change the partition ID from fd to 83 (for Linux). == See also ==