Network block services for client access of network-attached data storage in an IP network
First Claim
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.
9 Assignments
0 Petitions
Accused Products
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.
165 Citations
37 Claims
- 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.
- 14. 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, wherein the client is programmed for 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 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.
- 22. A storage server comprising storage for use in an Internet Protocol (IP) network linking clients to the storage server for client access to the storage, the storage including a respective group of storage units allocated to each client, the storage containing identification of the storage units allocated to said each client, the storage server being programmed to encode and decode IP packets transmitted over the IP network between said each client and the server in accordance with a network block services protocol, the IP packets transmitted over the IP network between said each client and the server in accordance with the network block services protocol including IP packets for requesting identification of the storage units allocated to said each client, IP packets for reading data from the storage units allocated to said each client, and IP packets for writing data to the storage units allocated to said each client.
-
30. A client driver for use in 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 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 to 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, 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. - View Dependent Claims (31)
-
- 32. A method of operating a client to access 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 method including the client 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 include 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, and the client obtains from the storage server the identification of the storage units allocated to the client and configures the identified storage units allocated to the client into local pseudo-disk instances, and maintains a respective list of server IP addresses for each of the local pseudo-disk instances, and the client operates a device driver that accesses each local pseudo-disk instance by establishing and maintaining a Transmission Control Protocol (TCP) connection to at least one server IP address in the list of server IP addresses for said each local pseudo-disk instance.
Specification