Bug 692221

Summary: Test lock failover when making NFSv4 servers active/passive HA
Product: Red Hat Enterprise Linux 6 Reporter: Perry Myers <pmyers>
Component: resource-agentsAssignee: Lon Hohberger <lhh>
Status: CLOSED DUPLICATE QA Contact: Cluster QE <mspqa-list>
Severity: medium Docs Contact:
Priority: medium    
Version: 6.0CC: agk, cluster-maint, edamato, lhh
Target Milestone: rcKeywords: TestOnly
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 692220 Environment:
Last Closed: 2011-03-30 16:35:58 EDT Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Description Perry Myers 2011-03-30 13:59:32 EDT
The RHEL 5 bug this is cloned from references NFSv3 servers since that is default in RHEL5.  In RHEL 6 NFSv4 should be used, but we'll need to provide different config information than what is provided below.

+++ This bug was initially created as a clone of Bug #692220 +++

Description of problem:
rgmanager supports making NFSv3 servers highly available in an active/passive manner when backed by a non-clustered filesystem.  In this configuration scenario, you would want to be able to fail over the locks from one server to another so that the passive node can immediately pick up where the failed server left off.

This lock failover has not been extensively tested in a while, so this bug is to track testing of lock failover specifically.

Notes:

> 1) Add this to /etc/sysconfig/nfs:
> 
>    STATDARG="-H /usr/sbin/clunfslock"
> 
> 2) In cluster.conf, your service _MUST_ be structured like this; if you
> don't get the dependency chains just right, it will not work:
> 
>    ...
>    <resources>
>      <nfsexport name="nfsexports"/>
>    </resources>
>    ...
>    <service name="foo" nfslock="1" ... >
>      <fs name="fs1" ... >
>        <nfsexport ref="nfsexports">
>          <nfsclient ... />
>          <nfsclient ... />
>          ...
>        </nfsexport>
>      </fs>
>      <fs name="fs2" ... >
>        <nfsexport ref="nfsexports">
>          <nfsclient ... />
>          <nfsclient ... />
>          ...
>        </nfsexport>
>      </fs>
>      <ip ... />
>    </service>
Comment 2 Lon Hohberger 2011-03-30 16:03:12 EDT
Lock failover should work with v4 today.

There is a difference, however: only one v4 server is allowed per cluster.  This is a limitation with how v4 recovery is done in the Linux implementation.

    <service name="foo" ... >
      <fs name="fs1" ... >
        <nfsserver name="nfsserver">
          <nfsclient ... />
          <nfsclient ... />
          ...
        </nfsserver>
      </fs>
      <ip ... />
    </service>
Comment 4 Lon Hohberger 2011-03-30 16:18:03 EDT
Actually, the same agent on RHEL6 should work with v3 recovery too, according to the original bugzilla:

https://bugzilla.redhat.com/show_bug.cgi?id=595547#c27
Comment 6 Lon Hohberger 2011-03-30 16:35:58 EDT

*** This bug has been marked as a duplicate of bug 595547 ***
Comment 7 Lon Hohberger 2011-03-30 16:36:32 EDT
V4 lock failover is not something that needs to be explicitly configured on RHEL6.  It's part of the "nfsserver" resource agent.