Block Cache Between MPFS Client and Storage Array

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional storage systems face limitations in further accelerating input-output operations, which hinders enhanced storage system performance beyond what is achieved by multi-path file system (MPFS) techniques.

Innovation Solution

Implementing block caching functionality between MPFS clients and a storage array using a server flash cache, such as VFCache, to bypass the network file system and directly communicate with the storage array, optimizing read and write operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If block caching is implemented in the operating system kernel, then caching functionality is provided, but system complexity and performance overhead increase

Engineering Contradiction:
Improvedata caching reliabilityVSAvoidcaching system complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

A dedicated block cache device is introduced as an intermediary component between the MPFS client and the storage array. This separate cache device handles caching operations independently, eliminating the need to modify the operating system kernel while providing reliable block caching functionality. The cache device mediates data transfers between the client and storage array, improving performance without increasing system complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If all data operations pass through the network file system server, then centralized control is maintained, but I/O performance decreases

Engineering Contradiction:
Improvecentralized controlVSAvoidI/O performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The data path is segmented into two separate paths: a control path that routes through the MPFS server for centralized management, and a data path that allows direct communication between the MPFS client and storage array. This segmentation enables control operations to maintain centralized oversight while data operations achieve high-performance direct access, resolving the contradiction between centralized control and I/O performance.

Inventive Principle:
Principle #1Segmentation

3Productivity

If direct communication between client and storage array is implemented, then I/O performance improves, but data consistency management becomes more difficult

Engineering Contradiction:
ImproveI/O performanceVSAvoiddata consistency management
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The block cache device implements feedback mechanisms to track and manage data consistency between the direct client-storage array path and the server-mediated path. When data is cached or modified, the system receives feedback about cache status and automatically manages consistency, allowing direct communication to maintain high performance while complexity is handled through automated feedback-driven consistency management.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS8862645B1Multi-path file system with block cache between client and storage array
Publication Date: 2014.10.14 EMC IP HLDG CO LLC
  • US8862645B1 patent drawing
  • US8862645B1 patent drawing
  • US8862645B1 patent drawing

AI summary

A storage system comprises a storage array, a network file system configured to communicate with the storage array, a server associated with the network file system, a client configured to communicate over a first path with the network file system via the server and to communicate directly with the storage array over a second path that bypasses the network file system, and a block cache arranged in the second path between the client and the storage array. The server may comprise a multi-path file system (MPFS) server and the client may comprise an MPFS client, with the MPFS server and the MPFS client being configured to communicate using a file mapping protocol. The block cache is illustratively implemented using a VFCache or other type of server flash cache.