US 7,587,426 B2
System and method for virtualizing a distributed network storage as a single-view file system
Shinji Fujiwara, Sagamihara (Japan); Nobutoshi Sagawa, Koganei (Japan); Tetsuya Uemura, Sayama (Japan); and Hiroaki Odawara, Kodaira (Japan)
Assigned to Hitachi, Ltd., Tokyo (Japan)
Filed on Aug. 16, 2002, as Appl. No. 10/219,770.
Claims priority of application No. 2002-013652 (JP), filed on Jan. 23, 2002.
Prior Publication US 2003/0140051 A1, Jul. 24, 2003
Int. Cl. G06F 17/30 (2006.01)
U.S. Cl. 707—200  [711/100] 7 Claims
OG exemplary drawing
 
1. A network storage virtualization method in a network storage system for a client connected thereto via a network, said network storage system being composed of an access routing means and a plurality of network storages each including a physical network storage device and a storage virtualization unit, said storage virtualization unit providing the client with a view of a virtual network storage system instead of a view of physical structure of the plurality of network storage devices, the virtualization method comprising steps of:
storing files dispersedly in the plurality of physical network storage devices corresponding to hash values determined by hashing a logical identifier of an access location where one of the files is physically stored for each of the files; and
when a request to generate a file handle to access one of the stored files is received from the client, embedding one of said hash values corresponding to an access location where the file is physically stored in the handle by:
receiving from the client a first LOOKUP command including a first handle, according to an NFS protocol command;
determining whether a first level directory is specified in the first handle;
when the first level directory is specified therein, computing a first path from a root directory to the first level directory with a first hash value related to the first level directory, the first hash value being included in the first handle;
executing the first LOOKUP command based upon the first path for the first level directory;
obtaining a second path for a second level directory which is lower than the first level directory from the root directory;
generating a second hash value related to a second path from the root directory to the second level directory;
returning to the client a second handle including the second hash value related to the second path, as a result of executing the first LOOKUP command;
receiving from the client a second LOOKUP command including the second handle;
computing the second path for the second level directory with the second hash value related to the second level directory;
executing the second LOOKUP command based upon the second path;
when an object specified in the second handle is a file stored under the second level directory or a third level directory lower than the second level directory from the root directory, generating a third hash value related to a third path from the root directory to the object, returning to the client a third handle including a third hash value related to the object, as a result of executing the second LOOKUP command, the third handle being either the file handle or a directory handle; and
(1) when the object is the file, receiving from the client a READ command including the third hash value related to a file path from the root directory to the file,
(2) when the object is the third level directory, receiving from the client a third LOOKUP command including the third hash value related to a directory path from the root directory to the third level directory.