diff --git a/Makefile b/Makefile index 55e4d589..ded3cefc 100644 --- a/Makefile +++ b/Makefile @@ -77,6 +77,7 @@ TARGETS += kata-containers TARGETS += lldpd TARGETS += mdadm TARGETS += mei +TARGETS += multipath-tools TARGETS += nut-client TARGETS += nvidia-container-toolkit-lts TARGETS += nvidia-container-toolkit-production diff --git a/multipath-tools/README.md b/multipath-tools/README.md new file mode 100644 index 00000000..5c907620 --- /dev/null +++ b/multipath-tools/README.md @@ -0,0 +1,8 @@ +## Multipath-tools +This extension adds multipath-tools to Talos. Mutipath is an essential feature in many enterprise environments because it enables high availability and fault tolerance of storage subsystems. Typically these storage subsystems are connected through a Fiber Channel network, but other methods like iSCSI exist as well. This extension will start the multpath daemon as a Talos service and use a default config file packaged with this extension. + +### Customization +The default configuration file is located in src/rootfs/etc/multipath.conf, you may wish to update this to suit the needs of your particular storage subsystem. In particular the load balancing algorithm in there right now is round-robin. This is due to Talos not yet having additional kernel modules available for more advanced load balancing algorithms. In the future this may change and you may want to customize this part of the configuration. + +### Limitations +The multipath bindings file in this extension is currently ephemeral. If the Talos node reboots the bindings file will be recreated on startup. This could be troublesome in some envrionments. Future versions of this extension may address this limitation. diff --git a/multipath-tools/manifest.yaml b/multipath-tools/manifest.yaml new file mode 100644 index 00000000..a5313e20 --- /dev/null +++ b/multipath-tools/manifest.yaml @@ -0,0 +1,10 @@ +version: v1alpha1 +metadata: + name: multipath-tools + version: "$VERSION" + author: Cision + description: | + This system extension provides multipath-tools for storage redundancy and reliability. + compatibility: + talos: + version: ">= v1.0.0" diff --git a/multipath-tools/multipath-tools.yaml b/multipath-tools/multipath-tools.yaml new file mode 100644 index 00000000..513845f9 --- /dev/null +++ b/multipath-tools/multipath-tools.yaml @@ -0,0 +1,58 @@ +name: multipath-tools +container: + security: + rootfsPropagation: shared + maskedPaths: [] + readonlyPaths: [] + writeableSysfs: true + entrypoint: /usr/local/bin/start_multipath + args: [] + mounts: + - source: /usr/local + destination: /usr/local + type: bind + options: + - bind + - rw + - source: /lib/modules + destination: /usr/local/lib/modules + type: bind + options: + - bind + - rw + - source: /proc + destination: /usr/local/proc + type: bind + options: + - bind + - rw + - source: /sys + destination: /usr/local/sys + type: bind + options: + - bind + - rw + - source: /dev + destination: /usr/local/dev + type: bind + options: + - bind + - rw + - source: /run + destination: /usr/local/run + type: bind + options: + - bind + - rw + - source: /tmp + destination: /usr/local/etc/multipath + type: bind + options: + - bind + - rw +depends: + - network: + - addresses + - service: udevd + - path: /dev/mapper/control +restart: always diff --git a/multipath-tools/pkg.yaml b/multipath-tools/pkg.yaml new file mode 100644 index 00000000..4c013d45 --- /dev/null +++ b/multipath-tools/pkg.yaml @@ -0,0 +1,34 @@ +name: multipath-tools +variant: scratch +shell: /toolchain/bin/bash +dependencies: + - stage: base +steps: + - env: + GOPATH: /go + cachePaths: + - /.cache/go-build + - /go/pkg + prepare: + - | + sed -i 's#$VERSION#{{ .VERSION }}#' /pkg/manifest.yaml + build: + - | + export PATH=${PATH}:${TOOLCHAIN}/go/bin + + cd /pkg/src/go + CGO_ENABLED=0 go build -o ./start_multipath . + install: + - | + mkdir -p /rootfs/usr/local + cp -ar /pkg/src/rootfs/* /rootfs/usr/local + cp -ar /pkg/src/go/start_multipath /rootfs/usr/local/bin + mkdir -p /rootfs/usr/local/etc/containers + mkdir -p /rootfs/usr/local/lib/containers/multipath-tools +finalize: + - from: /rootfs + to: /rootfs + - from: /pkg/manifest.yaml + to: / + - from: /pkg/multipath-tools.yaml + to: /rootfs/usr/local/etc/containers/ diff --git a/multipath-tools/src/go/go.mod b/multipath-tools/src/go/go.mod new file mode 100644 index 00000000..6783c07c --- /dev/null +++ b/multipath-tools/src/go/go.mod @@ -0,0 +1,3 @@ +module github.com/cision/multipath-tools + +go 1.21 diff --git a/multipath-tools/src/go/start_multipath.go b/multipath-tools/src/go/start_multipath.go new file mode 100644 index 00000000..3a59fa18 --- /dev/null +++ b/multipath-tools/src/go/start_multipath.go @@ -0,0 +1,28 @@ +package main + +import ( + "fmt" + "os" + "os/exec" + "syscall" +) + +func main() { + fmt.Println("Starting multipath daemon...") + + //setup a chroot environment for the extension + newRoot := "/usr/local" + if err := syscall.Chroot(newRoot); err != nil { + fmt.Println("Error:", err) + os.Exit(1) + } + + //start the multipath daemon in the chroot environment + cmd := exec.Command("/usr/sbin/multipathd", "-d") + cmd.Stdin = os.Stdin + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr + if err := cmd.Run(); err != nil { + fmt.Println("Command execution failed:", err) + } +} diff --git a/multipath-tools/src/rootfs/etc/multipath.conf b/multipath-tools/src/rootfs/etc/multipath.conf new file mode 100644 index 00000000..f32fa35c --- /dev/null +++ b/multipath-tools/src/rootfs/etc/multipath.conf @@ -0,0 +1,1132 @@ +defaults { + verbosity 2 + polling_interval 5 + max_polling_interval 20 + reassign_maps "no" + path_selector "round-robin 0" + path_grouping_policy "failover" + uid_attribute "ID_SERIAL" + prio "const" + prio_args "" + features "0" + path_checker "tur" + alias_prefix "mpath" + failback "manual" + rr_min_io 1000 + rr_min_io_rq 1 + max_fds "max" + rr_weight "uniform" + queue_without_daemon "no" + allow_usb_devices "no" + flush_on_last_del "no" + user_friendly_names "yes" + fast_io_fail_tmo 5 + log_checker_err "always" + all_tg_pt "no" + retain_attached_hw_handler "yes" + detect_prio "yes" + detect_checker "yes" + force_sync "yes" + strict_timing "no" + deferred_remove "no" + delay_watch_checks "no" + delay_wait_checks "no" + san_path_err_threshold "no" + san_path_err_forget_rate "no" + san_path_err_recovery_time "no" + marginal_path_err_sample_time "no" + marginal_path_err_rate_threshold "no" + marginal_path_err_recheck_gap_time "no" + marginal_path_double_failed_time "no" + find_multipaths "on" + uxsock_timeout 4000 + retrigger_tries 0 + retrigger_delay 10 + missing_uev_wait_timeout 30 + skip_kpartx "no" + remove_retries 0 + ghost_delay "no" + find_multipaths_timeout -10 + enable_foreign "NONE" + marginal_pathgroups "off" + recheck_wwid "no" +} +blacklist { + devnode "!^(sd[a-z]|dasd[a-z]|nvme[0-9])" + device { + vendor "SGI" + product "Universal Xport" + } + device { + vendor "^DGC" + product "LUNZ" + } + device { + vendor "EMC" + product "LUNZ" + } + device { + vendor "DELL" + product "Universal Xport" + } + device { + vendor "FUJITSU" + product "Universal Xport" + } + device { + vendor "IBM" + product "Universal Xport" + } + device { + vendor "IBM" + product "S/390" + } + device { + vendor "LENOVO" + product "Universal Xport" + } + device { + vendor "(NETAPP|LSI|ENGENIO)" + product "Universal Xport" + } + device { + vendor "STK" + product "Universal Xport" + } + device { + vendor "SUN" + product "Universal Xport" + } + device { + vendor "(Intel|INTEL)" + product "VTrak V-LUN" + } + device { + vendor "Promise" + product "VTrak V-LUN" + } + device { + vendor "Promise" + product "Vess V-LUN" + } +} +blacklist_exceptions { + property "(SCSI_IDENT_|ID_WWN)" +} +devices { + device { + vendor "NVM[eE]" + product ".*" + path_grouping_policy "group_by_prio" + uid_attribute "ID_WWN" + path_checker "none" + failback "immediate" + } + device { + vendor "APPLE" + product "Xserve RAID" + path_grouping_policy "multibus" + } + device { + vendor "3PARdata" + product "VV" + path_grouping_policy "group_by_prio" + hardware_handler "1 alua" + prio "alua" + failback "immediate" + no_path_retry 18 + fast_io_fail_tmo 10 + dev_loss_tmo "infinity" + vpd_vendor "hp3par" + } + device { + vendor "NVME" + product "HPE Alletra" + no_path_retry "queue" + } + device { + vendor "DEC" + product "HSG80" + path_grouping_policy "group_by_prio" + path_checker "hp_sw" + hardware_handler "1 hp_sw" + prio "hp_sw" + no_path_retry "queue" + } + device { + vendor "HP" + product "A6189A" + path_grouping_policy "multibus" + no_path_retry 12 + } + device { + vendor "(COMPAQ|HP)" + product "(MSA|HSV)1[01]0" + path_grouping_policy "group_by_prio" + path_checker "hp_sw" + hardware_handler "1 hp_sw" + prio "hp_sw" + no_path_retry 12 + } + device { + vendor "(COMPAQ|HP)" + product "MSA VOLUME" + path_grouping_policy "group_by_prio" + prio "alua" + failback "immediate" + no_path_retry 12 + } + device { + vendor "(COMPAQ|HP)" + product "(HSV1[01]1|HSV2[01]0|HSV3[046]0|HSV4[05]0)" + path_grouping_policy "group_by_prio" + prio "alua" + failback "immediate" + no_path_retry 12 + } + device { + vendor "HP" + product "(MSA2[02]12fc|MSA2012i)" + path_grouping_policy "multibus" + no_path_retry 18 + } + device { + vendor "HP" + product "(MSA2012sa|MSA23(12|24)(fc|i|sa)|MSA2000s VOLUME)" + path_grouping_policy "group_by_prio" + prio "alua" + failback "immediate" + no_path_retry 18 + } + device { + vendor "(HP|HPE)" + product "MSA [12]0[456]0 (SAN|SAS|FC|iSCSI)" + path_grouping_policy "group_by_prio" + prio "alua" + failback "immediate" + no_path_retry 18 + } + device { + vendor "HP" + product "(HSVX700|HSVX740)" + path_grouping_policy "group_by_prio" + hardware_handler "1 alua" + prio "alua" + failback "immediate" + no_path_retry 12 + } + device { + vendor "HP" + product "LOGICAL VOLUME" + path_grouping_policy "multibus" + no_path_retry 12 + } + device { + vendor "HP" + product "(P2000 G3 FC|P2000G3 FC/iSCSI|P2000 G3 SAS|P2000 G3 iSCSI)" + path_grouping_policy "group_by_prio" + prio "alua" + failback "immediate" + no_path_retry 18 + } + device { + vendor "LEFTHAND" + product "(P4000|iSCSIDisk|FCDISK)" + path_grouping_policy "group_by_prio" + prio "alua" + failback "immediate" + no_path_retry 18 + } + device { + vendor "Nimble" + product "Server" + path_grouping_policy "group_by_prio" + hardware_handler "1 alua" + prio "alua" + failback "immediate" + no_path_retry "queue" + } + device { + vendor "SGI" + product "TP9100" + path_grouping_policy "multibus" + } + device { + vendor "SGI" + product "TP9[3457]00" + product_blacklist "Universal Xport" + path_grouping_policy "group_by_prio" + path_checker "rdac" + features "2 pg_init_retries 50" + hardware_handler "1 rdac" + prio "rdac" + failback "immediate" + no_path_retry 30 + } + device { + vendor "SGI" + product "IS" + product_blacklist "Universal Xport" + path_grouping_policy "group_by_prio" + path_checker "rdac" + features "2 pg_init_retries 50" + hardware_handler "1 rdac" + prio "rdac" + failback "immediate" + no_path_retry 30 + } + device { + vendor "SGI" + product "^DD[46]A-" + path_grouping_policy "group_by_prio" + prio "alua" + failback "immediate" + no_path_retry 30 + } + device { + vendor "DDN" + product "SAN DataDirector" + path_grouping_policy "multibus" + } + device { + vendor "DDN" + product "^EF3010" + path_grouping_policy "multibus" + no_path_retry 30 + } + device { + vendor "DDN" + product "^(EF3015|S2A|SFA)" + path_grouping_policy "group_by_prio" + prio "alua" + failback "immediate" + no_path_retry 30 + } + device { + vendor "NEXENTA" + product "COMSTAR" + path_grouping_policy "group_by_serial" + no_path_retry 30 + } + device { + vendor "TEGILE" + product "(ZEBI-(FC|ISCSI)|INTELLIFLASH)" + path_grouping_policy "group_by_prio" + hardware_handler "1 alua" + prio "alua" + failback "immediate" + no_path_retry 10 + } + device { + vendor "EMC" + product "SYMMETRIX" + path_grouping_policy "multibus" + no_path_retry 6 + } + device { + vendor "NVME" + product "EMC PowerMax" + no_path_retry "queue" + } + device { + vendor "^DGC" + product "^(RAID|DISK|VRAID)" + product_blacklist "LUNZ" + path_grouping_policy "group_by_prio" + path_checker "emc_clariion" + hardware_handler "1 emc" + prio "emc" + failback "immediate" + no_path_retry 60 + detect_checker "no" + } + device { + vendor "EMC" + product "Invista" + product_blacklist "LUNZ" + path_grouping_policy "multibus" + no_path_retry 5 + } + device { + vendor "XtremIO" + product "XtremApp" + path_grouping_policy "multibus" + } + device { + vendor "COMPELNT" + product "Compellent Vol" + path_grouping_policy "group_by_prio" + failback "immediate" + no_path_retry "queue" + } + device { + vendor "DELL" + product "^MD3" + product_blacklist "Universal Xport" + path_grouping_policy "group_by_prio" + path_checker "rdac" + features "2 pg_init_retries 50" + hardware_handler "1 rdac" + prio "rdac" + failback "immediate" + no_path_retry 30 + } + device { + vendor "DellEMC" + product "PowerStore" + path_grouping_policy "group_by_prio" + hardware_handler "1 alua" + prio "alua" + failback "immediate" + no_path_retry 3 + fast_io_fail_tmo 15 + } + device { + vendor ".*" + product "dellemc-powerstore" + no_path_retry 3 + } + device { + vendor "DellEMC" + product "^ME" + path_grouping_policy "group_by_prio" + hardware_handler "1 alua" + prio "alua" + failback "immediate" + } + device { + vendor "FSC" + product "CentricStor" + path_grouping_policy "group_by_serial" + } + device { + vendor "FUJITSU" + product "ETERNUS_DX(H|L|M|400|8000)" + path_grouping_policy "group_by_prio" + prio "alua" + failback "immediate" + no_path_retry 10 + } + device { + vendor "(EUROLOGC|EuroLogc)" + product "FC2502" + path_grouping_policy "multibus" + } + device { + vendor "FUJITSU" + product "E[234]000" + path_grouping_policy "group_by_prio" + prio "alua" + failback "immediate" + no_path_retry 10 + } + device { + vendor "FUJITSU" + product "E[68]000" + path_grouping_policy "multibus" + no_path_retry 10 + } + device { + vendor "FUJITSU" + product "ETERNUS_AHB" + product_blacklist "Universal Xport" + path_grouping_policy "group_by_prio" + path_checker "rdac" + features "2 pg_init_retries 50" + hardware_handler "1 rdac" + prio "rdac" + failback "immediate" + no_path_retry 30 + } + device { + vendor "(HITACHI|HP|HPE)" + product "^OPEN-" + path_grouping_policy "multibus" + } + device { + vendor "HITACHI" + product "^DF" + path_grouping_policy "group_by_prio" + prio "hds" + failback "immediate" + no_path_retry "queue" + } + device { + vendor "HITACHI" + product "^DF600F" + path_grouping_policy "multibus" + } + device { + vendor "IBM" + product "ProFibre 4000R" + path_grouping_policy "multibus" + } + device { + vendor "IBM" + product "^1722-600" + product_blacklist "Universal Xport" + path_grouping_policy "group_by_prio" + path_checker "rdac" + features "2 pg_init_retries 50" + hardware_handler "1 rdac" + prio "rdac" + failback "immediate" + no_path_retry 30 + } + device { + vendor "IBM" + product "^1724" + product_blacklist "Universal Xport" + path_grouping_policy "group_by_prio" + path_checker "rdac" + features "2 pg_init_retries 50" + hardware_handler "1 rdac" + prio "rdac" + failback "immediate" + no_path_retry 30 + } + device { + vendor "IBM" + product "^1726" + product_blacklist "Universal Xport" + path_grouping_policy "group_by_prio" + path_checker "rdac" + features "2 pg_init_retries 50" + hardware_handler "1 rdac" + prio "rdac" + failback "immediate" + no_path_retry 30 + } + device { + vendor "IBM" + product "^1742" + product_blacklist "Universal Xport" + path_grouping_policy "group_by_prio" + path_checker "rdac" + features "2 pg_init_retries 50" + hardware_handler "1 rdac" + prio "rdac" + failback "immediate" + no_path_retry 30 + } + device { + vendor "IBM" + product "^1746" + product_blacklist "Universal Xport" + path_grouping_policy "group_by_prio" + path_checker "rdac" + features "2 pg_init_retries 50" + hardware_handler "1 rdac" + prio "rdac" + failback "immediate" + no_path_retry 30 + } + device { + vendor "IBM" + product "^1813" + product_blacklist "Universal Xport" + path_grouping_policy "group_by_prio" + path_checker "rdac" + features "2 pg_init_retries 50" + hardware_handler "1 rdac" + prio "rdac" + failback "immediate" + no_path_retry 30 + } + device { + vendor "IBM" + product "^1814" + product_blacklist "Universal Xport" + path_grouping_policy "group_by_prio" + path_checker "rdac" + features "2 pg_init_retries 50" + hardware_handler "1 rdac" + prio "rdac" + failback "immediate" + no_path_retry 30 + } + device { + vendor "IBM" + product "^1815" + product_blacklist "Universal Xport" + path_grouping_policy "group_by_prio" + path_checker "rdac" + features "2 pg_init_retries 50" + hardware_handler "1 rdac" + prio "rdac" + failback "immediate" + no_path_retry 30 + } + device { + vendor "IBM" + product "^1818" + product_blacklist "Universal Xport" + path_grouping_policy "group_by_prio" + path_checker "rdac" + features "2 pg_init_retries 50" + hardware_handler "1 rdac" + prio "rdac" + failback "immediate" + no_path_retry 30 + } + device { + vendor "IBM" + product "^3526" + product_blacklist "Universal Xport" + path_grouping_policy "group_by_prio" + path_checker "rdac" + features "2 pg_init_retries 50" + hardware_handler "1 rdac" + prio "rdac" + failback "immediate" + no_path_retry 30 + } + device { + vendor "IBM" + product "^(3542|3552)" + product_blacklist "Universal Xport" + path_grouping_policy "group_by_prio" + path_checker "rdac" + features "2 pg_init_retries 50" + hardware_handler "1 rdac" + prio "rdac" + failback "immediate" + no_path_retry 30 + } + device { + vendor "IBM" + product "^2105" + path_grouping_policy "multibus" + no_path_retry "queue" + } + device { + vendor "IBM" + product "^1750500" + path_grouping_policy "group_by_prio" + prio "alua" + failback "immediate" + no_path_retry "queue" + } + device { + vendor "IBM" + product "^2107900" + path_grouping_policy "group_by_prio" + failback "immediate" + no_path_retry "queue" + } + device { + vendor "IBM" + product "^2145" + path_grouping_policy "group_by_prio" + prio "alua" + failback "immediate" + no_path_retry "queue" + } + device { + vendor "NVME" + product "IBM[ ]+2145" + no_path_retry "queue" + } + device { + vendor "IBM" + product "S/390 DASD ECKD" + product_blacklist "S/390" + path_grouping_policy "multibus" + uid_attribute "ID_UID" + path_checker "directio" + no_path_retry "queue" + } + device { + vendor "IBM" + product "S/390 DASD FBA" + product_blacklist "S/390" + path_grouping_policy "multibus" + uid_attribute "ID_UID" + path_checker "directio" + no_path_retry "queue" + } + device { + vendor "IBM" + product "^IPR" + path_grouping_policy "group_by_prio" + hardware_handler "1 alua" + prio "alua" + failback "immediate" + no_path_retry "queue" + } + device { + vendor "IBM" + product "1820N00" + path_grouping_policy "group_by_prio" + prio "alua" + failback "immediate" + no_path_retry "queue" + } + device { + vendor "(XIV|IBM)" + product "(NEXTRA|2810XIV)" + path_grouping_policy "group_by_prio" + failback 15 + no_path_retry "queue" + } + device { + vendor "(TMS|IBM)" + product "(RamSan|FlashSystem)" + path_grouping_policy "multibus" + } + device { + vendor "NVMe" + product "FlashSystem" + no_path_retry "fail" + } + device { + vendor "IBM" + product "^(DCS9900|2851)" + path_grouping_policy "group_by_prio" + prio "alua" + failback "immediate" + no_path_retry 30 + } + device { + vendor "AIX" + product "VDASD" + path_grouping_policy "multibus" + no_path_retry 60 + } + device { + vendor "IBM" + product "3303[ ]+NVDISK" + no_path_retry 60 + } + device { + vendor "AIX" + product "NVDISK" + path_grouping_policy "group_by_prio" + hardware_handler "1 alua" + prio "alua" + failback "immediate" + no_path_retry 60 + } + device { + vendor "LENOVO" + product "DE_Series" + product_blacklist "Universal Xport" + path_grouping_policy "group_by_prio" + path_checker "rdac" + features "2 pg_init_retries 50" + hardware_handler "1 rdac" + prio "rdac" + failback "immediate" + no_path_retry 30 + } + device { + vendor "NETAPP" + product "LUN" + path_grouping_policy "group_by_prio" + features "2 pg_init_retries 50" + prio "ontap" + failback "immediate" + no_path_retry "queue" + flush_on_last_del "yes" + dev_loss_tmo "infinity" + user_friendly_names "no" + } + device { + vendor "(NETAPP|LSI|ENGENIO)" + product "INF-01-00" + product_blacklist "Universal Xport" + path_grouping_policy "group_by_prio" + path_checker "rdac" + features "2 pg_init_retries 50" + hardware_handler "1 rdac" + prio "rdac" + failback "immediate" + no_path_retry 30 + } + device { + vendor "SolidFir" + product "SSD SAN" + path_grouping_policy "multibus" + no_path_retry 24 + } + device { + vendor "NVME" + product "^NetApp ONTAP Controller" + no_path_retry "queue" + } + device { + vendor "NEC" + product "DISK ARRAY" + path_grouping_policy "group_by_prio" + hardware_handler "1 alua" + prio "alua" + failback "immediate" + } + device { + vendor "^Pillar" + product "^Axiom" + path_grouping_policy "group_by_prio" + prio "alua" + failback "immediate" + } + device { + vendor "^Oracle" + product "^Oracle FS" + path_grouping_policy "group_by_prio" + prio "alua" + failback "immediate" + } + device { + vendor "STK" + product "BladeCtlr" + product_blacklist "Universal Xport" + path_grouping_policy "group_by_prio" + path_checker "rdac" + features "2 pg_init_retries 50" + hardware_handler "1 rdac" + prio "rdac" + failback "immediate" + no_path_retry 30 + } + device { + vendor "STK" + product "OPENstorage" + product_blacklist "Universal Xport" + path_grouping_policy "group_by_prio" + path_checker "rdac" + features "2 pg_init_retries 50" + hardware_handler "1 rdac" + prio "rdac" + failback "immediate" + no_path_retry 30 + } + device { + vendor "STK" + product "FLEXLINE 380" + product_blacklist "Universal Xport" + path_grouping_policy "group_by_prio" + path_checker "rdac" + features "2 pg_init_retries 50" + hardware_handler "1 rdac" + prio "rdac" + failback "immediate" + no_path_retry 30 + } + device { + vendor "SUN" + product "StorEdge 3" + path_grouping_policy "multibus" + } + device { + vendor "SUN" + product "STK6580_6780" + product_blacklist "Universal Xport" + path_grouping_policy "group_by_prio" + path_checker "rdac" + features "2 pg_init_retries 50" + hardware_handler "1 rdac" + prio "rdac" + failback "immediate" + no_path_retry 30 + } + device { + vendor "SUN" + product "CSM[12]00_R" + product_blacklist "Universal Xport" + path_grouping_policy "group_by_prio" + path_checker "rdac" + features "2 pg_init_retries 50" + hardware_handler "1 rdac" + prio "rdac" + failback "immediate" + no_path_retry 30 + } + device { + vendor "SUN" + product "LCSM100_[IEFS]" + product_blacklist "Universal Xport" + path_grouping_policy "group_by_prio" + path_checker "rdac" + features "2 pg_init_retries 50" + hardware_handler "1 rdac" + prio "rdac" + failback "immediate" + no_path_retry 30 + } + device { + vendor "SUN" + product "SUN_6180" + product_blacklist "Universal Xport" + path_grouping_policy "group_by_prio" + path_checker "rdac" + features "2 pg_init_retries 50" + hardware_handler "1 rdac" + prio "rdac" + failback "immediate" + no_path_retry 30 + } + device { + vendor "SUN" + product "ArrayStorage" + product_blacklist "Universal Xport" + path_grouping_policy "group_by_prio" + path_checker "rdac" + features "2 pg_init_retries 50" + hardware_handler "1 rdac" + prio "rdac" + failback "immediate" + no_path_retry 30 + } + device { + vendor "SUN" + product "(Sun Storage|ZFS Storage|COMSTAR)" + path_grouping_policy "group_by_prio" + prio "alua" + failback "immediate" + no_path_retry 30 + } + device { + vendor "PIVOT3" + product "RAIGE VOLUME" + path_grouping_policy "multibus" + no_path_retry "queue" + } + device { + vendor "(NexGen|Pivot3)" + product "(TierStore|vSTAC)" + path_grouping_policy "group_by_prio" + prio "alua" + failback "immediate" + no_path_retry "queue" + } + device { + vendor "(Intel|INTEL)" + product "Multi-Flex" + product_blacklist "VTrak V-LUN" + path_grouping_policy "group_by_prio" + hardware_handler "1 alua" + prio "alua" + failback "immediate" + no_path_retry "queue" + } + device { + vendor "(LIO-ORG|SUSE)" + product ".*" + path_grouping_policy "group_by_prio" + hardware_handler "1 alua" + prio "alua" + failback "immediate" + no_path_retry 12 + } + device { + vendor "DataCore" + product "SANmelody" + path_grouping_policy "group_by_prio" + prio "alua" + failback "immediate" + no_path_retry "queue" + } + device { + vendor "DataCore" + product "Virtual Disk" + path_grouping_policy "group_by_prio" + prio "alua" + failback "immediate" + no_path_retry "queue" + } + device { + vendor "PURE" + product "FlashArray" + path_grouping_policy "group_by_prio" + hardware_handler "1 alua" + prio "alua" + failback "immediate" + fast_io_fail_tmo 10 + } + device { + vendor "NVME" + product "Pure Storage FlashArray" + no_path_retry 10 + } + device { + vendor "HUAWEI" + product "XSG1" + path_grouping_policy "group_by_prio" + failback "immediate" + no_path_retry 15 + } + device { + vendor "NVM[eE]" + product "Huawei-XSG1" + path_checker "directio" + no_path_retry 12 + } + device { + vendor "KOVE" + product "XPD" + path_grouping_policy "multibus" + } + device { + vendor "NFINIDAT" + product "InfiniBox" + path_grouping_policy "group_by_prio" + path_selector "round-robin 0" + prio "alua" + failback 30 + rr_weight "priorities" + no_path_retry "fail" + rr_min_io 1 + rr_min_io_rq 1 + flush_on_last_del "yes" + fast_io_fail_tmo 15 + dev_loss_tmo 15 + } + device { + vendor "KMNRIO" + product "K2" + path_grouping_policy "multibus" + } + device { + vendor "NEXSAN" + product "NXS-B0" + path_grouping_policy "group_by_prio" + prio "alua" + failback "immediate" + no_path_retry 15 + } + device { + vendor "NEXSAN" + product "SATAB" + path_grouping_policy "group_by_prio" + prio "alua" + failback "immediate" + no_path_retry 15 + } + device { + vendor "Nexsan" + product "(NestOS|NST5000)" + path_grouping_policy "group_by_prio" + hardware_handler "1 alua" + prio "alua" + failback "immediate" + no_path_retry 30 + } + device { + vendor "VIOLIN" + product "SAN ARRAY$" + path_grouping_policy "group_by_serial" + no_path_retry 30 + } + device { + vendor "VIOLIN" + product "SAN ARRAY ALUA" + path_grouping_policy "group_by_prio" + hardware_handler "1 alua" + prio "alua" + failback "immediate" + no_path_retry 30 + } + device { + vendor "VIOLIN" + product "CONCERTO ARRAY" + path_grouping_policy "multibus" + no_path_retry 30 + } + device { + vendor "(XIOTECH|XIOtech)" + product "ISE" + path_grouping_policy "multibus" + no_path_retry 12 + } + device { + vendor "(XIOTECH|XIOtech)" + product "IGLU DISK" + path_grouping_policy "multibus" + no_path_retry 30 + } + device { + vendor "(XIOTECH|XIOtech)" + product "Magnitude" + path_grouping_policy "multibus" + no_path_retry 30 + } + device { + vendor "Vexata" + product "VX" + path_grouping_policy "multibus" + no_path_retry 30 + } + device { + vendor "Promise" + product "VTrak" + product_blacklist "VTrak V-LUN" + path_grouping_policy "group_by_prio" + hardware_handler "1 alua" + prio "alua" + failback "immediate" + no_path_retry 30 + } + device { + vendor "Promise" + product "Vess" + product_blacklist "Vess V-LUN" + path_grouping_policy "group_by_prio" + hardware_handler "1 alua" + prio "alua" + failback "immediate" + no_path_retry 30 + } + device { + vendor "^IFT" + product ".*" + path_grouping_policy "group_by_prio" + prio "alua" + failback "immediate" + no_path_retry 30 + } + device { + vendor "DotHill" + product "SANnet" + path_grouping_policy "multibus" + no_path_retry 30 + } + device { + vendor "DotHill" + product "R/Evo" + path_grouping_policy "group_by_prio" + prio "alua" + failback "immediate" + no_path_retry 30 + } + device { + vendor "DotHill" + product "^DH" + path_grouping_policy "group_by_prio" + prio "alua" + failback "immediate" + no_path_retry 30 + } + device { + vendor "AStor" + product "NeoSapphire" + path_grouping_policy "multibus" + no_path_retry 30 + } + device { + vendor "INSPUR" + product "MCS" + path_grouping_policy "group_by_prio" + prio "alua" + failback "immediate" + } + device { + vendor "MacroSAN" + product "LU" + path_grouping_policy "group_by_prio" + prio "alua" + failback "immediate" + no_path_retry 30 + } +} +overrides { +} diff --git a/multipath-tools/src/rootfs/lib/ld-musl-x86_64.so.1 b/multipath-tools/src/rootfs/lib/ld-musl-x86_64.so.1 new file mode 100755 index 00000000..ea1dcae4 Binary files /dev/null and b/multipath-tools/src/rootfs/lib/ld-musl-x86_64.so.1 differ diff --git a/multipath-tools/src/rootfs/lib/libblkid.so.1 b/multipath-tools/src/rootfs/lib/libblkid.so.1 new file mode 100755 index 00000000..8d563eca Binary files /dev/null and b/multipath-tools/src/rootfs/lib/libblkid.so.1 differ diff --git a/multipath-tools/src/rootfs/lib/libblkid.so.1.1.0 b/multipath-tools/src/rootfs/lib/libblkid.so.1.1.0 new file mode 100755 index 00000000..8d563eca Binary files /dev/null and b/multipath-tools/src/rootfs/lib/libblkid.so.1.1.0 differ diff --git a/multipath-tools/src/rootfs/lib/libdevmapper.so.1.02 b/multipath-tools/src/rootfs/lib/libdevmapper.so.1.02 new file mode 100755 index 00000000..d789b9c4 Binary files /dev/null and b/multipath-tools/src/rootfs/lib/libdevmapper.so.1.02 differ diff --git a/multipath-tools/src/rootfs/lib/libmount.so.1 b/multipath-tools/src/rootfs/lib/libmount.so.1 new file mode 100755 index 00000000..43277b1a Binary files /dev/null and b/multipath-tools/src/rootfs/lib/libmount.so.1 differ diff --git a/multipath-tools/src/rootfs/lib/libmount.so.1.1.0 b/multipath-tools/src/rootfs/lib/libmount.so.1.1.0 new file mode 100755 index 00000000..43277b1a Binary files /dev/null and b/multipath-tools/src/rootfs/lib/libmount.so.1.1.0 differ diff --git a/multipath-tools/src/rootfs/lib/libudev.so.1 b/multipath-tools/src/rootfs/lib/libudev.so.1 new file mode 100755 index 00000000..d1a36d0a Binary files /dev/null and b/multipath-tools/src/rootfs/lib/libudev.so.1 differ diff --git a/multipath-tools/src/rootfs/lib/libudev.so.1.6.3 b/multipath-tools/src/rootfs/lib/libudev.so.1.6.3 new file mode 100755 index 00000000..d1a36d0a Binary files /dev/null and b/multipath-tools/src/rootfs/lib/libudev.so.1.6.3 differ diff --git a/multipath-tools/src/rootfs/usr/lib/libaio.so.1 b/multipath-tools/src/rootfs/usr/lib/libaio.so.1 new file mode 100755 index 00000000..e4e7b4b8 Binary files /dev/null and b/multipath-tools/src/rootfs/usr/lib/libaio.so.1 differ diff --git a/multipath-tools/src/rootfs/usr/lib/libaio.so.1.0.2 b/multipath-tools/src/rootfs/usr/lib/libaio.so.1.0.2 new file mode 100755 index 00000000..e4e7b4b8 Binary files /dev/null and b/multipath-tools/src/rootfs/usr/lib/libaio.so.1.0.2 differ diff --git a/multipath-tools/src/rootfs/usr/lib/libeconf.so.0 b/multipath-tools/src/rootfs/usr/lib/libeconf.so.0 new file mode 100755 index 00000000..fd424247 Binary files /dev/null and b/multipath-tools/src/rootfs/usr/lib/libeconf.so.0 differ diff --git a/multipath-tools/src/rootfs/usr/lib/libeconf.so.0.6.2 b/multipath-tools/src/rootfs/usr/lib/libeconf.so.0.6.2 new file mode 100755 index 00000000..fd424247 Binary files /dev/null and b/multipath-tools/src/rootfs/usr/lib/libeconf.so.0.6.2 differ diff --git a/multipath-tools/src/rootfs/usr/lib/libmpathcmd.so b/multipath-tools/src/rootfs/usr/lib/libmpathcmd.so new file mode 100755 index 00000000..7d930853 Binary files /dev/null and b/multipath-tools/src/rootfs/usr/lib/libmpathcmd.so differ diff --git a/multipath-tools/src/rootfs/usr/lib/libmpathcmd.so.0 b/multipath-tools/src/rootfs/usr/lib/libmpathcmd.so.0 new file mode 100755 index 00000000..7d930853 Binary files /dev/null and b/multipath-tools/src/rootfs/usr/lib/libmpathcmd.so.0 differ diff --git a/multipath-tools/src/rootfs/usr/lib/libmpathpersist.so b/multipath-tools/src/rootfs/usr/lib/libmpathpersist.so new file mode 100755 index 00000000..3d5c35d7 Binary files /dev/null and b/multipath-tools/src/rootfs/usr/lib/libmpathpersist.so differ diff --git a/multipath-tools/src/rootfs/usr/lib/libmpathpersist.so.0 b/multipath-tools/src/rootfs/usr/lib/libmpathpersist.so.0 new file mode 100755 index 00000000..3d5c35d7 Binary files /dev/null and b/multipath-tools/src/rootfs/usr/lib/libmpathpersist.so.0 differ diff --git a/multipath-tools/src/rootfs/usr/lib/libmpathutil.so b/multipath-tools/src/rootfs/usr/lib/libmpathutil.so new file mode 100755 index 00000000..e4ddbacd Binary files /dev/null and b/multipath-tools/src/rootfs/usr/lib/libmpathutil.so differ diff --git a/multipath-tools/src/rootfs/usr/lib/libmpathutil.so.0 b/multipath-tools/src/rootfs/usr/lib/libmpathutil.so.0 new file mode 100755 index 00000000..e4ddbacd Binary files /dev/null and b/multipath-tools/src/rootfs/usr/lib/libmpathutil.so.0 differ diff --git a/multipath-tools/src/rootfs/usr/lib/libmultipath.so b/multipath-tools/src/rootfs/usr/lib/libmultipath.so new file mode 100755 index 00000000..0f3a3437 Binary files /dev/null and b/multipath-tools/src/rootfs/usr/lib/libmultipath.so differ diff --git a/multipath-tools/src/rootfs/usr/lib/libmultipath.so.0 b/multipath-tools/src/rootfs/usr/lib/libmultipath.so.0 new file mode 100755 index 00000000..0f3a3437 Binary files /dev/null and b/multipath-tools/src/rootfs/usr/lib/libmultipath.so.0 differ diff --git a/multipath-tools/src/rootfs/usr/lib/liburcu.so.8 b/multipath-tools/src/rootfs/usr/lib/liburcu.so.8 new file mode 100755 index 00000000..d768764b Binary files /dev/null and b/multipath-tools/src/rootfs/usr/lib/liburcu.so.8 differ diff --git a/multipath-tools/src/rootfs/usr/lib/liburcu.so.8.1.0 b/multipath-tools/src/rootfs/usr/lib/liburcu.so.8.1.0 new file mode 100755 index 00000000..d768764b Binary files /dev/null and b/multipath-tools/src/rootfs/usr/lib/liburcu.so.8.1.0 differ diff --git a/multipath-tools/src/rootfs/usr/lib/multipath/libcheckcciss_tur.so b/multipath-tools/src/rootfs/usr/lib/multipath/libcheckcciss_tur.so new file mode 100755 index 00000000..3c8905cf Binary files /dev/null and b/multipath-tools/src/rootfs/usr/lib/multipath/libcheckcciss_tur.so differ diff --git a/multipath-tools/src/rootfs/usr/lib/multipath/libcheckdirectio.so b/multipath-tools/src/rootfs/usr/lib/multipath/libcheckdirectio.so new file mode 100755 index 00000000..5d9a39a8 Binary files /dev/null and b/multipath-tools/src/rootfs/usr/lib/multipath/libcheckdirectio.so differ diff --git a/multipath-tools/src/rootfs/usr/lib/multipath/libcheckemc_clariion.so b/multipath-tools/src/rootfs/usr/lib/multipath/libcheckemc_clariion.so new file mode 100755 index 00000000..7118caf1 Binary files /dev/null and b/multipath-tools/src/rootfs/usr/lib/multipath/libcheckemc_clariion.so differ diff --git a/multipath-tools/src/rootfs/usr/lib/multipath/libcheckhp_sw.so b/multipath-tools/src/rootfs/usr/lib/multipath/libcheckhp_sw.so new file mode 100755 index 00000000..2cbade38 Binary files /dev/null and b/multipath-tools/src/rootfs/usr/lib/multipath/libcheckhp_sw.so differ diff --git a/multipath-tools/src/rootfs/usr/lib/multipath/libcheckrdac.so b/multipath-tools/src/rootfs/usr/lib/multipath/libcheckrdac.so new file mode 100755 index 00000000..a83ccb44 Binary files /dev/null and b/multipath-tools/src/rootfs/usr/lib/multipath/libcheckrdac.so differ diff --git a/multipath-tools/src/rootfs/usr/lib/multipath/libcheckreadsector0.so b/multipath-tools/src/rootfs/usr/lib/multipath/libcheckreadsector0.so new file mode 100755 index 00000000..a37b2bd6 Binary files /dev/null and b/multipath-tools/src/rootfs/usr/lib/multipath/libcheckreadsector0.so differ diff --git a/multipath-tools/src/rootfs/usr/lib/multipath/libchecktur.so b/multipath-tools/src/rootfs/usr/lib/multipath/libchecktur.so new file mode 100755 index 00000000..15e66269 Binary files /dev/null and b/multipath-tools/src/rootfs/usr/lib/multipath/libchecktur.so differ diff --git a/multipath-tools/src/rootfs/usr/lib/multipath/libforeign-nvme.so b/multipath-tools/src/rootfs/usr/lib/multipath/libforeign-nvme.so new file mode 100755 index 00000000..a0615af5 Binary files /dev/null and b/multipath-tools/src/rootfs/usr/lib/multipath/libforeign-nvme.so differ diff --git a/multipath-tools/src/rootfs/usr/lib/multipath/libprioalua.so b/multipath-tools/src/rootfs/usr/lib/multipath/libprioalua.so new file mode 100755 index 00000000..525403b0 Binary files /dev/null and b/multipath-tools/src/rootfs/usr/lib/multipath/libprioalua.so differ diff --git a/multipath-tools/src/rootfs/usr/lib/multipath/libprioana.so b/multipath-tools/src/rootfs/usr/lib/multipath/libprioana.so new file mode 100755 index 00000000..64fbdef3 Binary files /dev/null and b/multipath-tools/src/rootfs/usr/lib/multipath/libprioana.so differ diff --git a/multipath-tools/src/rootfs/usr/lib/multipath/libprioconst.so b/multipath-tools/src/rootfs/usr/lib/multipath/libprioconst.so new file mode 100755 index 00000000..9160d13e Binary files /dev/null and b/multipath-tools/src/rootfs/usr/lib/multipath/libprioconst.so differ diff --git a/multipath-tools/src/rootfs/usr/lib/multipath/libpriodatacore.so b/multipath-tools/src/rootfs/usr/lib/multipath/libpriodatacore.so new file mode 100755 index 00000000..0e9c7326 Binary files /dev/null and b/multipath-tools/src/rootfs/usr/lib/multipath/libpriodatacore.so differ diff --git a/multipath-tools/src/rootfs/usr/lib/multipath/libprioemc.so b/multipath-tools/src/rootfs/usr/lib/multipath/libprioemc.so new file mode 100755 index 00000000..6623314c Binary files /dev/null and b/multipath-tools/src/rootfs/usr/lib/multipath/libprioemc.so differ diff --git a/multipath-tools/src/rootfs/usr/lib/multipath/libpriohds.so b/multipath-tools/src/rootfs/usr/lib/multipath/libpriohds.so new file mode 100755 index 00000000..71381961 Binary files /dev/null and b/multipath-tools/src/rootfs/usr/lib/multipath/libpriohds.so differ diff --git a/multipath-tools/src/rootfs/usr/lib/multipath/libpriohp_sw.so b/multipath-tools/src/rootfs/usr/lib/multipath/libpriohp_sw.so new file mode 100755 index 00000000..30134b74 Binary files /dev/null and b/multipath-tools/src/rootfs/usr/lib/multipath/libpriohp_sw.so differ diff --git a/multipath-tools/src/rootfs/usr/lib/multipath/libprioiet.so b/multipath-tools/src/rootfs/usr/lib/multipath/libprioiet.so new file mode 100755 index 00000000..c827ccae Binary files /dev/null and b/multipath-tools/src/rootfs/usr/lib/multipath/libprioiet.so differ diff --git a/multipath-tools/src/rootfs/usr/lib/multipath/libprioontap.so b/multipath-tools/src/rootfs/usr/lib/multipath/libprioontap.so new file mode 100755 index 00000000..38b017ba Binary files /dev/null and b/multipath-tools/src/rootfs/usr/lib/multipath/libprioontap.so differ diff --git a/multipath-tools/src/rootfs/usr/lib/multipath/libpriopath_latency.so b/multipath-tools/src/rootfs/usr/lib/multipath/libpriopath_latency.so new file mode 100755 index 00000000..b93738f2 Binary files /dev/null and b/multipath-tools/src/rootfs/usr/lib/multipath/libpriopath_latency.so differ diff --git a/multipath-tools/src/rootfs/usr/lib/multipath/libpriorandom.so b/multipath-tools/src/rootfs/usr/lib/multipath/libpriorandom.so new file mode 100755 index 00000000..dfe3d5c5 Binary files /dev/null and b/multipath-tools/src/rootfs/usr/lib/multipath/libpriorandom.so differ diff --git a/multipath-tools/src/rootfs/usr/lib/multipath/libpriordac.so b/multipath-tools/src/rootfs/usr/lib/multipath/libpriordac.so new file mode 100755 index 00000000..688bd63a Binary files /dev/null and b/multipath-tools/src/rootfs/usr/lib/multipath/libpriordac.so differ diff --git a/multipath-tools/src/rootfs/usr/lib/multipath/libpriosysfs.so b/multipath-tools/src/rootfs/usr/lib/multipath/libpriosysfs.so new file mode 100755 index 00000000..66ab93dd Binary files /dev/null and b/multipath-tools/src/rootfs/usr/lib/multipath/libpriosysfs.so differ diff --git a/multipath-tools/src/rootfs/usr/lib/multipath/libprioweightedpath.so b/multipath-tools/src/rootfs/usr/lib/multipath/libprioweightedpath.so new file mode 100755 index 00000000..5bc3ed12 Binary files /dev/null and b/multipath-tools/src/rootfs/usr/lib/multipath/libprioweightedpath.so differ diff --git a/multipath-tools/src/rootfs/usr/sbin/multipath b/multipath-tools/src/rootfs/usr/sbin/multipath new file mode 100755 index 00000000..7b48b81a Binary files /dev/null and b/multipath-tools/src/rootfs/usr/sbin/multipath differ diff --git a/multipath-tools/src/rootfs/usr/sbin/multipathc b/multipath-tools/src/rootfs/usr/sbin/multipathc new file mode 100755 index 00000000..403ce046 Binary files /dev/null and b/multipath-tools/src/rootfs/usr/sbin/multipathc differ diff --git a/multipath-tools/src/rootfs/usr/sbin/multipathd b/multipath-tools/src/rootfs/usr/sbin/multipathd new file mode 100755 index 00000000..4f96a418 Binary files /dev/null and b/multipath-tools/src/rootfs/usr/sbin/multipathd differ diff --git a/multipath-tools/vars.yaml b/multipath-tools/vars.yaml new file mode 100644 index 00000000..bc8ad19b --- /dev/null +++ b/multipath-tools/vars.yaml @@ -0,0 +1 @@ +VERSION: "v1.0.0"