[Ocfs2-tools-devel] [PATCH 0/39] ocfs2-tools: Support for userspace
cluster stacks
Joel Becker
joel.becker at oracle.com
Fri Mar 14 16:52:23 PDT 2008
These patches allow ocfs2 to use the distributed lock manager in fs/dlm
in conjunction with a userspace cluster stack.
This series is the tools portion of the changes. Using the new
ocfs2_stack_user plug-in requires knowing how to load the plug-in and
provides a daemon to interact with the cman cluster stack. The changes
fall into four sections. First, we reconfigure the tools code to handle
the changed kernel module set. This includes allowing compiled-in
drivers for the first time. Second, the ocfs2 control daemon
(ocfs2_controld) is created. The daemon handles all interaction between
the filesystem and the userspace cluster stack. Third, the interface
to the ocfs2_control misc device is defined. ocfs2_controld sends
events to the filesystem via this interface. Finally, the control
daemons on each node learn to negotiate compatiblity, allowing for
rolling upgrades.
[Refactor tools for the new plug-in set]
o2cb: Ignore files in cluster directory.
o2cb.init: Eliminate the single-path load_actions scheme.
umount.ocfs2: Add umount.ocfs2 to pair mount.ocfs2
o2cb: change the heartbeat API
o2cb.init: Store the configured stack name.
libo2cb: Create operation structures for the cluster stack.
o2cb.init: Manage stack plugins
o2cb.init: Bring a userspace cluster online.
[Create the control daemon]
configure: Check for libcman and cpg.
libo2cb: Add the client protocol files.
ocfs2_controld: Add the test client
ocfs2_controld: Add the main loop file.
ocfs2_controld: Add cman membership code.
ocfs2_controld: Steal a better client loop
ocfs2_controld: add CPG skeleton
ocfs2_controld: Smarter client allocation code.
ocfs2_controld: Add mountgroups and mount client communication.
ocfs2_controld: some group handling
ocfs2_controld: Join a group on filesystem mount.
ocfs2_controld: Leave groups
ocfs2_controld.cman: Provide a callback when the daemon group is joined
ocfs2_controld.cman: Prefix group names with 'ocfs2:'
ocfs2_controld.cman: Validate current stack
libo2cb: Provide the controld group operations.
o2cb client: Add the query messages
o2cb: o2cb_list_clusters() for user stacks.
o2cb: Introduce the cluster info struct.
mkfs.ocfs2: Add the cluster stack options.
libo2cb: Build client_proto unconditionally
mount.ocfs2: Pass the cluster_stack= option for user stacks.
[Add the ocfs2_control misc device]
ocfs2_control: Add udev configuration for the ocfs2_control device.
libo2cb: Add the API to open and close the ocfs2_control device.
o2cb: Provide the o2cb_control_node_down() API.
libo2cb: Teach the control device handshake about the protocol version
[Negotiate compatibility among control daemons]
ocfs2_controld: Pass the locking version to ocfs2_control_open()
ocfs2_controld: Add the startup/shutdown code for ckpt
ocfs2_controld: Open and close checkpoints
ocfs2_controld: read and write ckpt sections
ocfs2_controld: Integrate ckpt with the daemon
The tools code is available via git, in the 'stack-user' branch of the
ocfs2-tools git repository.
View:
http://oss.oracle.com/git/?p=ocfs2-tools.git;a=shortlog;h=stack-user
Pull:
git pull git://oss.oracle.com/git/ocfs2-tools.git stack-user
The kernel code is also available on the 'stack-user' branch of my git
repository. It is also in the main ocfs2.git repository.
View:
http://oss.oracle.com/git/?p=jlbec/linux-2.6.git;a=shortlog;h=stack-user
Pull:
git pull git://oss.oracle.com/git/jlbec/linux-2.6.git stack-user
More information about the Ocfs2-tools-devel
mailing list