diff --git a/pkg/volume/README.md b/pkg/volume/README.md new file mode 100644 index 00000000000..288900aa5f6 --- /dev/null +++ b/pkg/volume/README.md @@ -0,0 +1,27 @@ +## Multipath + +To leverage multiple paths for block storage, it is important to perform the +multipath configuration on the host. +If your distribution does not provide `/etc/multipath.conf`, then you can +either use the following minimalistic one: + + defaults { + find_multipaths yes + user_friendly_names yes + } + +or create a new one by running: + + $ mpathconf --enable + +Finally you'll need to ensure to start or reload and enable multipath: + + $ systemctl enable multipathd.service + $ systemctl restart multipathd.service + +**Note:** Any change to `multipath.conf` or enabling multipath can lead to +inaccessible block devices, because they'll be claimed by multipath and +exposed as a device in /dev/mapper/*. + +Some additional informations about multipath can be found in the +[iSCSI documentation](iscsi/README.md) diff --git a/pkg/volume/fc/fc_util.go b/pkg/volume/fc/fc_util.go index ab3c5ca45f8..629c56cace8 100644 --- a/pkg/volume/fc/fc_util.go +++ b/pkg/volume/fc/fc_util.go @@ -89,21 +89,6 @@ func findDisk(wwn, lun string, io ioHandler) (string, string) { return "", "" } -func createMultipathConf(path string, io ioHandler) { - if _, err := os.Lstat(path); err != nil { - data := []byte(`defaults { - find_multipaths yes - user_friendly_names yes -} - - -blacklist { -} -`) - io.WriteFile(path, data, 0664) - } -} - // rescan scsi bus func scsiHostRescan(io ioHandler) { scsi_path := "/sys/class/scsi_host/" @@ -148,8 +133,6 @@ func searchDisk(wwns []string, lun string, io ioHandler) (string, string) { break } // rescan and search again - // create multipath conf if it is not there - createMultipathConf("/etc/multipath.conf", io) // rescan scsi bus scsiHostRescan(io) rescaned = true