IP Library Granted Patent US 11,029,882
Granted Patent B2
US 11,029,882 · App. 16/370,312 · Granted Jun 8, 2021

Secure multiple server access to a non-volatile storage device

Inventors: David W. Cosby (Raleigh, NC); Theodore B. Vojnovich (Raleigh, NC); Jonathan R. Hinkle (Raleigh, NC); Patrick L. Caporale (Cary, NC)
Assignee: LENOVO Enterprise Solutions (Singapore) PTE. LTD
G06F3/0659G06F3/0613G06F3/0679H04L67/1051
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 11,029,882
App. No.
16/370,312
Granted
Jun 8, 2021
Kind
B2
Abstract

An apparatus for secure multiple server access to a non-volatile storage device is disclosed. A method and storage device product also perform the functions of the apparatus. An apparatus includes a storage device with three or more ports. Each port includes at least one lane and each port is configured to connect to a different server over the at least one lane of the port. The storage device includes a storage controller in the storage device for each port. Each storage controller controls storage to non-volatile storage of the storage device. The storage device includes a logical namespace assigned to each port. Each logical namespace is assigned to a portion of the non-volatile storage of the storage device. The logical namespace of a first port of the three or more ports is inaccessible to a second port of the three or more ports.

Claims (29)

1. An apparatus comprising:

a solid-state storage device with three or more ports, the solid-state storage device comprising solid-state non-volatile memory in a housing and the solid-state storage device uses a Non-Volatile Memory Express (“NVME”) protocol, each port comprising a single lane, each lane communicating using a Peripheral Component Interconnect Express (“PCIe”) protocol, each port configured to connect directly to a different server of a plurality of servers over the lane of the port free of an intervening network communication fabric;

a plurality of storage controllers in the housing of the solid-state storage device, each storage controller of the plurality of storage controllers associated with a different port of the three or more ports, the plurality of storage controllers in a housing of the solid-state storage device, each storage controller controlling storage to non-volatile storage within the housing of the solid-state storage device; and

a logical namespace assigned to each port and associated lane, each logical namespace assigned to a portion of the non-volatile storage of the solid-state storage device in the housing, wherein the logical namespace of a first port of the three or more ports and the associated lane of the first port is inaccessible to a second port of the three or more ports and the associated lane of the second port.

2. The apparatus of claim 1 , wherein a port of the solid-state storage device is configured to communicate with a master controller in a server connected to the port of the solid-state storage device, wherein the master controller controls global commands from servers connected to the solid-state storage device, a global command comprising a command from a server that affects other servers connected to the solid-state storage device.

3. The apparatus of claim 2 , wherein the master controller issues global commands through the server where the master controller is located.

4. The apparatus of claim 2 , wherein the master controller coordinates execution of a global command with each server connected to the solid-state storage device.

5. The apparatus of claim 2 , wherein the master controller is an active master controller and further comprising a backup master controller on a server different than the server where the active master controller resides and wherein the backup master controller becomes active in response to the active master controller being unavailable.

6. The apparatus of claim 2 , wherein the master controller communicates with servers connected to the solid-state storage device via the solid-state storage device.

7. The apparatus of claim 2 , wherein the master controller communicates with servers connected to the solid-state storage device via a computer network different than connections between the servers and the solid-state storage device.

8. The apparatus of claim 1 , wherein physical memory addresses of the non-volatile storage of the solid-state storage device are segregated between the logical namespaces of the three or more ports.

9. A method comprising:

configuring each port of a solid-state storage device with three or more ports, the solid-state storage device comprising solid-state non-volatile memory in a housing and the solid-state storage device uses a Non-Volatile Memory Express (“NVME”) protocol, each port comprising a single lane, wherein each lane communicates using a Peripheral Component Interconnect Express (“PCIe”) protocol, wherein each port configured to connect directly to a different server of a plurality of servers over the lane of the port free of an intervening network communication fabric;

controlling, via a plurality of storage controllers in the housing of the solid-state storage device, that are each associated with a different port of the three or more ports, storage to non-volatile storage of the solid-state storage device, wherein the plurality of storage controllers and the non-volatile storage are disposed within a same housing of the solid-state storage device; and

assigning a logical namespace to each port and associated lane, each logical namespace assigned to a portion of the non-volatile storage of the solid-state storage device, wherein the logical namespace of a first port of the three or more ports and the associated lane of the first port is inaccessible to a second port of the three or more ports and the associated lane of the second port.

10. The method of claim 9 , further comprising communicating over a port of the solid-state storage device with a master controller in a server connected to a port of the solid-state storage device, the master controller controlling global commands from servers connected to the solid-state storage device, a global command comprising a command from a server that affects other servers connected to the solid-state storage device.

11. The method of claim 10 , wherein one or more of:

the master controller issues global commands through the server where the master controller is located; and

the master controller coordinates execution of a global command with each server connected to the solid-state storage device.

12. The method of claim 10 , wherein one of:

wherein the master controller communicates with servers connected to the solid-state storage device via the solid-state storage device; and

wherein the master controller communicates with servers connected to the solid-state storage device via a computer network different than connections between the servers and the solid-state storage device.

13. The method of claim 9 , wherein physical memory addresses of the non-volatile storage of the solid-state storage device are segregated between the logical namespaces of the three or more ports.

14. A solid-state storage device comprising:

solid-state non-volatile storage in a housing of the solid-state storage device;

three or more ports at an interface to the housing, each port comprising a single lane, each lane communicating using a Peripheral Component Interconnect Express (“PCIe”) protocol, each port configured to connect directly to a different server of a plurality of servers over the lane of the port free of an intervening network communication fabric;

a plurality of storage controllers in the housing of the solid-state storage device, each storage controller of the plurality of storage controllers associated with a different port of the three or more ports, the plurality of storage controllers in a housing of the solid-state storage device, each storage controller controlling storage to non-volatile storage within the housing of the solid-state storage device; and

a logical namespace assigned to each port and associated lane, each logical namespace assigned to a portion of the non-volatile storage of the solid-state storage device in the housing, wherein the logical namespace of a first port of the three or more ports and the associated lane of the first port is inaccessible to a second port of the three or more ports and the associated lane of the second port, and

wherein the solid-state storage device uses a Non-Volatile Memory Express (“NVMe”) protocol.

Assignments (3)
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 Jul 13, 2022
From: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE LTD
To: LENOVO GLOBAL TECHNOLOGIES INTERNATIONAL LTD
Reel/Frame 060490/0768 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 24, 2019
From: COSBY, DAVID W; VOJNOVICH, THEODORE B; HINKLE, JONATHAN R; CAPORALE, PATRICK L
To: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD.
Reel/Frame 049276/0519 →