IP Library Granted Patent US 9,936,021
Granted Patent B1
US 9,936,021 · App. 14/530,388 · Granted Apr 3, 2018

Methods and systems for a multi-function adapter

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,936,021
App. No.
14/530,388
Granted
Apr 3, 2018
Kind
B1
Abstract

Systems and methods for storage operations are provided. As an example, a method includes configuring a non-volatile memory of a network device to be used as a storage device for storing data for an application; generating a logical storage object for the application for using storage space at the non-volatile memory of the network device to store data for the application, where the network device creates a unique identifier for the logical storage object; identifying the logical storage object as a mirror logical storage object such that data written at the non-volatile memory device is mirrored by another network device operating as a peer to the network device; providing the unique identifier to the other network device for generating a mirror logical storage object for mirroring data that is stored at the non-volatile memory; receiving a request at the network device for writing data to the non-volatile storage object; writing data at the non-volatile memory of the network device when the request identifies the network device; and mirroring the data at the other network device, when the request indicates that the data needs to be mirrored.

Claims (58)

1. A machine-implemented method, comprising:

configuring a non-volatile memory of a first adapter to be used as a storage device for storing data for an application executed by a computing device coupled to the first adapter using a first peripheral link;

generating by the first adapter, a logical storage object for the application for using storage space at the non-volatile memory of the first adapter to store data for the application;

creating a unique identifier for the logical storage object by the first adapter;

identifying the logical storage object as a mirrored logical storage object such that data written at the non-volatile memory device by the first adapter is mirrored by a second adapter coupled to another computing device by a second peripheral link, the second adapter communicating with the first adapter using a network connection via a network link and operating as a peer of the first adapter;

providing by the first adapter, the unique identifier to the second adapter for generating a mirror logical storage object by the second adapter for mirroring data that is stored at the non-volatile memory of the first adapter using the logical storage object;

receiving a write request at the first adapter for writing data to the non-volatile storage object;

writing data at the non-volatile memory of the first adapter when the request identifies the first adapter;

mirroring the data at the second adapter using the mirror logical storage object at the second adapter, based on a write command data block generated by the first adapter and transmitted to the second adapter, when the request indicates that the data be mirrored;

receiving a read request at the first adapter to read stored data;

determining by the first adapter from the read request that the read request identifies the second adapter;

generating a read command data block by the first adapter for the second adapter to retrieve the stored data from the second adapter; and

providing the stored data to the computing device by the first adapter after receiving the stored data from the second adapter.

2. The method of claim 1 , wherein, the write request includes a flag indicating that the data be mirrored at the second adapter.

3. The method of claim 1 , wherein, when the non-volatile memory is configured as a flat address space, then an offset value in the write request is translated to a logical block address for the first adapter identified by the write request.

4. The method of claim 1 , wherein the non-volatile memory is configured as a block storage device.

5. The method of claim 1 , wherein the non-volatile memory is configured as a flat address space.

6. The method of claim 1 , wherein the logical storage object is a logical unit number (LUN) that is presented to the application.

7. The method of claim 1 , wherein the first adapter is configured to handle both network and storage traffic.

8. A non-transitory, machine readable storage medium storing executable instructions, which when executed by a machine, causes the machine to perform a method, the method comprising:

configuring a non-volatile memory of a first adapter to be used as a storage device for storing data for an application executed by a computing device coupled to the first adapter using a first peripheral link; wherein the first adapter detects the non-volatile memory during a configuration;

generating by the first adapter, a logical storage object for the application for using storage space at the non-volatile memory of the first adapter to store data for the application;

creating a unique identifier for the logical storage object by the first adapter;

identifying the logical storage object as a mirrored logical storage object such that data written at the non-volatile memory device by the first adapter is mirrored by a second adapter coupled to another computing device by a second peripheral link, the second adapter communicating with the first adapter using a network connection via a network link and operating as a peer of the first adapter;

providing by the first adapter, the unique identifier to the second adapter for generating a mirror logical storage object by the second adapter for mirroring data that is stored at the non-volatile memory of the first adapter using the logical storage object;

receiving a write request at the first adapter for writing data to the non-volatile storage object;

writing data at the non-volatile memory of the first adapter when the request identifies the first adapter;

mirroring the data at the second adapter using the mirror logical storage object at the second adapter at the second adapter, based on a write command data block generated by the first adapter and transmitted to the second adapter, when the request indicates that the data be mirrored;

