摘要:
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 video file server includes an integrated cached disk array storage subsystem and a plurality of stream server computers linking the cached disk storage system to the data network for the transfer of video data streams. The video file server further includes a controller server for applying an admission control policy to client requests and assigning stream servers to service the client requests. The stream servers include a real-time scheduler for scheduling isochronous tasks, and supports at least one industry standard network file access protocol and one file access protocol for continuous media file access. The cached disk storage subsystem is responsive to video prefetch commands, and the data specified for a prefetch command for a process are retained in an allocated portion of the cache memory from the time that the cached disk storage subsystem has responded to the prefetch command to the time that the cached disk storage subsystem responds to a fetch command specifying the data for the process. The time between prefetching and fetching is selected based on available disk and cache resources. The video file server provides video-on-demand service by maintaining and dynamically allocating sliding windows of video data in the random access memories of the stream server computers.
摘要:
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.
摘要:
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 an integrated cached disk array and a plurality of data mover computers linking the cached disk array to the data network for file access. Each data mover computer maintains a local cache of file directory information including locking information of locked files that are accessible through the data mover. A cache consistency scheme ensures that shared locking information is consistent in the local caches. In a preferred embodiment, the cache consistency scheme uses an internal data link to pass messages between the data movers. The file directory information in the local cache includes information mapping file names to a list of logical blocks for each file name, file attributes that affect data access, and locking information down to a block level of granularity. Each data mover computer has network file manager software that maintains client ownership of locked files and communicates with the clients, and data mover file manager software that manages data mover computer ownership of locked files and communicates with other data mover computers. The cache consistency messages indicate a grant of data mover ownership over a file, a release of data mover ownership over a file, a denial of a request for access to a locked file, and changes to file attributes affecting access to a file. The local caches and the cache consistency scheme eliminate any need to store file locking information in the cached disk array.