IP Library Granted Patent US 9,864,661
Granted Patent B2
US 9,864,661 · App. 15/043,417 · Granted Jan 9, 2018

Cache-accelerated replication of snapshots between storage devices

Inventor: Nimesh Bhagat (San Jose, CA)
Assignee: Hewlett Packard Enterprise Development LP
G06F11/1464G06F12/0813G06F12/0888G06F2201/84G06F2212/154G06F2212/60
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,864,661
App. No.
15/043,417
Granted
Jan 9, 2018
Kind
B2
Abstract

Methods, systems, and computer programs are presented for replicating snapshot data between network storage devices. One method includes an operation for detecting a read request for a data block of a volume in a storage device, the volume being stored in disk storage and cached in cache memory. The data block is read from the cache memory if the data block is in the cache memory, otherwise, the data block is read from the disk storage. When the data block is not stored in the cache memory and the read request is not for replicating the data block to a another storage device, the data block read from the disk storage is cached in the cache memory. However, the data block is not cached in the cache memory when the data block is being replicated to the other storage device. Afterwards, the read request is completed.

Claims (35)

1. A method for managing memory utilization, the method comprising:

detecting a read request for a data block of a volume in a first storage device, wherein the volume is stored in disk storage and cached in cache memory;

reading the data block from the cache memory when the data block is stored in the cache memory;

reading the data block from the disk storage when the data block is not stored in the cache memory;

caching the data block read from the disk storage in the cache memory when the data block is not stored in the cache memory and the read request is not for replicating the data block to a second storage device, wherein the data block is not cached in the cache memory when replicating the data block;

completing the read request, wherein the read request is a volume data read operation sent by a host device or the read request is associated with a replication of the volume to the second storage device, and replication of the volume to the second storage device includes replicating a snapshot of the volume from the first storage device to the second storage device, the replicating being of data blocks of the snapshot that have changed with reference to another snapshot previously replicated; and

pinning in the cache memory the data blocks of the snapshot that have changed with reference to another snapshot previously replicated.

2. The method as recited in claim 1 , wherein completing the read request includes:

sending the data block to a host device when the read request is received from the host device; and

sending the data block to the second storage device when the read request is for replicating the data block to the second storage device.

3. The method as recited in claim 1 , further including:

prefetching a plurality of data blocks when reading the data block from disk storage;

storing the prefetched plurality of data blocks in a random access memory (RAM); and

serving the prefetched plurality of data blocks from RAM when requested.

4. A network storage device comprising:

a random access memory (RAM);

disk storage for storing data of a volume;

a cache memory for caching the data of the volume; and

a processor, wherein the processor is configured to detect a read request for a data block of the volume, wherein the processor reads the data block from the cache memory when the data block is stored in the cache memory;

wherein the processor reads the data block from the disk storage when the data block is not stored in the cache memory;

wherein the processor caches the data block read from the disk storage in the cache memory when the data block is not stored in the cache memory and the read request is not for replicating the data block to another storage device, wherein the data block is not cached in the cache memory when replicating the data block;

wherein the processor completes the read request after reading the data block from the cache memory or from the disk storage;

wherein the read request is a volume data read operation sent by a host device or the read request is associated with a replication of the volume to the other storage device, the replication of the volume to the other storage device includes replicating a snapshot of the volume from the storage device to the another storage device and replicating is of data blocks of the snapshot that have changed with reference to another snapshot previously replicated, wherein the processor pins in the cache memory the data blocks of the snapshot that have changed with reference to another snapshot previously replicated.

5. The network storage device as recited in claim 4 , wherein when completing the read request, the processor sends the data block to the host device when the read request is received from the host device, wherein the processor sends the data block to the other storage device when the read request is for replicating the data block to the other storage device.

6. The network storage device as recited in claim 4 , when reading the data block from disk storage, the processor prefetches a plurality of data blocks and stores the prefetched plurality of data blocks in a random access memory (RAM), wherein the prefetched plurality of data blocks are served from RAM when requested.

7. A non-transitory computer-readable storage medium storing a computer program for managing memory utilization, the computer-readable storage medium comprising:

program instructions for detecting a read request for a data block of a volume in a first storage device, wherein the volume is stored in disk storage and cached in cache memory;

program instructions for reading the data block from the cache memory when the data block is stored in the cache memory;

program instructions for reading the data block from the disk storage when the data block is not stored in the cache memory;

program instructions for caching the data block read from the disk storage in the cache memory when the data block is not stored in the cache memory and the read request is not for replicating the data block to a second storage device, wherein the data block is not cached in the cache memory when replicating the data block;

program instructions for completing the read request, wherein the read request is a volume data read operation sent by a host device or the read request is associated with a replication of the volume to the second storage device and the replication of the volume to the second storage device includes replicating a snapshot of the volume from the first storage device to the second storage device, the replication being of data blocks of the snapshot that have changed with reference to another snapshot previously replicated; and

program instructions for pinning in the cache memory the data blocks of the snapshot that have changed with reference to another snapshot previously replicated.

8. The non-transitory computer-readable storage medium as recited in claim 7 , wherein completing the read request includes:

program instructions for sending the data block to a host device when the read request is received from the host device; and

program instructions for sending the data block to the second storage device when the read request is for replicating the data block to the second storage device.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 14, 2017
From: NIMBLE STORAGE, INC.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 042810/0906 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 16, 2016
From: BHAGAT, NIMESH
To: NIMBLE STORAGE, INC.
Reel/Frame 037739/0755 →
Continuity (1)
Related Publication 20170235646A1 · Aug 17, 2017