Block Cache Coherency in Shared Storage via SBMP

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvecache sizeVSAvoidcaching functionality
Core Design Contradiction:
Quantity of substanceVSAdaptability or versatility

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
ImproveIO performanceVSAvoiddata coherency and failure recovery
Core Design Contradiction:
ProductivityVSReliability

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.

Inventive Principle:
Principle #23Feedback

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
Improvefile system recovery capabilityVSAvoidactive-active data access
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

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

Engineering Contradiction:
Improvestorage system performanceVSAvoidcaching mechanism complexity
Core Design Contradiction:
ProductivityVSDevice complexity

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.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS10481808B1Block caching in a shared storage environment
Publication Date: 2019.11.19 EMC IP HLDG CO LLC
  • US10481808B1 patent drawing
  • US10481808B1 patent drawing
  • US10481808B1 patent drawing

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.