[PATCH rfc 0/6] support traddr as dns names for ip based transports
Sagi Grimberg
sagi at grimberg.me
Sun Aug 13 06:09:56 PDT 2023
>> Currently nvme-cli is able to resolve an ip address from a dns name if
>> traddr argument was given as a dns name, so it does that and passes down
>> to the kernel the resolved ip address.
>>
>> However, if the dns resolution changes over time, the kernel will not
>> be able to reconnect because it has a stale ip address. While this is
>> not a real use case for nvme subsystems, it could be a valid use-case
>> for discovery controllers, where the resolution is made from a dns
>> name that may load-balance/failover over multiple endpoints.
>>
>> The last patch (7/6) is for libnvme to pass down the traddr as a dns
>> name if the kernel supports dns queries.
>>
>> The inspiration was taken from the nfs client that does this for
>> redirects or locations discovery.
>>
>> It is an rfc, so feedback is welcome.
>>
>> Sagi Grimberg (6):
>> nvme-fabrics: add helper to resolve ipv4/ipv6 or dns name
>> nvme-tcp: use nvmf_resolve_address helper
>> nvme-tcp: re-resolve traddr upon reconnect in case it is a dns name
>> nvme-rdma: use nvmf_resolve_address helper
>> nvme-rdma: re-resolve traddr upon reconnect in case it is a dns name
>> nvme-fabrics: expose support for traddr as dns names to userspace
>>
>> drivers/nvme/host/fabrics.c | 29 +++++++++++++++++++++++++++++
>> drivers/nvme/host/fabrics.h | 2 ++
>> drivers/nvme/host/rdma.c | 21 +++++++++++++--------
>> drivers/nvme/host/tcp.c | 21 +++++++++++++--------
>> 4 files changed, 57 insertions(+), 16 deletions(-)
>>
> In principle looks good, but what about target support?
I don't see what the target needs to support here?
Just place nvmet ports behind say nginx with a load-balancer, and
voila...
More information about the Linux-nvme
mailing list