System and method for proxying data access commands in a storage system cluster
First Claim
1. A method for proxying data access commands from a first storage system over a cluster interconnect to a second storage system in a storage system cluster, comprising:
- receiving, from a client operatively connected to the cluster, a block-level data access command at the first storage system that is directed to a file on the second storage system, wherein the block-level data access command comprises a world wide port name (WWPN) and a logical unit number (lun) identifier;
transforming at the first storage system the received block-level data access command to a file-level data access request by mapping the WWPN and lun identifier to a file handle associated with the file;
forwarding the file-level data access request including the file handle from the first storage system to the second storage system over the cluster interconnect;
processing the file-level data access request for the file at the second storage system;
generating a file-level response at the second storage system in response to processing the file-level data access request; and
returning the file-level response from the second storage system to the first storage system over the cluster interconnect.
3 Assignments
0 Petitions
Accused Products
Abstract
A system and method proxies data access commands acrossed a cluster interconnect between storage appliances and a cluster using a file-level protocol. Each storage appliance activates two ports per data access, a local port for data access requests directed to clients of the storage appliance and a proxy port for data access requests directed to the partner storage appliance. Clients utilizing multi-pathing software may send data access requests to either the local port of the storage appliance or the proxy port of the storage appliance. The system and method improves high availability, especially during a loss of connectivity due to non-storage appliance hardware failure.
-
Citations
42 Claims
-
1. A method for proxying data access commands from a first storage system over a cluster interconnect to a second storage system in a storage system cluster, comprising:
-
receiving, from a client operatively connected to the cluster, a block-level data access command at the first storage system that is directed to a file on the second storage system, wherein the block-level data access command comprises a world wide port name (WWPN) and a logical unit number (lun) identifier; transforming at the first storage system the received block-level data access command to a file-level data access request by mapping the WWPN and lun identifier to a file handle associated with the file; forwarding the file-level data access request including the file handle from the first storage system to the second storage system over the cluster interconnect; processing the file-level data access request for the file at the second storage system; generating a file-level response at the second storage system in response to processing the file-level data access request; and returning the file-level response from the second storage system to the first storage system over the cluster interconnect. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A method for proxying data access commands from a first storage system over a cluster interconnect to a second storage system in a storage system cluster, comprising:
-
analyzing a received block-level data access command at the first storage system that is directed to a data container on the second storage system, the block-level data access command received from a client operatively connected to the storage system cluster; transforming at the first storage system the received block-level data access command to a file-level data access command by mapping the block-level data access command to a file handle associated with the data container; forwarding the file-level data access command including the file handle from the first storage system to the second storage system over the cluster interconnect; and processing the file-level data access command for the data container at the second storage system using the file handle. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A computer readable medium containing executable program instructions executable by a processor, comprising:
-
program instructions that analyze a received block-level data access command at a first storage system that is directed to a data container on a second storage system; program instructions that transform at the first storage system the received block-level data access command to a file-level data access command by mapping the block-level data access command to a file handle associated with the data container; program instructions that forward the file-level data access command including the file handle from the first storage system to the second storage system over a cluster interconnect; and program instructions that process the file-level data access command for the data container at the second storage system.
-
-
26. A system for proxying data access commands from a first storage system to a second storage system connected via a cluster interconnect, comprising:
-
means for analyzing a block-level received data access command at the first storage system that is directed to a data container on the second storage system, the block-level data access command received from a client operatively connected to the storage system cluster; means for transforming at the first storage system the received block-level data access command to a file-level data access command by mapping the block-level data access command to a file handle associated with the data container; means for forwarding the file-level data access command including the file handle from the first storage system to the second storage system over the cluster interconnect; and means for processing the file-level data access command for the data container at the second storage system. - View Dependent Claims (27, 28, 29)
-
-
30. A method for proxying data access commands from a first storage system over a cluster interconnect to a second storage system in a storage system cluster, comprising:
-
configuring a proxy port on the first storage system, wherein the proxy port is an alternative network path to the second storage system; receiving a block-level data access command at the proxy port, wherein the block-level data access command is directed to a data container on the second storage system, and wherein the block-level data access command comprises a world wide port name (WWPN) and a logical unit number (lun) identifier; transforming at the first storage system the received block-level data access command to a file-level data access request by mapping the WWPN and lun identifier to a file handle that identifies the data container embodying the lun to which the received block-level request is directed; forwarding the file-level data access request including the file handle over the cluster interconnect from the first storage system to the second storage system; processing the file-level data access request for the data container at the second storage system using the file handle; generating a file-level response at the second storage system in response to processing the file-level data access request; and returning the file-level response from the second storage system to the first storage system. - View Dependent Claims (31, 32, 33, 34, 35, 36, 37, 38)
-
-
39. A system for proxying data access commands in a storage system cluster, comprising:
-
a first storage system configured to be operatively connected to a second storage system via a cluster interconnect; the first storage system configured to receive, from a client operatively connected to the storage system cluster, a block-level data access command that is directed to a data container on the second storage system; the first storage system further configured to transform the received block-level data access command to a file-level data access request, wherein the first storage system is further configured to map the block-level data access command to a file handle associated with the data container to generate the file-level data access request;
the first storage system further configured to forward the file-level data access request including the file handle from the first storage system to the second storage system over the cluster interconnect; andthe first storage system further configured to receive a file-level response from the second storage system in response to the second storage system processing the file-level data access request, the first storage system further to return a client response to the client in response to receiving the file-level response from the second storage system. - View Dependent Claims (40, 41, 42)
-
Specification