IP Library Granted Patent US 8,806,165
Granted Patent B2
US 8,806,165 · App. 13/263,003 · Granted Aug 12, 2014

Mass-storage system utilizing auxiliary solid-state storage subsystem

Inventors: Moshe Selfin (Haifa, IL); Daniel Golan (Aloney Abba, IL); Yedidia Atzmony (Omer, IL)
Assignee: Kaminario Technologies Ltd.
G06F3/0647G06F11/2074G06F11/2015G06F3/0685G06F3/0631G06F3/068G06F11/1441G06F11/2087G06F3/061
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,806,165
App. No.
13/263,003
Granted
Aug 12, 2014
Kind
B2
Abstract

A mass storage system including main and auxiliary storage subsystems and a controller Main storage provides physical storage space and includes non-solid-state storage devices (“NSSDs”) NSSDs provide physical locations, and main storage includes physical storage locations provided by NSSDs Controller is coupled to main storage and may be configured for mapping logical addresses to physical locations, giving rise to a logical storage space The auxiliary subsystem includes a solid-state data retention device (“SSDRD”) capable of permanently storing data and provides a physical location, giving rise to auxiliary space Controller is coupled to the auxiliary subsystem and may override a mapping of logical addresses to physical locations, with a mapping of logical address to physical locations within the auxiliary space, overriding physical storage locations Controller is adapted for loading a snapshot of the data currently stored in the overridden physical storage locations.

Claims (49)

1. A mass storage system, comprising:

a main storage subsystem providing a main physical storage space of the mass storage system and comprising a plurality of non-solid-state storage devices (“NSSDs”) allocating a plurality of physical storage locations to the main storage space, the plurality of physical storage locations provided by the NSSDs are mapped to a respective plurality of logical storage addresses; and

an auxiliary storage subsystem comprising a plurality of solid-state data retention devices (“SSDRDs”) providing a plurality of physical storage locations collectively giving rise to an auxiliary storage space;

a storage system controller coupled to the main storage space and to the auxiliary storage subsystem and is:

responsive to a first condition for overriding a mapping of a plurality of logical addresses within the main storage space to a respective plurality of physical storage locations with a mapping of the plurality of logical storage address to a respective plurality of physical storage locations within the auxiliary storage space, giving rise to overriding and overridden physical storage locations, and for loading into the overriding physical storage locations a snapshot of the data currently stored in the overridden physical storage locations, and

is further responsive to a second condition, for loading a snapshot of the data currently stored in the overriding physical storage locations into the overridden physical storage locations, and for reinstating the mapping of the logical storage area to the overridden physical storage locations.

2. The system according to claim 1 , wherein the mapping of the plurality of logical storage addresses to a respective plurality of physical storage locations within the main storage subsystem is maintained while the mapping is overridden.

3. The system according to claim 2 , wherein while the mapping of the plurality of logical storage addresses to a respective plurality of physical storage locations within the main storage subsystem is overridden, the storage system controller is configured to access the overridden physical storage locations within the main storage subsystem in connection with an I/O request that is associated with associated with a logical storage address among the plurality of logical storage addresses whose mapping is overridden.

4. The system according to claim 3 , wherein while the mapping of a logical storage address to one or more physical storage locations within the main storage space is overridden, the storage system controller is configured to update the respective overridden storage location(s) in the main storage space according to changes in the data stored within the respective overriding physical storage location(s) in the auxiliary storage space.

5. The system according to claim 4 , wherein the updates of the overridden physical storage location(s) in the main storage space are asynchronous with the changes in the data stored within the respective overriding physical storage location(s) in the auxiliary storage space.

6. The system according to claim 1 , wherein the auxiliary storage subsystem is capable of significantly higher performance compared to main storage subsystem.

7. The system according to claim 4 , wherein the storage system controller manages a queue of logical storage addresses for which there are pending updates of overridden physical storage locations.

8. The system according to claim 7 , wherein the storage system controller is responsive to a state of the queue for adjusting an operation of the mass storage system which is related to the state of the queue.

9. The system according to claim 8 , wherein the storage system controller is responsive to a state of the queue for slowing down or temporarily freezing servicing of I/O requests.

