Fresh Perspective from the Inside
Here's the view from a guy new to the industry who lucked out and found himself on the inside of the revolution, working for one of the main vendors. Read what Jordan Sanderson, one of the bright young interns currently working for the SVS team, thinks about virtualization in general and where SVS fits into the mix.
Background: Introduction to Virtualization
Virtualization can best be defined as "a framework or methodology for dividing the resources of a computer into multiple execution environments, by applying one or more concepts or technologies such as hardware and software partitioning, time-sharing, partial or complete machine simulation, emulation, quality of service, and many others" (Singh, 2004). However for the scope of this article, we can simply define virtualization as a method for allowing multiple operating systems and applications to run on hardware independently of each other. Virtualization is not as new a concept some people believe; many different systems and implementations were introduced during the 90's craze for the term "virtual reality." In fact, the term has been around since the mid 60s having originated at IMB (Singh, 2004). In his article The Year of Living Virtually, Michal J. Miller laid out the three most common uses of virtualization in the business world. He believes that the possible uses of virtualization are quite extensive, and chose three ideas that he considers to be the core models that other virtualization techniques are derived from. These three methods are described below, as it is important to understand what virtualization can do before discussing how it is can be used.
Server Virtualization
The first use Miller (2006) mentions is Sever Virtualization, which is the ability to run multiple virtual machines on a single server (or even multiple servers.) This is one of the driving forces behind companies implementing virtualization solutions in the workplace. A good example of this type of virtualization is where a single piece of hardware is set up to run three web servers: a public site, an employee site, and a secure site. Each of these sites has their own virtual machine, and each virtual machine is unable to "see" the others, though they're all on the same piece of hardware. If the public site was compromised by hackers, they would only have easy access to the material that was contained on that web server and not the other two.
Operating Systems Virtualization
Operating systems virtualization is much like server virtualization except at the desktop level. It allows users to have access to multiple Operating Systems on one machine (Miller, 2006) The most common uses for this is to run Windows on a Mac for cross operating systems testing, though one also sees users running multiple versions of Windows on the same machine for the purpose of testing software compatibility. However, one doesn't need to have such an explicit reason to run multiple OSs to take advantage of operating systems virtualization. For common users, there are other advantages, such as the fact that most virtual machine software comes with the ability to take snapshots of operating systems and restore their computer to that snapshot at any time.
Software Virtualization
This final use is intended mostly for Windows users. The technique known as software virtualization allows for programs to be self contained and placed on a machine without actually having to be installed each time (Miller, 2006). Applications are usually installed a single time on a single machine via the virtualizing software, which in turn creates a package that can be easily distributed company wide. These packages can be self-contained, as in the case with Microsoft's Softgrid, and can only interact with what's in the package or layered, as in Symantec's Software Virtualization Solution (SVS), which can interact with other applications on the system virtualized or otherwise. There are advantages and disadvantages to both approaches, which will be discussed more in the next section, but they both allow for a means to bypass application conflicts and other install issues that regularly arise (Kennedy, 2007).
Using Virtualization to Manage Systems
Anyone who has used a computer knows how easy it can be to accidently change some setting that causes the software, or even the computer, to inexplicably stop working. Any one in technical support knows that tracking down these issues can be a time consuming, and thus expensive, process. Not only that, but the amount of time IT spends dealing with application conflicts, updates and malware is more than anyone would like (Gruman, 2006). Virtualization offers IT departments a way to efficiently resolve these issues. It also allows them to deploy, manage, and keep track of resources across a large company with relatively little effort.
Desktop Virtualization
"The greatest benefit of desktop virtualization is the ability to provision PCs and other client devices with software from a central location" (Gruman, 2006, p. 36). While desktop virtualization is not as popular as virtualizing servers, it is becoming more common place as companies discover how easy it is to manage a full operating systems install and manage applications from a central location (Ferguson, 2007b). Virtualized desktops are usually stored remotely on a remote server, and there are only as many different virtual desktop images as are needed. Each feature set needs its own image, so instead of just one Microsoft Windows XP machine and one Microsoft Vista machine, one will need to have images for each different department that has applications which it needs that other departments do not need (Gruman, 2006). These virtualized desktops are then accessed via a thin client: a small computer that is just used for accessing the sever and connecting to a monitor. All the actual processing is done on the server where the virtualized desktops are stored. A good example of how this works is a web browser. In this case, a user accesses a website via the browser and the server processes that request. The server runs the programs that are needed, and then sends the results back to the browser. Thin clients don't need much power themselves, so they cannot pick up any required processing if a server gets slowed down with requests during busy hours (Gruman, 2006). Virtualizing an operating systems install into a virtual machine is one method used by IT departments; but virtualized operating systems are slower than native installs, and users can notice performance issues with processor intensive programs such as Adobe Photoshop or even Microsoft Office. Combining the virtualization with streaming, which sends the needed parts to the computer's memory for use, can negate some of the slowdown (Gruman, 2006).
Software
Software virtualization offers many benefits over full operating systems virtualization. Not only does it use up less space to have an application virtualized, it also can use fewer system resources, allow for multiple versions of software to run on the same system, and allow for IT to quickly fix problems by restoring software to its original install state. When one combines these features with the ability to stream virtualized software to a user's desktop, one has an easy way to manage updates, deliver new software company wide, and--most importantly--manage licenses (Kennedy, 2007).
Sandboxed Software
One important reason for software virtualization has to do with what is called sandboxing. There are times when some software a user needs to install interferes with other necessary software. There are other times when a user needs to run multiple versions of a single application, such as Java, when the program itself forbids the instillation of multiple versions on the same machine. Sandboxing software is a method of virtualization where a program is installed in such a way that it is completely cut off from the operating system and other programs (Kennedy, 2007). This can be very efficient and effective, as the virtualized application believes that it is the only program installed, and cannot therefore interact with anything else on that machine.
This, however, is also the biggest drawback to sandboxing. For example, if you have two applications--such as Microsoft Office and Adobe Acrobat--installed that need to communicate, you have a problem. In our example, Microsoft office and Adobe Acrobat need to interact in order to create PDF documents. If both were virtualized using a sandbox method, Office would not be able to access the requisite Acrobat plug-in. Still, sandboxing can be extremely effective in some situations. For example, if one had an aging Java application that one needed to run on a newer system--or, if one needed it to run alongside a newly acquired Java application that prevents the aging software from working--then sandboxing either or both programs would resolve the issue.
Layered Software
The other method of virtualizing software is to capture it into its own layer, where any changes made to or by that program are made to that layer instead of to the actual operating systems itself. It can do this while acting like it has been installed normally to the user (Varhol, 2007). This method isn't the easiest since it requires more effort on IT to make sure the application behaves as the end user expects. However, if done properly, layered software can provide the best experience to those that have to use the virtualized software.
Since layered software allows virtualized applications to see each other and act accordingly, one can run experience problems with programs like Java that won't work properly when multiple versions are installed. Also, problems occur with programs like Microsoft Office, which can get confused as to which program file it's supposed to use when multiple versions are installed on the same machine in the same location (Varhol, 2007). Fortunately, most of these issues can be easily resolved or are minor-for instance, Office will repair itself when you switch versions, and it does this when multiple versions are installed, regardless of virtualization. Problems with layered software tend to be rare, and tend to deal with how programs behave in certain instances. One of the key strengths of layered virtualization is how it addresses DLL conflicts and other software conflicts. Layered software uses a filter driver to sort out the files, registry keys, and processes being used by the virtualized application. All the changes made by the layered programs get saved into the virtual layer instead of on the base itself. This allows for programs to easily be exported from one system to another, and also allows the software to act like it was installed normally, as the filter driver tells the operating system that the files are in one place while they're actually not. (Varhol, 2007)
Virtual Machines
Some software requires an operating systems that is old and not practical to use in a wide scale setting, and so buying new software to replace to older software is either too expensive or just not worth the money (Kennedy, 2007). Creating a virtual machine which is running aging operating systems with the software installed can be the most practical, though inefficient, method to retain use of that software. This can be very time consuming as it requires one to do a full operating systems install, and it can also require a large amount of disk space. These machines are managed by a hypervisor, which is software that monitors and manages virtualized operating systems and allow for multiple virtual machines to be running at once on the same system (Singh, 2004).
Streaming
Streaming allows one to keep all of the different virtualized software in one centralized location. When a user launches an application, the virtual package is delivered to the client machine. At that point, any updates that are needed-such as patches or never version installs-are also delivered to the user when they access the program (Gruman, 2006). The alternate to streaming is to manually deliver the updates to each PC and install each update on every system. While there are many solutions available for making this method easier, it is very difficult to make sure every copy of the software is up to date-especially when you add laptops and traveling employees into the equation. Depending on the streaming software used and the size of the application being streamed, there can be a delay of anywhere from a few seconds up to a minute or two between a user clicking on the icon to launch the program and the program actually launching. This is usually only a one time delay. The benefits of knowing that every employee using that software has the same version, and that their software is fully patched, is well worth the small wait (Gruman, 2006).
Managing Desktops
Deployment times can be greatly reduced (some companies show times cut in half or more) with either Software or Desktop virtualization, since neither are permanently installed on a machine, and any conflicts between applications can be resolved before deployment (Gruman, 2006). Resolving issues is much simpler, since every operating systems install is the same or every application install is the same-sometimes both. IT is not required to manage a multitude of machines running a great number of different programs and operating systems which were manually installed, sometimes by different people who may decide to install something differently than expected. Since every program is stored in one central server, IT knows what versions employees have access too, what patches have been installed, and can be confident that every user has same version of each piece of software (Gruman, 2006). So if there's a problem with the software, support knows that problem is related to something the user has recently done, since all installs are the same and can't affect each other in the same way that programs installed directly to the host machine can. Virtual software can also be reset or restored back to a known working state, which means that even an average user could fix their own problems, if this becomes necessary. Software virtualization, combined with streaming, allows for greater flexibility in managing desktops over virtualized desktops. One does not need a separate virtual machine for each department or combination of applications; instead, IT can give different users a different software list that becomes available to them, and software can be removed just as easily (Gruman, 2006). Streaming solutions also for IT to monitor who is using what software and how often they are using it. This allows for better license management, since IT can free up an unused license from one machine and easily transfer it over to one that needs it.
Software Virtualization Summery
Software virtualization saves time and money by allowing IT to easily manage what software is on a user's machine from one central location. This includes being able to make update changes to only one file, which can then be streamed out to users as they access the application. This allows for IT to quickly change usage rights to users and manage licenses. In addition, being able to sandbox troublesome software, avoid file conflicts, and know that each user has the same install as each other means that IT has to spend less time managing new software and dealing with problems that might arise.
Using Virtualization to Efficiently Use Hardware
Virtualization offers more than easy system management. One of the biggest benefits is that one can run multiple operating systems on one machine, including servers. This means a smaller hardware footprint in your company, and gives one the ability to do much more with the hardware one already owns (Galli, 2007). Most computers, desktops or servers, are rarely used to their full processing potential. Generally, the average user makes use of only about 30 percent of their desktop--particularly in your average office environment, where Microsoft Office is the most processor intensive task the computers are running (Kennedy, 2007). By consolidating machines, an IT department can make better use of their company computers' full processor power.
Servers
Servers have the longest modern history with virtualization. The technology around virtualized servers is more abundant and mature than it is for software or desktops, and there are a lot of good test cases around companies using virtualization on servers to great success (Jilg, 2007). Dominoes Pizza, was one of the first large corporations to dive into sever virtualization, had 80 different Virtual Machines running on only 17 servers as of early 2007. Domino's Senior Network Engineer, Jason McCracken, recently told eWeek that "Unless you have a really good reason, we're not going to buy a physical machine just for the box unless it's a large database or something that requires a lot of horsepower…We're just going to virtualize it" (Ferguson, Hungery for Virtualization, 2007a, p. 55). If a lot of machines are being run to do similar tasks, or if many machines have very light loads on them, or even if the datacenter is running out of space, then moving to a virtualized server environment could be ideal. However, if the systems being considered need fast access to data or have a high workload, then a virtualized environment may not be ideal (Hassell, 2007). This is because, as with desktops, there's some slowdown associated with virtualization. This is not enough to affect the average office worker, it could be enough to affect a graphics designer, who may need raw processor power. In addition, the stockbroker who needs fast access would be seriously affected (Jilg, 2007). Like a virtualized desktop, hypervisors are used to manage virtualized servers--though in this case, the software is much more mature and robust. It can be used to monitor the status of the server remotely, make changes based off that information, and even move the virtual machine from one server box to another (Jilg, 2007). And, it does all of this without having to have physical access to the server. Some software can be set to do this automatically as well.
Getting More from Your Hardware
The main drawing point of virtualizing servers is that in many cases, one can get three (or more) instances of server operating systems running on a single machine. This saves IT from having to buy a new server when a new one is needed. As sever hardware gets old and new servers are needed, IT departments can consolidate hardware by moving the aging system's software over to a machine set up for virtualization (Hassell, 2007). New server indented processors from both Intel and AMD have taken virtualization into account; they run virtualized environments better than normal processors. New sever software, like Windows Server 2008, are also taking virtualization into account and are being developed accordingly. Developers realize that more and more companies are virtualizing their products, so they design features to take advantage of virtual environments, and these new products can perform just as well when virtualized as when not.
Saving Space
Datacenter space is very expensive, whether it's renting offsite or housing it internally, and as any company grows, it needs more space. Because sever virtualization allows for multiple virtual machines to run on one server box (some times as many as ten virtual machines to a single physical machine), the amount of space needed to house those sever boxes is also greatly reduced, allowing for more efficient use of that space (Galli, 2007). (Or, if one is renting space, this will save money outright.) In addition, the savings include more than just the saved space. The power spent on running the severs, as well as the cost of the cooling of the servers, can be more expensive in a lot of cases than the space used to store the servers.
Less to Maintain
With fewer physical servers running there is less hardware to maintain. The number of hardware service contracts can be reduced, less time can be spent servicing the hardware, and all of the VMs can be monitored by a central location. This can actually be done remotely, and doesn't require IT to carry around laptops that can connect to a server blade or box for diagnostics (Jilg, 2007). There is software that comes with the server environments that allows for changes to be made without having to have physical access to the server. If one operating systems needs to be rebooted, it can restart without affecting any of the other virtual machines running on the same system, and if one box goes down, one can shift the virtualized severs to a new sever rather quickly with the correct setup (Ferguson, Hungery for Virtualization, 2007a).
Hardware Summery
Sever virtualization saves money because it allows for the consolidation of hardware, the instillation of multiple sever systems onto one piece of hardware, and allows for direct remote monitoring of all the virtual machines from one location, reducing the amount of time and space that are needed to keep all the servers running.
Reducing Support Time
Ask any IT person what they spend too much of their resources on, and they would reply "support". Ask any regular office worker what's the most frustrating thing about working in today's technology environments, and they will often reply "dealing with a computer that does not work". One of the added benefits of using virtualization is that virtualized software and desktops can not only be easily managed, but they can also reduce time spent in with technical support when something goes wrong. With virtual machines, server or desktop, the managing software can regularly take snapshots of the installed operating systems. This can be of just system settings or of all the files saved as well. If something were to go wrong-and the problem couldn't be quickly diagnosed of fixed-IT could simply restore a machine to a known good snapshot in a matter of minutes (Kennedy, 2007). Virtualized software offers similar features, but is usually limited to restoring the software to its initial install state. With virtualized software and desktops, workers spend less time with an inoperable machine, support spends less time per worker, and IT rarely has to get called in for technical problems. This is virtualization's biggest time saver, even when compared to deployment times, as it can reduce down time across all departments of a company and not just IT (Gruman, 2006).
Less Manpower Needed
With fewer pieces of hardware being used, less deployment time being needed, less support time being needed, and less time being spent maintaining systems, fewer people are required to efficiently run an infrastructure.
Conclusion
With IT costs rising, keeping costs down is important, and being able to still keep the same quality for an infrastructure is critical. Does one cut money spent on upkeep for old hardware? Or, instead, does one allocate resources for buying new hardware, or for purchasing more and more datacenter space as more and more servers are needed? (Not to mention all the staff needed to manage all of that.) And as a company grows, how does one manage more and more software that needs to be deployed to all the employees? What about desktops? Managing systems only get more complicated as a company grows. Virtualization offers many ways to reduce the costs of all these issues.
Easier to Manage
With virtualization, IT can easily manage 10 or 500 desktops from the same system, check who is using what software, and move licenses around to where they are needed. Any patches or new versions of software can be installed once, into a virtual software package, and delivered to all the computers companywide that needed it, ensuring that all users have the same version. This, combined with streaming, allows IT to know that users are getting the update as soon as that user launches the application. Virtualized applications don't have conflicts with other software installed on the system, and older programs can even be supported in an environment where the operating system needed may not be. If something goes wrong, and support can't quickly or easily fix the problem, the virtualized software or desktop can be rest or restored back to a known good state, and the user can continue working as if nothing had happened. Servers can be managed, restarted, repaired and moved from one piece of hardware to another, all without direct access to any hardware, and all while having multiple virtual machines running on the same system. If something goes wrong, a system can be restored back to a known working snapshot of the system in a matter of minutes, reducing downtime to basically nothing.
Cheaper
Multiple virtualized servers can be stacked inside a single box, reducing the number of physical servers greatly. Dominoes was able to get 80 virtual machines running on only 17 actual physical severs-a ratio of almost 5-to-1--which greatly reduced the amount of space needed to store the hardware, the amount of power needed to run the hardware, and the number of personal needed to manage the hardware. Older boxes can be consolidated. As one fails, the server can be moved over to another working box without having to buy new hardware-the hardware dollar has a greater reach thanks to virtualization. One can do more with what one buys.
In Conclusion
Is virtualization right for every company? No. But most can take advantage of what virtualization has to offer. If one has multiple servers running the same tasks, an aging infrastructure, a large number of employees that need to have regular software updates, or the need for access to different software depending on the work being done, then virtualization may be the answer. This paper only covers the bare basics of what virtualization is and how it works. While complicated, virtualization has a robust ecosystem of software and hardware venders that make it even easier than before. There are also many websites, a few which were used as references in writing of this paper, that compare different solutions offered by different vendors, and these would be a great starting point for learning more about what steps would need to be taken to start making virtualization work for one's company.
References
Ferguson, S. (2007a, July 9). Hungery for Virtualization. eWeek , pp. 48-55. Ferguson, S. (2007b, May 21). Virtualization comes into focus. eWeek , p. 20. Galli, P. (2007, April 30). Virtualization leads in innovation. eWeek , p. 22. Gruman, G. (2006, September 11). Making PCs Manageable. INFOWORLD , pp. 33-39. Hassell, J. (2007, May 28). Server Virtualization: Getting Started. Computer World , p. 31. Jilg, J. (2007, May). Virtualization takes hold. Communication News , pp. 13-14. Kennedy, R. C. (2007, Feburary 12). Applicatoin and Desktop Virtualization. InfoWorld , pp. 28-32. Miller, M. J. (2006, December 5). The year of living virtually. PC Magazine , p. 89. Singh, A. (2004). An Introduction to Virtualization. Retrieved 10 31, 2007, from kernalthread.com: http://www.kernelthread.com/publications/virtualiz... Varhol, P. (2007, September).




Great article..... cleared
Great article..... cleared my mind about a lot of things.. thank you !
Anurag Y
Would you like to reply?
Login or Register to post your comment.