IP Library Granted Patent US 7,475,124
Granted Patent B2
US 7,475,124 · App. 10/255,148 · Granted Jan 6, 2009

Network block services for client access of network-attached data storage in an IP network

Assignee: EMC Corporation
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 7,475,124
App. No.
10/255,148
Filed
Sep 25, 2002
Granted
Jan 6, 2009
Kind
B2
Art Unit
2151
USPC
709/230
Abstract

The SCSI and iSCSI layers over the TCP/IP layers of the protocol stack in an IP network client and in an IP network-attached storage server are replaced with a thin network block services layer. The network block services layer 71 implements a network block services protocol having a very reduced set of commands transmitted between the client and the storage server. The network block services protocol is used in a configuration process in which logical volumes of the network-attached storage are exported to the client and become local pseudo-disk instances. The client's operating system and application programs access the local pseudo-disk instances with what appears to be a standard device driver for a local disk device. The device driver maintains a TCP connection to each open device, and responds to connection failure by re-connecting with an alternative server IP port.

Claims (16)

1. A data processing system comprising:

a client, a storage server, and an Internet Protocol (IP) network linking the client to the storage server for client access to storage in the storage server, the storage including storage units allocated to the client, the storage server containing an identification of the storage units allocated to the client, the client and the storage server each being programmed with a protocol stack, each protocol stack including a network block services layer over an IP layer, the network block services layer encoding and decoding IP packets transmitted over the IP network between the client and the server in accordance with a network block services protocol, the IP packets transmitted over the IP network between the client and the server in accordance with the network block services protocol including IP packets for requesting the identification of the storage units allocated to the client, IP packets for reading data from the storage units allocated to the client, and IP packets for writing data to the storage units allocated to the client, the client being programmed for configuring the identified storage units allocated to the client into pseudo-disk instances after obtaining from the storage server the identification of the storage units allocated to the client by invoking the network block services layer to request from the storage server the identification of the storage units allocated to the client, and the client being further programmed with a block interface for enabling an operating system or application program of the client to access the pseudo-disk instances by invoking the network block services layer to read data from the storage units allocated to the client and for writing data to the storage units allocated to the client,

wherein the client is programmed with a list of storage server IP addresses, and wherein the protocol stack of the client includes a configuration and fail-over layer between the network block services layer and the IP layer, the configuration and fail-over layer responding to a failure to communicate with a storage server IP address in the list of storage server IP addresses by re-establishing communication with an alternative storage server IP address in the list of storage server IP addresses.

2. The data processing system as claimed in claim 1 , wherein the configuration and fail-over layer maintains a respective Transmission Control Protocol (TCP) connection between the client and the storage server for each of the pseudo-disk instances.

3. The data processing system as claimed in claim 1 , wherein the data processing system includes a plurality of storage servers including a first storage server and a second storage server linked to the first storage server by a remote data facility for maintaining a duplicate copy of a storage unit in storage of the first storage server and in storage of the second storage server, and wherein the client is programmed with a respective list of storage server IP addresses for each pseudo-disk instance, and wherein the respective list of storage server IP addresses for at least one of the pseudo-disk instances includes an IP address for the first storage server and an IP address for the second storage server.

4. The data processing system as claimed in claim 1

wherein the storage server contains lists of storage unit identifiers and a respective key protecting each list, and wherein each list is accessible over the IP network only when said respective key protecting said each list is included in a request for identification of storage units in the storage server.

5. A client for accessing a storage server in an Internet Protocol (IP) network, the storage server containing storage units allocated to the client, the storage server also containing an identification of the storage units allocated to the client, said client comprising:

at least one IP port for transmitting and receiving IP packets over the IP network between the client and the server, wherein the client is programmed for encoding and decoding the IP packets transmitted over the IP network between the client and the server in accordance with a network block services protocol, the IP packets transmitted over the IP network between the client and the server in accordance with the network block services protocol including IP packets for requesting identification of the storage units allocated to the client, IP packets for reading data from the storage units allocated to the client, and IP packets for writing data to the storage units allocated to the client, the client being programmed for using the network block services protocol for obtaining the identification of the storage units allocated to the client, the client being programmed for configuring the storage units allocated to the client into local pseudo-disk instances, the client maintaining a list of storage server IP addresses for each of the local pseudo-disk instances, and the client being further programmed with a device driver for accessing each local pseudo-disk instances by establishing and maintaining a Transmission Control Protocol (TCP) connection to at least one storage server IP address in the list of storage server IP addresses for said each local pseudo-disk instance,

wherein the client is programmed with a protocol stack including a block interface layer of the device driver for interfacing with an operating system or application program of the client, a network block services layer of the device driver for managing the network block services protocol, a configuration and fail-over layer of the device driver for establishing and maintaining a TCP connection to at least one server IP address in each list, a TCP layer for managing the Transmission Control Protocol, and an IP layer for managing the Internet Protocol over the IP network, the configuration and fail-over layer being between the network block services layer and the IP layer and programmed for responding to a failure to communicate with a storage server IP address in said each list by re-establishing communication with an alternative storage server IP address in said each list.

6. A client having at least one IP port for accessing network-attached storage allocated to the client in an Internet Protocol (IP) network, the client comprising a client driver, the client driver including:

configuration file means for storing, in local storage of the client, configuration information defining pseudo-disk instances configured from the network-attached storage allocated to the client and identifying server IP addresses at which the network-attached storage of the pseudo-disk instances may be accessed;

network block services means for encoding and decoding IP packets transmitted over the IP network between the client and the network-attached storage in accordance with a network block services protocol, the IP packets transmitted over the IP network between the client and the network-attached storage in accordance with the network block services protocol including IP packets for requesting identification of the network-attached storage allocated to the client, IP packets for reading data from the network-attached storage allocated to the client, and IP packets for writing data to the network-attached storage allocated to the client;

configuration and fail-over means coupled between the network block services means and the IP port and accessing the configuration file for using the network block services means for discovering the network-attached storage allocated to the client and configuring the pseudo disk instances from the network-attached storage allocated to the client, for responding to a failure to communicate with a storage server IP address in said configuration information in said local storage of said client by re-establishing communication with an alternative storage server IP address in said configuration information in said local storage of said client, and for establishing and maintaining a Transmission Control Protocol (TCP) connection for an open pseudo-disk instance to at least one storage server IP address at which network-attached storage of the open pseudo-disk instance may be accessed; and

block device driver means coupled to the network block services means and the configuration and fail-over means for presenting a disk driver interface to client programs for access to the pseudo-disk instances.

7. The client as claimed in claim 6 , wherein each IP packet transmitted over the IP network between the client and the network-attached storage in accordance with the network block services protocol includes a packet header having an opcode field, a packet data unit length field, a packet identifier field, a status field, a storage unit identifier field, an offset field, and a data length field.

Assignments (10)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040203/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 25, 2002
From: JIANG, XIAOYE; VENKATESH, DINESH; KU, MARK; CHEN, XIANGPING
To: EMC CORPORATION
Reel/Frame 013341/0233 →
Continuity (1)
Related Publication 20040059822A1 · Mar 25, 2004