On May 15, 2013, at 7:04 PM, David Vossel wrote:

> 
> 
> 
> 
> ----- Original Message -----
>> From: "Brassow Jonathan" <jbras...@redhat.com>
>> To: "David Vossel" <dvos...@redhat.com>
>> Cc: "General Linux-HA mailing list" <linux-ha@lists.linux-ha.org>, "Lars 
>> Marowsky-Bree" <l...@suse.com>, "Fabio M. Di
>> Nitto" <fdini...@redhat.com>
>> Sent: Tuesday, May 14, 2013 5:01:02 PM
>> Subject: Re: [Linux-HA] LVM Resource agent, "exclusive" activation
>> 
>> 
>> On May 14, 2013, at 10:36 AM, David Vossel wrote:
>> 
>>> ----- Original Message -----
>>>> From: "Lars Ellenberg" <lars.ellenb...@linbit.com>
>>>> To: "Lars Marowsky-Bree" <l...@suse.com>
>>>> Cc: "Fabio M. Di Nitto" <fdini...@redhat.com>, "General Linux-HA mailing
>>>> list" <linux-ha@lists.linux-ha.org>,
>>>> "Jonathan Brassow" <jbras...@redhat.com>
>>>> Sent: Tuesday, May 14, 2013 9:50:43 AM
>>>> Subject: Re: [Linux-HA] LVM Resource agent, "exclusive" activation
>>>> 
>>>> On Tue, May 14, 2013 at 04:06:09PM +0200, Lars Marowsky-Bree wrote:
>>>>> On 2013-05-14T09:54:55, David Vossel <dvos...@redhat.com> wrote:
>>>>> 
>>>>>> Here's what it comes down to.  You aren't guaranteed exclusive
>>>>>> activation just because pacemaker is in control. There are scenarios
>>>>>> with SAN disks where the node starts up and can potentially attempt to
>>>>>> activate a volume before pacemaker has initialized.
>>>>> 
>>>>> Yeah, from what I've read in the code, the tagged activation would also
>>>>> prevent a manual (or on-boot) vg/lv activation (because it seems lvm
>>>>> itself will refuse). That seems like a good idea to me. Unless I'm
>>>>> wrong, that concept seems sound, barring bugs that need fixing.
>>>> 
>>>> Sure.
>>>> 
>>>> And I'm not at all oposed to using tags.
>>>> I want to get rid of the layer violation,
>>>> which is the one Bad Thing I'm complaining about.
>>>> 
>>>> Also, note that on stop, this strips all tags, leaving it untagged.
>>>> On the next cluster boot, if that was really the concern,
>>>> all nodes would grab and activate the VG, as it is untagged...
>>> 
>>> That's not how it works.  You have to take ownership of the volume before
>>> you can activate it.  Untagged does not mean a node can activate it
>>> without first explicitly setting the tag.
>> 
>> Ok, so I'm coming into this late.  Sorry about that.
>> 
>> David has this right.  Tagging in conjunction with the 'volume_list' setting
>> in lvm.conf is what is used to restrict VG/LV activation.  As he mentioned,
>> you don't want a machine to boot up and start doing a resync on a mirror
>> while user I/O is happening on the node where the service is active.  In
>> that scenario, even if the LV is not mounted, there will be corruption.  The
>> LV must not be allowed activation in the first place.
>> 
>> I think the HA scripts written for rgmanager could be considerably reduced in
>> size.  We probably don't need the matrix of different methods (cLVM vs
>> Tagging.  VG vs LV).  Many of these came about as customers asked for them
>> and we didn't want to compromise backwards compatibility.  If we are
>> switching, now's the time for clean-up.  In fact, LVM has something new in
>> lvm.conf: 'auto_activation_volume_list'.  If the list is defined and a VG/LV
>> is in the list, it will be automatically activated on boot; otherwise, it
>> will not.  That means, forget tagging and forget cLVM.  Make users change
>> 'auto_activation_volume_list' to include only VGs that are not controlled by
>> pacemaker.  The HA script should then make sure that
>> 'auto_activation_volume_list' is defined and does not contain the VG/LV that
>> is being controlled by pacemaker.  It would be necessary to check that the
>> lvm.conf copy in the initrd is properly set.
>> 
>> The use of 'auto_activation_volume_list' depends on updates to the LVM
>> initscripts - ensuring that they use '-aay' in order to activate logical
>> volumes.  That has been checked in upstream.  I'm sure it will go into RHEL7
>> and I think (but would need to check on) RHEL6.
> 
> The 'auto_activation_volume_list' doesn't seem like it exactly what we want 
> here though.  It kind of works for what we are wanting to achieve but as a 
> side effect, and I'm not sure it would work for everyone's deployment.  For 
> example, is there a way to set 'auto_activation_volume_list' as empty and 
> still be able to ensure that no volume groups are initiated at startup?
> 
> What I'd really like to see is some sort of 'allow/deny' filter just for 
> startup.  Then we could do something like this.
> 
> # start by denying everything on startup
> auto_activation_deny_list=[ "@*" ]
> # If we need to allow some vg on startup, we can explicitly enable them here.
> allow_activation_allow_list=[ "vg1", "vg2" ]
> 
> Is something like the above possible yet?  Using a method like this, we lose 
> the added security that the tags give us outside of the cluster management.  
> I trust pacemaker though :)

I guess I don't quite understand what you are saying here.  If 
'auto_activation_volume_list' is undefined - as it is by default - then every 
non-clustered VG will be activated on boot.  If it is defined, then only those 
volumes defined will be activated.

So, to do what you want above you would simply:
auto_activation_volume_list = [ "vg1", "vg2" ]

That denies activation to all but "vg1" and "vg2".

Did I miss something?

 brassow

_______________________________________________
Linux-HA mailing list
Linux-HA@lists.linux-ha.org
http://lists.linux-ha.org/mailman/listinfo/linux-ha
See also: http://linux-ha.org/ReportingProblems

Reply via email to