Skip to content

Manager of Linux Software RAID implemented through Multiple Devices driver.

License

Notifications You must be signed in to change notification settings

daniel-baumann/mdadm

This branch is 1 commit ahead of, 9 commits behind md-raid-utilities/mdadm:main.

Folders and files

NameName
Last commit message
Last commit date
Dec 16, 2024
Dec 13, 2024
Feb 29, 2024
Dec 13, 2024
Oct 10, 2024
Dec 13, 2024
Apr 5, 2022
Dec 16, 2024
Dec 3, 2024
Dec 13, 2024
Aug 18, 2011
Dec 3, 2024
Jan 13, 2025
May 21, 2024
Sep 27, 2024
Jan 13, 2025
Dec 16, 2024
Sep 1, 2023
Jan 9, 2025
May 15, 2024
Oct 10, 2024
Dec 16, 2024
Jul 16, 2024
Nov 14, 2024
Jan 13, 2025
Dec 16, 2024
Mar 28, 2017
Dec 3, 2024
Jun 4, 2018
Oct 3, 2012
May 15, 2008
Oct 30, 2015
Sep 10, 2024
Sep 10, 2024
Jul 24, 2024
Apr 2, 2024
Sep 27, 2024
Nov 4, 2024
Sep 27, 2024
Jan 24, 2024
Nov 5, 2024
Feb 1, 2009
Mar 29, 2017
Nov 27, 2019
Jan 13, 2025
Jan 13, 2025
Nov 5, 2024
Jan 13, 2025
Jan 13, 2025
Dec 13, 2024
Sep 27, 2024
Nov 4, 2024
Oct 7, 2024
Nov 6, 2024
Sep 27, 2024
Dec 16, 2024
Sep 27, 2024
Jun 19, 2013
Oct 19, 2016
Sep 27, 2024
Nov 8, 2024
Sep 27, 2024
Apr 4, 2022
Mar 10, 2011
May 29, 2006
Dec 14, 2007
Jun 12, 2020
Jan 22, 2025
Sep 27, 2024
Mar 19, 2023
Jun 19, 2013
Sep 27, 2024
Sep 27, 2024
Jan 13, 2025
Sep 27, 2024
Sep 27, 2024
Sep 27, 2024
Jun 19, 2013
Dec 16, 2024
Dec 13, 2024
Aug 2, 2017
Jan 13, 2025
Sep 10, 2024
May 5, 2017
Mar 31, 2022
Sep 27, 2024
Nov 21, 2023
Jan 13, 2025
May 19, 2020
Oct 10, 2024
Sep 27, 2024

Repository files navigation

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.

Questions and Support

This Github site is not right place to ask if your are looking for:

  • support from Linux Raid Community;
  • support with kernel issues;

This is the place where development of mdadm application is done. Please, do not use for looking for support. You should always ask on Mailing List.

Please use issues if you have confirmation that issue you are experiencing is related to mdadm components:

  • mdadm;
  • mdmon;
  • raid6check;
  • swap_super;
  • test_stripe;
  • systemd services ( see systemd/);
  • udev rules;
  • manual pages (including md.man)

For example:

  • mdadm issues (e.g segfaults, memory leaks, crashes, bad communication with MD driver);
  • feature requests for mdadm;
  • suggestions or minor fixes requested (e.g. better error messages);

Generally, if you are not sure it is better to ask on Mailing List first.

How to Contribute

Effective immediately Github is the primary location for mdadm. Please use pull requests to contribute.

It was originally hosted on kernel.org. You can access the old repository here.

While this is the preferred contribution method, mailing list submissions are still welcome and will be handled as has always been the case for mdadm. Please add "mdadm:" to the subject to allow automation to create Github Pull Request and run checks.

NOTE: Maintainers may ask you to send RFC to mailing list if the proposed code requires consultation with kernel developers.

Kernel coding style is used. Please familiarize with general kernel submitting patches documentation. Formatting, tags and commit message guidelines applies to mdadm.

Checkpatch script is run on every patch in pull request so be sure that your commits are not generating issues. There are some excludes, so the best is to follow github checkpatch action result.

Pull Request are closed by Rebase and Merge option, so it requires to keep every commit meaningful. Kernel style requires that. The review changes must be pushed with push --force to the chosen branch, then Pull Request will be automatically updated.

Maintainers of mdadm repository on kernel.org

If there are differences between github and kernel.org, please contact kernel.org mdadm 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.

Dependencies

The following packages are required for compilation:

RHEL SLES Debian/Ubuntu
pkgconf pkg-config pkg-config
gcc gcc gcc
make make make
libudev-devel libudev-devel libudev-dev

Compiling mdadm

Run make command to compile mdadm.

Specifying more jobs e.g. make -j4 can decrease compilation time significantly.

Various values can be specified for the CXFLAGS variable to customize the build process:

  • Run make CXFLAGS=-ggdb to include gdb debugging information.
  • Run make CXFLAGS=-DDEBUG to enable additional debug information through dprintf statements and call traces.
  • Run make CXFLAGS=-DNO_LIBUDEV to compile without libudev.

To build with more than one option specified in CXFLAGS, separate each option with a space, e.g. make CXFLAGS="-ggdb -DDEBUG".

Additionally, the EXTRAVERSION variable can be set to build with user-friendly version label, useful when customizing mdadm builds or labeling some instance in between major releases, e.g. make EXTRAVERSION="custom-label".

Installing mdadm

Before installing mdadm, it is advised to uninstall vendor-provided packages (mdadm.deb, mdadm.rpm etc.) in order to avoid configuration issues.

Run make install command to install mdadm. This command invokes the following targets:

  • install-bin
  • install-man
  • install-udev

After installing mdadm, consider rebuilding initramfs to ensure the changes take effect.

List of installation targets:

  • Run make install-bin to install the mdadm and mdmon binary files.
  • Run make install-systemd to install the systemd services.
  • Run make install-udev to install the udev rules.
  • Run make install-man to install the manual pages (mdadm.8, md.4, mdadm.conf.5, mdmon.8).

The following targets are deprecated and should not be used:

  • install-static
  • install-tcc
  • install-uclibc
  • install-klibc

License

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

About

Manager of Linux Software RAID implemented through Multiple Devices driver.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 88.1%
  • Roff 9.0%
  • Shell 2.3%
  • Makefile 0.6%