Block device driver enabling a ruggedized file system
First Claim
1. A method for writing or otherwise changing data in a non-volatile storage device supported by a block device driver so as to provide ruggedized operation, the method comprising the steps of:
- (a) sending a command to the device driver for defining current data contents of the storage device as a fall-back state in case of failure;
(b) sending a sequence of one or more commands to the device driver, each command potentially changing the data contents of the device; and
(c) sending a command to the device driver for defining the resulting data contents of the storage device as a new fall-back state in case of failure;
wherein if a failure occurs after step (a) but before the completion of step (c), the device driver rolls back the effects of all said commands issued in step (b) and returns the storage device to contain said data contents defined as a fall-back state in step (a);
and wherein the device driver identifies data associated with said commands conducted after establishing said fall-back state, by establishing chains of physical blocks associated with the driver'"'"'s virtual blocks, and storing all new data in said physical blocks, such that said new data is stored in said physical blocks that are not the first blocks in said chains of physical blocks.
4 Assignments
0 Petitions
Accused Products
Abstract
A ruggedized file system, which provides ruggedness to non-volatile storage media at the device driver level. The ruggedized block device driver implementation provides ruggedness at the device driver level, thereby allowing atomic sequences of operations by the file system. Accordingly, the device driver is told that the current data state is a “fall-back” consistent state, into which the system should wake up if interrupted prior to completion of the sequence, following which operations are executed as required by the file system, including erasing, writing or overwriting blocks. The device driver is further told when the atomic sequence is complete, such that a new consistent state is thereby defined. It is, accordingly, the responsibility of the device driver to ensure that either the sequence completes and the file system reaches the target consistent state, or if power is lost or any other failure occurs in the middle, the file system will wake up in the initial fall-back state. Except for activating this “atomicity” feature as described above, the file system does not have to be aware of any implementation detail of the ruggedness solution.
79 Citations
61 Claims
-
1. A method for writing or otherwise changing data in a non-volatile storage device supported by a block device driver so as to provide ruggedized operation, the method comprising the steps of:
-
(a) sending a command to the device driver for defining current data contents of the storage device as a fall-back state in case of failure;
(b) sending a sequence of one or more commands to the device driver, each command potentially changing the data contents of the device; and
(c) sending a command to the device driver for defining the resulting data contents of the storage device as a new fall-back state in case of failure;
wherein if a failure occurs after step (a) but before the completion of step (c), the device driver rolls back the effects of all said commands issued in step (b) and returns the storage device to contain said data contents defined as a fall-back state in step (a); and wherein the device driver identifies data associated with said commands conducted after establishing said fall-back state, by establishing chains of physical blocks associated with the driver'"'"'s virtual blocks, and storing all new data in said physical blocks, such that said new data is stored in said physical blocks that are not the first blocks in said chains of physical blocks. - View Dependent Claims (2)
-
-
3. A method for writing or otherwise changing data in a unit-based non-volatile storage device supported by a block device driver so as to provide ruggedized operation, the method comprising the steps of:
-
(a) sending a command to the device driver for defining current data contents of the storage device as a fall-back state in case of failure;
(b) sending a sequence of one or more commands to the device driver, each command potentially changing the data contents of the device; and
(c) sending a command to the device driver for defining the resulting data contents of the storage device as a new fall-back state in case of failure;
wherein if a failure occurs after step (a) but before the completion of step (c), the device driver rolls back the effects of all said commands issued in step (b) and returns the storage device to contain said data contents defined as a fall-back state step (a); and
wherein the device driver identifies data associated with said commands conducted after establishing said fall-back state, by establishing chains of physical blocks associated with the driver'"'"'s virtual blocks, and storing all new data in said physical blocks, such that said new data is stored in said physical blocks that are not the first blocks in said chains of physical blocks. - View Dependent Claims (4)
-
-
5. A method for enabling a file system to write or otherwise change data in a non-volatile storage device supported by a ruggedized block device driver, so as to provide ruggedized operation of the file system, the method comprising the steps of:
-
(a) optionally examining each command received by said file system, for determining whether said command should be protected from failures; and
(b) for each said command determined to be protected from failures;
(i) sending a command to said device driver for defining current data contents of the storage device as a fall-back state in case of failure;
(ii) performing said command received by said file system according to algorithms of said file system, thereby generating at least one command to said device driver, said at least one command potentially changing the data contents of said device; and
(iii) sending a command to the device driver for defining said changed data contents of the storage device as a new fall-back state in case of failure. - View Dependent Claims (6)
-
-
7. A method for converting an existing non-ruggedized file system on a non-volatile storage device supported by a ruggedized block device driver, into a ruggedized file system, the method comprising the steps of:
-
(a) adding, in the beginning of the file system code implementing each file system command which might change data contents of the storage device, new code for sending a command to the device driver for defining the storage device'"'"'s current data contents as a fall-back state in case of failure; and
(b) adding, at the end of the file system code implementing each file system command which might change said data contents of the storage device, new code for sending a command to the device driver for defining the storage device'"'"'s current data contents as a fall-back state in case of failure;
wherein, for each said file system command which might change said data contents of the storage device, if a failure occurs after said command to the device driver of step (a) is sent to the device driver but before said sending to the device driver of said command to the device driver of step (b) is completed, the device driver rolls back the effects of said each file system command which might change data contents of the storage device and returns the storage device to contain said data contents defined as a fall-back state by said command to the device driver of step (a); and wherein, for each said file system command which might change said data contents of the storage device, the device driver identifies data associated with said each file system command which might change said data contents of the storage device, by establishing chains of physical blocks associated with the driver'"'"'s virtual blocks, and storing all new data in said physical blocks, such that said new data is stored in said physical blocks that are not the first blocks in said chains of physical blocks. - View Dependent Claims (8)
-
-
9. A method for a software application to write or otherwise change data on a non-volatile storage device, where the storage device is supported by a ruggedized block device driver and a file system, so as to provide ruggedized operation of the application, the method comprising the steps of:
-
(a) sending a command to the device driver for defining the storage device'"'"'s current data contents as a fall-back state in case of failure;
(b) sending a sequence of at least one command to the file system, each said command potentially changing said data contents of the device; and
(c) sending a command to the device driver for defining the resulting data contents of the storage device as a new fall-back state in case of failure;
wherein if a failure occurs after step (a) but before the completion of step (c), the device driver rolls back the effects of all said commands issued in step (b) and returns the storage device to contain said data contents defined as a fall-back state in step (a); and wherein the device driver identifies data associated with said at least one command conducted after establishing said fall-back state, by establishing chains of physical blocks associated with the drivers virtual blocks, and storing all new data in said physical blocks, such that said new data is stored in said physical blocks that are not the first blocks in said chains of physical blocks.
-
-
10. A method for converting an existing non-ruggedized application using a non-volatile storage device supported by a ruggedized block device driver and a file system, into a ruggedized application, the method comprising the steps of:
-
adding, before code sending any sequence of commands to the file system which might change the file system'"'"'s data contents, new code for sending a command to the device driver, which defines current data contents of the storage device as a fall-back state in case of failure; and
adding, after said code sending any sequence of commands to the file system which might change the file system'"'"'s data contents, new code for sending a command to the device driver, which defines current data contents of the storage device as a fall-back state in case of failure;
wherein, for each said code sending any sequence of commands to the file system which might change the file system'"'"'s data contents, if a failure occurs after said command to the device driver of step (a) is sent to the device driver but before said sending to the device driver of said command to the device driver of step (b) is completed, the device driver rolls back the effects of said each code sending any sequence of commands to the file system which might change the file system'"'"'s data contents and returns the storage device to contain said data contents defined as a fall-back state by said command to the device driver of step (a); and wherein, for each said code sending any sequence of commands to the file system which might change the file system'"'"'s data contents, the device driver identifies data associated with said each code sending any sequence of commands to the file system which might change the file system'"'"'s data contents, by establishing chains or physical blocks associated with the driver'"'"'s virtual blocks, and storing all new data in said physical blocks, such that said new data is stored in said physical blocks that are not the first blocks in said chains of physical blocks.
-
-
11. A system providing ruggedized operation of a non-volatile storage device, comprising:
-
(a) physical non-volatile storage media; and
(b) a software block device driver which is ruggedized by itself, independently of a file system or other software application using it;
wherein said device driver identifies data associated with new operations conducted after establishing a fall-back state, by establishing chains of physical blocks associated with the driver'"'"'s virtual blocks, such that all such new data is stored in said blocks which are not the first blocks in said chains. - View Dependent Claims (12, 13)
-
-
14. A system providing ruggedized operation of a file system on a non-volatile storage device, comprising the following:
-
(a) physical non-volatile storage media;
(b) a software block device driver for operating said storage media, said device driver being ruggedized by itself, independently of the file system or other software applications using it; and
(c) a ruggedized file system wherein ruggedness of said file system is achieved by using the ruggedized features of said block device driver;
wherein said device driver identifies data associated with new operations conducted after establishing a fall-back state, by establishing chains of physical blocks associated with the driver'"'"'s virtual blocks, such that all such new data is stored in said blocks which are not the first blocks in said chains. - View Dependent Claims (15, 16)
-
-
17. A system providing ruggedized operation of a software application on a non-volatile storage device, comprising the following:
-
(a) physical non-volatile storage media;
(b) a software block device driver for operating said storage media, said device driver being ruggedized by itself, independently of the file system or other software applications using it;
(c) a file system; and
(d) a software application, such that ruggedness of said application is achieved by using ruggedized features of said block device driver;
wherein said device driver identifies data associated with new operations conducted after establishing a fall-back state, by establishing chains of physical blocks associated with the driver'"'"'s virtual blocks, such that all such new data is stored in said blocks which are not the first blocks in said chains.
-
-
18. A method for writing or otherwise changing data in a non-volatile storage device supported by a block device driver so as to provide ruggedized operation, the method comprising the steps of:
-
(a) sending a command to the device driver for defining current data contents of the storage device as a fall-back state in case of failure;
(b) sending a sequence of one or more commands to the device driver, each command potentially changing the data contents of the device; and
(c) sending a command to the device driver for defining the resulting data contents of the storage device as a new fall-back state in case of failure;
wherein if a failure occurs after step (a) but before the completion of step (c), the device driver rolls back the effects of all said commands issued in step (b) and returns the storage device to contain said data contents defined as a fall-back state in step (a); and wherein the device driver identifies data associated with said commands conducted after establishing said fall-back state, by associating a ruggedness field with each physical block and detecting changes in the value of said ruggedness field along chains of physical blocks associated with the driver'"'"'s virtual blocks, such that all new data is in blocks which are positioned after points of said changes.
-
-
19. A method for writing or otherwise changing data in a unit-based non-volatile storage device supported by a block device driver so as to provide ruggedized operation, the method comprising the steps of:
-
(a) sending a command to the device driver for defining current data contents of the storage device as a fall-back state in case of failure;
(b) sending a sequence of one or more commands to the device driver, each command potentially changing the data contents of the device; and
(c) sending a command to the device driver for defining the resisting data contents of the storage device as a new fall-back state in case of failure;
wherein if a failure occurs after step (a) but before the completion of step (c), the device driver rolls back the effects of all said commands issued in step (b) and returns the storage device to contain said data contents defined as a fall-back state in step (a); and wherein the device driver identifies data associated with said commands conducted after establishing said fall-back state, by associating a ruggedness field with each physical block and detecting changes in the value of said ruggedness field along chains of physical blocks associated with the driver'"'"'s virtual blocks, such that all new data is in blocks which are positioned after points of said changes.
-
-
20. A method for converting an existing non-ruggedized file system on a non-volatile storage device supported by a ruggedized block device driver, into a ruggedized file system, the method comprising the steps of:
-
(a) adding, in the beginning of the file system code implementing each file system command which might change data contents of the storage device, new code for sending a command to the device driver for defining the storage device'"'"'s current data contents as a fall-back state in case of failure; and
(b) adding, at the end of the file system code implementing each file system command which might change said data contents of the storage device, new code for sending a command to the device driver for defining the storage device'"'"'s current data contents as a fall-back state in case of failure;
wherein, for each said file system command which might change said data contents of the storage device, if a failure occurs after said command to the device driver of step (a) is sent to the device driver but before said sending to the device driver of said command to the device driver of step (b) is completed, the device driver rolls back the effects of said each file system command which might change data contents of the storage device and returns the storage device to contain said data contents defined as a fall-back state by said command to the device driver of step (a); and wherein, for each said file system command which might change said data contents of the storage device, the device driver identifies data associated with said each file system command which might change said data contents of the storage device, by associating a ruggedness field with each physical block and detecting changes in the value of said ruggedness field along chains of physical blocks associated with the driver'"'"'s virtual blocks, such that all new data is in blocks which are positioned after points of said changes.
-
-
21. A method for a software application to write or otherwise change data on a non-volatile storage device, where the storage device is supported by a ruggedized block device driver and a file system, so as to provide ruggedized operation of the application, the method comprising the steps of:
-
(a) sending a command to the device driver for defining the storage device'"'"'s current data contents as a fall-back state in case of failure;
(b) sending a sequence of at least one command to the file system, each said command potentially changing said data contents of the device; and
(c) sending a command to the device driver for defining the resulting data contents of the storage device as a new fall-back state in case of failure;
wherein if a failure occurs after step (a) but before the completion of step (c), the device driver rolls back the effects of all said commands issued in step (b) and returns the storage device to contain said data contents defined as a fall-back state in step (a); and wherein the device driver identifies data associated with said at least one command conducted after establishing said fall-back state, by associating a ruggedness field with each physical block and detecting changes in the value of said ruggedness field along chains of physical blocks associated with the driver'"'"'s virtual blocks, such that all new data is in blocks which are positioned after points of said changes.
-
-
22. A method for converting an existing non-ruggedized application using a non-volatile storage device supported by a ruggedized block device driver and a file system, into a ruggedized application, the method comprising the steps of:
-
(a) adding, before code sending any sequence of commands to the file system which might change the file system'"'"'s data contents, new code for sending a command to the device driver, which defines current data contents of the storage device as a fall-back state in case of failure; and
(b) adding, after said code sending any sequence of commands to the file system which might change the file system'"'"'s data contents, new code for sending a command to the device driver, which defines current data contents of the storage device as a fall-back state in case of failure;
wherein, for each said code sending any sequence of commands to the file system which might change the file system'"'"'s data contents, if a failure occurs after said command to the device driver of step (a) is sent to the device driver but before said sending to the device driver of said command to the device driver of step (b) is completed, the device driver rolls back the effects of said each code sending any sequence of commands to the file system which might change the file system'"'"'s data contents and returns the storage device to contain said data contents defined as a fall-back state by said command to the device driver of step (a); and wherein, for each said code sending any sequence of commands to the file system which might change the file system'"'"'s data contents, the device driver identifies data associated with said each code sending any sequence of commands to the file system which might change the file system'"'"'s data contents, by associating a ruggedness field with each physical block and detecting changes in the value of said ruggedness field along chains of physical blocks associated with the driver'"'"'s virtual blocks, such that all new data is in blocks which are positioned after points of said changes.
-
-
23. A system providing ruggedized operation of a non-volatile storage device, comprising:
-
(a) physical non-volatile storage media; and
(b) a software block device driver which is ruggedized by itself, independently of a file system or other software application using it;
wherein said device driver identifies the data associated with new operations conducted after establishing a fall-back state, by associating a ruggedness field with each physical block and detecting changes in the value of said ruggedness field along the chains of physical blocks associated with the driver'"'"'s virtual blocks, such that all new data is in blocks which are positioned after said points of change.
-
-
24. A system providing ruggedized operation of a file system on a non-volatile storage device, comprising the following:
-
(a) physical non-volatile storage media;
(b) a software block device driver for operating said storage media, said device driver being ruggedized by itself, independently of the file system or other software applications using it; and
(c) a ruggedized file system wherein ruggedness of said file system is achieved by using the ruggedized features of said block device driver;
wherein said device driver identifies the data associated with new operations conducted after establishing a fall-back state, by associating a ruggedness field with each physical block and detecting changes in the value of said ruggedness field along the chains of physical blocks associated with the driver'"'"'s virtual blocks, such that all new data is in blocks which are positioned after said points of change.
-
-
25. A system providing ruggedized operation of a software application on a non-volatile storage device, comprising the following:
-
(a) physical non-volatile storage media;
(b) a software block device driver for operating said storage media, said device driver being ruggedized by itself, independently of the file system or other software applications using it;
(c) a file system; and
(d) a software application, such that ruggedness of said application is achieved by using ruggedized features of said block device driver wherein said device driver identifies the data associated with new operations conducted after establishing a fall-back state, by associating a ruggedness field with each physical block and detecting changes in the value of said ruggedness field along the chains of physical blocks associated with the driver'"'"'s virtual blocks, such that all new data is in blocks which are positioned after said points of change.
-
-
26. A method for writing or otherwise changing data in a non-volatile storage device supported by a block device driver so as to provide ruggedized operation, the method comprising the steps of:
-
(a) sending a command to the device driver for defining current data contents of the storage device as a fall-back state in case of failure;
(b) sending a sequence of one or more commands to the device driver, each command potentially changing the data contents of the device; and
(c) sending a command to the device driver for defining the resulting data contents of the storage device as a new fall-back state in case of failure;
wherein if a failure occurs after step (a) but before the completion of step (c), the device driver rolls back the effects of all said commands issued in step (b) and returns the storage device to contain said data contents defined as a fall-back state in step (a); and wherein the device driver identifies data associated with said commands conducted after establishing said fall-back state, by associating a generation field with each physical block and maintaining a global generation state, such that all new data is in blocks whose generation field equals said global generation value.
-
-
27. A method for writing or otherwise changing data in a unit-based non-volatile storage device supported by a block device driver so as to provide ruggedized operation, the method comprising the steps of:
-
(a) sending a command to the device driver for defining current data contents of the storage device as a fall-back state in case of failure;
(b) sending a sequence of one or more commands to the device driver, each command potentially changing the data contents of the device; and
(c) sending a command to the device driver for defining the resulting data contents of the storage device as a new fall-back state in case of failure;
wherein if a failure occurs after step (a) but before the completion of step (c), the device driver rolls back the effects of all said commands issued in step (b) and returns the storage device to contain said data contents defined as a fall-back state in step (a); and wherein the device driver identifies data associated with said commands conducted after establishing said fall-back state, by associating a generation field with each physical block and maintaining a global generation state, such that all new data is in blocks whose generation field equals said global generation value.
-
-
28. A method for converting an existing non-ruggedized file system on a non-volatile storage device supported by a ruggedized block device driver, into a ruggedized file system, the method comprising the steps of:
-
(a) adding, in the beginning of the file system code implementing each file system command which might change data contents of the storage device, new code for sending a command to the device driver for defining the storage device'"'"'s current data contents as a fall-back state in case of failure; and
(b) adding, at the end of the file system code implementing each file system command which might change said data contents of the storage device, new code for sending a command to the device driver for defining the storage device'"'"'s current data contents as a fall-back state in case of failure;
wherein, for each said file system command which might change said data contents of the storage device, if a failure occurs after said command to the device driver of step (a) is sent to the device driver but before said sending to the device driver of said command to the device driver of step (b) is completed, the device driver rolls back the effects of said each file system command which might change data contents of the storage device and returns the storage device to contain said data contents defined as a fall-back state by said command to the device driver of step (a) and wherein, for each said file system command which might change said data contents of the storage device, the device driver identifies data associated with said each file system command which might change said data contents of the storage device, by associating a generation field with each physical block and maintaining a global generation state, such that all new data is in blocks whose generation field equals said global generation value.
-
-
29. A method for a software application to write or otherwise change data on a non-volatile storage device, where the storage device is supported by a ruggedized block device driver and a file system, so as to provide ruggedized operation of the application, the method comprising the steps of:
-
(a) sending a command to the device driver for defining the storage device'"'"'s current data contents as a fall-back state in case of failure;
(b) sending a sequence of at least one command to the file system, each said command potentially changing said data contents of the device; and
(c) sending a command to the device driver for defining the resulting data contents of the storage device as a new fall-back state in case of failure;
wherein if a failure occurs after step (a) but before the completion of step (c), the device driver rolls back the effects of all said commands issued in step (b) and returns the storage device to contain said data contents defined as a fall-back state in step (a); and wherein the device driver identifies data associated with said commands conducted after establishing said fall-back state, by associating a generation field with each physical block and maintaining a global generation state, such that all new data is in blocks whose generation field equals said global generation value.
-
-
30. A method for converting an existing non-ruggedized application using a non-volatile storage device supported by a ruggedized block device driver and a file system, into a ruggedized application, the method comprising the steps of:
-
(a) adding, before code sending any sequence of commands to the file system which might change the file system'"'"'s data contents, new code for sending a command to the device driver, which defines current data contents of the storage device as a fall-back state in case of failure; and
(b) adding, after said code sending any sequence of commands to the file system which might change the file system'"'"'s data contents, new code for sending a command to the device driver, which defines current data contents of the storage device as a fall-back state in case of failure;
wherein, for each said code sending any sequence of commands to the file system which might change the file system'"'"'s data contents, if a failure occurs after said command to the device driver of step (a) is sent to the device driver but before said sending to the device driver of said command to the device driver of step (b) is completed, the device driver rolls back the effects of said each code sending any sequence of commands to the file system which might change the file system'"'"'s data contents and returns the storage device to contain said data contents defined as a fall-back state by said command to the device driver of step (a); and wherein, for each said code sending any sequence of commands to the file system which might change the file system'"'"'s data contents, the device driver identifies data associated with said each code sending any sequence of commands to the file system which might change the file system'"'"'s data contents, by associating a generation field with each physical block and maintaining a global generation state, such that all new data is in blocks whose generation field equals said global generation value.
-
-
31. A system providing ruggedized operation of a non-volatile storage device, comprising:
-
(a) physical non-volatile storage media; and
(b) a software block device driver which is ruggedized by itself, independently of a file system or other software application using it;
wherein said device driver identifies the data associated with new operations conducted after establishing a fall-back state, by associating a generation field with each physical block and maintaining a global generation state, such that all new data is in blocks whose generation field equals the global generation value.
-
-
32. A system providing ruggedized operation of a file system on a non-volatile storage device, comprising the following:
-
(a) physical non-volatile storage media;
(b) a software block device driver for operating said storage media, said device driver being ruggedized by itself, independently of the file system or other software applications using it; and
(c) a ruggedized file system wherein ruggedness of said file system is achieved by using the ruggedized features of said block device driver, wherein said device driver identifies the data associated with new operations conducted after establishing a fall-back state, by associating a generation field with each physical block and maintaining a global generation state, such that all new data is in blocks whose generation field equals the global generation value.
-
-
33. A system providing ruggedized operation of a software application on a non-volatile storage device, comprising the following:
-
(a) physical non-volatile storage media;
(b) a software block device driver for operating said storage media, said device driver being ruggedized by itself, independently of the file system or other software applications using it;
(c) a file system; and
(d) a software application, such that ruggedness of said application is achieved by using ruggedized features of said block device driver, wherein said device driver identifies the data associated with new operations conducted after establishing a fall-back state, by associating a generation field with each physical block and maintaining a global generation state, such that all new data is in blocks whose generation field equals the global generation value.
-
-
34. A method for writing or otherwise changing data in a non-volatile storage device supported by a block device driver so as to provide ruggedized operation, the method comprising the steps of:
-
(a) adding, to the device driver, only;
(i) a first command for defining current data contents of the storage device as a fall-back state in case of failure, and (ii) a second command for defining current data contents of the storage device as a new consistent state;
(b) sending said first command to the device driver;
(c) sending to the device driver a sequence of one or more commands that potentially change the data contents of the device; and
(d) sending said second command to the device driver. - View Dependent Claims (35, 36, 37, 38, 39)
-
-
40. A method for writing or otherwise changing data in a unit-based non-volatile storage device supported by a block device driver so as to provide ruggedized operation, the method comprising the steps of:
-
(a) adding, to the device driver, only;
(i) a first command for defining current data contents of the storage device as a fall-back state in case of failure, and (ii) a second command for defining current data contents of the storage device as a new consistent state;
(b) sending said first command to the device driver;
(c) sending to the device driver a sequence of one or more commands that potentially change the data contents of the device; and
(d) sending said second command to the device driver. - View Dependent Claims (41, 42, 43, 44, 45)
-
-
46. A method for enabling a file system to write or otherwise change data in a non-volatile storage device supported by a block device driver, so as to provide ruggedized operation of the file system, the method comprising the steps of:
-
(a) adding, to the device driver, only;
(i) a first command for defining current data contents of the storage device as a fall-back state in case of failure, and (ii) a second command for defining current data contents of the storage device as a new consistent state;
(b) optionally examining each command received by the file system, for determining whether said command should be protected from failures; and
(c) for each said command determined to be protected from failures;
(i) sending said first command to said device driver, by the file system;
(ii) performing said command received by said file system according to algorithms of said file system, thereby generating a sequence of at least one command to said device driver that potentially changes the data content of the device; and
(iii) sending said second command to the device driver, by the file system. - View Dependent Claims (47)
-
-
48. A method for converting an existing non-ruggedized file system on a non-volatile storage device supported by a block device driver, into a ruggedized file system, the method comprising the steps of:
-
(a) adding, to the device driver, only;
(i) a first command for defining current data contents of the storage device as a fall-back state in case of failure, and (ii) a second command for defining current data contents of the storage device as a new consistent state;
(b) adding, in the beginning of the file system code implementing each file system command which might change data contents of the storage device, new code for sending said first command to the device driver; and
(c) adding, at the end of the file system code implementing each file system command which might change said data contents of the storage device, new code for sending said second command to the device driver. - View Dependent Claims (49)
-
-
50. A method for a software application to write or otherwise change data on a non-volatile storage device, where the storage device is supported by a block device driver and a file system, so as to provide ruggedized operation of the application, the method comprising the steps of:
-
(a) adding, to the the device driver, only;
(i) a first command for defining current data contents of the storage device as a fall-back state in case of failure, and (ii) a second command for defining current data contents of the storage device as a new consistent state;
(b) sending, by the software application, said first command to the device driver;
(c) sending, by the software application, a sequence of at least one command to the file system, each said command potentially changing said data contents of the device; and
(d) sending, by the software application, said second command to the device driver.
-
-
51. A method for converting an existing non-ruggedized application using a non-volatile storage device supported by a block device driver and a file system, into a ruggedized application, the method comprising the steps of:
-
(a) adding, to the the device driver, only;
(i) a first command for defining current data contents of the storage device as a fall-back state in case of failure, and (ii) a second command for defining current data contents of the storage device as a new consistent state;
(b) adding, before code sending any sequence of commands to the file system which might change the file system'"'"'s data contents, new code for sending said first command to the device driver; and
(c) adding, after said code sending any sequence of commands to the file system which might change the file system'"'"'s data contents, new code for sending said second command to the device driver.
-
-
52. A system providing ruggedized operation of a non-volatile storage device, comprising:
-
(a) physical non-volatile storage media; and
(b) a software block device driver which is ruggedized by itself, independently of a file system or other software application using it, by supporting a set of commands that includes only;
(i) a first command for defining current data contents of the storage media as a fall-back state in case of failure, (ii) a second command for defining current data contents of the storage media as a new consistent state, and (iii) commands supported by a corresponding non-ruggedized software block device driver. - View Dependent Claims (53, 54, 55, 56, 57)
-
-
58. A system providing ruggedized operation of a file system on a non-volatile storage device, comprising the following:
-
(a) physical non-volatile storage media;
(b) a software block device driver for operating said storage media, said device driver being ruggedized by itself, independently of the file system or other software applications using it, by supporting a set of commands that includes only;
(i) a first command for defining current data contents of the storage media as a fall-back state in case of failure, (ii) a second command for defining current data contents of the storage media as a new consistent state, and (iii) commands supported by a corresponding non-ruggedized software block device driver, and (c) a ruggedized file system wherein ruggedness of said file system is achieved by using the ruggedized features of said block device driver. - View Dependent Claims (59, 60)
-
-
61. A system providing ruggedized operation of a software application on a non-volatile storage device, comprising the following:
-
(a) physical non-volatile storage media;
(b) a software block device driver for operating said storage media, said device driver being ruggedized by itself, independently of the file system or other software applications using it by supporting a set of commands that includes only;
(i) a first command for defining current data contents of the storage media as a fall-back state in case of failure, (ii) a second command for defining current data contents of the storage media as a new consistent state, and (iii) commands supported by a corresponding non-ruggedized software block device driver;
(c) a file system; and
(d) a software application, such that ruggedness of said application is achieved by using ruggedized features of said block device driver.
-
Specification