Blame view

Documentation/device-mapper/dm-log.txt 2.34 KB
f5db4af46   Jonthan Brassow   dm raid1: add use...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
  Device-Mapper Logging
  =====================
  The device-mapper logging code is used by some of the device-mapper
  RAID targets to track regions of the disk that are not consistent.
  A region (or portion of the address space) of the disk may be
  inconsistent because a RAID stripe is currently being operated on or
  a machine died while the region was being altered.  In the case of
  mirrors, a region would be considered dirty/inconsistent while you
  are writing to it because the writes need to be replicated for all
  the legs of the mirror and may not reach the legs at the same time.
  Once all writes are complete, the region is considered clean again.
  
  There is a generic logging interface that the device-mapper RAID
  implementations use to perform logging operations (see
  dm_dirty_log_type in include/linux/dm-dirty-log.h).  Various different
  logging implementations are available and provide different
  capabilities.  The list includes:
  
  Type		Files
  ====		=====
  disk		drivers/md/dm-log.c
  core		drivers/md/dm-log.c
  userspace	drivers/md/dm-log-userspace* include/linux/dm-log-userspace.h
  
  The "disk" log type
  -------------------
  This log implementation commits the log state to disk.  This way, the
  logging state survives reboots/crashes.
  
  The "core" log type
  -------------------
  This log implementation keeps the log state in memory.  The log state
  will not survive a reboot or crash, but there may be a small boost in
  performance.  This method can also be used if no storage device is
  available for storing log state.
  
  The "userspace" log type
  ------------------------
  This log type simply provides a way to export the log API to userspace,
  so log implementations can be done there.  This is done by forwarding most
  logging requests to userspace, where a daemon receives and processes the
  request.
  
  The structure 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' is used as the interface for
  communication.
  
  There are currently two userspace log implementations that leverage this
b89544575   Jonathan Brassow   dm log userspace:...
51
  framework - "clustered-disk" and "clustered-core".  These implementations
f5db4af46   Jonthan Brassow   dm raid1: add use...
52
53
54
  provide a cluster-coherent log for shared-storage.  Device-mapper mirroring
  can be used in a shared-storage environment when the cluster log implementations
  are employed.