A method and apparatus is provided that provides a reliable diskless network-bootable computers using a local non-volatile memory (NVM) cache. The NVM cache is used by the computer when the network is temporarily unavailable or slow. The cache is later synchronized with a remote boot server having remote storage volumes when network conditions improve. It is determined if data is to be stored in the NVM cache or the remote storage volume. Data sent to the remote storage volume is transactionally written and the data is cached in the NVM cache if a network outage is occurring or a transaction complete message has not been received. The data stored in the NVM cache allows the user to continue operating during network outages and the computer can be cold-booted using the data in the NVM cache if the network is unavailable.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A method for reliably operating a computer operating system in a computer having a non-volatile memory (NVM) cache connected to a network having a remote storage volume comprising the steps of: receiving data from one of an application and the computer operating system; determining if the data is to be stored in either of the NVM cache or the remote storage volume; writing the data to be stored in the NVM cache to the NVM cache; transactionally writing the data to the remote storage volume if the data is to be stored in the remote storage volume; caching the data to be stored in the remote storage volume in the NVM cache if one of a network outage is occurring and a transaction complete message has not been received; transactionally writing the data cached in the NVM cache to be stored in the remote storage volume to the remote storage volume when the network is running; and determining the data, static configuration data and dynamic configuration data that is to be stored in the NYM cache prior to at least one of powering down the computer operating system and hibernating the computer operating system.
2. The method of claim 1 further comprising the step of storing data that is required by a user to continue operation during a network outage in the NVM cache.
3. The method of claim 2 further comprising the step of maintaining a history of prior use by the user.
4. The method of claim 1 wherein the step of determining the data, static configuration data and the dynamic configuration data includes the steps of: determining the data, a set of static configuration data and a set of dynamic configuration data that allows a user to continue working if a network outage occurs.
5. The method of claim 4 wherein the step of determining the data, the set of static configuration data and the set of dynamic configuration data includes at least one of determining desktop settings, determining keyboard settings, and determining the data files that were being used prior to the at least one of powering down the computer operating system and hibernating the computer operating system.
6. The method of claim 4 further comprising the step of booting from the NVM cache if the network is not available when the computer is turned on.
7. The method of claim 6 further comprising the step of synchronizing the data in the NVM cache and the remote storage volume after the network becomes available.
8. The method of claim 4 further comprising the step of booting from the NVM cache.
9. The method of claim 8 further comprising the step of checking the modification dates of data on the NYM cache and the remote storage volume and loading data from the remote storage volume that is more recent than the data in the NVM cache.
10. The method of claim 4 further comprising the step of resuming operation from hibernation using the NVM cache if the network is not available.
11. The method of claim 10 further comprising the step of updating one of the data, static configuration data and dynamic configuration data stored in the NVM cache and data, static configuration data and dynamic configuration data stored in the remote storage volume if the data, static configuration data and dynamic configuration data stored in the NVM cache and data, static configuration data and dynamic configuration data stored in the remote storage volume are not consistent.
12. The method of claim 1 further comprising the step of writing data sent from the application during power down to be sent to the remote storage volume in the NVM cache.
13. The method of claim 1 further comprising the step of retransmitting data to the remote storage volume if the transaction complete message has not been received.
14. A method for reliably operating a computer operating system in a computer having a non-volatile memory (NVM) cache connected to a network having a remote storage volume comprising the steps of: receiving data from one of an application and the computer operating system; determining if the data is to be stored in either of the NVM cache and the remote storage volume; writing the data to be stored in the NVM cache to the NVM cache; transactionally writing the data to the remote storage volume if the data is to be stored in the remote storage volume; caching the data to be stored in the remote storage volume in the NVM cache if one of a network outage is occurring and a transaction complete message has not been received; and transactionally writing the data cached in the NVM cache to be stored in the remote storage volume to the remote storage volume when the network is running; and determining if the data, static configuration data and dynamic configuration data stored in the NVM cache are consistent with data, static configuration data and dynamic configuration data stored on the remote storage volume.
15. A computer readable storage medium having a tangible component and computer executable instructions for performing the steps of reliably operating a computer operating system in a computer having a non-volatile memory (NVM) cache connected to a network having a remote storage volume, the steps comprising: receiving data from one of an application and the computer operating system; determining if the data is to be stored in either of the NVM cache or the remote storage volume; transactionally writing the data to the remote storage volume if the data is to be stored in the remote storage volume; caching the data to be stored in the remote storage volume in the NVM cache if one of a network outage is occurring and a transaction complete message has not been received; transactionally writing the data cached in the NVM cache to be stored in the remote storage volume to the remote storage volume when the network is running; and determining the data, static configuration data and dynamic configuration data that is to be stored in the NVM cache prior to at least one of powering down the computer operating system and hibernating the computer operating system.
16. The computer-readable medium of claim 15 having further computer executable instructions for performing the step comprising writing the data to be stored in the NVM cache to the NVM cache.
17. The computer-readable medium of claim 15 having further computer executable instructions for performing the step comprising storing data that is required by a user to continue operation during a network outage in the NVM cache.
18. The computer-readable medium of claim 15 having further computer executable instructions for performing the step comprising maintaining a history of prior use by the user.
19. The computer-readable medium of claim 15 wherein the step of determining the data, static configuration data and the dynamic configuration data includes the step of determining the data, a set of static configuration data and a set of dynamic configuration data that allows a user to continue working if a network outage occurs.
20. The computer-readable medium of claim 19 having further computer executable instructions for performing the steps comprising booting from the NVM cache if the network is not available when the computer is turned on.
21. The computer-readable medium of claim 19 having further computer executable instructions for performing the steps comprising resuming operation from hibernation using the NVM cache if the network is not available.
22. The computer-readable medium of claim 15 having further computer executable instructions for performing the step comprising writing data sent from the application during power down to be sent to the remote storage volume in the NVM cache.
23. The computer-readable medium of claim 15 having further computer executable instructions for performing the step comprising retransmitting data to the remote storage volume if the transaction complete message has not been received.
24. The computer-readable medium of claim 15 having further computer executable instructions for performing the step of determining if the data, static configuration data and dynamic configuration data are consistent with data, static configuration data and dynamic configuration data stored on the disk drive.
25. The computer-readable medium of claim 24 having further computer executable instructions for performing the step comprising performing one of updating the data, static configuration data and dynamic configuration data stored in the NVM cache and replicating data, static configuration data and dynamic configuration data stored on the NVM cache in the remote storage volume if the data, static configuration data and dynamic configuration data stored in the NVM cache and data, static configuration data and dynamic configuration data stored in the remote storage volume are not consistent.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
November 26, 2002
April 25, 2006
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.