10. The system according to claim 7 , wherein the storage system controller is further responsive to a limit parameter of a component of the mass storage system that is related to the state of the queue for adjusting an operation of the mass storage system which is related to the state of the queue.

11. The system according to claim 10 , wherein the component of the mass storage system whose limit parameter is related to the state of the queue is an uninterrupted power supply unit.

12. The system according to claim 1 , wherein there is a temporal relation between the first and the second condition.

13. The system according to claim 12 , wherein in accordance with the temporal relation, the mapping reinstation with respect to a logical storage address is initiated within a limited and predefined period of time from the initiation of the mapping override with respect to the logical storage address.

14. The system according to claim 1 , wherein the relation between the first condition and the second condition is associated with a predefined performance parameter.

15. The system according to claim 14 , wherein in accordance with the first condition, the mapping override is initiated when a performance indicator associated with plurality of logical storage addresses meets a first performance related criterion, and wherein in accordance with the second condition, the mapping reinstation is initiated when a performance indicator associated with the plurality logical storage addresses whose mapping was overridden meets a second performance related criterion.

16. The system according to claim 1 , wherein the storage system controller is adapted to allocate the logical storage space based on a plurality of physical storage locations provided by the plurality of NSSDs.

17. The system according to claim 16 , wherein the storage system controller is configured to ignore the plurality of physical storage locations within the auxiliary storage space when allocating the logical storage space.

18. The system according to claim 1 , wherein the plurality of NSSDs in the main storage subsystem are selected from a group consisting of: hard disk drive, hybrid hard drive, holographic data storage, tape drive, optical disk, Compact Disk, Digital Versatile Disc, Bluray disc and floppy Disk, micro-electro-mechanical-system (“MEMS”) based storage unit.

19. The system according to claim 1 , wherein one or more of the plurality of SSDRDs comprises one or more volatile data retention units.

20. The system according to claim 1 , wherein the plurality of SSDRDs in the auxiliary storage subsystem are selected from a group consisting of: DRAM based SSD, NAND based Flash SSD including MLC or SLC versions random-access memory (“RAM”), dynamic random-access memory (“DRAM”), static random-access memory (“SRAM”), Extended Data Out DRAM (“EDO DRAM”) and Fast Page Mode DRAM.

21. The system according to claim 1 , wherein the storage system controller comprises:

a main storage space table including an entry for each physical storage location in the main storage space;

an auxiliary storage space table including an entry for each physical storage location in the auxiliary storage space; and

a logical storage space table including an entry for each logical storage address in the main storage space, and including for each logical storage address entry a record of one or more physical storage locations in the main storage space which are allocated to that logical storage address.

22. The system according to claim 21 , wherein the logical storage space table further includes, at least for each logical storage address whose mapping to the respective one or more physical storage locations in the main storage space is currently overridden, a mapping override flag which indicating the override of the mapping of the corresponding logical storage address.

23. The system according to claim 22 , wherein the logical storage space table further includes, at least for each logical storage address whose mapping to the respective one or more physical storage locations in the main storage space is currently overridden, a record of one or more overriding physical storage location in the auxiliary storage space.

24. The system according to claim 1 , wherein the size of the auxiliary storage space corresponds to a portion of the main storage space.

25. The system according to claim 1 , wherein the main storage subsystem comprises an intermediate storage controller, the intermediate storage controller is operatively coupled to the plurality of NSSDs and is adapted to allocate a plurality of virtual physical storage locations, each one of the plurality of virtual physical storage locations corresponding to one or more physical storage locations provided by the plurality of NSSDs, and wherein the intermediate storage controller is operatively connected to the storage system controller and is adapted to provision the plurality of virtual physical storage locations to the storage system controller.

26. The system according to claim 25 , wherein the storage system controller is configured to manage a virtual storage address substantially as if it where a physical storage address.

27. The system according to claim 26 , wherein the storage system controller is adapted to direct an I/O request referencing a virtual storage address to the intermediate storage controller associated with that virtual storage address.

28. The system according to claim 1 , wherein the storage system controller is adapted to implement the mapping override operation on one of a plurality of predefined groups of logical storage addresses.

