-
Notifications
You must be signed in to change notification settings - Fork 13
Description
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.