US2009043971A1PendingUtilityA1

Data integrity for data storage devices shared by multiple hosts via a network

50
Assignee: XIMETA TECHNOLOGY INCPriority: Sep 26, 2003Filed: Oct 21, 2008Published: Feb 12, 2009
Est. expirySep 26, 2023(expired)· nominal 20-yr term from priority
Inventors:Han-Gyoo Kim
G06F 16/1774H04L 67/1097G06F 3/0635G06F 3/067G06F 3/0619G06F 3/0659
50
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

Access by multiple hosts, such as computers, to a data storage device by way of a network while maintaining data integrity. In one embodiment, a method for accessing the storage device includes acquiring a resource “lock” that provides exclusive access to one of the hosts at a time. In another embodiment, the file systems of a first and second host provide file system attributes stored in a storage device to provide mutually exclusive access for each host to free blocks of the device. In another embodiment, a networked system contains a first host having exclusive direct access to a storage device over a digital network. A second host requiring access to the storage device communicates with the first host by way of the digital network. File access requests generated by the second host are transferred by a redirection filter driver within the second host to the first host.

Claims

exact text as granted — not AI-modified
1 . A method for accessing a data storage device shared by a plurality of hosts via a network while preserving the data integrity of the data storage device, comprising:
 acquiring a resource lock, the resource lock providing exclusive access to the data storage device to one of the plurality of hosts;   directly accessing the data storage device; and   releasing the resource lock so that another of the plurality of hosts may access the data storage device.   
   
   
       2 . The method of  claim 1 , further comprising:
 prior to releasing the lock, determining if the data storage device is to be accessed again; and   if the data storage device is to be accessed again, accessing the data storage device.   
   
   
       3 . The method of  claim 1 , the accessing step comprising writing user data to the data storage device. 
   
   
       4 . The method of  claim 3 , the writing step comprising:
 determining if meta-data associated with the user data is available and valid within a data buffer;   if the meta-data is unavailable and invalid in the data buffer, reading the meta-data from the data storage device into the data buffer;   reading the meta-data from the data buffer;   determining the proper location on the data storage device for the user data from the meta-data;   updating the meta-data based on the user data;   writing the meta-data and the user data to the data buffer; and   flushing the meta-data and the user data from the data buffer to the data storage device.   
   
   
       5 . The method of  claim 1 , the accessing step comprising reading user data from the data storage device. 
   
   
       6 . The method of  claim 5 , the reading step comprising:
 determining if meta-data associated with the user data is available and valid within a data buffer;   if the meta-data is not available and valid in the data buffer, reading the meta-data from the data storage device into the data buffer;   reading the meta-data from the data buffer;   determining from the meta-data if the user data is available and valid in the data buffer;   if the user data is not available and valid in the data buffer, reading the user data from the data storage device into the data buffer; and   reading the user data from the data buffer.   
   
   
       7 . The method of  claim 1 , wherein the resource lock is acquired and released by way of software commands issued over the network to the data storage device. 
   
   
       8 . The method of  claim 1 , wherein the resource lock is implemented entirely in software. 
   
   
       9 . The method of  claim 1 , wherein the resource lock may only be held for a predetermined period of time before being released. 
   
   
       10 . A device implementing the method of  claim 1 . 
   
   
       11 . The device of  claim 10 , comprising a personal computer. 
   
   
       12 . The device of  claim 10 , comprising a workstation. 
   
   
       13 . The device of  claim 10 , comprising a personal digital assistant (PDA). 
   
   
       14 . A digital storage medium storing a software program implementing a method for accessing a data storage device shared by a plurality of hosts via a network, the method comprising:
 acquiring a resource lock, the resource lock providing exclusive access to the data storage device to one of the plurality of hosts;   accessing the data storage device; and   releasing the resource lock so that another of the plurality of hosts may access the data storage device.   
   
   
       15 . The digital storage medium of  claim 14 , the method further comprising:
 prior to releasing the lock, determining if the data storage device is to be accessed again; and   if the data storage device is to be accessed again, accessing the data storage device.   
   
   
       16 . The digital storage medium of  claim 14 , the accessing step comprising writing user data to the data storage device. 
   
   
       17 . The digital storage medium of  claim 16 , the writing step comprising:
 determining if meta-data associated with the user data is available and valid within a data buffer;   if the meta-data is unavailable and invalid in the data buffer, reading the meta-data from the data storage device into the data buffer;   reading the meta-data from the data buffer;   determining the proper location on the data storage device for the user data from the meta-data;   updating the meta-data based on the user data;   writing the meta-data and the user data to the data buffer; and   flushing the meta-data and the user data from the data buffer to the data storage device.   
   
   
       18 . The digital storage medium of  claim 14 , the accessing step comprising reading user data from the data storage device. 
   
   
       19 . The digital storage medium of  claim 18 , the reading step comprising:
 determining if meta-data associated with the user data is available and valid within a data buffer;   if the meta-data is not available and valid in the data buffer, reading the meta-data from the data storage device into the data buffer;   reading the meta-data from the data buffer;   determining from the meta-data if the user data is available and valid in the data buffer;   if the user data is not available and valid in the data buffer, reading the user data from the data storage device into the data buffer; and   reading the user data from the data buffer.   
   
   
       20 . The digital storage medium of  claim 14 , wherein the resource lock is acquired and released by way of software commands issued over the network to the data storage device. 
   
   
       21 . The digital storage medium of  claim 14 , wherein the resource lock may only be held for a predetermined period of time before being released. 
   
   
       22 . A method for claiming a cluster of free blocks of a data storage device shared by a plurality of hosts via a network while preserving the data integrity of the data storage device, comprising:
 reading a check out attribute associated with the cluster of free blocks to determine if the cluster of free blocks has been claimed by one of the plurality of hosts; and   if the cluster of free blocks has not been claimed by one of the plurality of hosts, setting the check out attribute with a host identification, thereby claiming the cluster of free blocks.   
   
   
       23 . The method of  claim 22 , further comprising:
 setting a timestamp attribute with an indication of the time at which the check out attribute was set with the host identification.   
   
   
       24 . The method of  claim 22 , further comprising:
 acquiring a resource lock prior to reading the check out attribute, the resource lock providing exclusive access by one of the plurality of hosts to the check out attribute; and   releasing the resource lock after accessing the check out attribute so that another of the plurality of hosts may access the check out attribute.   
   
   
       25 . A method for accessing a bad block list of a data storage device shared by a plurality of hosts via a network while preserving the data integrity of the data storage device, comprising:
 reading a check out attribute associated with the bad block list to determine if the bad block list is being accessed by one of the plurality of hosts; and   if the bad block list is not being accessed by one of the plurality of hosts, setting the check out attribute with a host identification, thereby gaining access to the bad block list.   
   
   
       26 . The method of  claim 25 , further comprising:
 setting a timestamp attribute with an indication of the time at which the check out attribute was set with the host identification.   
   
   
       27 . The method of  claim 25 , further comprising:
 acquiring a resource lock prior to reading the check out attribute, the resource lock providing exclusive access by one of the plurality of hosts to the check out attribute; and   releasing the resource lock after accessing the check out attribute so that another of the plurality of hosts may access the check out attribute.   
   
   
       28 . A method for accessing a file system file imparting information regarding a file system of a data storage device shared by a plurality of hosts via a network while preserving the data integrity of the data storage device, comprising:
 reading a check out attribute associated with the file system file to determine if the file system file is being accessed by one of the plurality of hosts; and   if the file system file is not being accessed by one of the plurality of hosts, setting the check out attribute with a host identification, thereby gaining access to the file system file.   
   
   
       29 . The method of  claim 28 , further comprising:
 setting a timestamp attribute with an indication of the time at which the check out attribute was set with the host identification.   
   
   
       30 . The method of  claim 28 , further comprising:
 acquiring a resource lock prior to reading the check out attribute, the resource lock providing exclusive access by one of the plurality of hosts to the check out attribute; and   releasing the resource lock after accessing the check out attribute so that another of the plurality of hosts may access the check out attribute.   
   
   
       31 . A method for traversing the entire file structure of a file system of a data storage device shared by a plurality of hosts via a network, comprising:
 reading a file system descriptor of the file system from the data storage device;   following a link within the file system descriptor associated with a root directory file descriptor for each of the plurality of hosts; and   traversing a file structure for each of the plurality of hosts, beginning with the root directory file descriptor for each of the plurality of hosts.   
   
   
       32 . A method for accessing a user file of a data storage device shared by a plurality of hosts via a network while preserving the data integrity of the data storage device, comprising:
 reading a check out attribute associated with the user file to determine if the user file is being accessed by one of the plurality of hosts; and   if the user file is not being accessed by one of the plurality of hosts, setting the check out attribute with a host identification, thereby gaining access to the user file.   
   
   
       33 . The method of  claim 32 , further comprising:
 setting a timestamp attribute with an indication of the time at which the check out attribute was set with the host identification.   
   
   
       34 . The method of  claim 32 , further comprising:
 acquiring a resource lock prior to reading the check out attribute, the resource lock providing exclusive access by one of the plurality of hosts to the check out attribute; and   releasing the resource lock after accessing the check out attribute so that another of the plurality of hosts may access the check out attribute.   
   
   
       35 . A file system data structure providing data integrity to a data storage device shared by a plurality of hosts, the file system data structure comprising:
 a free block list comprising an entry indicating the location of a cluster of free blocks of the data storage device, the free block list residing in at least one block of the data storage device;   a check out attribute of the entry of the free block list indicating whether the cluster of free blocks has been claimed by one of the plurality of hosts and, if so, the identity of the one of the plurality of hosts;   wherein the cluster of free blocks may thus be allocated by the one of the plurality of hosts.   
   
   
       36 . The file system data structure of  claim 35 , further comprising:
 a resource lock of the check out attribute of the entry of the free block list allowing only one of the plurality of hosts at a time to access the check out attribute of the entry of the free block list.   
   
   
       37 . The file system data structure of  claim 35 , further comprising:
 a timestamp attribute associated with an entry of the free block list;   wherein if the check out attribute of the entry of the free block list is set with an identity of one of the plurality of hosts, the timestamp attribute indicates when the check out attribute of the entry of the free block list was set with the identity of the one of the plurality of hosts.   
   
   
       38 . The file system data structure of  claim 35 , further comprising:
 a bad block list comprising an entry indicating the location of a defective block of the data storage device, the bad block list residing in at least one block of the data storage device;   a check out attribute of the bad block list indicating whether access to the bad block list has been claimed by one of the plurality of hosts and, if so, the identity of the one of the plurality of hosts;   wherein the bad block list may thus be accessed by the one of the plurality of hosts.   
   
   
       39 . The file system data structure of  claim 38 , further comprising:
 a resource lock of the check out attribute of the bad block list allowing only one of the plurality of hosts at a time to access the check out attribute of the bad block list.   
   
   
       40 . The file system data structure of  claim 38 , further comprising:
 a timestamp attribute associated with the bad block list;   wherein if the check out attribute of the bad block list is set with an identity of one of the plurality of hosts, the timestamp attribute indicates when the check out attribute of the bad block list was set with the identity of the one of the plurality of hosts.   
   
   
       41 . The file system data structure of  claim 35 , further comprising:
 a file system file imparting information regarding a file system on the data storage device;   a check out attribute of the file system file indicating whether access to the file system file has been claimed by one of the plurality of hosts and, if so, the identity of the one of the plurality of hosts;   wherein the file system file may thus be accessed by the one of the plurality of hosts.   
   
   
       42 . The file system data structure of  claim 41 , further comprising:
 a resource lock of the check out attribute of the file system file allowing only one of the plurality of hosts at a time to access the file system file.   
   
   
       43 . The file system data structure of  claim 41 , further comprising:
 a timestamp attribute associated with the file system file;   wherein if the check out attribute of the file system file is set with an identity of one of the plurality of hosts, the timestamp attribute indicates when the check out attribute of the file system file was set with the identity of the one of the plurality of hosts.   
   
   
       44 . The file system data structure of  claim 35 , further comprising:
 a separate set of file descriptors for a root directory provided for each of the plurality of hosts.   
   
   
       45 . The file system data structure of  claim 44 , wherein each set of file descriptors may be read by each of the plurality of hosts. 
   
   
       46 . The file system data structure of  claim 44 , wherein each of the plurality of hosts may create files and directories under any of the root directories associated with each set of file descriptors. 
   
   
       47 . The file system data structure of  claim 44 , wherein an entire directory structure of the data storage device may be produced by combining all of the sets of file descriptors for each root directory. 
   
   
       48 . The file system data structure of  claim 35 , further comprising:
 an ownership file attribute associated with a file, the ownership file attribute indicating which of the plurality of hosts owns the file.   
   
   
       49 . The file system data structure of  claim 35 , further comprising:
 a check out file attribute associated with a file, the check out file attribute indicating which of the plurality of hosts has exclusive write access to the file.   
   
   
       50 . The file system data structure of  claim 49 , further comprising:
 a resource lock allowing only one of the plurality of hosts at a time to access the check out file attribute associated with the file.   
   
   
       51 . A networked system, comprising:
 a plurality of hosts;   a network coupling the plurality of hosts;   a first data storage device coupled with, and shared at the device level by, the plurality of hosts over the network, the first data storage device comprising the file system data structure of  claim 35 .   
   
   
       52 . The networked system of  claim 51 , further comprising:
 a controller logic coupling the first data storage device with the network; and   a second data storage device coupled with the controller logic;   wherein the controller logic presents a view of a single data storage device to the plurality of hosts.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.