In the drawings, which illustrate what is currently considered to be the best mode for carrying out the invention:
As used herein, the term “data storage device” includes hard drives, as well as other data storage means including semiconductor non-volatile storage such as “Flash” memory devices, magnetic storage means as well as optical storage means that function as a server of sectors.
In one or more embodiments of the present invention, a method for dividing a single data storage device into two or more separate Host Access Spaces (HAS), only one of which can be visible to an attached host device at any given time, is described. During a reset operation, a different Host Access Space (HAS) could be made active or visible thus giving the appearance to the host device that the data storage device or hard drive unit had been replaced with an entirely different data storage device or hard drive. The non-active Host Access Spaces (HASs) are completely protected from any data read or data write operations initiated by the host device. If the Host Access Spaces (HASs) are divided along physical disk platter boundaries, each non-active Host Access Space (HAS) can be used to store a complete backup of all data in the active Host Access Space (HAS). Backup operations can be performed completely within the data storage device or hard drive unit while the data storage device or hard drive unit continues to service data read and data write requests from the host device. A restore operation can be performed as quickly as the data storage device or hard drive can be reset.
The present invention may be embodied in a method wherein a single physical data storage device or hard drive can divide its total storage space into two or more distinct logical storage spaces for the purpose of separating those spaces from access by a host device. Each of these logical storage spaces is called a Host Access Space (HAS). A host device may only be given access to a single Host Access Space at one time. This will effectively “hide” the other Host Access Spaces from the host device's view. These hidden spaces are protected from any software running on the host device including low level division and formatting software.
Various reset options are contemplated. By way of example and not limitation, the reset operation may be accomplished by disconnecting and reconnecting the disk drive 700 from the host device 200′, turning the host device 200′ off and then back on, or by rebooting or otherwise resetting the host device 200′, and may further include other authorization options such as requiring a user to enter a passkey or biometric measurement to complete the selection of the next visible Host Access Space (HAS) 600 automatically. If the passkey or biometric measurement matches a Host Access Space (HAS) designation, the data storage device or hard drive 700 would automatically select that specific Host Access Space (HAS) 600 as being visible to the host device 200′. Likewise, a Host Access Space (HAS) 600 could be matched to an identifier sent by the host device 200′ when the data storage device or hard drive is attached or reset. Accordingly, to the host device 200′, the reset or reconfiguration process appears as if the data storage device or hard drive 700 had been physically replaced by a completely different data storage device or hard drive 700.
When the configured data storage device or hard drive 700 (
In order for host device 200′ to access another Host Access Space (HAS) 600, the other Host Access Space (HAS) 600 would need to be set as the next active Host Access Space (HAS) 600 and then the data storage device or hard drive 700 would need to be reset. Such a reconfiguration appears to the host device 200′ as if, for example, the user had unplugged the current data storage device or hard drive and replaced it with a completely different data storage device or hard drive. To set another Host Access Space (HAS) as active, the user could select the next Host Access Space (HAS) from, for example, a menu in special software program 704 running on the host device 200′, or physically select it by means of switch 702, such as a mechanical device, knob or keypad configured as part of data storage device or hard drive 700. Additionally, the reset operation could be accomplished by power-cycling the host device 200′ or by disconnecting and then reconnecting the data storage device or hard drive 700 with host device 200′.
In another embodiment, a specific Host Access Space (HAS) may also be automatically set as the active Host Access Space (HAS) during initialization of the data storage device or hard drive 700 by the host device 200′. For example, such a setting of a specific Host Access Space (HAS) may be accomplished if the host device 200′ sent an identifier 716 to the data storage device or hard drive 700 that matched one of the pre-configured Host Access Spaces (HASs) 600. In yet another embodiment, a passkey or biometric measurement 718 could also be passed to the data storage device or hard drive 700 during initialization that matched a particular Host Access Space (HAS) 600.
By way of example and not limitation, a data storage device or hard drive 700 could be attached to a host device 200′, such as a computer, shared by several different users. An administrator could configure the data storage device or hard drive 700 to have a corresponding number of different Host Access Spaces (HASs) 600 corresponding to each user. When a specific user turned on the host device 200′ (e.g., computer), the user could enter a passkey or a biometric measurement (e.g., fingerprint) causing the host device 200′ to initialize to a corresponding Host Access Space 600 and allow access to the data in the user's specific Host Access Space (HAS) and prevent access to Host Access Spaces (HASs) that belong to others. In fact, the various embodiments of the present invention preclude the host device 200′ from recognizing the existence of other Host Access Spaces (HASs) 600.
The plurality of Host Access Spaces (HASs) 600 may be divided within storage space 710 according to various boundaries.
In an embodiment of the present invention as further illustrated with respect to
A synchronize or backup process 726 running on the host device would be used to send commands to the transfer process 722 on data storage device or hard drive 700 to synchronize the data between two or more Host Access Spaces (HASs). Transferring data from one Host Access Space (HAS) to another without requiring host device intervention allows the data storage device or hard drive to perform instant “snapshot” backup operations and near instantaneous restore operations. Furthermore, the data storage device or hard drive 700 may also continue handling read and write requests from the host device while performing backup and restore operations in the background.
In another embodiment of the present invention as illustrated with respect of
In either case, the data transfers happen within the data storage device or hard drive 700. The data does not need to be sent to or through the host device 200′. Furthermore, the active Host Access Space (HAS) 600 may continue to service data requests from the host device 200′ while the backup or restore data transfers are being done in the background. Additionally, the data storage device or hard drive may also monitor which tracks have been modified and keep a record of which tracks are different between any two Host Access Spaces (HASs) 600. Using this technique, only different tracks need to be transferred during either a backup or restore operation.
In one application, one or more embodiments of the present invention may be attached to a host device 200′ such as a family computer shared by various members of a family. A parent could set up the data storage device or hard drive 700 to include separate Host Access Spaces (HASs) for the parent and children. A child's Host Access Space (HAS) 600 may have a lesser suite of applications, an example of which would not include Internet access software or have printer drivers enabled. In such a representative application, a child could turn on the host device (e.g., computer) and play their computer games or do homework but not have access to Internet access software. Accordingly, the parent, for example, would not need to worry about the children surfing the Internet, printing out 1000 pages on the laser printer, or accidentally deleting the family bookkeeping files. Alternatively, if the parent had enabled Internet access for the children, the family documents stored in other Host Access Spaces (HASs) would be safe from any spyware the children might accidentally download.
In another application, one or more embodiments of the present invention may be attached to a host device 200′ such as a software development workstation. A data storage device or hard drive 700 could be attached to a host device 200′ (e.g., workstation) used by a single individual who, for example, tests software on a variety of operating systems. The user could configure the data storage device or hard drive to have five different Host Access Spaces (HASs) 600. The user could install a different operating system on each of the Host Access Spaces (HASs) 600 and using, for example, a switch 702 on the data storage device or hard drive 700, or by a special software program 704 running on the host device 200′, the user could boot the host device 200′ (e.g., workstation) with a different operating system each time a different Host Access Space (HAS) 600 was selected. In each case, the currently running operating system could not interfere in any way with the files stored in the Host Access Spaces (HASs) 600 of the other operating systems.
When a specific data type of host device 750-756 is coupled to data storage device or hard drive 700′, a host device type detection process 740 recognizes the specific data type device and selects the corresponding one of the Host Access Spaces (HASs) 600′-600″″ that corresponds to the detected specific type of data device. For example, when a user connects the data storage device or hard drive 700′ into an audio host device 752, the audio host device 752 sends the data storage device or hard drive 700′ an identifier (or the data storage device or hard drive otherwise identifies the host device) that matches the Host Access Space (HAS) 600′ containing music data.
Likewise, when a user connects the data storage device or hard drive 700′ to a data (e.g., computer) host device 756, the data host device 756 sends the data storage device or hard drive 700′ an identifier that matches the Host Access Space (HAS) 600″″ containing software or other computer data. Similarly, when a user connects the data storage device or hard drive 700′ to a video or television host device 750, the television host device 750 sends the data storage device or hard drive 700′ an identifier that matches the Host Access Space (HAS) 600″ containing video data. Also, when a user connects the data storage device or hard drive 700′ to an image host device 752, the image host device 752 sends the data storage device or hard drive 700′ an identifier that matches the Host Access Space (HAS) 600′″ containing photos or other image data. Alternatively, a unique identifier may be stored in each of the host devices and the data storage device or hard drive may recognize and match the unique identifier and select a specific corresponding Host Access Space (HAS). A default Host Access Space (HAS) may also be selected if a specific data type of host device is not identified. The present embodiment finds application in protecting types of data from corruption by malware or other viruses that could destroy or corrupt data if certain types of host devices are connected.