Browse Prior Art Database

A clustering method of network storage with loop configuration Disclosure Number: IPCOM000015462D
Original Publication Date: 2002-Apr-01
Included in the Prior Art Database: 2003-Jun-20

Publishing Venue



Clustering technology which buildup a single high performance server image with a set of low cost units is one of active area of study and development of computer technology. One of clustering method applied to network storage is use of a request packets dispatcher. In a typical configuration, a clustering system has a request dispatcher in front of storage servers and all requests received by the dispatcher are redirected to servers behind. A problem of this configuration is, first, a dispatcher easily becomes a bottle-neck of performance, second, a request can not be fragmented into clustering, especially, TCP/IP session base service can not be divided into small workload processes. This means a packets dispatcher based clustering dose not improve performance speed of processing a single job request at all. A method described in this invention intends to co-process a single data read/write request in multiple units in a cluster. The system consists of nodes which are connected each other in a ring topology by fast network and capable to circulate a "token" message node by node. Second point is all nodes has a same MAC address that means all nodes receive same packet concurrently. There is one special node named as a "ring master". A ring master is a primary point of handling network storage protocols. Here I describes a case of NAS/NFS server, but same method can be applied to block level service e.g. iSICI as well. Nodes of a ring constructs a virtual storage device with disks in nodes. For example, block 1-100 is assigned for node-1 and block 101-200 is assigned for node-2 and so on. This virtual device can be a RAID with arbitrary configuration. And a file system is installed on this virtual device. A ring master holds meta data of a file system. Now a NFS "mount" request comes. This request packets are delivered to all node but most of nodes except a ring master ignore this packet. This filtering is executed in NIC device driver with low latency and dose not consume CPU of nodes so much. Only a ring master processes this request and returns a response to a client. Then a write or read data request comes. When a write request for a file comes, a ring master determines blocks to where data should be stored and issue a token which specifies a data source packet and destination blocks. This token is propagated to all nodes in a ring and a node which has specified block stores data in a source packet which is not filtered and is kept in a buffer. Then modify the token changing a block write request portion to "void" state and forward it to next node. If all requests in a token becomes "void" state, the last node of a process sequence returns a response to a client. A read request is processed in a similar way as a write request and responses are returned to a client from nodes which have requested data directly. A token includes information required to build up a response packet in multiple nodes as well. 1