Tightly-coupled disk-to-CPU storage server
First Claim
1. A storage server comprising:
- a plurality of server modules, each of said server modules containing a processor and a buffer coupled to a respective plurality of storage devices defined in an array; and
a cross bar switch coupled to said server modules, where said server modules accept data requests from a plurality of clients, each of said server modules issues data retrieval commands only to the respective plurality of storage devices, and said cross bar switch routes data from said server modules to said clients requesting said data.
4 Assignments
0 Petitions
Accused Products
Abstract
A storage server for efficiently retrieving data from a plurality of disks in response to user access requests. The server comprises a plurality of processors coupled to disjoint subsets of disks, and a custom non-blocking packet switch for routing data from the processors to users. By tightly coupling the processors to disks and employing an application-specific switch, congestion and disk scheduling bottlenecks are minimized. By making efficient use of bandwidth, the architecture is also capable of receiving real-time data streams from a remote source and distributing these data streams to requesting users. The architecture is particularly well suited to video-on-demand systems in which a video server stores a library of movies and users submit requests to view particular movies.
156 Citations
23 Claims
-
1. A storage server comprising:
-
a plurality of server modules, each of said server modules containing a processor and a buffer coupled to a respective plurality of storage devices defined in an array; and
a cross bar switch coupled to said server modules, where said server modules accept data requests from a plurality of clients, each of said server modules issues data retrieval commands only to the respective plurality of storage devices, and said cross bar switch routes data from said server modules to said clients requesting said data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method for providing a deterministic data channel from a data storage element of a selected server module of a plurality of server modules to a user terminal comprising the steps of:
-
propagating a data request from a user terminal to a storage server via a communications network;
routing the data request to said selected server module within said storage server;
addressing a fiber channel loop containing a storage device having data that fulfills the data request;
retrieving the data to fulfill the data request; and
routing the data from the server module through a cross bar switch to the user terminal that requested the data. - View Dependent Claims (12, 13, 14, 15, 16, 17)
appending routing information to the data request prior to coupling the data request to the cross bar switch.
-
-
13. The method of claim 11 wherein said step of routing the data further comprises the step of:
appending routing information to the data prior to coupling the data to the cross bar switch.
-
14. The method of claim 11 wherein said data request is routed through said cross bar switch to said server module.
-
15. The method of claim 11 wherein said data request is routed through a communications network to said server module.
-
16. The method of claim 11 wherein data is striped across the storage devices that are coupled to said server module.
-
17. The method of claim 11 wherein data stored in said server module is video data.
-
18. A video-on-demand server comprising:
-
a plurality of server modules, each of said server modules containing a processor and buffer coupled to a plurality of disks, the disks form a Fiber Channel loop having video data striped across all of the disks connected to any one server module; and
a cross bar switch coupled to said server modules, where said server modules accept data requests from a plurality of clients, each of said server modules issues data retrieval commands only to the respective plurality of disks, and said cross bar switch routes data from said server modules to said clients requesting said data. - View Dependent Claims (19, 20, 21, 22, 23)
-
Specification