Host-Based Caching Storage Controller for Distributed Block Devices
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional distributed storage systems require dedicated hardware units for caching storage controllers at each location, leading to increased costs and management burdens, making them less suitable for dynamic environments like development or testing settings.
Innovation Solution
Implementing a data processing system where each host computer executes both a local initiator application and a caching storage controller (CSC) application, which defines virtual block devices, engages in distributed cache coherence protocols, and performs higher-level storage functions, thereby eliminating the need for separate dedicated storage controllers.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If dedicated hardware units are used for caching storage controllers at each location, then storage control functionality is provided, but system costs increase and management complexity increases
Solution Approach 1:
The patent combines the storage controller functionality with the host computer by implementing a storage controller application that executes on the host's existing hardware. This merges previously separate functions (host computing and storage control) into a unified system, eliminating dedicated storage controller hardware while maintaining full storage control capabilities through software-based controllers that manage local and remote storage operations
Solution Approach 2:
The host computer is designed to perform multiple functions: it executes initiator applications for data processing and simultaneously runs caching storage controller applications for storage management. This multi-functionality allows the same hardware platform to serve both computing and storage control roles, reducing the need for specialized dedicated storage controller hardware at each location
2Reliability
If dedicated hardware units are used for caching storage controllers, then storage control is provided, but flexibility and adaptability to changing environments are reduced
Solution Approach 1:
The storage controller is implemented as software that can be dynamically loaded, unloaded, modified, and reconfigured on standard host hardware platforms. This dynamic nature allows the storage control functionality to adapt to changing environment requirements without requiring physical hardware changes, enabling flexible deployment in development, testing, and production environments
Solution Approach 2:
The system allows changing key parameters such as the storage controller application code, caching policies, and configuration settings by simply loading different software versions or modifying runtime parameters. This enables the system to adapt to different operational environments (development, testing, production) without hardware changes, maintaining storage control while gaining flexibility
3Reliability
If dedicated hardware units are used for caching storage controllers, then storage control functionality is provided, but operation in dynamic environments becomes difficult and costly
Solution Approach 1:
The invention uses virtualization to create virtual storage controller instances that can be copied, moved, and replicated across different host platforms. These virtual storage controller copies can be deployed dynamically in different environments (development, testing, production) without requiring physical hardware duplication, making operation in dynamic environments easier and more cost-effective
Data Source
AI summary
A data processing system is distributed across a plurality of locations coupled together by a wide-area communications network and includes physical storage devices and a set of host computers distributed across the locations. Each host executes both a local initiator application and a local caching storage controller (CSC) application. The CSC applications (1) define a set of block devices presented to the initiator applications for block-oriented data storage operations, the block devices being virtual devices utilizing the underlying physical storage devices, (2) engage in a distributed cache coherence protocol to present the block devices consistently to the initiator applications, (3) in response to a local block storage read command from an initiator application, retrieve the requested data from the local CSC application's cache, from a remote CSC application's cache, or from a physical storage device, and (4) in response to a local block storage write command from an initiator application, invalidate all currently cached user data for the locations/addresses associated with the write command, and either store the user data associated with the write in one or more local or remote CSC application's caches or write the user data to one or more local or remote physical storage devices.


