Linux Software RAID known as Multiple Devices driver manager

Clone this repo:
  1. aa1cc58 Wait for mdmon when it is stared via systemd by Kinga Stefaniuk · 8 days ago main master
  2. b0f4e8e util.c: change devnm to const in mdmon functions by Kinga Stefaniuk · 8 days ago
  3. a017474 tests/23rdev-lifetime: fix a typo by Yu Kuai · 6 days ago
  4. 893a558 Makefile: Move -pie to LDFLAGS by Fabrice Fontaine · 8 days ago
  5. 896948b tests/01raid6integ.broken can be removed by Xiao Ni · 4 weeks ago

mdadm is a utility used to create and manage software RAID devices implemented through Multiple devices driver (MD) in kernel. It supports following RAID metadata formats:

  • Linux native RAID:

    Known as native or native RAID. First and default metadata format. Metadata management is implemented in MD driver.

  • Matrix Storage Manager Support (no reference, metadata format documentation is proprietary).

    Known as IMSM. Metadata format developed and maintained by Intel® as a part of VROC solution. There are some functional differences between native and imsm. The most important difference is that the metadata is managed from userspace.

    CAUTION: imsm is compatible with Intel RST, however it is not officially supported. You are using it on your own risk.

  • Common RAID DDF Specification Revision

    IMPORTANT: DDF is in maintenance only mode. There is no active development around it. Please do not use it in new solutions.

How to Contribute

mdadm is hosted on kernel.org. You can access repository here.

It is maintained similarly to kernel, using mailing list. Patches must be send through email. Please familiarize with general kernel submitting patches documentation. Formatting, tags and commit message guidelines applies to mdadm.

Sending patches step-by-step

To maximize change of patches being taken, follow this instruction when submitting:

  1. Create possibly logically separated commits and generate patches:

    Use git format-patch --cover-letter --signoff -v <nr> to create patches:

    • --cover-letter can be skipped if it is only one patch;
    • --signoff adds sign-off tag;
    • -v <nr> indicates review revision number, sender should increment it before resending.
  2. Check style of every patch with kernel checkpatch script:

    It is important to keep same coding style that is why in mdadm kernel coding style is preferred. checkpath --no-tree <patch_file> can be used to verify patches. Following checkpatch issues can be ignored:

    • New typedefs.
    • comparing with True/False.
    • kernel MAINTAINERS file warning.
    • extern keyword in headers.
  3. Send patches using git send-mail --to=linux-raid@vger.kernel.org <cover-letter> <patch1> <patch2> (...)

Maintainers

It is good practice to add mdadm maintainers to recipients for patches:

Adding MD maintainers could be reasonable, especially if patches may affect MD driver:

Reviewers

mdadm utility is not part of kernel tree, so there is no certificated Reviewers list. Everyone can comment on mailing list, last decision (and merging) belongs to maintainers.

Minimal supported kernel version

We do not support kernel versions below v3.10. Please be aware that maintainers may remove workarounds and fixes for legacy issues.

License

It is released under the terms of the GNU General Public License version 2 as published by the Free Software Foundation.