IP Library Granted Patent US 10,635,323
Granted Patent B2
US 10,635,323 · App. 15/622,209 · Granted Apr 28, 2020

Managing storage system

Inventors: Bob Biao Yan (Chengdu, CN); Bernie Bo Hu (Chengdu, CN); Jia Huang (Chengdu, CN); Jessica Jing Ye (Chengdu, CN); Vicent Qian Wu (Chengdu, CN)
Assignee: EMC IP Holding Company LLC
G06F3/0613G06F3/065G06F3/0647G06F3/0653G06F3/0685G06F12/0811G06F12/128G06F2212/283G06F2212/621
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 10,635,323
App. No.
15/622,209
Granted
Apr 28, 2020
Kind
B2
Abstract

Embodiments of the present disclosure provide methods, apparatuses and computer program products for managing a storage system. The storage system comprises a plurality of cache devices and a bottom storage device, and the plurality of cache devices comprise a first cache device group and a second cache device group. The method according to an aspect of the present disclosure comprises: receiving an input/output (I/O) request for the storage device; in response to determining that the I/O request triggers caching of target data, storing the target data from the storage device into the first cache device group if the I/O request is a read request; and storing the target data into the second cache device group if the I/O request is a write request.

Claims (72)

1. A method of managing a storage system, the storage system including a plurality of cache devices and a bottom storage device, the plurality of cache devices including a first cache device group and a second cache device group, the method comprising:

receiving an input/output, I/O, request for the storage device;

in response to determining that the I/O request triggers caching of target data, storing the target data in one of the cache device groups, based on an I/O request type associated with the I/O request, to improve caching efficiency by:

if the I/O request is a read request, storing the target data from the storage device into the first cache device group; and

if the I/O request is a write request, storing the target data into the second cache device group,

in response to a request to reduce a size of cache or a portion thereof, removing a first storage device from the first cache device group without first flushing data stored in the first storage device to the bottom storage device; and

in response to another request to reduce the size of cache or a portion thereof, removing a second storage device from the second cache device group after flushing data stored in the second storage device to the bottom storage device.

2. The method according to claim 1 , further comprising:

in response to the I/O request being the write request, determining whether a target address of the target data is included in an address mapping of the storage system, the address mapping indicating a mapping between a storage address of the storage device and a caching address of the plurality of cache devices; and

in response to determining that the target address is not included in the address mapping, writing the target data into the storage device.

3. The method according to claim 2 , further comprising:

in response to determining that the target address is included in the address mapping, determining a target cache device based on the address mapping, the target cache device including a caching address in the address mapping that corresponds to the target address.

4. The method according to claim 3 , further comprising:

in response to determining that the target cache device belongs to the first cache device group,

removing, from the address mapping, a mapping for determining the target cache device; and

writing the target data into a cache device in the second cache device group.

5. The method according to claim 3 , further comprising:

in response to determining that the target cache device belongs to the second cache device group, writing the target data into the target cache device.

6. The method according to claim 2 , wherein the first cache device group serves a read request and the second cache device group serves a write request, and wherein the method comprises:

detecting a first request for expanding the plurality of cache devices;

in response to detecting the first request, obtaining status information of the plurality of cache devices, the status information indicating at least one of: load status and usage situation of a storage space; and

adding, based on the obtained status information, a new cache device other than the plurality of cache devices into the first cache device group or the second cache device group.

7. The method according to claim 6 , wherein the first request indicates a list of a plurality of candidate cache devices, and adding the new cache device comprises:

selecting new cache devices one by one from the list of the candidate cache devices for adding the new cache device into the first cache device group or the second cache device group.

8. The method according to claim 6 , wherein the status information indicates the load status of the plurality of cache devices, and adding the new cache device comprises:

obtaining, based on the load status of the plurality of cache device, a first load of the first cache device group and a second load of the second cache device group;

if a difference between the first load and the second load or a ratio of the first load to the second load exceeds a predetermined threshold, adding the new cache device into the first cache device group; and

if the difference between the first load and the second load or the ratio of the first load to the second load is below the predetermined threshold, adding the new cache device into the second cache device group.

9. The method according to claim 6 , wherein the status information indicates the usage situation of the storage space of the plurality of cache devices, and adding the new cache device comprises:

determining, based on the usage situation of the storage space of the plurality of cache devices, a usage rate of the storage space of the second cache device group;

if the usage rate of the storage space of the second cache device group exceeds a first threshold, adding the new cache device into the second cache device group; and

if the usage rate of the storage space of the second cache device group is below the first threshold, adding the new cache devices into the first cache device group.

10. The method according to claim 6 , wherein the status information indicates the usage situation of the storage space of the plurality of cache devices, and adding the new cache device comprises:

