A storage system is a computer that provides storage service relating to the organization of information on writeable persistent storage devices, such as memories, tapes or disks. The storage system is commonly deployed within a storage area network (SAN) or a network attached storage (NAS) environment. When used within a NAS environment, the storage system may be embodied as a file server including an operating system that implements a file system to logically organize the information as a hierarchical structure of directories and files on, e.g. the disks. Each “on-disk” file may be implemented as a set of data structures, e.g., disk blocks, configured to store information, such as the actual data for the file. A directory, on the other hand, may be implemented as a specially formatted file in which information about other files and directories are stored.
The file server, or filer, may be further configured to operate according to a client/server model of information delivery to thereby allow many client systems (clients) to access shared resources, such as files, stored on the filer. Sharing of files is a hallmark of a NAS system, which is enabled because of semantic level of access to files and file systems. Storage of information on a NAS system is typically deployed over a computer network comprising a geographically distributed collection of interconnected communication links, such as Ethernet, that allow clients to remotely access the information (files) on the file server. The clients typically communicate with the filer by exchanging discrete frames or packets of data according to pre-defined protocols, such as the Transmission Control Protocol/Internet Protocol (TCP/IP).
In the client/server model, the client may comprise an application executing on a computer that “connects” to the filer over a computer network, such as a point-to-point link, shared local area network, wide area network or virtual private network implemented over a public network, such as the Internet. NAS systems generally utilize file-based access protocols; therefore, each client may request the services of the filer by issuing file system protocol messages (in the form of packets) to the file system over the network. By supporting a plurality of file system protocols, such as the conventional Common Internet File System (CIFS), the Network File System (NFS) and the Direct Access File System (DAFS) protocols, the utility of the filer may be enhanced for networking clients.
A SAN is a high-speed network that enables establishment of direct connections between a storage system and its storage devices. The SAN may thus be viewed as an extension to a storage bus and, as such, an operating system of the storage system enables access to stored information using block-based access protocols over the “extended bus”. In this context, the extended bus is typically embodied as Fibre Channel (FC) or Ethernet media adapted to operate with block access protocols, such as Small Computer Systems Interface (SCSI) protocol encapsulation over FC (FCP) or TCP/IP/Ethernet (iSCSI). A SAN arrangement or deployment allows decoupling of storage from the storage system, such as an application server, and some level of storage sharing at the application server level. There are, however, environments wherein a SAN is dedicated to a single server.
It is advantageous for the services and data provided by storage system, such as a filer to be available for access to the greatest degree possible. Accordingly, some computer storage systems provide a plurality of file servers (or filers) in a cluster, with a property that when a first filer fails, the second filer is available to take over and provide the services and the data otherwise provided by the first filer. When a first filer fails, the second filer in a cluster should assume the task of processing and handling any data access requests normally processed by the first filer. One such example of a cluster configuration is described in U.S. patent application Ser. No. 09/625,234 entitled NEGOTIATING TAKEOVER IN HIGH AVAILABILITY CLUSTER by Samuel M. Cramer, et al., the contents of which are hereby incorporated by reference. Additionally, an administrator may desire to take a filer offline for a variety of reasons, for example, to upgrade hardware, etc. In such situations, it may be advantageous to perform a user-initiated takeover operation, as opposed to a failover operation. After the takeover operation is complete, the filer's data will be serviced by its partner until a giveback operation is performed.
In certain known filer server cluster implementations, the transport medium is Ethernet cabling utilizing the TCP/IP protocol for transport of data. Various file service protocols can execute on top of the TCP/IP protocol. In known failover techniques involving clusters of file server, Network Interface Controllers (NIC) contain the capabilities to support multiple Media Address Control (MAC) addresses. When one of filer servers in a cluster detects a failure of its partner filer server, for example, by sensing the partner file server is no longer emitting a heart beat signal, the surviving file server proceeds to take over the partner's disks. The surviving file server then executes a failover script, which involves obtaining the IP address of the failed file server and determining each MAC address associated with the failed file server. Each NIC of the surviving filer is then assigned a MAC address that is normally associated with a NIC of the failed file server. Thus, transfers with IP addresses, which are mapped to search a MAC address of the failed filer, are no longer routed to the failed filer, but instead are directed to the surviving partner file server.
However, because certain block access protocols, such as FCP do not utilize TCP/IP addresses, known failover techniques will not function in a cluster using FCP. It is thus an object of the present invention to provide a system and method for transport-level failover of FCP devices.