Mailing List Archive

Antw: Managed Failovers w/ NFS HA Cluster
>>> Charles Taylor <chasman@ufl.edu> schrieb am 17.07.2014 um 17:24 in Nachricht
<761CE39A-57D8-47D2-860D-2AF1936CC2E3@ufl.edu>:
> I feel like this is something that must have been covered extensively already
> but I've done a lot of googling, looked at a lot of cluster configs, but have
> not found the solution.
>
> I have an HA NFS cluster (corosync+pacemaker). The relevant rpms are listed
> below but I'm not sure they are that important to the question which is
> this...
>
> When performing managed failovers of the NFS-exported file system resource
> from one node to the other (crm resource move), any active NFS clients
> experience an I/O error when the file system is unexported. In other words,
> you must unexport it to unmount it. As soon as it is unexported, clients are
> no longer able to write to it and experience an I/O error (rather than just
> blocking).

Do you hard-mount or soft-mount NFS? Do you use NFSv3 or NFSv4?

>
> In a failure scenario this is not a problem becuase the file system is never
> unexported on the primary server. Rather the server just goes down, the
> secondary takes over the resources and client I/O blocks until the process is
> complete and then goes about its business. We would like this same behavior
> for a *managed* failover but have not found a mount or export option/scenario
> that works. Is it possible? What am I missing?
>
> I realize this is more of an nfs/exportfs question but I would think that
> those implementing NFS HA clusters would be familiar with the scenario I'm
> describing.
>
> Regards,
>
> Charlie Taylor
>
> pacemaker-cluster-libs-1.1.7-6.el6.x86_64
> pacemaker-cli-1.1.7-6.el6.x86_64
> pacemaker-1.1.7-6.el6.x86_64
> pacemaker-libs-1.1.7-6.el6.x86_64
> resource-agents-3.9.2-40.el6.x86_64
> fence-agents-3.1.5-35.el6.x86_64
>
> Red Hat Enterprise Linux Server release 6.3 (Santiago)
>
> Linux biostor3.ufhpc 2.6.32-279.19.1.el6.x86_64 #1 SMP Sat Nov 24 14:35:28
> EST 2012 x86_64 x86_64 x86_64 GNU/Linux
>
> [root@biostor4 bs34]# crm status
> ============
> Last updated: Thu Jul 17 10:55:04 2014
> Last change: Thu Jul 17 07:59:47 2014 via crmd on biostor3.ufhpc
> Stack: openais
> Current DC: biostor3.ufhpc - partition with quorum
> Version: 1.1.7-6.el6-148fccfd5985c5590cc601123c6c16e966b85d14
> 2 Nodes configured, 2 expected votes
> 20 Resources configured.
> ============
>
> Online: [ biostor3.ufhpc biostor4.ufhpc ]
>
> Resource Group: grp_b3v0
> vg_b3v0 (ocf::heartbeat:LVM): Started biostor3.ufhpc
> fs_b3v0 (ocf::heartbeat:Filesystem): Started biostor3.ufhpc
> ip_vbio3 (ocf::heartbeat:IPaddr2): Started biostor3.ufhpc
> ex_b3v0_1 (ocf::heartbeat:exportfs): Started biostor3.ufhpc
> ex_b3v0_2 (ocf::heartbeat:exportfs): Started biostor3.ufhpc
> ex_b3v0_3 (ocf::heartbeat:exportfs): Started biostor3.ufhpc
> ex_b3v0_4 (ocf::heartbeat:exportfs): Started biostor3.ufhpc
> ex_b3v0_5 (ocf::heartbeat:exportfs): Started biostor3.ufhpc
> Resource Group: grp_b4v0
> vg_b4v0 (ocf::heartbeat:LVM): Started biostor4.ufhpc
> fs_b4v0 (ocf::heartbeat:Filesystem): Started biostor4.ufhpc
> ip_vbio4 (ocf::heartbeat:IPaddr2): Started biostor4.ufhpc
> ex_b4v0_1 (ocf::heartbeat:exportfs): Started biostor4.ufhpc
> ex_b4v0_2 (ocf::heartbeat:exportfs): Started biostor4.ufhpc
> ex_b4v0_3 (ocf::heartbeat:exportfs): Started biostor4.ufhpc
> ex_b4v0_4 (ocf::heartbeat:exportfs): Started biostor4.ufhpc
> ex_b4v0_5 (ocf::heartbeat:exportfs): Started biostor4.ufhpc
> st_bio3 (stonith:fence_ipmilan): Started biostor4.ufhpc
> st_bio4 (stonith:fence_ipmilan): Started biostor3.ufhpc
>
>
>
> _______________________________________________
> 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