receiving a read request at the first adapter to read stored data;

determining by the first adapter from the read request that the read request identifies the second adapter;

generating a read command data block by the first adapter for the second adapter to retrieve the stored data from the second adapter; and

providing the stored data to the computing device by the first adapter after receiving the stored data from the second adapter.

9. The machine readable storage medium of claim 8 , wherein, the write request includes a flag indicating that the data be mirrored at the second adapter.

10. The machine readable storage medium of claim 8 , wherein, when the non-volatile memory is configured as a flat address space, then an offset value in the write request is translated to a logical block address for the first adapter identified by the write request.

11. The machine readable storage medium of claim 8 , wherein the non-volatile memory is configured as a block storage device.

12. The machine readable storage medium of claim 8 , wherein the non-volatile memory is configured as a flat address space.

13. The machine readable storage medium of claim 8 , wherein the logical storage object is a logical unit number (LUN) that is presented to the application.

14. The machine readable storage medium of claim 8 , wherein the first adapter is configured to handle both network and storage traffic.

15. A system comprising:

a memory containing machine readable medium comprising machine executable code having stored thereon instructions; and a processor module coupled to the memory, the processor module configured to execute the machine executable code to:

configure a non-volatile memory of a first adapter to be used as a storage device for storing data for an application executed by a computing device coupled to the first adapter using a first peripheral link;

generate by the first adapter, a logical storage object for the application for using storage space at the non-volatile memory of the first adapter to store data for the application;

create a unique identifier for the logical storage object by the first adapter;

identify the logical storage object as a mirrored logical storage object such that data written at the non-volatile memory device by the first adapter is mirrored by a second adapter coupled to another computing device by a second peripheral link, the second adapter communicating with the first adapter using a network connection via a network link and operating as a peer of the first adapter;

provide by the first adapter, the unique identifier to the second adapter for generating a mirror logical storage object by the second adapter for mirroring data that is stored at the non-volatile memory of the first adapter using the logical storage object;

receive a write request at the first adapter for writing data to the non-volatile storage object;

write data at the non-volatile memory of the first adapter when the request identifies the first adapter;

mirror the data at the second adapter using the mirror logical storage object at the second adapter at the second adapter, based on a write command data block generated by the first adapter and transmitted to the second adapter, when the request indicates that the data be mirrored;

receive a read request at the first adapter to read stored data;

determine by the first adapter from the read request that the read request identifies the second adapter;

generate a read command data block by the first adapter for the second adapter to retrieve the stored data from the second adapter; and

provide the stored data to the computing device by the first adapter after receiving the stored data from the second adapter.

16. The system of claim 15 , wherein, the write request includes a flag indicating that the data be mirrored at the second adapter.

17. The system of claim 5 , wherein, when the non-volatile memory is configured as a flat address space, an offset value in the write request is translated to a logical block address for the first adapter identified by the write request.

18. The system of claim 15 , wherein the non-volatile memory is configured as a block storage device.

19. The system of claim 15 , wherein the non-volatile memory is configured as a flat address space.

20. The system of claim 15 , wherein the logical storage object is a logical unit number (LUN) that is presented to the application.

21. The system of claim 15 , wherein the first adapter is configured to handle both network and storage traffic.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053179/0320 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2020
From: CAVIUM, LLC
To: CAVIUM INTERNATIONAL
Reel/Frame 051948/0807 →
CHANGE OF NAME Recorded Oct 8, 2018
From: CAVIUM, INC.
To: CAVIUM, LLC
Reel/Frame 047205/0953 →
RELEASE OF SECURITY INTEREST Recorded Jul 6, 2018
From: JP MORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: CAVIUM, INC; CAVIUM NETWORKS LLC; QLOGIC CORPORATION
Reel/Frame 046496/0001 →
MERGER Recorded Oct 18, 2017
From: QLOGIC CORPORATION
To: CAVIUM, INC.
Reel/Frame 044812/0504 →
SECURITY AGREEMENT Recorded Mar 1, 2017
From: QLOGIC CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 041854/0119 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 31, 2014
From: PONNACHANA, SUDHIR; SINGH, AJMER; GREGORY, RONALD B.
To: QLOGIC, CORPORATION
Reel/Frame 034115/0688 →