On Thu, Jun 10, 2010 at 03:17:49AM +1000, Justin Clift
wrote:> Hi all,
>
> Writing up some Fedora documentation, and looking to figure out the
> best way of mapping multipath network(!) LUNs to pools in libvirt.
>
> ie Infiniband SRP LUNs, but would probably apply to Fibre Channel
> equally as well.
I'm assuming you're talking about the device mapper multipath
implementation...
I've only used multipath with Fibre Channel and iSCSI, but I presume
the Infiniband SRP LUNs produce the same entries in /dev/mapper that
other transports do.
> There are two approaches I can think of easily:
>
> a) Large LUNs (ie TB+) that are mapped to a host server as disk, with
> each LUN being configured as an LVM pool. This lets the host
> slice the pool up into volumes with the libvirt volume creation
> commands.
That's a valid way to do it.
> b) Pre-purposed LUNs mapped to a host server as disk, but passed
> through directly to their respective guests.
>
> ie Something like Oracle, with 3 SAN LUNs mapped to guest FOO for
> its database data
That's also valid.
> In a non-libvirt world I'd look at configuring the LUNs on the host
> with persistent name using multipath, then present them
> appropriately to whatever needs them from there.
Using a persistent name is the definitely the way to do it with or
without libvirt.
> However, libvirt has a pool type called "multipath". Looking at
the
> docs online, it doesn't appear to be all that fully featured at this
> point. Seems more of a brief mention and footnote, so I'm wondering
> whether to use it or skip it for now in the Fedora docs.
>
> Anyone have thoughts/suggestions/etc? :)
The multipath pool is syntactic sugar, basically. It's used to get a
list of multipath devices on a host easily. The multipath devices can
then (as you suggest above) be carved up into disk or logical pools,
or assigned straight to VMs.
It's probably most useful when VMs are intended to use only the
multipath devices on a physical host. I.e., the set of volumes in the
multipath pool is equivalent or nearly equivalent to the set of
devices that are intended to be assigned to VMs.
One design decision was to keep multipath support simple and that
libvirt should not attempt to configure multipath, so at the time that
the physical host's OS is installed, it needs to have its blacklist
set, and should have (again as you suggest above) user_friendly_names
set to no. Those should be one-time tasks.
Dave