Re: [Cluster-devel] GFS2: Send useful information with uevent messages

2008-12-01 Thread David Teigland
On Thu, Nov 27, 2008 at 10:45:21AM +, Steven Whitehouse wrote:
 From 04b985e291c464092516d0d1a4387b866389a85d Mon Sep 17 00:00:00 2001
 From: Steven Whitehouse [EMAIL PROTECTED]
 Date: Thu, 27 Nov 2008 09:42:51 +
 Subject: [PATCH] GFS2: Send useful information with uevent messages
 
 In order to distinguish between two differing uevent messages
 and to avoid using the (racy) method of reading status from
 sysfs in future, this adds some status information to our
 uevent messages.
 
 Btw, before anybody says sysfs isn't racy, I'm aware of that,
 but the way that GFS2 was using it (send an ambiugous uevent and
 then expect the receiver to read sysfs to find out the status
 of the reported operation) was.

Not as long as gfs_controld tells gfs-kernel to recover journals one at a
time on a node, which is what it does to avoid this problem.



[Cluster-devel] Re: Groupd uevent clean up

2008-12-01 Thread David Teigland
On Fri, Nov 28, 2008 at 11:07:56AM +, Steven Whitehouse wrote:
 LOCKTABLE=clustername:fsname
 LOCKPROTO=[lock_dlm|lock_nolock]
 
 to avoid all the messy parsing of the initial event string. Also I've
 added come further information to the two change events, so that we
 now have:
 
 FIRSTMOUNT=Done
 
 when the first mounter has finished and:
 
 JID=journal_id
 RECOVERY=[Done|Failed]
 
 when recovery has finished. Is there anything else that is useful I
 wonder, while I'm adding new items here? I think I've covered the
 important bits anyway.

That's excellent, much better than the sysfs files.  We'll need to keep
the sysfs files around for a while, though, so we don't break the
user/kernel interface.

Dave



[Cluster-devel] Re: Groupd uevent clean up

2008-12-01 Thread Steven Whitehouse
Hi,

On Mon, 2008-12-01 at 09:28 -0600, David Teigland wrote:
 On Fri, Nov 28, 2008 at 11:07:56AM +, Steven Whitehouse wrote:
  LOCKTABLE=clustername:fsname
  LOCKPROTO=[lock_dlm|lock_nolock]
  
  to avoid all the messy parsing of the initial event string. Also I've
  added come further information to the two change events, so that we
  now have:
  
  FIRSTMOUNT=Done
  
  when the first mounter has finished and:
  
  JID=journal_id
  RECOVERY=[Done|Failed]
  
  when recovery has finished. Is there anything else that is useful I
  wonder, while I'm adding new items here? I think I've covered the
  important bits anyway.
 
 That's excellent, much better than the sysfs files.  We'll need to keep
 the sysfs files around for a while, though, so we don't break the
 user/kernel interface.
 
 Dave
 
We also need to change groupd and the reason that I didn't resend that
original patch is that with these new bits of information, it might be
better to implement something a bit more generic, so that it picks up
all the right bits of information. Shouldn't be too tricky to keep it
backwards compatible either,

Steve.




Re: [Cluster-devel] GFS2: Send useful information with uevent messages

2008-12-01 Thread Steven Whitehouse
Hi,

On Mon, 2008-12-01 at 09:25 -0600, David Teigland wrote:
 On Thu, Nov 27, 2008 at 10:45:21AM +, Steven Whitehouse wrote:
  From 04b985e291c464092516d0d1a4387b866389a85d Mon Sep 17 00:00:00 2001
  From: Steven Whitehouse [EMAIL PROTECTED]
  Date: Thu, 27 Nov 2008 09:42:51 +
  Subject: [PATCH] GFS2: Send useful information with uevent messages
  
  In order to distinguish between two differing uevent messages
  and to avoid using the (racy) method of reading status from
  sysfs in future, this adds some status information to our
  uevent messages.
  
  Btw, before anybody says sysfs isn't racy, I'm aware of that,
  but the way that GFS2 was using it (send an ambiugous uevent and
  then expect the receiver to read sysfs to find out the status
  of the reported operation) was.
 
 Not as long as gfs_controld tells gfs-kernel to recover journals one at a
 time on a node, which is what it does to avoid this problem.
 
Thats true, but I think that we ought to remove that restriction. It
also doesn't alter the fact that its impossible to tell the difference
between the two CHANGE events except by knowing the current state of the
cluster, and I don't think thats a good thing really,

Steve.




[Cluster-devel] gfs uevent and sysfs changes

2008-12-01 Thread David Teigland
Here are the compatibility aspects to the recent ideas about changes to
the user/kernel interface between gfs (1  2) and gfs_controld.

. gfs_controld can remove id from hostdata string in mount options

  - no compat issues AFAICT

. getting rid of id sysfs file from lock_dlm

  - new gfs_controld old gfs-kernel
old kernel provides both block and id sysfs files
new daemon looks for block instead of id in sysfs

  - old gfs_controld new gfs-kernel
old daemon looks for id sysfs file
new kernel needs to provide id as well as block sysfs files

  Once everyone is using the new daemon, we can remove the id sysfs
  file from the kernel.

. uevent strings to replace recover_done/recover_status sysfs files

  - new gfs_controld old gfs-kernel
old kernel has recover sysfs files, and no new uevent strings
new daemon needs to look for either sysfs files or uevent strings

  - old gfs_controld new gfs-kernel
old daemon looks for recover sysfs files, not new uevent strings
new kernel needs to provide both sysfs files and uevent strings

  Once everyone is using new kernel and new daemon, we can remove
  the recover sysfs files from kernel, and daemon can stop looking for
  recover sysfs files.