determining, based on the usage situation of the storage space of the plurality of cache devices, an idle rate of the storage space of the second cache device group;

if the idle rate of the storage space of the second cache device group is below a second threshold, adding the new cache device into the second cache device group; and

if the idle rate of the storage space of the second cache device group is above the second threshold, adding the new cache device into the first cache device group.

11. The method according to claim 6 , further comprising:

detecting a second request for shrinking the cache devices; and

in response to detecting the second request; and

removing a first cache device in the first cache device group from the plurality of cache devices.

12. The method according to claim 11 , wherein the second request indicates a list of candidate cache devices, and the method further comprises:

selecting cache devices one by one from the list of the candidate cache devices for removing the selected cache devices from the plurality of cache devices.

13. The method according to claim 6 , further comprising:

detecting a second request for shrinking the cache devices; and

in response to detecting the second request; and

removing at least one cache device in the second cache device group from the plurality of cache devices by:

prohibiting a write operation for the at least one cache device;

duplicating a dirty page in the at least one cache device to a storage device of the storage system; and

removing the at least one cache device.

14. The method according to claim 1 , wherein a cache device in the first cache device group comprises a first solid-state disk, SSD, pair, and each SSD in the first SSD pair serves the read request independently.

15. The method according to claim 1 , wherein multiple cache devices in the first cache device group are not RAID (Redundant Array of Independent Disks) protected, and wherein multiple cache devices in the second cache device group are RAID protected.

16. A computer program product, comprising at least one non-transitory, computer-readable storage medium having program codes stored thereon, the program codes, when executed by an apparatus, causing the apparatus to execute the method of managing a storage system, the storage system including a plurality of cache devices and a bottom storage device, the plurality of cache devices including a first cache device group and a second cache device group, the method comprising:

receiving an input/output, I/O, request for the storage device;

in response to determining that the I/O request triggers caching of target data, storing the target data in one of the cache device groups, based on an I/O request type associated with the I/O request, to improve caching efficiency by:

if the I/O request is a read request, storing the target data from the storage device into the first cache device group; and

if the I/O request is a write request, storing the target data into the second cache device group,

in response to a request to reduce a size of cache or a portion thereof, removing a first storage device from the first cache device group without first flushing data stored in the first storage device to the bottom storage device; and

in response to another request to reduce the size of cache or a portion thereof, removing a second storage device from the second cache device group after flushing data stored in the second storage device to the bottom storage device.

17. The computer program product according to claim 16 , wherein the method further comprises:

in response to the I/O request being the write request, determining whether a target address of the target data is included in an address mapping of the storage system, the address mapping indicating a mapping between a storage address of the storage device and a caching address of the plurality of cache devices; and

in response to determining that the target address is not included in the address mapping, writing the target data into the storage device.

18. A storage system, comprising: a storage device; a plurality of cache devices, the plurality of cache devices comprising a first cache device group serving a read request and a second cache device group serving a write request; and a storage system manager configured to execute a method of managing the storage system, the method comprising:

receiving an input/output, I/O, request for the storage device;

in response to determining that the I/O request triggers caching of target data, storing the target data in one of the cache device groups, based on an I/O request type associated with the I/O request, to improve caching efficiency by:

if the I/O request is a read request, storing the target data from the storage device into the first cache device group; and

if the I/O request is a write request, storing the target data into the second cache device group,

in response to a request to reduce a size of cache or a portion thereof, removing a first storage device from the first cache device group without first flushing data stored in the first storage device to the bottom storage device; and

in response to another request to reduce the size of cache or a portion thereof, removing a second storage device from the second cache device group after flushing data stored in the second storage device to the bottom storage device.

19. The storage system according to claim 18 , wherein the method further comprises:

in response to the I/O request being the write request, determining whether a target address of the target data is included in an address mapping of the storage system, the address mapping indicating a mapping between a storage address of the storage device and a caching address of the plurality of cache devices; and

in response to determining that the target address is not included in the address mapping, writing the target data into the storage device.

20. The method according to claim 19 , wherein the first cache device group is dedicated to read-only access, and wherein the second cache device group is dedicated to read/write access.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (043775/0082) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060958/0468 →
RELEASE OF SECURITY INTEREST AT REEL 043772 FRAME 0750 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058298/0606 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Sep 6, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 043772/0750 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Sep 6, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 043775/0082 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 17, 2017
From: YAN, BOB BIAO; HU, BERNIE BO; HUANG, JIA; YE, JESSICA JING; WU, VICENT QIAN
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 043022/0917 →
Priority Claims (1)
CN 2016 1 0417408 · Jun 14, 2016 · national
Continuity (1)
Related Publication 20180032266A1 · Feb 1, 2018
Cited By (1)
US 12,229,437