]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commit - Documentation/device-mapper/dm-log.txt
dm raid1: add userspace log
authorJonthan Brassow <jbrassow@redhat.com>
Mon, 22 Jun 2009 09:12:35 +0000 (10:12 +0100)
committerAlasdair G Kergon <agk@redhat.com>
Mon, 22 Jun 2009 09:12:35 +0000 (10:12 +0100)
commitf5db4af466e2dca0fe822019812d586ca910b00c
tree1bbaaa36509df9f7eecc19ccffa434048cf4b555
parent754c5fc7ebb417b23601a6222a6005cc2e7f2913
dm raid1: add userspace log

This patch contains a device-mapper mirror log module that forwards
requests to userspace for processing.

The structures used for communication between kernel and userspace are
located in include/linux/dm-log-userspace.h.  Due to the frequency,
diversity, and 2-way communication nature of the exchanges between
kernel and userspace, 'connector' was chosen as the interface for
communication.

The first log implementations written in userspace - "clustered-disk"
and "clustered-core" - support clustered shared storage.   A userspace
daemon (in the LVM2 source code repository) uses openAIS/corosync to
process requests in an ordered fashion with the rest of the nodes in the
cluster so as to prevent log state corruption.  Other implementations
with no association to LVM or openAIS/corosync, are certainly possible.

(Imagine if two machines are writing to the same region of a mirror.
They would both mark the region dirty, but you need a cluster-aware
entity that can handle properly marking the region clean when they are
done.  Otherwise, you might clear the region when the first machine is
done, not the second.)

Signed-off-by: Jonathan Brassow <jbrassow@redhat.com>
Cc: Evgeniy Polyakov <johnpol@2ka.mipt.ru>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Documentation/device-mapper/dm-log.txt [new file with mode: 0644]
drivers/md/Kconfig
drivers/md/Makefile
drivers/md/dm-log-userspace-base.c [new file with mode: 0644]
drivers/md/dm-log-userspace-transfer.c [new file with mode: 0644]
drivers/md/dm-log-userspace-transfer.h [new file with mode: 0644]
include/linux/Kbuild
include/linux/connector.h
include/linux/dm-log-userspace.h [new file with mode: 0644]