IP Library Granted Patent US 10,691,560
Granted Patent B2
US 10,691,560 · App. 15/857,067 · Granted Jun 23, 2020

Replacement of storage device within IOV replication cluster connected to PCI-e switch

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,691,560
App. No.
15/857,067
Granted
Jun 23, 2020
Kind
B2
Abstract

Storage devices are connected to a Peripheral Component Interconnect Express (PCIe) switch and form an input/output virtualization (IOV) replication cluster that can be exposed to a host processor via hardware root complex interconnecting the PCIe switch to the host processor. When a failed storage device is replaced with a new storage device, the new storage device can initiate a virtual root complex that connects to those storage devices containing data that was replicated on the failed storage device, to receive and copy the data on the new storage device. This replication process does not have to involve the hardware root complex or the host processor.

Claims (64)

1. A non-transitory computer-readable data storage medium storing program code executable by a storage device to:

determine that the storage device, connected to a Peripheral Component Interconnect Express (PCIe) switch, is part of an input/output virtualization (IOV) replication cluster, wherein storage device is replacing another storage device in the IOV replication cluster connected to the PCIe switch and wherein the IOV replication cluster comprises a plurality of storage devices connected to the PCIe switch;

in response to determining that the storage device was part of the IOV replication cluster, initiate a virtual root complex on the storage device;

initiate, by the virtual root complex, a connection through the PCIe switch with each other storage device connected to the PCIe switch and containing data to be replicated on the storage device, wherein each other storage device is an endpoint to the virtual root complex;

receive and store, by the virtual root complex, the data to be replicated on the storage device from each other storage device containing the data, over the connection;

terminate, by the virtual root complex, the connection with each other storage device containing the data; and

in response to terminating the connection with each other storage device containing the data, disable the virtual root complex on the storage device and enabling the storage device as another endpoint.

2. The non-transitory computer-readable data storage medium of claim 1 , wherein the data is replicated to the storage device without involving a hardware root complex connected to the PCIe switch, and without involving a host processor connected to the hardware root complex.

3. The non-transitory computer-readable data storage medium of claim 1 , wherein the executable is code is executable by the storage device to determine that the storage device is part of the IOV replication cluster by querying the PCIe switch to determine that the storage device is part of the IOV replication cluster.

4. The non-transitory computer-readable data storage medium of claim 1 , wherein the executable is code is executable by the storage device to initiate the connection with each other storage device containing the data to be replicated by:

querying, by the virtual root complex, the PCIe switch to determine an IOV function of every other storage device connected to the PCIe switch;

initiating, by the virtual root complex, a connection with every other storage device connected to the PCIe switch via the IOV function thereof; and

for each other storage device connected to the PCIe switch:

determining, by the virtual root complex, whether the other storage device contains any data to be replicated on the storage device; and

in response to determining that the other storage devices does not contain any data to be replicated on the storage device, terminating, by the virtual root complex, the connection with the other storage device.

5. The non-transitory computer-readable data storage medium of claim 1 , wherein the executable is code is executable by the storage device to initiate the connection with each other storage device containing the data to be replicated by:

querying, by the virtual root complex, the PCIe switch to determine an IOV function of every other storage device connected to the PCIe switch; and

for each other storage device connected to the PCIe switch:

determining, by the virtual root complex, whether the other storage device contains any data to be replicated on the storage device;

in response to determining that the other storage device contains contain any data to be replicated on the storage device:

querying, by the virtual root complex, the PCIe switch to determine an IOV function of the other storage device; and

initiating, by the virtual root complex, a connection with the other storage device via the IOV function thereof.

6. The non-transitory computer-readable data storage medium of claim 1 , wherein the executable is code is executable by the storage device to terminate the connection with each other storage device containing the data by querying, by the virtual root complex, the PCIe switch to terminate the connection with each other storage device containing the data.

7. The non-transitory computer-readable data storage medium of claim 1 , wherein the IOV replication cluster is a multiple root (MR) IOV replication cluster, the virtual root complex on the storage device concurrently existing with a hardware root complex connected to the PCIe switch and to a host processor and memory.

8. The non-transitory computer-readable data storage medium of claim 1 , wherein the IOV replication cluster is a single root (SR) IOV replication cluster, the virtual root complex on the storage device temporarily replacing a hardware root complex connected to the PCIe switch and to a host processor and memory.

9. A system comprising:

a Peripheral Component Interconnect Express (PCIe) switch connectable to a hardware root complex that is connected to a host processor; and

a plurality of storage devices connected to the PCIe switch and forming an input/output virtualization (IOV) replication cluster as exposed to the host processor via the hardware root complex, each storage device being an endpoint to the hardware root complex,

wherein upon replacement of a failed storage device of the storage device connected to the PCIe switch with a new storage device connected to the PCIe switch, the new storage device is configured to initiate connections with other storage devices of the IOV replication cluster that contain data that was replicated on the failed storage device, and receive and store the data on the new storage device.

