System and method for proxying data access commands in a storage system cluster
First Claim
1. A system configured to proxy a data access command from a first storage system to a second storage system via a cluster interconnect, comprising:
- a processor configured to execute a storage operating system of the first storage system, the storage operating system configured to receive a block-level protocol data access command associated with a data container stored on the second storage system, the block-level protocol data access command comprising a block-based identification of the data container,the storage operating system further configured to determine whether to service the block-level protocol data access command based on the block-based identification,the storage operating system further configured to map the block-based identification of the block-level protocol data access command to a file handle associated with the data container,the storage operating system further configured to generate a file-level protocol data access command comprising the file handle, andthe storage operating system further configured to transmit the file-level protocol data access command over the cluster interconnect to the second storage system, the second storage system configured as a multi-protocol storage system for servicing, via a local port, both a file-level protocol and a block-level protocol for accessing the data container, and wherein the data container is accessed via the cluster interconnect in response to a failure of the local port.
0 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.
101 Citations
25 Claims
-
1. A system configured to proxy a data access command from a first storage system to a second storage system via a cluster interconnect, comprising:
-
a processor configured to execute a storage operating system of the first storage system, the storage operating system configured to receive a block-level protocol data access command associated with a data container stored on the second storage system, the block-level protocol data access command comprising a block-based identification of the data container, the storage operating system further configured to determine whether to service the block-level protocol data access command based on the block-based identification, the storage operating system further configured to map the block-based identification of the block-level protocol data access command to a file handle associated with the data container, the storage operating system further configured to generate a file-level protocol data access command comprising the file handle, and the storage operating system further configured to transmit the file-level protocol data access command over the cluster interconnect to the second storage system, the second storage system configured as a multi-protocol storage system for servicing, via a local port, both a file-level protocol and a block-level protocol for accessing the data container, and wherein the data container is accessed via the cluster interconnect in response to a failure of the local port. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A storage appliance for use in a storage appliance cluster for proxying a data access command received via a cluster interconnect at the storage appliance to a partner storage appliance in the storage appliance cluster, comprising:
-
a processor operatively connected to the storage appliance and configured to execute a storage operating system, the storage operating system configured to receive a first block-level protocol data access command associated with a data container served by the partner storage appliance, the first block-level protocol data access command comprising a block-based identification of the data container, wherein the first block-level protocol data access command is received at a proxy port associated with the storage appliance, the storage operating system further configured to receive a mapping operation from the partner storage appliance, wherein the mapping operation includes an instruction to associate the proxy port with a world wide name (WNN), the storage operating system further configured to map the block-based identification to a file handle associated with the data container, the storage operating system further configured to transmit the file handle to the partner storage appliance, the partner storage appliance configured to receive the file handle, and the partner storage appliance configured to receive a second block-level protocol data access command, wherein the second block-level protocol data access command is associated with the data container, wherein the second block-level protocol data access command is received at a local port associated with the partner storage appliance, and wherein the data container is accessed via the cluster interconnect in response to a failure of the local port. - View Dependent Claims (14, 15, 16)
-
-
17. A method for proxying data access commands from a first storage system to a second storage system connected via a cluster interconnect, comprising:
-
receiving at the first storage system a first block-level protocol data access command associated with a data container served by the second storage system, the first block-level protocol data access command comprising a block-based identification of the data container; receiving at the first storage system a first mapping operation from the second storage system, wherein the first mapping operation comprises a first instruction to associate the data container to a file handle; mapping at the first storage system the block-based identification to the file handle associated with the data container; transmitting from the first storage system the file handle and a file-level protocol data access command to the second storage system over the cluster interconnect; processing at the second storage system the file-level protocol data access command using the file handle; receiving at the second storage system, via a local port, a second block-level protocol data access command for the data container; and processing at the second storage system the second block-level protocol data access command, and wherein the data container is accessed via the cluster interconnect in response to a failure of the local port. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
-
-
25. A computer-readable storage medium containing executable program instructions for execution by a processor, the computer-readable storage medium comprising:
-
program instructions that receive at a proxy port associated with a first storage system a block-level protocol data access command associated with a data container served by a second storage system, the block-level protocol data access command comprising a block-based identification of the data container, program instructions that export the data container to an initiator associated with a world wide name (WWN), program instructions that map the block-based identification to a file handle associated with the data container; and program instructions that transmit the file handle and a file-level protocol data access command to the second storage system over a cluster interconnect, program instructions that service, via a local port, at the second storage system both a file-level protocol and a block-level protocol for accessing the data container, and wherein the data container is accessed via the cluster interconnect in response to a failure of the local port.
-
Specification