(Study Programme)
Abstract
Virtual machines technology is the latest technology for resource allocation in any company’s computing environment. One major benefit of virtual machine environments is the capabilities to support different operating systems on a physical computing system’s hardware and gracefully accommodate system upgrades and migrations depending on the company needs. With optimum allocation of computing resources in a computing environment, there is the need for companies to implement virtual machine technology in their computing systems. This paper explores the benefits and challenges of virtual machine technology implementation in an enterprise including the services offered by such implementation. It also indicates the computing areas where virtual machine technology best applies. In the conclusion, the paper gives recommendations for implementing virtual machines in the computing environments.
Introduction
A virtual machine is an environment usually comprising of an operating system that does not exist physically, but has creation within another environment. Virtual machines had their initial establishment in the 1960s but of late, they have experienced a revival in both commercial research and commercial environments. For instance, commercial products such as VMware and Virtual PC typically possess the capabilities of 32-bit operating systems. Such products have wide implementation in areas many areas. Example application areas include; testing the compatibility of various software applications on different types of operating systems and using Linux as a platform for running windows-based applications (Chen and Noble, 2001).
The main idea is that a virtual machine provides a stable environment for running applications that otherwise run on real machines. With the implementation of virtual machines, the only software applications that run on a real machine include; the operating system, local administration applications, virtual-machine monitor, and several additional services that support the virtualization model. Virtual machine implementation on a network service implies running of most of the network operations on the virtual machine. Virtualization is a disruptive technology that changes the prevailing circumstances of managing physical computers, conveying services, and apportioning budgets. Virtualization extends beyond the virtual machine to other virtualization technologies such as clustering. The process of clustering enables the consolidation of several physical machines in hosting a single or several virtual servers (Wolf and Halter, 2005).
Companies should invest and implement virtual machine technology systems because they provide an array of benefits such as security, easy migration and high availability, as opposed to the conventional physical computer systems. Lack of virtual systems in computing environments, especially for large companies with many users, poses a challenge in areas of system administration. Conventional physical computing environments are quite expensive due to the high overheads incurred, have lots of downtimes and management and control processes are quite cumbersome. Such is particularly evident during migration from an old system to a more modern one (Portnoy, 2012). The paper is an important attempt to promote the implementation of virtual systems for any company. By understanding the need for efficiency, security and increase of uptime in computerized systems, the managements, systems administrators and other users in general have the assurance of stable and scalable computer systems. Additionally, the paper provides recommendations for implementing virtual machine environments in the companies.
In the real sense, services provided by the virtual machine have the same benefits as services provided by the physical systems. However, there are some advantages with using virtual machines as opposed to physical machines. In a virtual machine’s architecture, the design separates the running services from all other processes including those of the operating system (Li et al., 2013). The services on a virtual machine depend on the virtual machine monitor for execution that resembles the processor in physicals systems. In the physical systems, there is no separation of the executing services and system process. As such, the executing services are prone to malicious and random faults. On the contrary, the separation of executing services and system processes in virtual machines creates an environment that is more secure and portable.
Portability ensues because implementation of the services is possible without necessitating a change in the operating system making it possible to scale across different operating systems. Security, on the other hand, results because services only depend on the virtual machine monitor that is much smaller and simpler. With a virtual machine, there is simplification of manipulations such as moving, saving, cloning and encryption. Connection between virtual systems and other computing systems is also fast compared to that of physical systems. Apart from portability and security, virtual machines also present other various useful features attributable to hardware independence. They include:
- VMotion: This is a feature salient in VMware technology. The feature facilitates migration of a virtual machine between servers with minimal or no downtime.
- Distributed resource scheduling: This is a feature that balances the resource utilization among the virtual machines infrastructure. The feature facilitates the capability of moving virtual machines between hosts for efficient operation and optimum utilization of resources.
- High availability: This feature facilitates restoration of failed states of virtual machines to other servers causing them to resume running mode within no time.
- Distributed power management: This feature helps to regulate and control power consumption during low consumption of resources by switching off servers, not in operation at any instance and concentrating virtual machine on fewer servers.
- Simplified disaster recovery: Due to hardware independence, it’s possible to easily switch to backed-up virtual machines in case of the failure of the virtual machine.
Challenges
There are always challenges involved with the implementation of any technology. Services provided by virtual machine pose two main types of challenge as follows:
- Performance
Virtualization overheads affect the performance of virtual machines. The virtual machine monitor, for instance, must intercept the system calls in a virtual machine and pass them on to the operating system. The virtual machine monitor must also intercept hardware operations distributed by the operating system, decode and then redistribute them. Since such overheads are unavoidable, services rendered by a virtual machine must prevail over the overheads in an effort to justify the implementation of virtual machines. 32-bit systems have greater overheads since some of the instructions that require virtualization do not undergo any interception.
- Semantic gap
The virtual machine’s services run below the abstraction availed by the operating system. Such creates a semantic gap between the running services and the virtual machine. The semantic gap creates difficulties in providing some services, for instance, performing system integrity checks with no information regarding disk structures. For other services, however, operating system abstraction is not a requirement, e.g. secure logging. For the services that require high-level information, regeneration of information in a certain form is necessary.
Services provided by Virtual Machines
Developers of computer applications revise them once in a while. Such has an effect of increased demand in computer administration functions. Consequently, the use of virtual machines is also on the increase. Virtualization introduces modern system capabilities without any additional complications to the prevailing and already intricate hardware and software. These new capabilities support innovative computing paradigms and deliver important roles in critical areas for a computer dependent society (Smith and Nair, 2005).
- Secure logging
The security tactic of most operating systems is to maintain logs of current events. The logs provide system administrators with a wide range of information including such as successful and unsuccessful login attempts and sent and received emails. Such information may provide insight as to how an intruder gains entry in the system and malicious activities carried out. Such information however may not be complete or may lack integrity.
The implementation of virtual machines provides solutions to both problems. For instance, the administrator can move the logging application to a virtual machine monitor in an effort to improve the integrity of the logs generated. As such, the intruder does not have a chance to delete the logs in case he penetrates the system since the virtual machine monitor is less prone to attacks. The fast connection between the host machine and the virtual machine provide for the quick transfer of logged data to the host machine’s file system. In order to acquire complete logs of data, it is important to for the virtual machine to log enough data to simulate the complete execution of the virtual machine.
- Intrusion prevention and detection
The popularity of virtual machines technology brings about increased attempts of security and integrity compromises of virtualized resources. Another approach to security tactic involves isolating the system from potential intruders. Virtual systems detect intrusion through continuous monitoring of system states with the aim of identifying compromised systems. As such, they include capabilities of both intrusion detection and prevention. Virtual machines continuously monitor events in and out of the system including network packets. A comparison takes place, of such events, against a collection of known malicious attacks. In the process, there is identification of those events that are considered anomalies. As such, virtual machines have the capacity of preventing previous attacks.
At times, in physical systems, there may be force alerts. In the event of such false alerts, it is more prudent to test the response of the events causing such alerts on a real system. Running such tests on a real system poses serious threats of compromising the entire system. Virtual machines come in handy in such circumstances as they offer a more convenient and controlled environment for conducting such tests. The running processes of a virtual machine behave just like in a real computing environment, but there is more control. The capability of virtual machines to clone running systems in an effort to simulate a real physical environment plays such an important role as users seeking to prevent intrusions can use such systems to thwart potential attacks (Price, 2008).
- Environment migration
Environment migration refers to the process of moving a package of running processes from one machine to another. Environment migration provides the capability to move users’ applications as they work on them to more convenient servers. In the conventional computing systems, load-balancing was the main center of focus for such systems. Modern systems, however, seek to accommodate mobile users. In the process of migration, the conventional load balancing systems left residual reliance on the host machines. Additionally, such systems treated a single process as a unit for migration. For mobile users, however, the approach is totally different. To them, the process of migration comprises of all applications running on the host machine.
Modern migration systems seek to address the needs of mobile users. Such systems allow applications to run on the host machine as migration of the user’s interface takes place (Nelson, Lim and Hutchins, 2005). Though this approach better matches the expectations of migration, there is a limitation in the type of user migration supported. Such systems do not endure the temperate latencies between the server and the interface device. The use of virtual systems in migration processes presents a solution to such problems. With virtual machines, there are no residual dependencies. Virtual machines provide the capabilities of a holistic movement of the user’s environment that best matches the expectations of user migration. With a basic interface provided by the virtual machine, it is possible to transfer the operating system and other applications with a simple code (Lans, 2012).
Application areas of Virtual Machines
- Environment for trying out operating systems: Virtual machines provide a great environment to try out certain operating systems. Users can try out different operating systems, e.g. Ubuntu, without much difficulty.
- Testing software: Users can also test desktop software and web applications using virtual machines. Additionally, they can create back-ups and distribute them worldwide.
- Quick office set-up: With the use of virtual machines, it is possible to easily and quickly set up an office. The office can have the different type of servers such as mail, print, and file servers, and desktop applications. Such capabilities enhance emergency management logistics.
- System backup: When performing system upgrades, it’s possible to backup existing systems on virtual machines. In case the upgrade fails, it’s possible to revert to the previous systems, and this ensures uninterrupted business continuity.
- Endurance of legacy systems: Some users usually retain certain legacy systems. With the use of virtual machines, it is possible to copy the images of such systems an act that closely resembles cloning.
Benefits of Virtual Machines
- Conversant interfaces: Virtual machines provide the same kind of environment as the physical machines. As such, users are usually not aware that they are running on a virtual machine. Likewise, normal network devices like switches and Network Interface Cards exist in a virtual networked environment. In almost all cases, users have experience with virtual machines that is similar to that of physical machines apart from the ability to move servers physically.
- High availability: In a virtual environment, there is the equal distribution of load across the virtual machines. As such, there is the assurance of high availability of programs and data. In the event of failure of one virtual machine, other virtual machines are available, and this ensures flawless continuity with minimal loss of data and downtime.
- Scalability: As organizations grow, scalability of the organization’s computer systems becomes a necessity. With physical systems, the process may be slow and costly causing inefficiency. With virtualized systems, however, it is possible instantly to scale up such systems on demand without requirements for additional resources. The process of scaling up such systems is also easy and achievable in minutes. For instance, it is possible to add the RAM of a virtual machine in minutes as opposed to the long durations of implementing the same in a physical machine.
- Backup with fast recovery: Virtualization comes with powerful and fast data backup and recovery solutions. The capability of such systems to accurately migrate data instantaneously to working hardware with minimal downtime comes in handy in the event of hardware failure.
- Easy replication: Cloning of physical machines is a cumbersome process whereas the same process is a smooth process achievable in a matter of seconds.
Disadvantages of Virtual Machines
Virtual systems have many advantages, but there are also disadvantages attributes to them. Some of the challenges include:
- Security: migration of applications from physical servers to public platforms implies using virtual machines with shared infrastructure. As such, several security concerns arise. Though it’s easy to toughen virtual machines against attacks than it is to toughen physical systems, instances of intricate systems for attack pose a major challenge.
- Potential downtime: A virtual environment usually consists of several virtual machines. As such, when one machine fails, a fail-over to the other virtual machines occurs. In very circumstances, all the virtual machines may fail at once. When such happens, it may take a considerable amount of time before the virtual machines restart. Consequently, there is bound to be downtime experienced in such circumstances.
- Oversubscription: in modern technologies, most of the virtual environments operate on an oversubscription model. Such models oversubscribe virtual machines on the available physical hardware. Efforts to eliminate oversubscription of virtual machines involve exercising care in resource allocations so as to ensure efficient utilization of resources (Vogel, 2014).
Conclusion
The use of virtual machines to run operating systems and other applications provides an environment for added services to run on the operating system’s platform. Such a model enables provision of services without necessitating changes in the operating system or the applications. The most convincing benefit of the use of virtual machines is server consolidation. Physical server systems usually have optimum utilization of the server resources capped at between 5 and 10%. With the use of virtual servers, however, optimum utilization can extend to highs of 50 and 80%. Consequently, it is possible to a minimal number of servers on virtual machines with the result translating into minimal costs of procuring hardware and maintaining the system.
Virtual machine creation and management are also other benefits attributed to virtualization technology. The conventional physical systems utilize the combination of operating systems, application files and system drivers. Virtual machines, on the other hand, are available as single files. The creation and cloning of virtual machines are, therefore, easily manageable processes with the options of modifying such images for every user.
Server management is also easily manageable through the use of virtual machine tools. Such tools majorly assist in the allocation and control of computing resources used by the virtual machines. For instance, critical CPU-intensive processes in one virtual machine may have several CPU resources allocated while the virtual machines running non-critical processes may run on a single CPU. Likewise, in a virtualized network environment, it is possible to reserve higher bandwidth for virtual machines running transactional processes as opposed to real physical systems (Siebert, 2012).
Virtual machines support the idea of workload balancing especially for processor and input/output intensive virtual machines. There are tools available that facilitate non-disruptive migration of the workload amongst the servers. Transfer of virtual machines between servers is also possible in real time. Such migration progresses up to a point of achieving an optimum load balance for both performance and server consolidation. It is the duty of virtual machine administrators to ensure a balance of computing resource allocation with the different computing demands of the different virtual machines. For instance, distributing virtual machines across several physical servers is more prudent than running several virtual machines with huge memory requirements on the same server.
In conclusion, it is evident that there are better security mechanisms, increased uptime and greater management control with the implementation of virtual machines in computerized systems (Zhang and Zheng, 2010). The differences between the conventional and virtualized computer systems portrayed in this paper, clearly indicate that it is more beneficial to use virtual machines in the modern day computing environments for most companies. As such, it is highly recommendable that companies invest in virtual machine technology in their computing environments.
References
Chen, P., & Noble, B. (2001). When virtual is better than real [operating system relocation to virtual machines]. Proceedings of the Eighth Workshop on Hot Topics in Operating Systems, 2001., 133-138.
Lans, R. (2012). Data virtualization for business intelligence systems revolutionizing data integration for data warehouses. S.l.: Morgan Kaufmann.
Li, D., Liao, X., Jin, H., Zhou, B., & Zhang, Q. (2013). A New Disk I/O Model of Virtualized Cloud Environment. IEEE Transactions on Parallel and Distributed Systems, Volume 24(Issue 6), 1129-1138.
Nelson, M., Lim, B., & Hutchins, G. (2005). Palo Alto, CA 94304. Retrieved November 15, 2014, from https://www.usenix.org/legacy/event/usenix05/tech/general/full_papers/short_papers/nelson/nelson_html/
Portnoy, M. (2012). Virtualization essentials. Indianapolis, IN: John Wiley & Sons.
Price, M. (2008). The Paradox of Security in Virtual Environments. Computer, Volume 41(Issue 11), 22-28.
Siebert, E. (2012). Physical Servers vs. Virtual Machines. Retrieved November 15, 2014, from http://www.backupacademy.com/blog/physical-servers-vs-virtual-machines.html
Smith, J., & Nair, R. (2005). Virtual machines versatile platforms for systems and processes. Amsterdam: Morgan Kaufmann.
Vogel, D. (2014). The Benefits and Challenges of Virtual Machine Hosting. Retrieved November 15, 2014, from http://www.datapipe.com/blog/2014/04/23/benefits-challenges-virtual-machine-hosting/
Wolf, C., & Halter, E. (2005). Virtualization from the desktop to the enterprise. Berkeley, CA:
Zhang, Y., Su, G., & Zheng, W. (2010). Converting Legacy Desktop Applications into On-Demand Personalized Software. IEEE Transactions on Services Computing, Volume: 3(Issue: 4), 306-321.