Generally, the present invention relates to computing devices and environments involving file systems and virtual machines. Particularly, although not exclusively, it relates to a sectioned or bifurcated file system in a virtual environment that provides protection from unexpected corruption and convenient restoration for the virtual machines. Other features contemplate actual configurations and computer program products, to name a few.
As presently exists, physical servers provide a myriad of services and most interact with a remote backup server to provide restoration services in the event of server failure. However, just as servers have a diversity of services, they also have a diversity of configuration, such as in their operating system, hardware device drivers, storage interfaces, file systems, applications, etc. Since backup is tightly correlated to these configurations, there are multiple products that serve to assist in backup. In that each is essentially configured to match the server's configuration, they do not transfer well to other servers having vastly different operating systems, storage interfaces, file systems, applications, etc.
With the advent of virtual computing devices, the foregoing complexity is only compounded because many virtual machines can be guested on a single hardware platform, including each with its own operating system, drivers, interfaces, applications, etc. In turn, conventional image snapshots are needed for each and every virtual machine to support backup and restoration according to the state of all the machines at any given point in time. The time must also be “early enough” to be interesting for each machine according to any number of reasons. For this, there are many incremental snapshot and back up algorithms available in the marketplace. However, there are shortcomings with each. For instance, restoring a complete file system for virtual machines makes for a time-consuming process, and exposes features to corruption that are otherwise unnecessary to restoration, (e.g., other virtual machines, the host domain (Dom0), baseline information, etc.).
Accordingly, a need exists in the art of computing backup and restoration for more convenient processes. In a computing environment of a multiple virtual machines per a single computing device, the need further extends to processes that can effectively isolate machines from one another and from unwanted exposure during restoration. Naturally, any improvements along such lines should further contemplate good engineering practices, such as ease of implementation, unobtrusiveness, stability, etc.
The foregoing and other problems become solved by applying the principles and teachings associated with the hereinafter-described virtual machine file system and incremental snapshots via image deltas. At a high level, methods and apparatus involve the configuration of virtual machines on a hardware platform. A file system includes both a writable portion and a read-only portion whose union provides the entire file system for each virtual machine. In content, the read-only portion contains substantially immutable information such as core basic system image, while the writable portion contains configuration information, state data and production information, which updates or changes over time according to the usage of each virtual machine. In this manner, the writable portion can be updated for file, data, or other changes per each virtual machine, while the baseline read-only portion (which does not require any file, data or other updates) can be left in a consistent state and in a protected, or non-volatile location. Then, upon a failure event needing the restoration of a virtual machine, for example, only the writable portion needs restoration, not the read-only portion. Consequently, the read-only portion is protected from unexpected corruption, and since only the writable portion needs restoration, quicker and more convenient image restorations result per each virtual machine.
In hardware, a processor, memory and available storage exists for a physical platform, as is typical per virtual machine configuration, and the resources are allocated and controlled for conflicts via a virtual machine manager, such as a hypervisor. Preferably, but not required, the storage is partitioned to define each virtual machine's space, and its corresponding writable portion is embodied therein, including the management of the file system changes. A union of both the read-only and writable portion of the file system is generated by system boot code and is useful in providing accurate, incremental image snapshots to its corresponding virtual machine.
Executable instructions loaded on one or more computing devices for undertaking or assisting in the foregoing are also contemplated as are computer program products, available as a download or on a computer readable medium, having the executable instructions. The computer program products are also available for installation on a network appliance, individual computing devices, etc.
These and other embodiments of the present invention will be set forth in the description which follows, and in part will become apparent to those of ordinary skill in the art by reference to the following description of the invention and referenced drawings or by practice of the invention. The claims, however, indicate the particularities of the invention.
The accompanying drawings incorporated in and forming a part of the specification, illustrate several aspects of the present invention, and together with the description serve to explain the principles of the invention. In the drawings:
In the following detailed description of the illustrated embodiments, reference is made to the accompanying drawings that form a part hereof, and in which is shown by way of illustration, specific embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention and like numerals represent like details in the various figures. Also, it is to be understood that other embodiments may be utilized and that process, mechanical, electrical, arrangement, software and/or other changes may be made without departing from the scope of the present invention. In accordance with the present invention, methods and apparatus are hereinafter described for a virtual machine file system and incremental snapshots via image deltas.
With reference to
In this manner, the writable portion can be updated for file, data, or other changes per each virtual machine, while the read-only portion (which does not require any file, data or other updates) can provide a baseline of information for each virtual machine and be maintained in a consistent state in a protected location. Then, during use, such as upon a failure event needing the restoration of one of the virtual machines, for example, only the writable portion for the failed virtual machine needs restoration, not the read-only portion, and not the writable portions for the other virtual machines. Ultimately, the read-only portion is protected from unexpected corruption, and since only a writable portion needs restoration, quicker and more convenient image restorations result per each virtual machine. No longer is a monolithic file system required for the environment 100, which would be otherwise slower during restoration and, as before, exposes features to corruption that otherwise are unnecessary to the restoration process.
With reference to
To manage the file system, now in two parts, traditional techniques are contemplated. That is, the file system 200 still provides storage and organization of computer files per virtual machines to make it easier to later find and access them for restoration or other purposes. Alternatively, skilled artisans may consider the file system a special purpose computing device, such as a database, whereby data is stored, organized, navigated, accessed, retrieved, etc.
As such, the file system may further include directories to associate file names with files and may connect the names to an index in a file allocation table, such as FAT in DOS, or an inode in Unix. Directories may be organized in a variety of traditional or novel ways, such as in a hierarchy, in series, scale-free, etc. Sub-directories may also exist and names in either may have special syntax, extensions, version numbers, etc. File tags, or other devices, can be used and such representatively include: a length of data in a file (which can be stored as blocks, bytes, etc.); a time/timestamp that the file was last modified; a file's creation time; a file's last accessed time; a time that meta data in the file was changed; a file's type; a file's owner; and/or various access permissions, control lists, etc.
Returning to
In configuration, the architecture of virtual machines can include a multiplicity of domains (dom0, domU-1 . . . domU-n) and a variety ofoperating systems (Host OS or Guest OS) (e.g., Linux, Windows, Netware, Unix, etc.). In turn, each can be configured on the hardware platform, with an intervening virtual machine monitor, such as a Xen or other hypervisor layer. Further, the hardware platform 120 embodies physical I/O and platform devices, memory and a processor, such as a CPU, Disk, USB, etc., while the hypervisor (which is the virtual interface to the hardware and virtualizes the hardware), is the lowest and most privileged layer and manages conflicts, for example, caused by operating system access to privileged machine instructions. The hypervisor can also be type 1 (native) or type 2 (hosted), and skilled artisans understand the terminology.
In addition, the pDISTRO is typically functionally configured specifically for the hardware platform and used to deploy physical machine specific hypervisors with drivers, agents, sound cards, etc., needed by specific hardware vendors. The virtual distribution, or vDISTRO, is used to deploy the virtual machines on the physical server and can move application stacks between them in real-time.
With reference to
In any embodiment, skilled artisans will appreciate that enterprises can implement some or all of the foregoing with humans, such as system administrators, computing devices, executable code, or combinations thereof. In turn, methods and apparatus of the invention further contemplate computer executable instructions, e.g., code or software, as part of computer program products on readable media, e.g., disks for insertion in a drive of computing device, or available as downloads or direct use from an upstream computing device. When described in the context of such computer program products, it is denoted that components thereof, such as modules, routines, programs, objects, data structures, etc., perform particular tasks or implement particular abstract data types within various structures of the computing system which cause a certain function or group of function, and such are well known in the art.
Although the foregoing has been described in terms of specific embodiments, one of ordinary skill in the art will recognize that additional embodiments are possible without departing from the teachings of the present invention. This detailed description, therefore, and particularly the specific details of the exemplary embodiments disclosed, is given primarily for clarity of understanding, and no unnecessary limitations are to be implied, for modifications will become evident to those skilled in the art upon reading this disclosure and may be made without departing from the spirit or scope of the invention. Relatively apparent modifications, of course, include combining the various features of one or more figures with the features of one or more of other figures.