]> git.ipfire.org Git - thirdparty/mdadm.git/blob - README.md
tests/23rdev-lifetime: fix a typo
[thirdparty/mdadm.git] / README.md
1 **mdadm** is a utility used to create and manage **software RAID** devices implemented through
2 **Multiple devices driver (MD)** in kernel. It supports following RAID metadata formats:
3
4 * [Linux native RAID](https://raid.wiki.kernel.org/index.php/RAID_superblock_formats):
5
6 Known as **native** or **native RAID**. First and default metadata format. Metadata management
7 is implemented in **MD driver**.
8
9 * Matrix Storage Manager Support (no reference, metadata format documentation is proprietary).
10
11 Known as **IMSM**. Metadata format developed and maintained by **IntelĀ®** as a part of **VROC**
12 solution. There are some functional differences between **native** and **imsm**. The most
13 important difference is that the metadata is managed from userspace.
14
15 **CAUTION:** **imsm** is compatible with **Intel RST**, however it is not officially supported.
16 You are using it on your own risk.
17
18 * [Common RAID DDF Specification Revision](https://www.snia.org/sites/default/files/SNIA_DDF_Technical_Position_v2.0.pdf)
19
20 **IMPORTANT:** DDF is in **maintenance only** mode. There is no active development around it.
21 Please do not use it in new solutions.
22
23 # How to Contribute
24
25 **mdadm** is hosted on [kernel.org](https://kernel.org/). You can access repository
26 [here](https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git).
27
28 It is maintained similarly to kernel, using *mailing list*. Patches must be send through email.
29 Please familiarize with general kernel
30 [submitting patches](https://www.kernel.org/doc/html/v4.17/process/submitting-patches.html)
31 documentation. Formatting, tags and commit message guidelines applies to **mdadm**.
32
33 ## Sending patches step-by-step
34
35 To maximize change of patches being taken, follow this instruction when submitting:
36
37 1. Create possibly logically separated commits and generate patches:
38
39 Use ``git format-patch --cover-letter --signoff -v <nr>`` to create patches:
40 * ``--cover-letter`` can be skipped if it is only one patch;
41 * ``--signoff`` adds sign-off tag;
42 * ``-v <nr>`` indicates review revision number, sender should increment it before resending.
43
44 2. Check style of every patch with kernel
45 [checkpatch](https://docs.kernel.org/dev-tools/checkpatch.html) script:
46
47 It is important to keep same coding style that is why in **mdadm**
48 [kernel coding style](https://www.kernel.org/doc/html/v4.10/process/coding-style.html)
49 is preferred. ``checkpath --no-tree <patch_file>`` can be used to verify patches.
50 Following checkpatch issues can be ignored:
51 - New typedefs.
52 - comparing with *True/False*.
53 - kernel *MAINTAINERS* file warning.
54 - *extern* keyword in headers.
55
56 3. Send patches using ``git send-mail --to=linux-raid@vger.kernel.org <cover-letter> <patch1> <patch2> (...)``
57
58 # Maintainers
59
60 It is good practice to add **mdadm maintainers** to recipients for patches:
61
62 - Jes Sorensen <jes@trained-monkey.org>;
63 - Mariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com>;
64
65 Adding **MD maintainers** could be reasonable, especially if patches may affect MD driver:
66
67 - Song Liu <song@kernel.org>;
68 - Yu Kuai <yukuai3@huawei.com>;
69
70 # Reviewers
71
72 **mdadm** utility is not part of kernel tree, so there is no certificated *Reviewers* list. Everyone
73 can comment on mailing list, last decision (and merging) belongs to maintainers.
74
75 # Minimal supported kernel version
76
77 We do not support kernel versions below **v3.10**. Please be aware that maintainers may remove
78 workarounds and fixes for legacy issues.
79
80 # License
81
82 It is released under the terms of the **GNU General Public License version 2** as published
83 by the **Free Software Foundation**.