IP Library Granted Patent US 10,740,202
Granted Patent B2
US 10,740,202 · App. 16/270,017 · Granted Aug 11, 2020

System and method for efficient comparison of mirrored storage devices

Inventors: Yaniv Romem (Jerusalem, IL); Omri Mann (Jerusalem, IL); Ofer Oshri (Kfar Saba, IL); Kirill Shoikhet (Raanana, IL); Daniel Herman Shmulyan (Beer Yaaqov, IL)
Assignee: EXCELERO STORAGE LTD.
G06F11/2064G06F11/2069G06F11/2082G06F2201/82
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,740,202
App. No.
16/270,017
Granted
Aug 11, 2020
Kind
B2
Abstract

A system and method for comparing mirrored storage devices. The method includes: selecting, from a storage slice of a first storage device and at least a second storage device, corresponding storage blocks that are not trimmed blocks, wherein trimmed blocks are blocks within a storage device marked for erasure; comparing the corresponding storage blocks such that a non-trimmed block of the first storage device is compared to a corresponding non-trimmed block of the second storage device to determine which storage blocks do not match; and performing a recovery operation between the non-trimmed block of the first storage device and a non-matching corresponding first non-trimmed block of the second storage device.

Claims (34)

1. A method for comparing mirrored storage devices, comprising:

selecting, from a storage slice of a first storage device and at least a second storage device, corresponding storage blocks that are not trimmed blocks, wherein trimmed blocks are blocks within a storage device marked for erasure;

comparing the corresponding storage blocks such that a non-trimmed block of the first storage device is compared to a corresponding non-trimmed block of the second storage device to determine which storage blocks do not match; and

performing a recovery operation between the non-trimmed block of the first storage device and a non-matching corresponding first non-trimmed block of the second storage device.

2. The method of claim 1 , further comprising:

marking all blocks of the slice as trimmed blocks when it is determined that the slice contains any blocks that are trimmed.

3. The method of claim 1 , further comprising:

trimming a block in the at least a second storage device when a corresponding block of a first storage device is determined to be trimmed.

4. The method of claim 1 , wherein the determination if a block is trimmed is based on metadata describing the contents of the block.

5. The method of claim 1 , wherein comparing the non-trimmed blocks of the first storage to the non-trimmed blocks of the second storage comprises comparing metadata of the first block and metadata of the second block.

6. The method of claim 5 , wherein the metadata is a hash value of the contents of the non-trimmed block.

7. The method of claim 5 , wherein the metadata a timestamp value indicating when the contents of the non-trimmed block were written, and wherein it is determined that the more recent of the blocks is a mirrored block.

8. The method of claim 1 , the recovery operation is performed in response to detecting one or more of the storage devices are recovering from a failure.

9. The method of claim 1 , wherein the number of blocks determined to be trimmed blocks is configurable.

10. A non-transitory computer readable medium having stored thereon instructions for causing a processing circuitry to perform a process, the process comprising:

selecting, from a storage slice of a first storage device and at least a second storage device, corresponding storage blocks that are not trimmed blocks, wherein trimmed blocks are blocks within a storage device marked for erasure;

comparing the corresponding storage blocks such that a non-trimmed block of the first storage device is compared to a corresponding non-trimmed block of the second storage device to determine which storage blocks do not match; and

performing a recovery operation between the non-trimmed block of the first storage device and a non-matching corresponding first non-trimmed block of the second storage device.

11. A system for comparing mirrored storage devices, comprising:

a processing circuitry; and

a memory, the memory containing instructions that, when executed by the processing circuitry, configure the system to:

select, from a storage slice of a first storage device and at least a second storage device, corresponding storage blocks that are not trimmed blocks, wherein trimmed blocks are blocks within a storage device marked for erasure;

compare the corresponding storage blocks such that a non-trimmed block of the first storage device is compared to a corresponding non-trimmed block of the second storage device to determine which storage blocks do not match; and

perform a recovery operation between the non-trimmed block of the first storage device and a non-matching corresponding first non-trimmed block of the second storage device.

12. The system of claim 11 , wherein the system is further configured to:

mark all blocks of the slice as trimmed blocks when it is determined that the slice contains any blocks that are trimmed.

13. The system of claim 11 , wherein the system is further configured to:

trim a block in the at least a second storage device when a corresponding block of a first storage device is determined to be trimmed.

14. The system of claim 11 , wherein the determination if a block is trimmed is based on metadata describing the contents of the block.

15. The system of claim 11 , wherein comparing the non-trimmed blocks of the first storage to the non-trimmed blocks of the second storage comprises comparing metadata of the first block and metadata of the second block.

16. The system of claim 15 , wherein the metadata a hash value of the contents of the non-trimmed block.

17. The system of claim 15 , wherein the metadata a timestamp value indicating when the contents of the non-trimmed block were written, and wherein it is determined that the more recent of the blocks is a mirrored block.

18. The system of claim 11 , the recovery operation is performed in response to detecting one or more of the storage devices are recovering from a failure.

19. The system of claim 11 , wherein the number of blocks determined to be trimmed blocks is configurable.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 14, 2022
From: EXCELERO STORAGE LTD.
To: NVIDIA CORPORATION
Reel/Frame 059249/0950 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 7, 2019
From: ROMEM, YANIV; MANN, OMRI; OSHRI, OFER; SHOIKHET, KIRILL; SHMULYAN, DANIEL HERMAN
To: EXCELERO STORAGE LTD.
Reel/Frame 048269/0166 →
Continuity (2)
Provisional Application 62627223 · Feb 7, 2018
Related Publication 20190243733A1 · Aug 8, 2019