摘要:
A file server includes a plurality of stream server computers linking data storage to a data network, and at least two controller servers for controlling the stream server computers. The controller servers are programmed so that at a given time one of the controller servers is active in controlling the stream server computers, and another of the controller servers is inactive. The inactive controller server is programmed to respond automatically to a failure of the active controller server by becoming active. For example, each of the controller servers has a respective flag for indicating whether or not the controller server is active. Each controller server is programmed so that, upon booting, it will read the flag of the other stream server, and if the flag of the other controller server indicates that the other controller server is active, then the controller server becomes inactive. Otherwise, the stream server assumes an active or inactive state based on a predetermined arbitration method. The active controller server also reports failure conditions to a customer service center, monitors the inactive controller server to ensure that the inactive controller server is in a state of readiness, and monitors itself to determine whether it should become inactive.
摘要:
A file server includes stream server computers linking a cached disk array storage subsystem to a data network, and at least two controller servers for receiving requests for file access from network clients. At any given time one of the controller servers is active and another is inactive in servicing client requests. The active controller server selects one of the stream servers to service each request. A controller server failover mechanism is provided for recovering from a failure of the active controller server, and a stream server failover mechanism is provided for recovering from a failure of a stream server. The inactive controller server becomes active when it fails to receive a signal periodically transmitted by the active controller server. The active controller server begins stream server failover when it fails to receive a signal periodically transmitted by each stream server. To resume automatically an interrupted task, the tasks are organized as a series of transactions, and each transaction includes operations which can be duplicated without substantial disruption. The active controller server commits results of each transaction to memory of the cached disk array. Before becoming active, the inactive controller recovers the committed state of the interrupted tasks from the cached disk array.
摘要:
A file system that utilizes Virtual Local Area Network (VLAN) addressing and routing schemes to permit implementing multiple networked file system applications in a single data processing system. In particular, a networked file server or data mover has associated with it a mass storage device such as one or more disk drives, as well as one or more Network Interface Cards (NICs). A network interface to the data mover is associated with VLAN identifiers (IDs) such that a VLAN ID can be assigned to each file system. At the physical layer of the data mover, VLAN information is encapsulated and passed up to various higher protocol layers, such as a network layer and/or a transport layer, eventually to a selected file system as dictated by the VLAN ID. The file system application in effect becomes an addressable element of the VLAN. A single data mover can thus be deployed to service multiple groups of end users, as long as the members of each group have different VLAN identifiers for the multiple file systems. The result provides security, access restrictions, and all the other benefits of VLAN protocols that would be obtained by deploying separate data movers for each VLAN, without incurring the acquisition expense and administrative overhead associated with having to purchase and maintain multiple data mover systems.
摘要:
There is a performance loss associated with servicing a pipe or stream for a connection oriented process by maintaining a connection between a server thread and a client for a series of messages. As a result of maintaining this connection, there is less balance; some threads work harder than others, causing a loss of performance. To solve this problem, a collector queue combines messages from the connection oriented process with messages from the other concurrent processes. The threads receive messages from the collector queue rather than individual pipes. Any idle thread can pick up a message from the collector queue. The collector queue keeps track of which pipe each message came from so that the reply of the server to each message is directed to the same pipe from which the message came from. Therefore the collector queue ensures thread balance and efficiency in servicing the messages. In the preferred implementation, each entry in the collector queue includes a message pointer and a pipe pointer. The message pointer points to allocated memory storing the message in a message buffer. The pipe pointer points to the pipe from which the message originated. The collector queue is a singly linked list. A free thread takes an entry off the collector queue, interprets the message of the entry, sends a reply, and deallocates the memory of the entry and the allocated memory storing the message in the message buffer.
摘要:
A network file server includes a first set of data processors for receiving requests from clients, and a second set of data processors for accessing read-write file systems. A respective data processor in the second set is assigned to each file system for exclusive management of locks on the file system. The file server can detect failure of a failed data processor and automatically recover from the failure. When a failure of a data processor in the first set is detected, a spare data processor is programmed with the logical and physical network addresses of the failed data processor so that the spare data processor assumes the network identity of the failed data processor. When a failure of a data processor in the second set is detected, responsibility for management of the locks on each file system managed by the failed data processor is transferred to an operational data processor. Preferably the responsibility is transferred to the operational data processors in such a way as to balance loading on the operational data processors. The data processors can be commodity digital computers for low cost, and a cached disk storage subsystem or file system caches and remote dual copy techniques can be used to ensure high performance and high data availability.
摘要:
To reorganize a striped file system, data blocks are sequentially moved from storage locations in original data storage to storage locations in an array including the original data storage and additional data storage. If the new striping has the same precedence order as the original striping, then temporary storage is not needed for the block movement. Otherwise, stripes of the data blocks are sequentially moved to a stripe of temporary storage locations, and moved from the stripe of the temporary locations to storage locations in the array. Once a pivot point is reached, however, there is no need to use the temporary storage. Moreover, there is an increasing separation between the read and write pointers. Once this separation exceeds the stripe length, the file system metadata can be synchronized at decreasing intervals and still permit concurrent read access. The number of block transfers between the synchronization points can increase exponentially, and the synchronization points can be aligned with extent boundaries.
摘要:
A first data mover computer services data access requests from a network client, and a second data mover computer is coupled to the first data mover computer for servicing data access requests from the first data mover computer. The first data mover computer uses a connection-oriented protocol to obtain client context information and to respond to a session setup request from the client by authenticating the client. Then the first data mover computer responds to a file system connection request from the client by forwarding the client context information and the file system connection request to the second data mover computer. Then the first data mover computer maintains a connection between the first data mover computer and the second data mover computer when the client accesses the file system and the first data mover computer passes file access requests from the client to the second data mover computer and returns responses to the file access requests from the second data mover computer to the client. In a preferred embodiment, the connection-oriented protocol is the Common Internet File System (CIFS) Protocol, and multiple clients share a Transmission Control Protocol (TCP) connection between the first data mover computer and the second data mover computer by allocation of virtual channels within the shared TCP connection and multiplexing of data packets of the virtual channels over the shared TCP connection.
摘要:
For network file access, a plurality of data mover computers are linked to a cached disk array. Read-write files stored in the cached disk array are accessible to network clients through more than one of the data mover computers so that the data mover computers are not a bottleneck to file access. The cached disk array stores a network file directory including file locking information, and the data mover computers each have file system software that accesses the network file directory for shared read-write file access. The data mover computers perform the file system tasks such as managing the file directory for mapping of file names to logical blocks and for locking and unlocking of the files in order to minimize loading on the cached disk array. Therefore, the network file server need not use any particular one of the data mover computers to serve as a control point for read-write file access. Instead, file system software for managing the file directory is replicated in each data mover computer. The cached disk array recognizes logical block addresses, and the cached disk array has a limited internal locking facility ensuring that reading or writing to a logical block is an atomic operation. Preferably the data mover computers are commodity personal computers.
摘要:
A conventional network file server has a file system that permits file attributes and file data to be written in any order. The conventional network file server may also support an asynchronous write protocol, in which file attributes and file data need not be written to disk storage until a client sends a commit request. This asynchronous write protocol has a data security problem if the attributes are written before the data and the server crashes before completing the writing of the data to disk storage. This security problem is solved by adding a file system cache and following a protocol that writes the attributes to storage after writing the data to storage. For example, the attributes and data are stored in the file system cache and are not written down to storage until receipt of a commit request. When the commit request is received, the data is sent first from the file system cache to storage. Then the attributes are sent from the file system cache to storage. Then the file server acknowledges completion of the commit operation. In a preferred embodiment, storage is provided by an integrated cached disk array (ICDA) having a buffer cache and an array of disk drives, and the file system cache is distributed in a plurality of data mover computers interfaced to the ICDA. The addition of the file system cache to solve the security problem also reduces the burden on the buffer cache in the ICDA.
摘要:
A network file server includes a first set of data processors for receiving requests from clients, and a second set of data processors for accessing read-write file systems. A respective data processor in the second set is assigned to each file system for exclusive management of read and write locks on the file system. Each data processor in the first set can authorize access to file systems directly accessed by more than one data processor in the second set. Processing of a request for access that is authorized is continued by the data processor that is assigned to manage the locks on the file system to be accessed. The exclusivity of lock management eliminates cache coherency problems, and dynamic load balancing can be used to prevent the lock management from becoming a bottleneck to performance. A preferred embodiment includes a cached disk storage subsystem linked to data mover computers. Each data mover has authorization and ownership information for a plurality of file systems, and maintains a local cache of locking information for file systems that the data mover can directly access. The data mover receives a client request, and if access is authorized, checks whether it can directly access the file, and if not, forwards the request to another data mover.