12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- 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
- framework - "clustered_disk" and "clustered_core". These implementations
- 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.
|