Re: [PATCH 0/7] dlm: overview

David Teigland
2005-04-28T16:22:16Z

On Wed, Apr 27, 2005 at 03:56:35PM +0200, Lars Marowsky-Bree wrote:

> Questions which need to be settled, or which the API at least needs to
> export so we know what is expected from us:

Here's what the dlm takes from userspace:

- Each lockspace takes a list of nodeid's that are the current members
of that lockspace. Nodeid's are int's. For lockspace "alpha", it looks
like this:
echo "1 2 3 4" > /sys/kernel/dlm/alpha/members

- The dlm comms code needs to map these nodeid's to real IP addresses.
A simple ioctl on a dlm char device passes in nodeid/sockaddr pairs.
e.g. dlm_tool set_node 1 10.0.0.1
to tell the dlm that nodeid 1 has IP address 10.0.0.1

- To suspend the lockspace you'd do (and similar for resuming):
echo 1 > /sys/kernel/dlm/alpha/stop

GFS won't be anything like that. To control gfs file system "alpha":

- To tell it that its mount is completed:
echo 1 > /sys/kernel/gfs/alpha/mounted

- To tell it to suspend operation while recovery is taking place:
echo 1 > /sys/kernel/gfs/alpha/block

- To tell it to recover journal 3:
echo 3 > /sys/kernel/gfs/alpha/recover

There's a dlm daemon in user space that works with the specific sysfs
files above and interfaces with whatever cluster infrastructure exists.
The same goes for gfs, but the gfs user space daemon does quite a lot more
(gfs-specific stuff).

In other words, these aren't external API's; they're internal interfaces
within systems that happen to be split between the kernel and user-space.

Dave