On Fri, Sep 07, 2012 at 11:57:58AM +0200, Kevin Wolf wrote: > Am 07.09.2012 11:36, schrieb Paolo Bonzini: > > Hmm, why don't we do the exact same thing as libvirt > > (http://libvirt.org/remote.html): > > > > ipv4 - gluster+tcp://1.2.3.4:0/testvol/dir/a.img > > ipv6 - gluster+tcp://[1:2:3:4:5:6:7:8]:0/testvol/a.img > > host - gluster+tcp://example.org/testvol/dir/a.img > > unix - gluster+unix:///testvol/dir/a.img?socket=/tmp/glusterd.socket > > rdma - gluster+rdma://1.2.3.4:0/testvol/a.img > > > > Where the default transport is tcp (i.e. gluster+tcp is the same as > > gluster). > > This is easily extensible, theoretically you could have something like this: > > > > ssh - gluster+ssh://user@host/testvol/a.img?socket=/tmp/glusterd.socket > > I like this. Having the type only as a parameter when it decides how the > schema must be parsed has bothered me from the start, but I hadn't > thought of this way. > > Strong +1 from me.
FYI, bdrv_find_protocol() fails for protocols like this. It detects the protocol as "gluster+tcp" and compares it with drv->protocol_name (which is only "gluster"). I guess I will have to fix bdrv_find_protocol() to handle the '+' within protocol string correctly. Regards, Bharata. > > Kevin