IP Library Granted Patent US 9,009,388
Granted Patent B2
US 9,009,388 · App. 12/956,250 · Granted Apr 14, 2015

Performing discard commands on RAID storage devices

Inventors: Mikulá{hacek over (s)} Pato{hacek over (c)}ka (Prague, CZ); Michael A. Snitzer (Shirley, MA)
Assignee: Red Hat, Inc.
G06F3/0611G06F12/0238G06F3/0608G06F3/0652G06F3/0689
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 9,009,388
App. No.
12/956,250
Granted
Apr 14, 2015
Kind
B2
Abstract

A method and system for efficiently freeing storage in a Redundant Array of Independent Disks (RAID) system. A computer system is coupled to storage devices that are organized as a RAID with block-level striping. Each storage device is partitioned into multiple physical sectors. The computer system receives a request to free a contiguous range of logical sectors that are mapped to the storage devices. In response, the computer system issues, for each storage device, a discard command to free contiguous physical sectors in the storage device that correspond to non-contiguous logical sectors.

Claims (40)

1. A method comprising:

receiving, by a processing device, a request to free a range of logical sectors that is mapped to a plurality of storage devices organized as Redundant Array of Independent Disks (RAID), each storage device partitioned into a plurality of partitions to store a plurality of physical sectors;

for each storage device, identifying a first physical sector number corresponding to a first logical sector having a lowest number greater or equal than a starting logical sector number of the range of logical sectors;

identifying a second physical sector number corresponding to a second logical sector having a lowest number greater or equal than an ending logical sector number of the range of logical sectors; and

issuing a command to free a range of physical sectors identified by the first physical sector number and the second physical sector number;

wherein identifying a physical sector number on a current device comprises determining a first integer corresponding to a specified logical sector number and a second integer corresponding to the specified logical sector number, rounding down the first integer to a partition boundary responsive to determining that the second integer exceeds an ordinal number of the current device, and rounding down the first integer incremented by one to a partition boundary responsive to determining that the second integer does not exceed an ordinal number of the current device.

2. The method of claim 1 , wherein issuing the command comprises:

issuing the command to each device indicating a same range of physical sectors.

3. The method of claim 1 , wherein issuing the command to free a physical sector in a parity group is performed if all physical sectors in the parity group are to be discarded.

4. The method of claim 1 , wherein the RAID comprises solid state devices (SSDs).

5. The method of claim 1 , wherein the storage devices are organized as RAID-O, RAID-4, RAID-5 or RAID-6.

6. The method of claim 1 , wherein identifying the first integer comprises adding, to the specified logical sector number modulo a partition size, an integer quotient of the specified logical sector number and a number of storage devices.

7. The method of claim 1 , wherein identifying the second integer comprises determining a quotient of the specified logical sector number and a partition size modulo a number of storage devices.

8. The method of claim 1 , wherein the rounding down comprises applying bit mask.

9. A system comprising:

a plurality of storage devices organized as a Redundant Array of Independent Disks (RAID), each storage device partitioned into a plurality of partitions to store a plurality of physical sectors; and

a processing device coupled to the storage devices, the processing device to:

receive a request to free a range of logical sectors that is mapped to the storage devices;

identify, for each storage device, a first physical sector number corresponding to a logical sector having a lowest number greater or equal than a starting logical sector number of the range of logical sectors;

identify, for each storage device, a second physical sector number corresponding to a logical sector having a lowest number greater or equal than an ending logical sector number of the range of logical sectors; and

issue, for each storage device, a command to free a range of physical sectors identified by the first physical sector number and the second physical sector number;

wherein identifying a physical sector number on a current device comprises determining a first integer corresponding to a specified logical sector number and a second integer corresponding to the specified logical sector number, rounding down the first integer to a partition boundary responsive to determining that the second integer exceeds an ordinal number of the current device, and rounding down the first integer incremented by one to a partition boundary responsive to determining that the second integer does not exceed an ordinal number of the current device.

10. The system of claim 9 , further comprising:

a RAID driver module to free a physical sector in a parity group if all of associated physical sectors in the parity group are to be discarded.

11. The system of claim 9 , wherein the RAID comprises solid state devices (SSDs).

12. The system of claim 9 , wherein the storage devices are organized as RAID-0, RAID-4, RAID-5 or RAID-6.

13. The system of claim 9 , wherein identifying the first integer comprises adding, to the specified logical sector number modulo a partition size, an integer quotient of the specified logical sector number and a number of storage devices.

14. The system of claim 9 , wherein identifying the second integer comprises determining a quotient of the specified logical sector number and a partition size modulo a number of storage devices.

15. A computer readable non-transitory storage medium including instructions that, when executed by a processing device, cause the processing device to perform operations comprising:

receiving, by the processing device, a request to free a range of logical sectors that is mapped to a plurality of storage devices organized as Redundant Array of Independent Disks (RAID), each storage device partitioned into a plurality of partitions to store a plurality of physical sectors;

for each storage device, identifying a first physical sector number corresponding to a logical sector having a lowest number greater or equal than a starting logical sector number of the range of logical sectors;

identifying a second physical sector number corresponding to a logical sector having a lowest number greater or equal than an ending logical sector number of the range of logical sectors; and

issuing a command to free a range of physical sectors identified by the first physical sector number and the second physical sector number;

wherein identifying a physical sector number on a current device comprises determining a first integer corresponding to a specified logical sector number and a second integer corresponding to the specified logical sector number, rounding down the first integer to a partition boundary responsive to determining that the second integer exceeds an ordinal number of the current device, and rounding down the first integer incremented by one to a partition boundary responsive to determining that the second integer does not exceed an ordinal number of the current device.

16. The computer readable storage medium of claim 15 , wherein issuing the command comprises:

issuing the command to each device indicating a same range of physical sectors.

17. The computer readable storage medium of claim 15 , wherein issuing the command to free a physical sector in a parity group is performed if all physical sectors in the parity group are to be discarded.

18. The computer readable storage medium of claim 15 , wherein the storage devices are organized as RAID-0, RAID-4, RAID-5 or RAID-6.

19. The computer readable non-transitory storage medium of claim 15 , wherein identifying the first integer comprises adding, to the specified logical sector number modulo a partition size, an integer quotient of the specified logical sector number and a number of storage devices.

20. The computer readable non-transitory storage medium of claim 15 , wherein identifying the second integer comprises determining a quotient of the specified logical sector number and a partition size modulo a number of storage devices.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 30, 2010
From: PATOCKA, MIKULAS; SNITZER, MICHAEL A.
To: RED HAT, INC.
Reel/Frame 025433/0411 →
Continuity (1)
Related Publication 20120137064A1 · May 31, 2012