IP Library Granted Patent US 8,769,197
Granted Patent B2
US 8,769,197 · App. 13/910,538 · Granted Jul 1, 2014

Grid storage system and method of operating thereof

Inventors: Yechiel Yochai (D.N. Menashe, IL); Leo Corry (Ramat Gan, IL); Haim Kopylovitz (Herzliya, IL)
Assignee: Infinidat Ltd.
G06F12/0868G06F11/1464
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,769,197
App. No.
13/910,538
Granted
Jul 1, 2014
Kind
B2
Abstract

A method of operating a storage system includes: configuring the address space so that each LBA is assigned to at least two servers among a plurality of at least three servers in a control grid: to a primary server with a primary responsibility for handling requests corresponding to said LBA, and to a secondary server with a secondary responsibility for handling requests corresponding to said LBA. In response to a request corresponding to a certain LBA range, generating by a data server having primary responsibility over the certain LBA range, a primary cache object; identifying a data server configured as a secondary data server with regard to the certain LBA range; and generating a redundancy cache object corresponding to the primary cache object only at the identified secondary data server, the redundancy cache object to be used by the identified secondary data server when taking the primary responsibility.

Claims (29)

1. A storage system comprising:

a plurality of disk units adapted to store data at respective ranges of logical block addresses (LBAs), the LBAs constituting an entire address space, and

a storage control grid operatively connected to the plurality of disk units and comprising a plurality of at least three data servers;

wherein each LBA in the entire address space is assigned to at least two data servers among the plurality of at least three data servers: a primary data server configured to have a primary responsibility for handling requests corresponding to said LBA, and a secondary data server configured to have a secondary responsibility for handling requests corresponding to said LBA and to take over the primary responsibility for handling requests corresponding to said LBA if the primary data server fails; and

wherein each data server is further configured, in response to a request corresponding to a certain LBA range under its primary responsibility, to identify a data server configured as a secondary data server with regard to the certain LBA range, to generate a primary cache object, and to enable generating a redundancy cache object corresponding to the primary cache object only at the identified secondary data server, the redundancy cache object to be used by the identified secondary data server, when taking the primary responsibility over the certain LBA range, for permanently storing respective data and/or metadata related to the certain LBA range.

2. The storage system of claim 1 , wherein the request corresponding to the certain LBA range is selected from a group consisting of I/O requests and configuration-related requests.

3. The storage system of claim 1 , wherein said redundancy cache object is derived from the primary cache object and needs to be reconstructed in order to enable taking over the primary responsibility.

4. The storage system of claim 1 , wherein said redundancy cache object is further configured to be handled in a searchable data structure with no need to be incorporated into cache-object control procedures and/or dirty data destaging procedures of the secondary data server before the secondary data server takes over the primary responsibility.

5. The storage system of claim 1 , wherein the redundancy cache object is derived from the primary cache object as a serialized version of the primary cache object.

6. The system of claim 1 , wherein the redundancy cache object is derived from the primary cache object as a compressed version of the primary cache object.

7. A method of operating a storage system comprising a plurality of disk units adapted to store data at respective ranges of logical block addresses (LBAs), said addresses constituting an entire address space, and a storage control grid operatively connected to the plurality of disk units and comprising a plurality of at least three data servers, the method comprising:

configuring the entire address space so that each LBA is assigned to at least two data servers among the plurality of at least three data servers: a primary data server configured to have a primary responsibility for handling requests corresponding to said LBA, and a secondary data server configured to have a secondary responsibility for handling requests corresponding to said LBA and to take over the primary responsibility for handling requests corresponding to said LBA if the primary data server fails; and

in response to a request corresponding to a certain LBA range,

i) generating a primary cache object by a data server having primary responsibility over the certain LBA range;

ii) identifying a data server configured as a secondary data server with regard to the certain LBA range; and

iii) generating a redundancy cache object corresponding to the primary cache object only at the identified secondary data server, the redundancy cache object to be used by the identified secondary data server when taking the primary responsibility over the certain LBA range for permanent storing respective data and/or metadata related to the certain LBA range.

8. The method of claim 7 further comprising deleting the redundancy cache object upon successful permanent storing of data and/or metadata corresponding to the request, the successful permanent storing provided by the primary data server.

9. The method of claim 7 further comprising using the redundancy cache object by the secondary data server for providing permanent storing the data and/or metadata when overtaking primary responsibility.

