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