_______________________________________________
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
Re: Antw: Managed Failovers w/ NFS HA Cluster [ In reply to ]
On Jul 21, 2014, at 8:57 AM, Ulrich Windl wrote:

>>>> Charles Taylor <chasman@ufl.edu> schrieb am 17.07.2014 um 17:24 in Nachricht
> <761CE39A-57D8-47D2-860D-2AF1936CC2E3@ufl.edu>:
>> I feel like this is something that must have been covered extensively already
>> but I've done a lot of googling, looked at a lot of cluster configs, but have
>> not found the solution.
>>
>> I have an HA NFS cluster (corosync+pacemaker). The relevant rpms are listed
>> below but I'm not sure they are that important to the question which is
>> this...
>>
>> When performing managed failovers of the NFS-exported file system resource
>> from one node to the other (crm resource move), any active NFS clients
>> experience an I/O error when the file system is unexported. In other words,
>> you must unexport it to unmount it. As soon as it is unexported, clients are
>> no longer able to write to it and experience an I/O error (rather than just
>> blocking).
>
> Do you hard-mount or soft-mount NFS? Do you use NFSv3 or NFSv4?

Hard mounts. We are supporting both NFSv3 and NFSv4 mounts. I tested both and the behavior was the same. There seemed to be no way to avoid and I/O error on the clients when umounting the file system as part of a managed (crm resource move) failover. I'm wondering if this is expected or if there is some way around it that I'm simply missing. We'd like to be able to "move" resources back and forth among the servers for maintenance without disrupting client I/O.

Just to summarize, the Filesystem agent must umount the volume to migrate it. To successfully umount it, umount requires the volume to be unexported. As soon as the "stop" operation is run by the exportfs agent, any clients actively doing I/O are interrupted and error out rather than blocking as they would if the server went down. So far, I've been unable to find a way around this.

As I write this, I'm thinking that perhaps the way to achieve this is to change the order of the services so that the VIP is started last and stopped first when stopping/starting the resource group. That should make it appear to the client that the server just "went away" as would happen in a failure scenario. Then the client should not know that the file system has been unexported since it can't talk to the server.

Perhaps, I just made a rookie mistake in the ordering of the services within the resource group. I'll try that and report back.

Regards,

Charlie

_______________________________________________
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
Re: Antw: Managed Failovers w/ NFS HA Cluster [ In reply to ]
On Jul 21, 2014, at 10:40 AM, Charles Taylor wrote:

> As I write this, I'm thinking that perhaps the way to achieve this is to change the order of the services so that the VIP is started last and stopped first when stopping/starting the resource group. That should make it appear to the client that the server just "went away" as would happen in a failure scenario. Then the client should not know that the file system has been unexported since it can't talk to the server.
>
> Perhaps, I just made a rookie mistake in the ordering of the services within the resource group. I'll try that and report back.

Yep, this was my mistake. The IPaddr2 primitive needs to follow the exportfs primitives in my resource group so they now are arranged as

Resource Group: grp_b3v0
vg_b3v0 (ocf::heartbeat:LVM) Started
fs_b3v0 (ocf::heartbeat:Filesystem) Started
ex_b3v0_1 (ocf::heartbeat:exportfs) Started
ex_b3v0_2 (ocf::heartbeat:exportfs) Started
ex_b3v0_3 (ocf::heartbeat:exportfs) Started
ex_b3v0_4 (ocf::heartbeat:exportfs) Started
ex_b3v0_5 (ocf::heartbeat:exportfs) Started
ex_b3v0_6 (ocf::heartbeat:exportfs) Started
ip_vbio3 (ocf::heartbeat:IPaddr2) Started

Thanks to those who responded,

Charlie Taylor
UF Research Computing



_______________________________________________
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
Re: Antw: Managed Failovers w/ NFS HA Cluster [ In reply to ]
>>> Charles Taylor <chasman@ufl.edu> schrieb am 21.07.2014 um 16:40 in Nachricht
<67C40C19-6146-4BE5-8FBD-4BBA114C6167@ufl.edu>:

