Multipath Daemon API
multipath-daemon%
new
list-paths
list-maps
reconfigure
add-path
remove-path
add-map
remove-map
suspend-map
resume-map
resize-map
reset-map
reload-map
fail-path
reinstate-path
disable-map-queuing
disable-queuing
restore-map-queuing
restore-queuing
7.7

Multipath Daemon API

Jan Dvorak <mordae@anilinux.org>

Library for communication with the multipathd process via it’s UNIX domain socket.

 (require multipath-daemon) package: multipath-daemon

class

multipath-daemon% : class?

  superclass: object%

Multipath daemon proxy operating over an abstract-namespace UNIX domain socket.

constructor

(new multipath-daemon% [[path path]])

  (is-a?/c multipath-daemon%)
  path : unix-socket-path? = undefined
Create proxy, optionally using a non-default socket path.

method

(send a-multipath-daemon list-paths)

  (listof (hash/c symbol? any/c))
Queries known device paths.

Every path looks approximately like this:

'#hasheq((device . "sda")
         (major . 8)
         (minor . 0)
         (status . running)
         (uuid . "foobar-3cc708a235e4c035"))

method

(send a-multipath-daemon list-maps)  (hash/c symbol? any/c)

Queries known multipath maps (virtual devices diverting I/O to individual paths).

Every such map looks approximately like this:

'#hasheq((device . "disk1")
         (name . "disk1")
         (uuid . "foobar-3cc708a235e4c035"))

method

(send a-multipath-daemon reconfigure)  boolean?

Ask multipathd to re-read it’s configuration file and reconfigure all multipath maps. Basically equivalent to restarting it.

method

(send a-multipath-daemon add-path name)  void?

  name : string?
Add path by name or uuid.

method

(send a-multipath-daemon remove-path name)  void?

  name : string?
Remove path by name or uuid.

method

(send a-multipath-daemon add-map name)  void?

  name : string?
Add multipath mapping by name or uuid.

method

(send a-multipath-daemon remove-map name)  void?

  name : string?
Remove multipath mapping by name or uuid.

method

(send a-multipath-daemon suspend-map name)  void?

  name : string?
Suspend multipath mapping by name or uuid. Suspended maps block on all access and can be safely redefined.

method

(send a-multipath-daemon resume-map name)  void?

  name : string?
Resume previously suspended multipath map.

method

(send a-multipath-daemon resize-map name)  void?

  name : string?
Ask the daemon to re-detect size of mapping paths and resize the mapping accordingly.

method

(send a-multipath-daemon reset-map name)  void?

  name : string?
Reset multipath mapping by name or uuid.

method

(send a-multipath-daemon reload-map name)  void?

  name : string?
Reload multipath mapping by name or uuid.

method

(send a-multipath-daemon fail-path name)  void?

  name : string?
Mark path as failed.

method

(send a-multipath-daemon reinstate-path name)  void?

  name : string?
Mark path as accessible again.

method

(send a-multipath-daemon disable-map-queuing name)  void?

  name : string?
Disable queuing on a single mapping.

method

(send a-multipath-daemon disable-queuing)  void?

Disable queuing globally.

method

(send a-multipath-daemon restore-map-queuing name)  void?

  name : string?
Restore queuing on a single mapping.

method

(send a-multipath-daemon restore-queuing)  void?

Restore queuing globally.