DELIVERY & GIFT DETAILS:
Usually ships within 24 hours
Delivery Time and Shipping Rates
Eligible for gift wrap & gift message.
(Paperback)
Ben Armstrong hails from Brisbane, Australia. He relocated to California in 2001 to start working on virtualization software being developed by Connectix Corporation. When Microsoft acquired the Connectix technology in 2003, he worked as a Program Manager on Microsoft’s new virtualization team. Ben has been working with virtualization for over five years and has been involved in the release of five major virtualization products (from both Connectix and Microsoft).
In his spare time, Ben messes around with virtual machines, plays computer games, messes around playing computer games in virtual machines, and apparently writes books.
Ben maintains a blog as Virtual PC Guy at http://blogs.msdn.com/virtual_pc_guy.
Introduction.
Part I: Getting Started with Virtual Servers.
Chapter 1. Why Virtualize?
Chapter 2. Getting Started with Microsoft Virtual Server 2005.
Chapter 3. Virutal Server Basic Concepts.
Chapter 4. Installing Guest Operating Systems.
Part II: Optimizing Virtual Machine Management and Usage.
Chapter 5. Creating a Virtual Machine Library.
Chapter 6. Understanding Virtual Machine Performance.
Part III: Maintaining Virtual Machines.
Chapter 7. Monitoring and Managing Virtual Machines.
Chapter 8. Keeping Virtual Machines Up to Date.
Part IV: Security and Backup for Virtual Machines.
Chapter 9. Keeping Virtual Machines Secure.
Chapter 10. Securing Virtual Server.
Chapter 11. Backing Up Virtual Machines.
Part V: Physical to Virtual Migration.
Chapter 12. Manual Physical to Virtual Migration of Servers.
Chapter 13. Manual Physical to Virtual Migrations.
Part VI: Virtual Machines and Clustering.
Chapter 14. Clustering Virtual Machines.
Chapter 15. Clustering Virtual Server.
Part VII: Automating Virtual Machine Operations.
Chapter 16. Using the Virtual Server COM Interface.
Chapter 17. Scripting Virtual Server.
Chapter 18. Using PowerShell to Control Virtual Server.
Part VIII: Developing Software for Virtual Servers.
Chapter 19. Developing Managed Applications for Virtual Server.
Chapter 20. Developing ASP.NET Applications with Virtual Server.
Part IX: Development and Debugging in Virtual Machines.
Chapter 21. ApplicationDebugging with Virtual Server.
Appendix A. Common Problems and Solutions.
Appendix B. Virtual Server Clustering Script: HAVM.VBS.
Index.
Before diving in to a discussion of using and understanding Microsoft Virtual Server 2005 R2 SP1, I would like to address a fundamental question: Why Virtualize?
You picked up this book, so chances are good that you already have ideas about why and how you want to use virtual machines, and you may be tempted to skip this section. I advise against this. Before you get started, it is important to fully understand the benefits and drawbacks associated with virtualization.
Furthermore, while you might have a specific use in mind for virtualization, you may be surprised to find out all the potential that is available in server virtualization.
Benefits of Virtualization
Take a look at the benefits Microsoft Virtual Server 2005 R2 SP1 brings to the table.
Increased Hardware Utilization
Most server administrators today could easily identify a plethora of servers in their organization that are not being fully utilized. In fact, with the usual recommended best practice of having a single server for a single function, many servers are struggling to reach even 10 percent of theircapacity. This problem is only going to get worse as hardware continues to get more powerful, and as multi-core processors become commonplace in the server market.
Virtualization allows you to consolidate low utilization systems in order to have fewer systems, with higher hardware utilization, while still maintaining the best practice of having a single server for a single function.
System Isolation
One of the key tenets of virtualization is that the virtual machines should be isolated from one another. When running multiple virtual machines on Virtual Server 2005 there is nothing that a virtual machine can do to negatively affect other virtual machines. In fact, a virtual machine can even suffer an operating system crash without affecting the other virtual machines.
This makes virtualization a great method for managing unreliable or untrustworthy servers in your computing environment.
Rapid Provisioning
If you need a new server in the physical world, the process of provisioning it can be quite arduous. Most companies do not keep an inventory of spare servers, so you need to acquire the new hardware (which may involve getting financial approval) and wait for delivery. Once the new hardware arrives you then have to invest time to get the appropriate software loaded and ensure that there are no hardware compatibility issues. All of this combines to mean that, for most people, it is weeks between when they decide to get a new physical server and when the server is ready for use.
In a virtual world there is no need to acquire new hardware for a single new server (although should you create enough virtual servers you will need to get more hardware eventually), and there is no need to wait for financial approval or physical shipping. Furthermore, each virtual machine exposes the same set of emulated hardware (irrespective of the physical hardware being used), which allows you to have a standard set of images ready to be deployed. All of this means that provisioning a new virtual server can be as quick as copying a file.
System Flexibility
Virtual machines provide amazing operational flexibility. As already mentioned, virtual machines can be rapidly provisioned, but they can also be destroyed with similar ease. They can have CPU resources changed dynamically while they are running. They can have memory, storage, and network resources quickly reconfigured with a simple reboot of the virtual machine. They can be paused, or even put into a saved state, which stops the virtual machine from using any system resource but allows it to be restored to its current state at a later point in time.
Virtual machines are also fully abstracted from the physical hardware. This means the virtual machines can be moved around amongst physical servers with different hardware configurations without your needing to reconfigure the virtual machines themselves.
All of this combines to mean that virtualization can give you a huge amount of flexibility and responsiveness in your server infrastructure.
High Availability
In earlier releases of Microsoft Virtual Server, availability was actually a drawback and not a benefit. Many people looked at server virtualization and felt like they were putting all of their eggs in one basket. In response to this, Microsoft has invested a lot of time in developing various clustering and high availability options for R2 SP1.
The net result of this is that now Virtual Server can be used to provide higher availability for systems through the combined use of clustering technology and the ability to move to new, highly available hardware.
Clustering technology is covered in depth in Chapters 14 and 15.
Virtual machines can be clustered together over a shared iSCSI infrastructure, and perform just like a cluster of physical computers. Otherwise, entire instances of Virtual Server can be clustered, and each of the virtual machines can be treated as highly available cluster objects.
With clustering support, it is now even possible to provide high availability to applications that have no native support for clustering themselves, with no need to modify the applications.
Drawbacks of Virtualization
Now that you know all the wonderful things Virtual Server 2005 can do, you probably want to know what the catch is. There are a number of drawbacks to keep in mind.
Performance
No matter how you slice it, virtualization adds a certain amount of performance overhead to the system. For the vast majority of uses this overhead is completely acceptable and is more than justified by the benefits of virtualization.
However, the performance impact of virtualization needs to be acknowledged and taken into consideration before you attempt any major virtualization project.
Defining the overall performance impact of using Virtual Server is very hard to do. Generally speaking, Virtual Server adds a negligible overhead to CPU and memory performance. It adds a more significant overhead to storage and networking performance, and it adds a very steep overhead to video performance inside of the virtual machine.
Even with this knowledge in hand it is hard to accurately predict how a specific custom configuration will perform, as there are some esoteric edge cases in virtualization that can result in excessively slow performance.
With all of this in mind, you should learn all you can about the performance characteristics of virtual machines (covered in Chapter 6), and you should make a frank assessment of the expected performance of your virtualization environment.
Finally, I recommend that you always test the performance before deploying virtualization solutions. This way, you can be sure to avoid performance pitfalls, and you may be pleasantly surprised to find out how well the system performs.
Scalability
Virtual Server itself is designed to be a scalable application, with the ability to run up to 128 virtual machines (on a 64-bit host operating system, 64 virtual machines on a 32-bit host operating system). Virtual Server can utilize multiprocessor hardware with large amounts of memory.
However, the virtual machines provided by Virtual Server have a number of limitations. All virtual machines are uniprocessor only, can support only up to 3.6GB of memory, and can run only 32-bit operating systems.
When considering virtualization you need to assess whether your virtualized workloads can run in such an environment. If you have a physical server that is already fully utilizing multiple processors, or large amounts of memory, you should most likely leave that system on physical hardware.
You may be wondering whether Virtual Server will be able to deliver the performance you require, especially given my last two points. So I would like to pause and explain that Virtual Server does provide sufficient performance and scalability for many server scenarios. I just want to make sure that you make a realistic assessment of your performance and scalability expectations.
If you had a departmental Microsoft Exchange server with several hundred users, I would have no hesitation in recommending that you run it inside of a virtual machine. If, on the other hand, that Exchange server had several thousand users, you would be better off keeping it on physical hardware that had sufficient resources to provide the performance you need.
Hardware Abstraction
Hardware abstraction is both a blessing and a curse when it comes to virtualization. It is hardware abstraction that allows for many of the benefits of virtualization (such as rapid provisioning and system flexibility). However, it also has its drawbacks.
Each Virtual Server virtual machine has the same set of fixed hardware:
Intel 440BX-based motherboard (with IDE controllers, serial and parallel ports)
Adaptec 7870 SCSI controller
Intel 21440 network adapter
S3 Trio 32/64 video adapter
If the server that you want to virtualize is not capable of running on this set of hardware, or requires access to a specific piece of hardware that is not in the preceding list, then you are simply out of luck. There is no way to add new or different hardware to a virtual machine.
Common Uses for Virtualization
In my position as a Program Manager on the Microsoft virtualization team I get to see a lot of fascinating applications of Microsoft Virtual Server. Now that you have a good understanding of the benefits and drawbacks of virtualization, here are some typical reasons that people are using virtualization.
Server Consolidation
This is very simple and straightforward. Run more servers on less hardware. Reduce the amount of new hardware that you have to buy. Reduce the amount of power and space being used by your server infrastructure.
Server consolidation is by far the leading reason for using Virtual Server, but it has many variations on its implementation. Most people invest in new, high-end server hardware and consolidate older server systems into virtual machines on the new hardware, and then retire the older hardware. But some people are able to take their existing hardware and use Virtual Server to consolidate "in place"-allowing them to reduce their physical server footprint without the need to buy any new hardware.
Server consolidation can take place in a large data center or server room where large numbers of servers are being reduced to a smaller, but still sizable, amount of servers.
Server consolidation can take place in branch office scenarios where a small number of servers that are required to support a single small office can be consolidated down to one single computer capable of providing multiple roles to local users.
Server consolidation can also be used to help centralize the management of disparate departmental servers while allowing each department to maintain control of their systems.
Development and Testing
Use of virtualization in development and testing environments is usually undertaken for the same reasons as standard server consolidation-the desire to get higher hardware utilization out of less hardware resources and to reduce operating costs. However, virtualization has a lot more to offer to development and testing environments than this.
The rapid provisioning and flexibility aspects of Virtual Server can drastically decrease the overhead associated with developing and testing software. Developers can quickly create the infrastructure necessary to develop complex server solutions. Testers can repeatedly test software inside of a virtual machine with the ability to quickly return to a clean, known state after each test.
For more complex scenarios, virtual machines can be controlled programmatically in order to allow for tests to be executed in an automated and unattended manner.
The use of virtual machines can also help developers to perform quick validation tests on clean copies of all of the operating systems that they intend to support, which enables them to detect any obvious issues before handing the software over to testing.
Development and test environments can cover a broad range of actual uses. In some cases Virtual Server is used by software development companies to reduce the development and test cycle with the use of automation. In other cases, Virtual Server can be used by systems administrators who need to test new programs to ensure that they integrate correctly with an existing environment.
One of my favorite uses of virtualization for development and testing is performing "dry runs" of planned system changes. In one case, a user was preparing for an Active Directory migration. He was able to recreate his production environment inside of virtual machines and attempt a dry run of the migration before doing it with the real systems. In this case, the dry run uncovered a number of issues that the user was then able to be prepared for when he finally attempted the migration. These issues had the potential to be catastrophic if they had been encountered in a high-pressure, time-constrained migration.
Server Resiliency
If you need to be able to provide a server infrastructure that can be rapidly redeployed or rebuilt in another location, virtual machines can help you to do this in a cost-effective manner. With virtual machines it is easy to perform full system backups and then restore them on potentially different hardware.
Higher resiliency to system failures can be achieved in a number of ways. Microsoft Virtual Server can be installed on top of any fault tolerant hardware that is supported by Microsoft Windows Server 2003. Alternatively Microsoft Virtual Server can be configured in a number of clustering configurations that provide high availability across a number of physical computers.
Finally, running virtual machines can be periodically backed up to remote sites and be ready for recovery in the case of an entire site failure.
Dealing with Legacy Applications
Many people have pockets of legacy servers in their company. These are small servers running custom solutions serving a small group of people. Often these are systems that are impossible to upgrade, as the software they are using does not run on the latest hardware and the company that produced the software no longer exists, or does not produce that product any more. These servers are essentially ticking time bombs. If they suffer a hardware or software failure the impact could be serious, but there seems to be little to do to mitigate this problem.
Virtual Server allows you to move these systems off of their old, potentially unreliable hardware onto newer hardware. Once the system is inside of a virtual machine it is now much easier to monitor and manage. It is also much easier to make backups of the environment in case any problems arise.
One of the biggest challenges faced when virtualizing legacy applications is how to get the system in question into a virtual machine, as quite often you will no longer have the expertise (or even media) to be able to perform a clean installation of the system and guarantee that it will continue to function as desired. Chapters 12 and 13 cover the process of migrating physical computers to virtual machines.
Virtualizing legacy applications certainly provides some short-term relief, but it is not a long-term solution. Any security concerns that may exist with the legacy operating environment are still present and unmitigated. As such, virtualization of legacy applications should be viewed as the first step in retirement of the application, and you should continue to investigate replacing or upgrading the system in question.
Training
For both personal and formal situations, virtual machines are great tools for training and learning. Typically, teaching people about a new computer technology involves extensive amounts of time and hardware.
You have to acquire enough hardware to supply isolated systems and infrastructure to provide an authentic training environment. You then have to configure the systems appropriately, and create full system backups such that if any student should happen to destroy their environment you could restore the systems to a known state.
(Continues...)
Excerpted from Professional Microsoft Virtual Server 2005 by Ben Armstrong Copyright © 2007 by John Wiley & Sons, Ltd. Excerpted by permission.
All rights reserved. No part of this excerpt may be reproduced or reprinted without permission in writing from the publisher.
Excerpts are provided by Dial-A-Book Inc. solely for the personal use of visitors to this web site.
loading...
loading...
loading...
Terms of Use, Copyright, and Privacy Policy
© 1997-2009 Barnesandnoble.com llc