Distributed Object Storage System with Control Server Failover
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Traditional storage systems, particularly those using Network Attached Storage (NAS), are inadequate for managing the growing volumes of unstructured data due to their design limitations, which were not intended for the high levels of digitization and unstructured data prevalence seen today.
Innovation Solution
A distributed object-based storage system is implemented with multiple control servers, where object pools are defined and each logical object is associated with one of these pools, allowing for even responsibility sharing among servers, with each server having primary and secondary responsibilities to ensure continuous operation and efficient data management.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If traditional NAS file systems are used to store unstructured data, then data can be organized using directory hierarchies, but the system becomes inadequate for managing growing volumes of unstructured data due to design limitations
Solution Approach 1:
The system segments unstructured data into discrete objects with unique identifiers, storing each object independently in a flat address space rather than organizing them in traditional directory hierarchies. This segmentation allows the system to handle diverse unstructured data types efficiently while maintaining simplicity in the underlying storage structure.
Solution Approach 2:
The patent transitions from the two-dimensional directory hierarchy structure to a flat, one-dimensional address space where objects are accessed directly by unique identifiers. This dimensional change eliminates the complexity of nested directories while improving scalability for large volumes of unstructured data.
2Reliability
If object pools are distributed among control servers for even responsibility sharing, then system reliability improves through failover capability, but the complexity of managing primary and secondary responsibilities increases
Solution Approach 1:
The system pre-configures secondary control servers with standby responsibilities for object pools before any failures occur. This preliminary arrangement ensures that failover can occur immediately upon failure without requiring complex real-time decision-making, thereby improving reliability while keeping management complexity manageable through automation.
Solution Approach 2:
The control servers automatically detect failures and perform failover operations without requiring manual intervention. The system self-manages the redistribution of object pool responsibilities, reducing the operational complexity despite the increased reliability architecture.
3Ease of operation
If a single control server has primary responsibility for object pools, then management is simplified, but the system lacks fault tolerance and continuous operation capability
Solution Approach 1:
Each control server is designed with multi-functionality, capable of serving as a primary server for some object pools and a secondary server for others. This universal design allows any server to take over any object pool's responsibility, maintaining operational simplicity while achieving fault tolerance through the flexibility of role assignment.
Data Source
AI summary
A method and a storage system for managing logical objects, wherein the storage system includes a plurality of control servers and the method includes: (i) defining a plurality of object pools and associating each logical object, hosted in the storage system, with one of the plurality of object pools; (ii) configuring each control server to have a primary responsibility over at least two of the object pools, such that each object pool is controlled by one primary control server, configured to handle requests directed to logical objects associated with the object pool; and (iii) in response to a failure of one of the plurality of control servers, configuring each operational server of the plurality of control servers to take over primary responsibility for at least one object pool, originally defined under the primary responsibility of the failed control server.


