Virtual machine (VM) is an imitation of a computer system which is based on computer architectures and behave like a separate computer systems, complete with virtual hardware devices. It provide same functionality as a physical computer. Virtual machines software include virtual desktop infrastructure, application runtime, and backup software systems. Virtual machines are computer files that run on a physical computer.
A virtual machine is known as a guest, created within a computing environment, called a host. Multiple virtual machines can exist in one host at one time. Virtualized servers, applications, and other machines are leveraged by users for scalable and versatile functionality. The computer software that creates and runs the virtual machine is known as Hypervisor. Some VMs are designed to compete different architectures and allow execution of software applications and OS written for another CPU or architecture.
A virtual machine is an efficient, isolated duplicate of a real computer machine. It has no direct correspondence to any real hardware. Virtual machines provides many advantages for operating system development and include improved debugging access and faster reboots.
Virtual machine is created to perform specific tasks that are risky to perform in a host environment, such as accessing virus-infected data and testing operating systems. It can also be used for other purposes such as server virtualization. IT personnel use virtual machines to try out new programs or operating systems, create virtual disk images, and create database servers in the cloud. A number of free or open-source virtualization technologies are available today, enabling companies to save money.
Cloud-Based virtual machines run on a computer that is accessed from the Internet. The virtual machine is controlled through a web browser or a remote access utility. Cloud-based VMs can test software deployments and they even can test on dozens of machines without hosting the VMs locally.
Types of Virtual machine
Virtual machines come in two forms: process virtual machines and system virtual machines, each with different functions.
Process virtual machines – Process virtual machine are also called as an application virtual machine (AVR) or Managed Runtime Environment (MRE) that runs as a normal application inside a host OS and supports a single process. Process VMs can execute computer programs in a platform-independent programming environment. This covers the information of the underlying hardware or operating system and allows the program to be executed in the same fashion on any platform. It provides a high-level abstraction such as high-level programming language. Process VMs are implemented using an interpreter and performance comparable to compiled programming languages can be achieved by the use of just-in-time compilation. Process VMs became popular with the Java programming language and it can be implemented using the Java virtual machine
System virtual machines – System virtual machines are also called as full virtualization virtual machines. System VMs can support the sharing of a host computer’s physical resources between multiple virtual machines, each running with its own copy of the OS. It provides a substitute for a real machine and functionality needed to execute entire operating systems. The virtualization technique is provided by the hypervisor, which can run either on bare hardware or on top of an operating system. Hardware resources are shared and managed, making multiple environments on the host system. These environments are isolated from each other but exist on the same physical host. The memory over commitment systems can be applied for memory sharing between different virtual machines on one computer operating system. Memory pages having identical content can be shared among multiple virtual machines present on the same physical host. This is useful for read-only pages.
Benefits of Virtual machine
- Virtual machines are easy to manage and maintain. It offers an application provisioning and disaster recovery options.
- Virtual machines can be moved from one server to another for maintenance purposes even while running.
- VM provide software compatibility to the software running on it. All the software written for the virtualized host will also run on the virtual machine.
- VM provides an isolation between different types of operating systems and processes. Hence, the processor OS running on one virtual machine cannot modify the processes of the other virtual machines and Host system.
- With cloud computing, it is easy to deploy multiple copies of the same virtual machine to better serve.
- Virtual machines allow for reduced overhead with multiple systems operating from the same console at the same time. It offers a safety net for your data, as they can be used to enable rapid disaster recovery and automatic backups.
- VMs can be relocated among the physical computers in a network. This makes it possible to allocate workloads to servers that have spare computing power.
- Virtual machines can run a complete software stack of the host machine and run legacy operating system. It offer an instruction set architecture that differs from real computers.
- Creating a virtual machine is easier and faster than installing an OS on a physical server because the user can clone a VM with the OS already installed.
Disadvantages of Virtual Machines
- Running multiple virtual machines simultaneously on one physical computer or on a host computer, each virtual machine can deliver unstable performance which depends on the workload on the system by other running virtual machines
- Virtual machines are less efficient and run slower than a physical computer when accessing the hardware.
- Virtual machines are not as effective as a physical computer because the hardware resources are distributed in an indirect way
- Virtual machines struggles to provide full and reliable connecting serial devices to the virtual environment.
- The appliances can be accessed from the virtual machine sometimes may not function properly.
Features of Virtual machine
- Virtual machines provides an easy maintenance, application provisioning, availability and convenient recovery.
- Virtual machines allows multiple operating system environments on a single physical computer, isolated from each other without any intervention
- As multiple VMs run on a single physical computer, the customer doesn’t need to buy a new server every time they want to run another OS. They can get more return from each piece of hardware they already own.
- Virtual machines can be created or replicated very speedily by cloning it with an operating system already installed instead a new OS on a physical server.
- Best Virtual machines Software offers encapsulation and the software present on a virtual machine can be modified and controlled.
- Virtual machines can move between on-premises and cloud environments, making it useful for hybrid cloud premises in which you share computing resources between your data center and a cloud service provider.
- VM for multi-operating system host provides no dual booting, transfer of files between VMs, error in one OS doesn’t affect the other OS present on the host, freash OS can be added easily, etc.
- Virtual machine is a file that can be scanned for malicious software by an external program. The user can create an entire snapshot of the VM at any point in time and restore it to that state if it becomes infected with malware.
Things to consider while selecting a virtual machine service provider –
- Ensure 24/7 customer support by phone, email, chat or walk away in critical IT situations with additional services for more hands-on backing.
- The cloud provider should offer both managed and unmanaged solutions and they will be responsible for setup, maintenance and ongoing performance monitoring.
- A cloud provider should keep your virtual machines up and running in the face of unexpected events. They should provide add-on backup and redundancy options for your virtualized environment.
- Virtual machine should have up-to-date infrastructure including dependable bare metal servers, modern data centers, and the network backbone. The service provider can deliver highest degree of hardware and high-speed networking technology.
- Virtual machine provider should deliver varied configuration packages for both single and multi-tenant requirements. They should know that not every virtual machine configuration fits to every workload during every season of usage.
The use of virtual machine comes with many important management considerations which can be addressed through general system administration best practices and tools that are designed to manage VMs. It involves some risks to consolidation such as overtaxing resources or potentially experiencing outages on multiple VMs due to one physical hardware outage. These cost saving hardware platform also add some risks. You can place hundreds of virtual machines on the same hardware, but if the hardware platform fails, it can take out hundreds of virtual machines.