Block Cache Coherency in Shared Storage via SBMP
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional block caching techniques are limited in size and functionality, particularly in shared storage environments, where maintaining data coherency and recovering from failures is challenging, especially in cluster and share-disk environments that require active-active data access.
Innovation Solution
Implementing a storage system with a shared storage environment that includes a storage array, host devices, and a server configured to coordinate block caching using a Storage Block Mapping Protocol (SBMP) server and client, along with a server flash cache like VFCache, to ensure data coherency and optimize IO operations between clients and the storage array.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If block caching is implemented in a Linux kernel or operating system kernel of a host device, then caching functionality is provided, but the caching is limited in both size and functionality
Solution Approach 1:
A dedicated caching device is introduced as an intermediary component between the host device and storage array. This caching device operates independently from the host's operating system kernel, providing unlimited cache size and enhanced functionality without being constrained by kernel limitations. The caching device mediates data transfer and caching operations, enabling features such as active-active cluster support and share-disk environment compatibility that are not available in conventional kernel-based caching.
2Productivity
If block caching is implemented in shared storage environments, then IO performance can be improved, but maintaining data coherency and recovering from failures becomes difficult
Solution Approach 1:
The caching device implements feedback mechanisms through coordination protocols with multiple hosts. When data is cached, the system tracks which hosts have which data blocks and maintains coherency by notifying relevant hosts of cache updates. Failure recovery is achieved through automated detection and reconstruction of cached data from the storage array or replica caches, ensuring data integrity without manual intervention.
Solution Approach 2:
The caching device acts as a mediator that manages data coherency across multiple hosts in shared storage environments. It coordinates access to cached data blocks, ensures consistency between cache and storage array, and handles failure recovery independently, thereby improving reliability while maintaining high IO performance.
3Reliability
If conventional block caching is used in cluster environments with replicated file systems, then file system recovery capability is provided, but active-active data access in both primary and replicated file systems is unable to be provided
Solution Approach 1:
The caching device provides multi-functional support for various cluster configurations including active-active, active-passive, and standalone modes. It can simultaneously serve multiple hosts with replicated file systems while maintaining data coherency, enabling active-active data access where both primary and replicated file systems are mounted as read-write. The device universally handles different caching scenarios through a unified architecture that supports both performance acceleration and failure recovery.
4Productivity
If block caching is implemented to accelerate IO operations, then storage system performance is improved, but the caching mechanism adds complexity to the storage system architecture
Solution Approach 1:
The caching functionality is extracted from the host device and operating system kernel and placed in a dedicated caching device. This extraction simplifies the host system architecture by removing complex caching logic from the host, while the caching device itself is designed with a streamlined architecture that specializes in caching operations. The separation of concerns reduces overall system complexity despite adding a dedicated component.
Data Source
AI summary
A storage system comprises a shared storage environment that includes a storage array having at least one storage volume shared between first and second host devices. The storage system further comprises a server associated with the storage array, at least first and second clients associated with the respective first and second host devices, and a first block cache arranged between the first client and the storage array. The server is configured to coordinate operations of the first and second clients relating to the storage volume shared between the first and second host devices in a manner that ensures coherency of data stored in the first block cache. The server may comprise a storage block mapping protocol (SBMP) server and the first and second clients may comprise respective SBMP clients. The block cache is illustratively implemented using a VFCache or other type of server flash cache.


