Patent ID: 8296420

Claim:
A method of constructing a distributed hash table (DHT)-based global namespace (GNS) for a network system including a plurality of network attached storage (NAS) devices connected to each other by a network, the NAS devices including at least one DHT-NAS device defined as a NAS device having DHT functionalities, and at least one Existing-NAS device defined as a NAS device that does not have DHT functionalities; the method comprising the steps of: in a DHT overlay construction phase, constructing by each DHT-NAS device a DHT overlay of the DHT-NAS devices, in an initial phase, the following steps performed by a processor of the DHT-NAS device executing a namespace initialization program: gathering information of the Existing-NAS devices, including IP addresses, share folders, and free storage capacity thereof, into an Existing-NAS information table; creating a GNS hierarchical namespace above the share folders based on the information gathered in the Existing-NAS information table; executing a key-value pair generation program, generating a (key, value) pair for each GNS path in the GNS hierarchical namespace, wherein the key is the hash value of the GNS path generated by invoking a hashing program, and wherein the value is generated with metadata information of the GNS path including the GNS path entry, the type of device in which the GNS path is stored, the IP address of the corresponding Existing-NAS device, and the path within the share folder; and storing the (key, value) pairs to a key lookup table in the corresponding DHT-NAS devices through the DHT overlay; in a discovery phase, the following steps performed by the processor of the DHT-NAS device executing a namespace discovery program: discovering the Existing-NAS devices identified in the key lookup table, and creating the GNS hierarchical namespace under the share folders; and in a working phase, the following steps performed by the processor of the DHT-NAS device executing a request processing program: checking whether a directory or file request to the GNS namespace has been received, and responding to the request if a directory or file request to the GNS namespace has been received.