Multipath-IO: Difference between revisions
m (Jirib79 moved page Multipath to Multipath-IO) |
No edit summary |
||
Line 1: | Line 1: | ||
Multipath storage I/O is not abled by default on Alpine Linux installation media. Multipath I/O on Linux depends on ''devicemapper'' and ''eudev''. | Multipath storage I/O is not abled by default on Alpine Linux installation media. Multipath I/O on Linux depends on ''devicemapper'' and ''eudev''. | ||
{{Expand|Root FS on multipath device has not been tested.}} | |||
# apk add lsscsi multipath sg3_utils | # apk add lsscsi multipath sg3_utils |
Revision as of 18:15, 15 March 2021
Multipath storage I/O is not abled by default on Alpine Linux installation media. Multipath I/O on Linux depends on devicemapper and eudev.
This material needs expanding ... Root FS on multipath device has not been tested. |
# apk add lsscsi multipath sg3_utils # modprobe dm_mod dm-multipath # setup-udev
List your SCSI disks.
# lsscsi -isw | grep disk [2:0:0:0x0000] disk 600140547f7876a3412466aab5f0debf /dev/sda 3600140547f7876a3412466aab5f0debf 1.07GB [2:0:0:0x0001] disk 600140547f7876a3412466aab5f0debf /dev/sdb 3600140547f7876a3412466aab5f0debf 1.07GB
In most cases your LUNs would be blacklisted, thus following command would probably show no output.
# multipath -v2 -d # dry-run
If so then run more verbose check.
# multipath -v3 -d # dry-run ...skipped... ===== paths list ===== uuid hcil dev dev_t pri dm_st chk_st vend/prod 3600140547f7876a3412466aab5f0debf 2:0:0:0 sda 8:0 50 undef undef LIO-ORG,t 3600140547f7876a3412466aab5f0debf 2:0:0:1 sdb 8:16 50 undef undef LIO-ORG,t Mar 15 17:32:27 | libdevmapper version 1.02.170 (2020-03-24) Mar 15 17:32:27 | DM multipath kernel driver v1.14.0 Mar 15 17:32:27 | sda: udev property ID_WWN whitelisted Mar 15 17:32:27 | wwid 3600140547f7876a3412466aab5f0debf not in wwids file, skipping sda Mar 15 17:32:27 | sda: orphan path, only one path Mar 15 17:32:27 | sdb: udev property ID_WWN whitelisted Mar 15 17:32:27 | wwid 3600140547f7876a3412466aab5f0debf not in wwids file, skipping sdb Mar 15 17:32:27 | sdb: orphan path, only one path Mar 15 17:32:27 | unloading alua prioritizer Mar 15 17:32:27 | unloading const prioritizer Mar 15 17:32:27 | unloading tur checker
Then check multipath defaults.
# multipath -t ...skipped... blacklist { devnode "!^(sd[a-z]|dasd[a-z]|nvme[0-9])" device { vendor "SGI" product "Universal Xport" } ...skipped... } blacklist_exceptions { property "(SCSI_IDENT_|ID_WWN)" } ...skipped...
Thus our /dev/sd[ab] are not blacklisted but ID_WWN is used to explicit require wwn for LUNs.
See where wwids file is located.
# multipath -t | grep wwids_file wwids_file "/etc/multipath/wwids"
# cat /etc/multipath/wwids | sed 's/^/ /' # Multipath wwids, Version : 1.0 # NOTE: This file is automatically maintained by multipath and multipathd. # You should not need to edit this file in normal circumstances. # # Valid WWIDs:
Let's add our LUNs (ie. our wwn access via two LUNs) to /etc/multipath/wwids.
# multipath -a 3600140547f7876a3412466aab5f0debf wwid '3600140547f7876a3412466aab5f0debf' added # egrep -v '^(#|$)' /etc/multipath/wwids /3600140547f7876a3412466aab5f0debf/
See, *wwn* are bordered with /.
Let's scan again.
# multipath -v2 -d # dry-run Mar 15 17:46:35 | 3600140547f7876a3412466aab5f0debf: setting dev_loss_tmo is unsupported for protocol scsi:unspec : 3600140547f7876a3412466aab5f0debf undef LIO-ORG,test0 size=1.0G features='0' hwhandler='1 alua' wp=undef |-+- policy='service-time 0' prio=50 status=undef | `- 2:0:0:0 sda 8:0 undef ready running `-+- policy='service-time 0' prio=50 status=undef `- 2:0:0:1 sdb 8:16 undef ready running
Let's go real, ie. omit dry-run.
# multipath -v2 Mar 15 17:48:06 | 3600140547f7876a3412466aab5f0debf: setting dev_loss_tmo is unsupported for protocol scsi:unspec Mar 15 17:48:06 | 3600140547f7876a3412466aab5f0debf: addmap [0 2097152 multipath 0 1 alua 2 1 service-time 0 1 1 8:0 1 service-time 0 1 1 8:16 1] create: 3600140547f7876a3412466aab5f0debf undef LIO-ORG,test0 size=1.0G features='0' hwhandler='1 alua' wp=undef |-+- policy='service-time 0' prio=50 status=undef | `- 2:0:0:0 sda 8:0 undef ready running `-+- policy='service-time 0' prio=50 status=undef `- 2:0:0:1 sdb 8:16 undef ready running
# multipath -ll | sed 's/^/ /' 3600140547f7876a3412466aab5f0debf dm-2 LIO-ORG,test0 size=1.0G features='0' hwhandler='1 alua' wp=rw |-+- policy='service-time 0' prio=50 status=active | `- 2:0:0:0 sda 8:0 active ready running `-+- policy='service-time 0' prio=50 status=enabled `- 2:0:0:1 sdb 8:16 active ready running
If we are happy with the configuration, let's add *openrc* daemons.
# apk add multipath-tools-openrc # rc-update add multipath boot # rc-update add multipathd boot