Are you looking for a reliable and affordable virtual machine backup software? While there are many options to consider, there are only very few that are 100% Made in USA and still remain affordable. One of the major things to consider when buying a virtual machine backup solution is how it protects your data. Does it use open standard formats? Will there be a technological lock-in with that vendor? For example, many SaaS providers hold their customer’s data ‘hostage’ by not permitting access to the backups unless the software is being paid for, over and over again.
I want to use this opportunity here to introduce BackupChain as a smart choice. BackupChain is available as a perpetual license; this means the software will last you a lifetime. Software maintenance agreements are available for various lengths of time and may be renewed in the future as needed. The data is protected, as far as possible, using open standard file formats. This ensures easy and simple access to your backups. Therefore, unlike most other tools, BackupChain will not restrict access to your backups in any way. In addition, BackupChain’s fanatic technical support team is always there to help you set up the perfect backup system that suits your needs and your budget like no other.
Check out their Hyper-V backup solution and VMware backup solution for more details.
What is a virtual machine?
In computer science, a virtual machine (VM) is the software-technical encapsulation of a computer system within an executable computer system. The virtual machine simulates the computer architecture of a real or hypothetical computer.
The abstracting layer between the real or host computer on which the virtual machine is executed and the virtual machine is called the hypervisor or virtual machine monitor.
– purely hardware-based
– purely software-based or
– by a combination.
The hypervisor usually allows multiple virtual machines to run simultaneously on one physical machine.
Virtual machines run directly on the host computer’s CPU and usually use its virtualization features. In contrast, emulators execute purely as software, which allows them to emulate a different computer architecture than that of the host computer.
Types of virtual machines
Today, virtual machines are classified according to the extent to which they emulate the functionality of a real computer. System-based virtual machines replicate a computer so completely that operating systems designed for the real computer can be run on the virtual machine in the same way as on the corresponding real computer. This approach is also known as full virtualization. It is essentially based on the definition given by Robert Goldberg and further narrowed by Gerald Popek in 1972:
“A virtual machine is an efficient, identical, and isolated duplicate of a real processor.”
Examples of well-known products that implement virtualization using system-based virtual machines are Oracle’s VirtualBox or VMware’s vSphere.
In contrast, process-based virtual machines merely allow individual programs to run abstracted from the execution environment of a computer architecture by providing a runtime environment built on top of it. In most cases, such virtual machines are deployed on multiple computer architectures, which then allows the application to run on all these platforms without modification. Well-known examples of such environments with corresponding virtual machines are the Java runtime environment as part of the Java platform and the Common Language Runtime as part of the .NET Framework.
System-based virtual machines
The desire to be able to run multiple operating systems simultaneously on one computer was the original motivation for introducing system-based virtual machines. IBM’s CP/CMS, first released in 1966, was the first operating system to support full virtualization, allowing multiple users to each independently run their own single-user operating system simultaneously on a physical machine.
In their 1974 article Formal Requirements for Virtualizable Third Generation Architectures, Gerald J. Popek and Robert P. Goldberg laid the formal foundations and set out the basic requirements for an architecture to support virtual machines using a hypervisor.
Advantages and disadvantages of using system-based virtual machines
The use of system-based virtual machines offers several advantages over running operating systems directly on the computer:
Multiple operating systems at the same time.
Different operating systems can be run simultaneously on the same physical machine. This means that resources of the physical computer (e.g. the processor) can be better utilized, since several operating systems can share them. Different operating system versions or systems from different operating system manufacturers can also be run in parallel.
Support for different instruction sets
The virtual machine can support an instruction set architecture that differs from the physical machine. This allows operating systems to be run that would not run at all on the real hardware.
Virtual machines can also be infected by malware. In this case, however, the virtual machine can usually be deleted and rebuilt without causing long-term damage to the physical computer behind it.
Cheaper and simplified operation
In data centers in particular, a large number of systems have to be operated in parallel. By using virtual machines, there is no need to provide separate hardware for each system; instead, different systems share a very powerful platform. Since the operation of a very powerful platform is usually more economical than the operation of many smaller platforms with the (overall) same performance, the approach of virtualization for data centers is a good choice.
However, one also “buys” these advantages with some disadvantages compared to running the operating system directly on the computer:
Loss of efficiency
A virtual machine is less efficient than the real machine, since part of the performance must be used to run the hypervisor (to manage the virtual machines).
Mutual influence of simultaneously operated virtual machines
When several virtual machines are operated in parallel, separation is ensured by the hypervisor, but they share the (limited) resources of the physical computer. Since the load behavior of other virtual machines cannot be predicted and influenced for a single VM, load peaks can lead to unstable or unpredictable performance of individual or all simultaneously operated virtual machines if the hypervisor does not take separate precautions here (e.g. by guaranteeing resources for individual VMs).
New security and privacy challenges
Protection mechanisms against viruses and malware were previously implemented at the operating system level and thus protected the user. The use of hypervisors creates a new avenue of attack, namely the hypervisor itself, to execute malicious code on the machine. Therefore, new types of protection mechanisms are required beyond those known so far.
New challenges regarding the licensing of operating systems
While the licensing of an operating system used to be tied to a respective physical computer with its characteristics (e.g., number of processors, memory size), this is no longer readily possible due to virtualization. A computer no longer has to exist with the actual memory size or number of processors; instead, it may exist only virtually. This forces manufacturers and customers to deal with sometimes quite complicated licensing models. Certain manufacturers (e.g. Apple) also do not allow virtualization of their operating systems at all. However, the legal validity of this prohibition is disputed.
History of Virtual Machines
The history of process-based virtual machines began with the seminal paper Transportability of Software Applications on Microcomputers by W. Wellbourne (1983) and the preceding paper A Comparison of Pascal Intermediate Languages by P. Nelson (1979). The issue here is solving the problem of running application code developed for one computer architecture without modification on another computer architecture. Especially to keep the porting effort for applications from one architecture to another (e.g. new computer architectures) low.
Advantage and disadvantage of using process-based virtual machines
The use of process-based virtual machines has the following disadvantages:
– Running a portable program on a portable virtual machine is slower than running a program natively that has been compiled specifically for the target environment.
– Using an interpreter results in additional indirections, which is more inefficient than direct execution.
– Dynamic translation at runtime (JIT compiler) resolves most indirections and provides mostly direct execution, but the translation itself requires additional effort until the code can be executed directly (but only at the moment of translation, not on later runs).
These disadvantages can be reduced by suitable (e.g. dynamic) optimization. Another possibility is automatic compilation using an ahead-of-time compiler immediately before execution. Thus, the backend of a highly optimizing, machine-oriented compiler is executed directly on the user system. This allows the compiler to perform even more specific optimizations for the user’s system than would be possible with a precompiled program without specific optimizations for the user’s system or processor.