> On Jul 21, 2014, at 8:57 AM, Ulrich Windl wrote:
>
>>>>> Charles Taylor <chasman@ufl.edu> schrieb am 17.07.2014 um 17:24 in Nachricht
>> <761CE39A-57D8-47D2-860D-2AF1936CC2E3@ufl.edu>:
>>> I feel like this is something that must have been covered extensively
> already
>>> but I've done a lot of googling, looked at a lot of cluster configs, but
> have
>>> not found the solution.
>>>
>>> I have an HA NFS cluster (corosync+pacemaker). The relevant rpms are listed
>
>>> below but I'm not sure they are that important to the question which is
>>> this...
>>>
>>> When performing managed failovers of the NFS-exported file system resource
>>> from one node to the other (crm resource move), any active NFS clients
>>> experience an I/O error when the file system is unexported. In other words,
>
>>> you must unexport it to unmount it. As soon as it is unexported, clients
> are
>>> no longer able to write to it and experience an I/O error (rather than just
>>> blocking).
>>
>> Do you hard-mount or soft-mount NFS? Do you use NFSv3 or NFSv4?
>
> Hard mounts. We are supporting both NFSv3 and NFSv4 mounts. I tested both
> and the behavior was the same. There seemed to be no way to avoid and I/O
> error on the clients when umounting the file system as part of a managed (crm
> resource move) failover. I'm wondering if this is expected or if there is
> some way around it that I'm simply missing. We'd like to be able to "move"
> resources back and forth among the servers for maintenance without disrupting
> client I/O.
>
> Just to summarize, the Filesystem agent must umount the volume to migrate
> it. To successfully umount it, umount requires the volume to be unexported.
> As soon as the "stop" operation is run by the exportfs agent, any clients
> actively doing I/O are interrupted and error out rather than blocking as they
> would if the server went down. So far, I've been unable to find a way
> around this.

You need the NFS server to unexport, but you can remove the IP adresse for the NFS service before unexporting. That way the clients see a down server. Obviously start in the opposite order (first export, then add the IP address). If you think about it, that seems logical...

>
> As I write this, I'm thinking that perhaps the way to achieve this is to
> change the order of the services so that the VIP is started last and stopped
> first when stopping/starting the resource group. That should make it appear
> to the client that the server just "went away" as would happen in a failure
> scenario. Then the client should not know that the file system has been
> unexported since it can't talk to the server.
>
> Perhaps, I just made a rookie mistake in the ordering of the services within
> the resource group. I'll try that and report back.
>
> Regards,
>
> Charlie
>
> _______________________________________________
> 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



_______________________________________________
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
Re: Antw: Managed Failovers w/ NFS HA Cluster [ In reply to ]
but the nfs failover works now?

2014-07-22 2:10 GMT+02:00 Charles Taylor <chasman@ufl.edu>:
>
> On Jul 21, 2014, at 10:40 AM, Charles Taylor wrote:
>
>> As I write this, I'm thinking that perhaps the way to achieve this is to change the order of the services so that the VIP is started last and stopped first when stopping/starting the resource group. That should make it appear to the client that the server just "went away" as would happen in a failure scenario. Then the client should not know that the file system has been unexported since it can't talk to the server.
>>
>> Perhaps, I just made a rookie mistake in the ordering of the services within the resource group. I'll try that and report back.
>
> Yep, this was my mistake. The IPaddr2 primitive needs to follow the exportfs primitives in my resource group so they now are arranged as
>
> Resource Group: grp_b3v0
> vg_b3v0 (ocf::heartbeat:LVM) Started
> fs_b3v0 (ocf::heartbeat:Filesystem) Started
> ex_b3v0_1 (ocf::heartbeat:exportfs) Started
> ex_b3v0_2 (ocf::heartbeat:exportfs) Started
> ex_b3v0_3 (ocf::heartbeat:exportfs) Started
> ex_b3v0_4 (ocf::heartbeat:exportfs) Started
> ex_b3v0_5 (ocf::heartbeat:exportfs) Started
> ex_b3v0_6 (ocf::heartbeat:exportfs) Started
> ip_vbio3 (ocf::heartbeat:IPaddr2) Started
>
> Thanks to those who responded,
>
> Charlie Taylor
> UF Research Computing
>
>
>
> _______________________________________________
> 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



--
esta es mi vida e me la vivo hasta que dios quiera
_______________________________________________
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
Re: Antw: Managed Failovers w/ NFS HA Cluster [ In reply to ]
On 7/22/2014 1:00 AM, Ulrich Windl wrote:

> You need the NFS server to unexport, but you can remove the IP
> adresse for the NFS service before unexporting. That way the clients see a down
server. Obviously start in the opposite order (first export, then add
the IP address). If you think about it, that seems logical...

Erm... bull, pardon my french.

As of NFS v.3 if an export disappears while in use, the client errors
out with 'stale NFS handle'. It does not matter whether you unexport
first or turn off the power in your server room first.

(No idea -- and don't really care -- what NFS v.4 does.)

Dima

_______________________________________________
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