[linux-lvm] Making LVM cluster-safe

Ugo PARSI ugo.parsi at gmail.com
Fri Jun 30 13:00:38 UTC 2006


Hello,

I am dealing with LVM issues/thoughts with clustering for some time
now... I'm detailing my architecture (which is not in production at
the moment):

I've got a few SAN (iSCSI-based) nodes and I've got more nodes running
Xen (para-virtualization / virtual machine solution), each Xen node is
connected to the SANs and can access their devices, all of them are
LVM based so that I can easily manage the volumes and logical volumes.

On top of each virtual machine that's running, I have a LV associated
with it (the virtual machine doesn't know anything about LVM, only the
physical host does, it's totally transparent for it).
Also, a logical volume is never mounted twice... since 1 virtual
machine = 1 lv, so I am safe on that side.

All my first tests worked really fine that way....until I discovered
that when I update LVM data on the SAN, the information is not
refreshed on the nodes....

That's how I discovered LVM was not cluster compliant and that it was
unsafe to run it that way, etc..etc...

So after some researches, I found the CLVM software which is part of
the whole RedHat Cluster Suite.
After a few days of configuration / trial, the solution was up & ready.
But this solution is not stable at all after too many nodes have
joined the cluster, I have got random kernel panics, crashes, freezes,
etc... which is not good for me.... and it doesn't stand my
pre-production tests.

Plus I have to install a lot of software, which makes sense for people
that are using GFS and all the tools.... but actually I am only really
using clvm....

I am looking for a MUCH MUCH simpler solution, that I could even
script and write myself....

Here's my idea :

-> Make LVM updates, only and simply on a master node (I am certain
that no other nodes will use it) for example the SAN itself.
-> The master orders all the nodes to restart the LVM software on all
nodes (is there some kind of command to refresh the metadata ?
vgchange ?).
For more complex operations like resizing, moving, etc...kill andu
umount the virtual machine first, so that it won't trash data (in case
of a shrink for example) until LVM is refreshed.

With my current infrastructure, issuing thoses commands would be much
simpler for me than maintaining kernel-based-unstable software...

But of course, I'd like the advice from experts like you please, to
know, if I am not missing a big point in my idea ? or if it is not
safe ?

Thanks in advance,

Greetings,

Ugo PARSI

-- 
An apple a day, keeps the doctor away




More information about the linux-lvm mailing list