10. The method of claim 7 , wherein the redundancy cache object is derivation of the primary cache object, the method further comprising reconstructing, before using by the secondary data server, the redundancy cache object into a copy of the primary cache object.

11. The method of claim 10 , wherein the reconstructing is provided responsive to a failure of the primary data server.

12. The method of claim 7 , wherein the redundancy cache object is derived from the primary cache object as a serialized version of the primary cache object.

13. The method of claim 7 , wherein the redundancy cache object is derived from the primary cache object as a compressed version of the primary cache object.

14. The method of claim 7 further comprising handling the redundancy cache object in a searchable data structure with no incorporation into cache-object control procedures and/or dirty data destaging procedures of the secondary data server before taking over the primary responsibility.

15. The method of claim 7 , wherein the request corresponding to the certain LBA range is selected from a group consisting of I/O requests and configuration-related requests.

16. A computer program product for use in conjunction with a storage system comprising a plurality of disk units adapted to store data at respective ranges of logical block addresses (LBAs), said addresses constituting an entire address space, and a storage control grid operatively connected to the plurality of disk units and comprising a plurality of at least three data servers, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer readable instructions for:

configuring the entire address space so that each LBA is assigned to at least two data servers among the plurality of at least three data servers: a primary data server configured to have a primary responsibility for handling requests corresponding to said LBA, and a secondary data server configured to have a secondary responsibility for handling requests corresponding to said LBA and to take over the primary responsibility for handling requests corresponding to said LBA if the primary data server fails;

in response to a request corresponding to a certain LBA range, generating, by a data server having primary responsibility over the certain LBA range, a primary cache object;

identifying a data server configured as a secondary data server with regard to the certain LBA range; and

generating a corresponding redundancy cache object only at the identified secondary data server, the redundancy cache object to be used by the identified secondary data server when taking the primary responsibility over the certain LBA range for permanent storing respective data and/or metadata related to the certain LBA range.

Assignments (10)
SECURITY INTEREST Recorded Jan 30, 2025
From: INFINIDAT LTD
To: KREOS CAPITAL VII AGGREGATOR SCSP,
Reel/Frame 070056/0458 →
RELEASE OF SECURITY INTEREST IN IP RECORDED AT R/F 55653/0854 Recorded Jan 18, 2024
From: SILICON VALLEY BANK
To: INFINIDAT LTD.
Reel/Frame 066344/0064 →
SECURITY INTEREST Recorded Jan 11, 2024
From: INFINIDAT LTD
To: KREOS CAPITAL VI (EXPERT FUND) L.P.; KREOS CAPITAL 2020 OPPORTUNITY L.P.
Reel/Frame 066270/0359 →
SECURITY INTEREST Recorded Jan 10, 2024
From: INFINIDAT LTD
To: HSBC BANK PLC
Reel/Frame 066268/0584 →
RELEASE OF SECURITY INTEREST Recorded Mar 30, 2021
From: BANK LEUMI LE-ISRAEL B.M.
To: INFINIDAT LTD.
Reel/Frame 055776/0526 →
RELEASE OF SECURITY INTEREST Recorded Mar 30, 2021
From: BANK LEUMI LE-ISRAEL B.M.
To: INFINIDAT LTD.
Reel/Frame 055776/0597 →
SECURITY INTEREST Recorded Mar 18, 2021
From: INFINIDAT LTD.
To: SILICON VALLEY BANK
Reel/Frame 055653/0854 →
SECURITY INTEREST Recorded Apr 12, 2018
From: INFINIDAT LTD.
To: BANK LEUMI LE-ISRAEL B.M.
Reel/Frame 045914/0276 →
LIEN Recorded Jul 18, 2016
From: INFINIDAT LTD.
To: BANK LEUMI LE-ISRAEL B.M.
Reel/Frame 039361/0161 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2014
From: YOCHAI, YECHIEL; CORRY, LEO; KOPYLOVITZ, HAIM
To: INFINIDAT LTD.
Reel/Frame 032945/0505 →
Continuity (6)
Continuation 12704317 · Feb 11, 2010
Continuation In Part 12544743 · Aug 20, 2009
Provisional Application 61189755 · Aug 21, 2008
Provisional Application 61151528 · Feb 11, 2009
Provisional Application 61151533 · Feb 11, 2009
Related Publication 20130268730A1 · Oct 10, 2013