forked from opensvc/multipath-tools
-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request opensvc#77 from openSUSE/queue
multipath-tools 0.9.7
- Loading branch information
Showing
49 changed files
with
2,511 additions
and
1,298 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -42,14 +42,6 @@ Go to: https://github.com/opensvc/multipath-tools/tags | |
Select a release-tag and then click on "zip" or "tar.gz". | ||
|
||
|
||
Devel code | ||
========== | ||
|
||
To get latest devel code: | ||
|
||
git clone -b queue https://github.com/openSUSE/multipath-tools | ||
|
||
|
||
Building multipath-tools | ||
======================== | ||
|
||
|
@@ -89,9 +81,17 @@ The following variables can be passed to the `make` command line: | |
* `plugindir="/some/path"`: directory where libmultipath plugins (path | ||
checkers, prioritizers, and foreign multipath support) will be looked up. | ||
This used to be the run-time option `multipath_dir` in earlier versions. | ||
* `configdir="/some/path"` : directory to search for configuration files. | ||
The default is `$(prefix)/$(LIB)/multipath`, where `$(LIB)` is `lib64` on | ||
systems that have `/lib64`, and `lib` otherwise. | ||
* `configfile="/some/path`": The path to the main configuration file. | ||
The default is `$(etc_prefix)/etc/multipath.conf`. | ||
* `configdir="/some/path"` : directory to search for additional configuration files. | ||
This used to be the run-time option `config_dir` in earlier versions. | ||
The default is `/etc/multipath/conf.d`. | ||
The default is `$(etc_prefix)/etc/multipath/conf.d`. | ||
* `statedir="/some/path"`: The path of the directory where multipath-tools | ||
stores run-time settings that need persist between reboots, such as known | ||
WWIDs, user-friendly names, and persistent reservation keys. | ||
The default is `$(etc_prefix)/etc/multipath`. | ||
* `READLINE=libedit` or `READLINE=libreadline`: enable command line history | ||
and TAB completion in the interactive mode *(which is entered with `multipathd -k` or `multipathc`)*. | ||
The respective development package will be required for building. | ||
|
@@ -103,6 +103,13 @@ The following variables can be passed to the `make` command line: | |
polling API. For use with pre-5.0 kernels that don't support dmevent polling | ||
(but even if you don't use this option, multipath-tools will work with | ||
these kernels). | ||
* `SYSTEMD`: The version number of systemd (e.g. "244") to compile the code for. | ||
The default is autodetected, assuming that the systemd version in the build | ||
environment is the same as on the target system. Override the value to | ||
build for a different systemd version, or set it to `""` to build for a | ||
system without systemd. | ||
**Caution:** multipathd without systemd has been largely untested by the | ||
upstream maintainers since at least 2020. | ||
* `SCSI_DH_MODULES_PRELOAD="(list)"`: specify a space-separated list of SCSI | ||
device handler kernel modules to load early during boot. Some | ||
multipath-tools functionality depends on these modules being loaded | ||
|
@@ -114,26 +121,35 @@ The following variables can be passed to the `make` command line: | |
It's especially useful if `scsi_mod` is builtin but `scsi_dh_alua` and | ||
other device handler modules are built as modules. If `scsi_mod` itself is compiled | ||
as a module, it might make more sense to use a module softdep for the same | ||
purpose. | ||
purpose by creating a `modprobe.d` file like this: | ||
|
||
softdep scsi_mod post: scsi_dh_alua scsi_dh_rdac | ||
|
||
### Installation Paths | ||
|
||
* `prefix`: The directory prefix for (almost) all files to be installed. | ||
Distributions may want to set this to `/usr`. | ||
**Note**: for multipath-tools, unlike many other packages, `prefix` | ||
defaults to the empty string, which resolves to the root directory (`/`). | ||
"Usr-merged" distributions[^systemd] may want to set this to `/usr`. The | ||
default is empty (`""`). | ||
* `usr_prefix`: where to install those parts of the code that aren't necessary | ||
for booting. You may want to set this to `/usr` if `prefix` is empty. | ||
* `systemd_prefix`: Prefix for systemd-related files. It defaults to `/usr`. | ||
Some systemd installations use separate `prefix` and `rootprefix`. On such | ||
a distribution, set `prefix`, and override `unitdir` to use systemd's | ||
`rootprefix`. | ||
for booting. The default is `/usr` if `$(prefix)` is empty, and `$(prefix)` otherwise. | ||
* `systemd_prefix`: Prefix for systemd-related files[^systemd]. The default is `/usr`. | ||
* `etc_prefix`: The prefix for configuration files. "usr-merged" | ||
distributions with immutable `/usr`[^systemd] may want to set this to | ||
`""`. The default is `$(prefix)`. | ||
* `LIB`: the subdirectory under `prefix` where shared libraries will be | ||
installed. By default, the makefile uses `/lib64` if this directory is | ||
found on the build system, and `/lib` otherwise. | ||
|
||
See also `configdir` and `plugindir` above. See `Makefile.inc` for more | ||
fine-grained control. | ||
The options `configdir`, `plugindir`, `configfile`, and `statedir` above can | ||
be used for setting individual paths where the `prefix` variables don't provide | ||
sufficient control. See `Makefile.inc` for even more fine-grained control. | ||
|
||
[^systemd]: systemd installations up to v254 which have been built with | ||
`split-usr=true` may use separate `prefixdir` and `rootprefixdir` | ||
directories, where `prefixdir` is a subdirectory of `rootprefixdir`. | ||
multipath-tools' `systemd_prefix` corresponds to systemd's `prefixdir`. | ||
On such distributions, override `unitdir` and `libudevdir` to use systemd's | ||
`rootprefix`: `make libudevdir=/lib/udev unitdir=/lib/systemd/system` | ||
|
||
### Compiler Options | ||
|
||
|
@@ -163,32 +179,58 @@ The following targets are intended for developers only. | |
* `make compile-commands.json` to create input for [clangd](https://clangd.llvm.org/). | ||
|
||
|
||
Add storage devices | ||
=================== | ||
|
||
Follow the instructions in the `libmultipath/hwtable.c` header. | ||
Contributing | ||
============ | ||
|
||
Please send patches or contributions for general discussion about | ||
multipath tools to the mailing list (see below). You can also create | ||
issues or pull requests on | ||
[GitHub](https://github.com/opensvc/multipath-tools). | ||
You will be asked to send your patches to the mailing list | ||
unless your patch is trivial. | ||
|
||
Mailing list | ||
============ | ||
------------ | ||
|
||
The mailing list for multipath-tools is `[email protected]`. | ||
To subscribe, send an email to `[email protected]`. | ||
Mailing list archives are available on | ||
[lore.kernel.org](https://lore.kernel.org/dm-devel/) and | ||
[marc.info](https://marc.info/?l=dm-devel). See also the | ||
[lists.linux.dev home page](https://subspace.kernel.org/lists.linux.dev.html). | ||
|
||
(subscribers-only) | ||
To subscribe and archives: https://listman.redhat.com/mailman/listinfo/dm-devel | ||
Searchable: https://marc.info/?l=dm-devel | ||
When sending patches to the mailing list, please add a `Signed-off-by:` | ||
tag, and add Benjamin Marzinski <bmarzins@redhat.com> and | ||
Martin Wilck <[email protected]> to the Cc list. | ||
|
||
Staging area | ||
------------ | ||
|
||
Between releases, the latest reviewed code can be obtained from | ||
[the queue branch](https://github.com/openSUSE/multipath-tools/tree/queue) | ||
in the openSUSE/multipath-tools repository on GitHub. From there, | ||
pull requests for new releases in the master repository are | ||
created roughly every 3 months. | ||
|
||
Adding new storage devices | ||
-------------------------- | ||
|
||
If you want to add special settings for a storage device which is | ||
new on the market, follow the instructions at the top of the | ||
file `libmultipath/hwtable.c`. | ||
|
||
Changelog | ||
========= | ||
|
||
pre-0.4.5: https://web.archive.org/web/20070309224034/http://christophe.varoqui.free.fr/wiki/wakka.php?wiki=ChangeLog | ||
post-0.4.5: https://github.com/opensvc/multipath-tools/commits/master | ||
* pre-0.4.5: https://web.archive.org/web/20070309224034/http://christophe.varoqui.free.fr/wiki/wakka.php?wiki=ChangeLog | ||
* post-0.4.5: https://github.com/opensvc/multipath-tools/commits/master | ||
|
||
|
||
Maintainer | ||
========== | ||
|
||
Christophe Varoqui <[email protected]> | ||
Device-mapper development mailing list <dm-devel@redhat.com> | ||
Device-mapper development mailing list <dm-devel@lists.linux.dev> | ||
|
||
|
||
Licence | ||
|
@@ -230,15 +272,25 @@ To enable ALUA, the following options should be changed: | |
|
||
NVMe | ||
==== | ||
To use Device Mapper/multipath-tools with NVMe devices, | ||
if the Native NVMe Multipath subsystem is enabled | ||
( "Y" in `/sys/module/nvme_core/parameters/multipath` ), | ||
it has to be disabled: | ||
|
||
`echo "options nvme_core multipath=N" > /etc/modprobe.d/01-nvme_core-mp.conf`, | ||
regenerate the initramfs (`dracut -f` or `update-initramfs`) and reboot. | ||
|
||
Check that it is disabled(N) with: | ||
`cat /sys/module/nvme_core/parameters/multipath` | ||
or | ||
`systool -m nvme_core -A multipath` | ||
|
||
Using dm-multipath with NVMe | ||
---------------------------- | ||
|
||
NVMe multipath is natively supported by the Linux kernel. If for some reason | ||
you prefer using device mapper multipath with NVMe devices, | ||
you need to disable native multipathing first: | ||
|
||
echo "options nvme_core multipath=N" > /etc/modprobe.d/01-nvme_core-mp.conf | ||
|
||
Afterwards, regenerate the initramfs (`dracut -f` or `update-initramfs`) and reboot. | ||
|
||
Using multipath-tools with native NVMe multipath | ||
------------------------------------------------ | ||
|
||
If native NVMe multipathing is enabled, you can still use multipath-tools | ||
for displaying the topology and some other information about native NVMe | ||
multipath setups. This feature is disabled by default. To enable it, set | ||
`enable_foreign nvme` in the `defaults` section of `multipath.conf`. | ||
Commands like `multipath -ll` will then display information about NVMe | ||
native multipath. This support is read-only; modifying the native multipath | ||
configuration is not supported. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.