10. The system of claim 9 , wherein the new storage device is configured to initiate the connections with the other storage devices, receive the data from the other storage devices, and store the data, without involving the hardware root complex and without involving the host processor.

11. The system of claim 9 , wherein the PCIe switch is configured to temporarily disconnect the hardware root complex to the other storage devices, and the new storage device is configured to initiate a virtual root complex by which the connections with the other storage devices are initiated as endpoints to the virtual root complex,

wherein after the data is received and stored, the new storage device is configured to disable the virtual root complex and enable the new storage device as an endpoint to the hardware root complex, and the PCIe is configured to reconnect the hardware root complex to the other storage devices,

wherein the IOV is single root (SR) IOV, the virtual root complex temporarily replacing the hardware root complex.

12. The system of claim 9 , wherein while the hardware root complex is connected to the other storage devices, the new storage device is configured to initiate the virtual root complex by which the connections with the other storage devices are initiated as endpoints to the virtual root complex,

wherein after the data is received and stored, the new storage device is configured to disable the virtual root complex and enable the new storage device as an endpoint to the hardware root complex,

wherein the IOV is multiple root (MR) IOV, the virtual root complex temporarily supplementing the hardware root complex.

13. The system of claim 9 , wherein the new storage device is configured to initiate a virtual root complex by which the connections with the other storage devices are initiated,

and wherein the virtual root complex is configured to initiate the connections by:

querying the PCIe switch to determine an IOV function of every other storage device connected to the PCIe switch;

initiate a connection with every other storage device connected to the PCIe switch via the IOV function thereof;

for each other storage device connected to the PCIe switch:

determining, by the virtual root complex, whether the other storage device contains any data to be replicated on the new storage device; and

in response to determining that the other storage devices does not contain any data to be replicated on the new storage device, terminating the connection with the other storage device.

14. The system of claim 9 , wherein the new storage device is configured to initiate a virtual root complex by which the connections with the other storage devices are initiated,

and wherein the virtual root complex is configured to initiate the connections by:

querying the PCIe switch to determine an IOV function of every other storage device connected to the PCIe switch;

for each other storage device connected to the PCIe switch:

determining whether the other storage device contains any data to be replicated on the new storage device;

in response to determining that the other storage device contains contain any data to be replicated on the new storage device:

querying the PCIe switch to determine an IOV function of the other storage device; and

initiating a connection with the other storage device via the IOV function thereof.

15. The system of claim 9 , wherein upon the replacement of the failed storage device with the new storage device, the new storage device is configured to determine that the failed storage device that the new storage device is replacing was a part of the IOV replication cluster, before initiating the connections with the other storage device.

16. The system of claim 9 , wherein after the new storage device has received and stored the data from the other storage devices, the new storage device is configured to terminate the connections with the other storage devices.

17. The system of claim 9 , further comprising the hardware root complex and the host processor.

18. A storage device comprising:

a port to connect to a Peripheral Component Interconnect Express (PCIe) switch to which a plurality of other storage devices are connected;

one or more physical storage media on which the storage device is configured to store data; and

hardware logic configured to, upon connection of storage device to the PCIe switch to replace a failed storage device connected to the PCIe switch:

determine that the storage device is to become part of an IOV replication cluster with the other storage devices;

responsively initiate connections with the other storage devices that contain the data to be replicated on the storage device;

after initiating the connections, receive and store the data from the other storage devices that contain the data; and

after receiving and storing the data, terminate the connections with the other storage devices that contain the data.

19. The storage device of claim 18 , wherein the data is replicated onto the storage device without involving a hardware root complex connected to the PCIe switch, and without involving a host processor connected to the hardware root complex.

20. The storage device of claim 18 , wherein after determining that the storage device is configured to become part of the IOV replication cluster, the hardware logic is configured to initiate a virtual root complex to which the other storage devices that contain the data are initiated are connected as endpoints.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 10, 2025
From: LENOVO GLOBAL TECHNOLOGIES INTERNATIONAL LIMITED
To: LENOVO GLOBAL TECHNOLOGIES SWITZERLAND INTERNATIONAL GMBH
Reel/Frame 069869/0614 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 26, 2021
From: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE LTD
To: LENOVO GLOBAL TECHNOLOGIES INTERNATIONAL LTD
Reel/Frame 055029/0215 →
CORRECTIVE ASSIGNMENT TO CORRECT THE INADVERTENT OMISSION OF ASSIGNOR PRAVIN PATEL PREVIOUSLY RECORDED ON REEL 044501 FRAME 0658. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 8, 2018
From: HAMILTON, JEFFREY ROSS; PARSONESE, JAMES JOSEPH; PATEL, PRAVIN
To: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD.
Reel/Frame 045022/0405 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 28, 2017
From: HAMILTON, JEFFREY ROSS; PARSONESE, JAMES JOSEPH
To: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD.
Reel/Frame 044501/0658 →