29. A mass storage system, comprising:

a main storage subsystem providing a main physical storage space of the mass storage system and comprising a plurality of NSSDs, the plurality of NSSDs providing a plurality of physical storage locations and the main storage space comprising the plurality of physical storage locations provided by the plurality of NSSDs;

a storage system controller coupled to the main storage subsystem and is configured for mapping a plurality of logical storage addresses to a respective plurality of physical storage locations within the main storage space, giving rise to a logical storage space; and

an auxiliary storage subsystem comprising a plurality of solid-state data retention devices SSDRDs capable of substantially permanently storing data thereon, the plurality SSDRDs providing a plurality of physical storage locations collectively giving rise to an auxiliary storage space,

wherein the storage system controller is coupled to the auxiliary storage subsystem and is:

responsive to a first condition for overriding a mapping of a logical storage area within the logical storage space to a plurality of physical storage locations within the main storage subsystem with a mapping of the logical storage area to a plurality of physical storage locations within the auxiliary storage space, giving rise to overriding and overridden physical storage locations, and for loading into the overriding physical storage locations a snapshot of the data currently stored in the overridden physical storage locations, and

is further responsive to a second condition, for loading a snapshot of the data currently stored in the overriding physical storage locations into the overridden physical storage locations, and for reinstating the mapping of the logical storage area to the overridden physical storage locations.

30. A mass storage system, comprising:

a main storage space associated with a first plurality of storage devices characterized by relatively large storage volume, relatively low purchasing cost and relatively low performance, the main storage space comprising a plurality of physical storage locations provided by the first plurality of storage devices which are mapped to a plurality of logical storage addresses;

an auxiliary storage space associated with a second plurality of storage devices characterized by relatively small storage volume, relatively high purchasing cost and relatively high performance, the auxiliary storage space comprising a plurality of physical storage locations provided by the second plurality of storage devices;

a storage system controller coupled to the main storage space and to the auxiliary storage space and is

responsive to a first condition for overriding a mapping of a plurality of logical addresses to a respective plurality of physical storage locations provided by the first plurality of storage devices with a mapping of the plurality of logical storage address to a respective plurality of physical storage locations within the auxiliary storage space, giving rise to overriding and overridden physical storage locations, and for loading into the overriding physical storage locations a snapshot of the data currently stored in the overridden physical storage locations, and

is further responsive to a second condition, for loading a snapshot of the data currently stored in the overriding physical storage locations into the overridden physical storage locations, and for reinstating the mapping of the logical storage area to the overridden physical storage locations.

Assignments (6)
SECURITY INTEREST Recorded Nov 4, 2024
From: SILK TECHNOLOGIES INC.; THE SILK TECHNOLOGIES ILC LTD
To: TRINITY CAPITAL INC., AS COLLATERAL AGENT
Reel/Frame 069133/0868 →
SECURITY INTEREST Recorded Sep 19, 2023
From: THE SILK TECHNOLOGIES ILC LTD
To: KREOS CAPITAL VI (EXPERT FUND) L.P.
Reel/Frame 064945/0667 →
SECURITY INTEREST Recorded Sep 20, 2021
From: THE SILK TECHNOLOGIES ILC, LTD.
To: KREOS CAPITAL VI (EXPERT FUND) L.P.
Reel/Frame 057523/0433 →
SECURITY INTEREST Recorded Jul 27, 2015
From: KAMINARIO TECHNOLOGIES LTD.
To: KREOS CAPITAL IV (EXPERT FUND) LIMITED
Reel/Frame 036180/0394 →
SECURITY AGREEMENT Recorded Jul 16, 2015
From: KAMINARIO TECHNOLOGIES LTD
To: SILICON VALLEY BANK
Reel/Frame 036125/0944 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 5, 2011
From: SELFIN, MOSHE; GOLAN, DANIEL; ATZMONY, YEDIDIA
To: KAMINARIO TECHNOLOGIES LTD.
Reel/Frame 027019/0879 →
Continuity (2)
Provisional Application 61168346 · Apr 10, 2009
Related Publication 20120030415A1 · Feb 2, 2012