1.1.10 Storage

The following notable storage features are implemented in UEK R4:

  • The device mapper dm-cache target allows you to use a fast device such as an SSD as a cache for a slower device such as a rotating disk. You can use various policy plugins to change the selection algorithms for performing actions such as promoting, demoting, cleaning blocks. dm-cache supports both writeback and write-through modes. This feature is still flagged as experimental and might not be suitable for production systems.

    Updates to dm-cache added support for a passthrough mode when the cache contents might not be consistent with the underlying device, cache block invalidation, and cache shrinking.

    For more information, see https://www.kernel.org/doc/Documentation/device-mapper/cache.txt.

  • Bcache is a block layer cache that allows you to use SSDs to cache slower block devices. Bcache can perform both writeback and write-through caching, has no file-system dependencies, is simple to use, and works well on any setup without requiring any configuration.

    For more information, see https://www.kernel.org/doc/Documentation/bcache.txt, http://bcache.evilpiepirate.org/, and http://lwn.net/Articles/497024/.

  • The new, scalable multiqueue block layer subsystem (blk-mq) for supporting high performance SSD storage implements per-CPU submission queues for receiving I/O requests, which are directed to hardware submission queues. The separate per-CPU submission and hardware submission queues balances the I/O workload across multiple CPU cores and reduces latency. The design supports the interface and features of the traditional block layer, but it is also capable of supporting many millions of I/O operations per second by taking advantage of the capabilities of NVM-Express or high-end PCI-E devices and multicore CPUs.

    For more information, see http://lwn.net/Articles/552904/.

  • The device mapper dm-era target behaves similarly to the linear target with the addition of tracking any blocks that were written within an era, which is a time period that you can define. Typical use cases are tracking the changed blocks in backup software and restoring cache coherency after rolling back a snapshot by partially invalidating the cache contents.

    For more information, see https://www.kernel.org/doc/Documentation/device-mapper/era.txt.