Skip to content

Feature: multipath support #41

@ghormoon

Description

@ghormoon

It would be very useful, if we could have anysort of multipath support, so we can connect to HA storages.

I'm willing to try to implement it, just want to discuss the design. my initial idea is to change the "target" variables to be under targets (with a fallback, that if they are set, they will be put into targets[0])

so this:

    volumeAttributes:
      targetTrAddr: "192.168.122.18"
      targetTrPort: "49153"
      targetTrType: "tcp"
      deviceUUID: "58668891-c3e4-45d0-b90e-824525c16080"
      nqn: "nqn.2022-08.org.test-nvmf.example"

would work the same as this:

    volumeAttributes:
      targets:
        - trAddr: "192.168.122.18"
          trPort: "49153"
          trType: "tcp"
      deviceUUID: "58668891-c3e4-45d0-b90e-824525c16080"
      nqn: "nqn.2022-08.org.test-nvmf.example"

with an option to add multiple

    volumeAttributes:
      targets:
        - trAddr: "192.168.122.18"
          trPort: "49153"
          trType: "tcp"
        - trAddr: "192.168.122.19"
          trPort: "49153"
          trType: "tcp"
      deviceUUID: "58668891-c3e4-45d0-b90e-824525c16080"
      nqn: "nqn.2022-08.org.test-nvmf.example"

I need to do a test, if the trType can be different per port (i.e. one rdma, one tcp), if not, it can stay on the top level and not be replicated in each block to not confuse users. I will confirm that later.

Another option how to implement multipath is to make the driver detect all the ports, same as nvme connect-all, but that has the downside that if the given ip is dead, it will not be able to detect. So I think if we want to enable that, we still want to support multiple IPs, so it can run the detection against all of them.

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions