[Lustre-discuss] Failover & recovery issues / questions

Adam Gandelman gandelman.a at gmail.com
Mon Mar 30 16:38:17 PDT 2009


Hi-

I'm new to Lustre and am running into some issues with fail over and 
recovery that I can't seem to find answers to in the Lustre manual 
(v1.14).  If anyone can fill me in as to what is going on (or not going 
on), or point me toward some documentation that goes into more detail it 
would be greatly appreciated. 

It's a simple cluster at the moment:

MDT/MGS data is collocated on node LUS-MDT

LUS-OSS0 and LUS-OSS1 are set up in an active/active failover setup,. 
LUS-OSS0 is primary for /dev/drbd1 and backup for /dev/drbd2, LUS-OSS1 
is primary for /dev/drbd2 and backup for /dev/drbd1.  I have heartbeat 
configured to monitor and handle fail over, however, I run into the same 
problems when manually testing fail over.

When heartbeat is killed on either OSS and resources failed over to the 
backup, or when the filesystem is manually unmounted and remounted on 
the backup node, the migrated OST either 1, goes into a state of endless 
recovery or 2, doesn't seem to go into recovery at all.  It becomes 
inactive on the cluster entirely.  If I bring the OST's primary back up 
and fail back the resources, the OST goes into recovery, completes and 
comes back up online as it should.

For example, if I take down OSS0, the OST fails over to it's back up, 
however, it never makes it past this and never recovers:

[root at lus-oss0 ~]# cat 
/proc/fs/lustre/obdfilter/lustre-OST0000/recovery_status
status: RECOVERING
recovery_start: 0
time_remaining: 0
connected_clients: 0/4
completed_clients: 0/4
replayed_requests: 0/??
queued_requests: 0
next_transno: 2002

In some instances, /proc/fs/lustre/obdfilter/lustre-OST0000/ is empty.  
Like I said, when the primary node comes back online and resources are 
migrated back, the OST goes into recovery fine, completes and comes back 
up online.

Here are log output on the secondary node after fail over.

Lustre: 13290:0:(filter.c:867:filter_init_server_data()) RECOVERY: 
service lustre-OST0000, 4 recoverable clients, last_rcvd 2001
Lustre: lustre-OST0000: underlying device drbd2 should be tuned for 
larger I/O requests: max_sectors = 64 could be up to max_hw_sectors=255
Lustre: OST lustre-OST0000 now serving dev 
(lustre-OST0000/1ff44d23-d13a-b0c6-48e1-36c104ea6752), but will be in 
recovery for at least 5:00, or until 4 clients reconnect. During this 
time new clients will not be allowed to connect. Recovery progress can 
be monitored by watching 
/proc/fs/lustre/obdfilter/lustre-OST0000/recovery_status.
Lustre: Server lustre-OST0000 on device /dev/drbd2 has started
Lustre: Request x8184 sent from lustre-OST0000-osc-c6cedc00 to NID 
192.168.10.23 at tcp 100s ago has timed out (limit 100s).
Lustre: lustre-OST0000-osc-c6cedc00: Connection to service 
lustre-OST0000 via nid 192.168.10.23 at tcp was lost; in progress 
operations using this service will wait for recovery to complete.
Lustre: 3983:0:(import.c:410:import_select_connection()) 
lustre-OST0000-osc-c6cedc00: tried all connections, increasing latency to 6s







More information about the lustre-discuss mailing list