[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