Source: https://patents.google.com/patent/US20090043971A1/en
Timestamp: 2019-09-21 22:07:28
Document Index: 419338879

Matched Legal Cases: ['§ 119', 'Application No. 60', '§ 119', 'Application No. 60', '§ 119', 'Application No. 60']

US20090043971A1 - Data integrity for data storage devices shared by multiple hosts via a network - Google Patents
Data integrity for data storage devices shared by multiple hosts via a network Download PDF
US20090043971A1
US20090043971A1 US12/255,433 US25543308A US2009043971A1 US 20090043971 A1 US20090043971 A1 US 20090043971A1 US 25543308 A US25543308 A US 25543308A US 2009043971 A1 US2009043971 A1 US 2009043971A1
US12/255,433
2003-09-26 Priority to US50682903P priority Critical
2004-06-21 Priority to US58169104P priority
2004-07-22 Priority to US59072204P priority
2004-09-27 Priority to US10/951,474 priority patent/US7457880B1/en
2008-10-21 Application filed by XiMeta Tech Inc filed Critical XiMeta Tech Inc
2008-10-21 Priority to US12/255,433 priority patent/US20090043971A1/en
2008-10-21 Assigned to XIMETA TECHNOLOGY, INC. reassignment XIMETA TECHNOLOGY, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: KIM, HAN-GYOO
2009-01-15 Assigned to PAK, ZHE KHI reassignment PAK, ZHE KHI ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: XIMETA TECHNOLOGY, INC.
2009-02-12 Publication of US20090043971A1 publication Critical patent/US20090043971A1/en
This application is a divisional patent application of U.S. patent application Ser. No. 10/951,474, filed Sep. 27, 2004 and entitled “Data Integrity for Data Storage Devices Shared by Multiple Hosts Via a Network;” which claims the benefit under 35 U.S.C. § 119(e) to U.S. Provisional Application No. 60/506,829, filed Sep. 26, 2003 and entitled “Device-Level Data Integrity Scheme for Data Devices Shared by Multiple Hosts through LAN;” and which claims the benefit under 35 U.S.C. § 119(e) to U.S. Provisional Application No. 60/590,722, filed Jul. 22, 2004 and entitled “Low-Level Communication Layers and Device Employing Same;” and which claims the benefit under 35 U.S.C. § 119(e) to U.S. Provisional Application No. 60/581,691, filed Jun. 21, 2004 and entitled “File System Features That Enable a Storage Device to Be Shared Directly by Multiple Hosts at Device Level;” the disclosures of which are hereby incorporated herein by reference in their entireties.
FIG. 5 shows a generalized method of reading or writing data files (or portions thereof normally employed by a single host directly connected to a single data storage device, using the data hierarchy of FIG. 4. In operation 301, the file system 101 receives a file read or write request from a user process 100. Following receipt, in operation 302 the file system 101 attempts to access a copy 107 of the meta-data in the buffer 105 that contains the mapping information describing the translation from the file 201 to the corresponding blocks 202. In operation 303, the system determines whether the copy 107 of the meta-data stored in the buffer 105 is valid. If the meta-data 107 is valid, operation 305 is executed. If, however, the meta-data 107 is invalid or not present in the buffer 105, the input/output system 102 executes operation 304 and converts the location of the blocks 202 of the required meta-data into the corresponding location of physical sectors 203 of the data storage device 103, reads the corresponding meta-data 109 from the physical sectors 203 of the data storage device 103, and copies the meta-data 109 into the buffer 105, resulting in a valid copy 107 of the meta-data in the buffer 105. Optionally, the file system 101 may perform operation 303 once again to ensure the meta-data 107 in buffer 105 is valid.
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.
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:
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;
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:
accessing the data storage device; and
15. The digital storage medium of claim 14, the method further comprising:
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:
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:
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.
setting a timestamp attribute with an indication of the time at which the check out attribute was set with the host identification.
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.
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.
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.
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 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.
US12/255,433 2003-09-26 2008-10-21 Data integrity for data storage devices shared by multiple hosts via a network Abandoned US20090043971A1 (en)
US50682903P true 2003-09-26 2003-09-26
US58169104P true 2004-06-21 2004-06-21
US59072204P true 2004-07-22 2004-07-22
US10/951,474 US7457880B1 (en) 2003-09-26 2004-09-27 System using a single host to receive and redirect all file access commands for shared data storage device from other hosts on a network
US12/255,433 US20090043971A1 (en) 2003-09-26 2008-10-21 Data integrity for data storage devices shared by multiple hosts via a network
US10/951,474 Division US7457880B1 (en) 2003-09-26 2004-09-27 System using a single host to receive and redirect all file access commands for shared data storage device from other hosts on a network
US20090043971A1 true US20090043971A1 (en) 2009-02-12
ID=40029569
US10/951,474 Active 2025-04-15 US7457880B1 (en) 2003-09-26 2004-09-27 System using a single host to receive and redirect all file access commands for shared data storage device from other hosts on a network
US12/255,433 Abandoned US20090043971A1 (en) 2003-09-26 2008-10-21 Data integrity for data storage devices shared by multiple hosts via a network
US (2) US7457880B1 (en)
US20090049259A1 (en) * 2007-08-13 2009-02-19 Sudhakar Gosukonda Naga Venkat Clustered snapshots in networks
US20170195283A1 (en) * 2011-08-30 2017-07-06 Amazon Technologies, Inc. Allocating identifiers with minimal fragmentation
WO2010098772A1 (en) * 2009-02-27 2010-09-02 Hewlett-Packard Development Company, L.P. System and method for supporting a remote isochronous device
US20110282850A1 (en) * 2010-05-11 2011-11-17 Microsoft Corporation Concurrently Accessing Data
US9571576B2 (en) 2010-11-30 2017-02-14 International Business Machines Corporation Storage appliance, application server and method thereof
JP2012203475A (en) 2011-03-23 2012-10-22 Toshiba Corp Communication device and control method therefor
US10089611B1 (en) * 2014-06-05 2018-10-02 Amazon Technologies, Inc. Sharing digital media
US9785427B2 (en) * 2014-09-05 2017-10-10 Oracle International Corporation Orchestration of software applications upgrade using checkpoints
KR20170057902A (en) * 2015-11-17 2017-05-26 에스케이하이닉스 주식회사 Memory system and operating method of memory system
WO2018140036A1 (en) * 2017-01-27 2018-08-02 Hewlett-Packard Development Company, L.P. Read operation redirect
US20010011338A1 (en) * 1998-08-26 2001-08-02 Thomas J. Bonola System method and apparatus for providing linearly scalable dynamic memory management in a multiprocessing system
2004-09-27 US US10/951,474 patent/US7457880B1/en active Active
2008-10-21 US US12/255,433 patent/US20090043971A1/en not_active Abandoned
US8374746B2 (en) * 2005-12-08 2013-02-12 Smartdrive Systems, Inc. Memory management in event recording systems
US7774568B2 (en) * 2007-08-13 2010-08-10 Novell, Inc. Clustered snapshots in networks
US20110231613A1 (en) * 2010-03-19 2011-09-22 Ober Robert E Remote storage caching
US10237233B2 (en) * 2011-08-30 2019-03-19 Amazon Technologies, Inc. Allocating identifiers with minimal fragmentation
US7457880B1 (en) 2008-11-25
CA2221874C (en) 2006-08-15 Shared memory computer networks
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:KIM, HAN-GYOO;REEL/FRAME:021715/0445
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:XIMETA TECHNOLOGY, INC.;REEL/FRAME:022113/0815