Back to description
Virtualization is one of the hottest topics in information technology today. The increasing speed and capabilities of... more
Virtualization is one of the hottest topics in information technology today. The increasing speed and capabilities of today's x86 processors have made virtualization possible on commodity hardware, and virtualization provides an attractive way of making the most of that hardware.
As happens with most popular IT buzzwords in their heyday, virtualization is frequently touted as the solution to all of your IT woes. I'm sure we'd all like to find some one true technology that enables us to set up a powerful, reliable, and highly available IT infrastructure once and for all, so that we can all go home or at least throttle down our hours so that we can work 9-to-5. I have both good news and bad news. The good news is that virtualization is a cool and powerful technology that can indeed simplify your computing infrastructure and help you get the most bang for your buck out of the latest, fastest processors, networking, and storage technologies. The bad news is that, like anything in the real world, successfully implementing, deploying, and supporting a new IT infrastructure based on virtualization requires the same level of planning and system design that any basic shift in infrastructure always has. That's why we're all here and why this book was written in the first placeto define basic concepts, explain basic issues, and to explore how to successfully make the most of the best of today's virtualization technologies while providing the capability and availability guarantees that today's often-complex IT infrastructure requires.
This chapter provides an overview of the history of virtualization and the different types of virtualization that are in use today. Following this foundation, I'll discuss the pros and cons of virtualizationregardless of what hottechnologybuzzword.com may say, there are downsides, or at least issues that you have to be aware of when thinking about introducing virtualization into your computing environment. Although this book is about Xen, this chapter primarily focuses on providing a thorough background on virtualization concepts and theory rather than any specific technology; it remains relatively agnostic to any specific approach to virtualization or its implementation. Don't worryas you might expect (and hope), the rest of this book focuses on Xen, why it is the most attractive of today's virtualization solutions, and how to successfully make the most of Xen in your computing environment.
... less
Virtualization is easily today's hottest IT buzzword, for a variety of good reasons that were discussed in Chapter 1.... more
Virtualization is easily today's hottest IT buzzword, for a variety of good reasons that were discussed in Chapter 1. What's not to like about the idea of reducing costs, making better use of existing hardware resources, and viewing your commodity hardware as a pool of computing resources rather than a set of dedicated, single-purpose machines? This doesn't mean that you can drag out a bunch of aging servers, make a deal with the devil, and suddenly transmute them into a state of the art computing facility. The hardware on which you base your virtualization solution must be sufficiently powerful to run multiple operating systems and server instances simultaneously. Similarly, you must choose virtualization software that supports the way in which you want to use virtualization and provides the power to use virtualization effectively.
This chapter provides a detailed introduction to Xen, discussing its history, terminology, and capabilities, and also identifies the best resources for the latest information about Xen and virtualization on the Internet. It concludes by providing an overview of current virtualization and emulation solutions other than Xen. This "competitive" information shouldn't shake your faith in Xen as the best virtualization technology today, but is instead intended to help you make sense of the zillions of available and emerging virtualization technologies. Not all virtualization solutions are orthogonalsome are quite complementary. If you are currently in the planning phases of your virtualization environment, this chapter should help you make informed decisions as it covers different commercial and open source approaches to virtualization and the advantages and disadvantages of each.
Xen is an open source project that is also actively being productized by a number of companies. Some,... more
Xen is an open source project that is also actively being productized by a number of companies. Some, such as Virtual Iron and XenSource, are focused on commercializing Xen itself, independent of a standard Linux distribution. Others, including Linux distribution vendors such as Novell, Red Hat, and Ubuntu are adding Xen and Xen-enabled kernels to their repositories and supported product lines. The commercialization of Xen and the attendant rise in actual end-customer support is indicative of both the maturity of the Xen code base and the value of Xen in enterprise and academic environments.
This chapter starts out by identifying the basic hardware requirements for using Xen. It then discusses how to obtain Xen in a variety of different ways and from a variety of sources, how to build it if necessary, and how to install a usable Xen environment on your computer system. Throughout these discussions, this chapter always identifies any other software, source code, or services that you will need to have on your system in order to build, install, or use Xen.
Now the fun actually begins! The previous chapters provided background information on virtualization in general and Xen... more
Now the fun actually begins! The previous chapters provided background information on virtualization in general and Xen in particular, and discussed how to obtain and install Xen on a Linux system. In this chapter, we finally get to start the Xen hypervisor and boot a paravirtualized Linux kernel under the hypervisor. By the end of this chapter, you'll have a fully functioning administrative domain for Xen (domain0) and will be ready to move on to installing paravirtualized Xen virtual machines and/or fully virtualized Hardware Virtual Machines (HVMs) in your Xen environment, depending upon the capabilities of your hardware.
Note
As in the rest of this book, this chapter focuses on using Xen on Linux systems. Therefore, this chapter focuses on the Xen hypervisor boot process, which is essentially the same on any system, and subsequent interaction between the Linux boot process and Xen domain0 initialization. If you are booting Xen on a Solaris or *BSD system, the startup process will be similar and will perform the same types of tasks, but systems other than Linux are not covered in detail in this chapter.
The previous chapter discussed how to get a domain0 system up and running, highlighting some common problems,... more
The previous chapter discussed how to get a domain0 system up and running, highlighting some common problems, concerns, and solutions. However, having a domain0 system up and running without any guest domains is pretty equivalent to simply having a Linux system running in the first place. Aside from the fact that the Xen hypervisor gives you even more knobs to twist than a standard Linux system, it's not really all that exciting until you bring up your first virtual machine.
As explained in the first two chapters of this book, Xen supports both paravirtualized systems and hardware virtualization, the latter only if it is supported by your hardware. Once you have a valid HVM domainU configuration file, hardware virtual machines are pretty easy to install and use as a standard domainU system because you install and create them using standard OS installation disks. On the other hand, paravirtualized systems are more interesting for a few reasons, most notably because they typically provide higher performance than hardware virtual machines, and work on a much wider range of hardware than hardware virtual machines can. If all of your systems are brand-new, 64-bit Intel-VT or AMD SVM hardware, I'm proud to know you and somewhat jealous. On the other hand, if your machine room already has a significant investment in powerful 32-bit or non-HVM compatible 64-bit machines, it's hardly cost-efficient to simply replace that hardware because it doesn't support HVM. Clearly, new purchases should be made with HVM in mind, but why not make the most of what you already have?
This chapter gets to the heart of Xen by discussing how to quickly get your first few paravirtualized domainU systems up and running using Xen virtual machine images that you can easily find on the net. I have always found it wise to familiarize myself with new technologies by doing some prototyping, in this case experimenting with pre-existing domainU systems before spending significant time and effort building my own. This is useful for both proof-of-concept implementations and to reduce the number of variables when you're getting started with Xen.
Using domainU components that are freely available and which someone else has already debugged is a great bootstrap mechanism for familiarizing yourself with Xen, its configuration files, and its administrative environment. Don't worryplenty of complexity is available later, when you're ready for it.
This chapter also discusses how to create a simple configuration file for an HVM (assuming, again, that your hardware supports HVM), and how to set up a Xen HVM using a file to contain its filesystems. The goal of this section is to quickly get you up and running with Xen HVMs, not to provide a complete discussion of filesystems and associated storage (discussed in detail in Chapter 6), or every nuance of the Xen configuration file (discussed in detail in Appendix B).
Paravirtualized Xen VMs provide substantially better performance than hardware virtual machines, but are inherently harder... more
Paravirtualized Xen VMs provide substantially better performance than hardware virtual machines, but are inherently harder to create than hardware virtual machines. Although Xen's hardware virtual machines can only run on hardware with specific processors and characteristics, they are easy to install. They require only a valid Xen configuration file, the installation media for the operating system that you want to install, and some storage to install them into. Hardware virtual machines use this storage as a virtual disk drive, partitioning it appropriately, internally, and automatically during the installation process for the operating system that you are installing.
As discussed in Chapter 5, paravirtualized Xen systems usually use specific filesystems rather than using storage as a virtual disk drive. You can use complete disk images with paravirtualized Xen systems, but I find this to be needlessly complex. However, the installation procedure for most operating systems is designed to install to an entire disk drive rather than installing software subsets to a specific partition. For this reason, creating and populating disk images or partitions for use by paravirtualized Xen VMs requires a bit more thought than simply installing a complete operating system.
This chapter begins by providing background information about Linux filesystems and associated storage locations. It then discusses filesystems and storage for paravirtualized and hardware virtual machines, discussing how your choice of storage locations affects system administration tasks such as backups and virtual machine migration. It concludes by discussing how to create various types of root filesystems, and how to add specific capabilities to those root filesystems.
This chapter focuses on providing basic, low-level information about building root filesystems using basic Linux tools and techniques, and is therefore distribution-independent wherever possible. It also discusses how to use distribution-specific package management utilities and similar tools to simplify the process of manually creating different types of filesystems.
Xen provides a number of tools for creating, managing, and monitoring the status of domainU guests.... more
Xen provides a number of tools for creating, managing, and monitoring the status of domainU guests. Some of these are used internally by other Xen utilities, while some are intended for use by the system administrators, operators, and automated utilities that manage your enterprise IT infrastructure.
As Xen continues to grow in popularity and enterprise adoption, the number of virtual machines that are being used continues to expand and the scenarios in which it is deployed become more complex. Effectively monitoring and managing virtual infrastructure is a brass ring that many open software efforts and commercial software vendors are actively pursuing. In addition to Xen-specific management tools, many existing open-source system management and monitoring tools can easily be applied to Xen environments without requiring you to adopt and incorporate an entire new suite of multi-system management utilities.
This chapter focuses on providing a detailed discussion of the tools that are included with all standard Xen distributions, in order to provide information that will be useful to you regardless of which Linux distribution you are using in domain0 and your domainU guests. However, it would be doing everyone a disservice to ignore the excellent Xen-related work being done by specific Linux distributions, most notably in the Fedora and OpenSUSE environments that eventually feed into the commercial Red Hat Enterprise Linux (RHEL) and Novell's SUSE Linux Enterprise Server (SLES) distributions. This chapter therefore provides an overview of distribution-specific administrative software for Xen, and provides links to more detailed information. It also provides an overview of the open source tools that are being developed and used to help manage and monitor Xen in enterprise environments.
Creating, configuring, and managing physical networks can be extremely complex. Routing, performance,... more
Creating, configuring, and managing physical networks can be extremely complex. Routing, performance, and security issues can combine to require fairly complex networking topology to support restricted-access networks, hosts in a demilitarized zone between public and private networks, and so on.
Although virtual machines on a single physical host typically share network interfaces, using virtual machines doesn't free you from worrying about networking and security issues. All virtual machines on a given physical host require unique network addresses, just as physical hosts do. Xen virtual machines use virtual network interfaces to connect their emulated network devices to a network. Xen provides administrators with a great deal of flexibility in how you configure network interfaces, create virtual networks, and how your virtual machines communicate with the physical network. This makes it very easy for you to logically connect multiple virtual machines in different ways, such as segregating them on their own virtual network, using multiple Ethernet interfaces on your domain0 system to route different types of virtual and physical traffic, and efficiently and securely connect virtual networks to your physical network(s).
This chapter discusses the various ways that Xen supports connecting domainU (and domain0) hosts to your network(s). It discusses the different types of networking configurations provided out-of-the-box with Xen, the configurable aspects of the Xen daemon and a virtual machine's networking setup, and provides some general tips for creating different types of secure, manageable networks of domain0 and domainU hosts.
Tip
This chapter discusses Xen networking as implemented in the open source Xen distribution. Some Linux distributions, most notably Fedora and therefore Red Hat, have extensively customized Xen by adding intermediate virtualization libraries, which change the way that Xen networking is configured and used. If Xen network configuration doesn't work for you as described in this chapter, check any Xen and virtualization-related release notes for your distribution and the Xen Daemon configuration file for information about any ways in which Xen's networking may have been "improved" by your distribution.
Up to this point, most of this book has focused on providing background information, helping you get Xen installed on... more
Up to this point, most of this book has focused on providing background information, helping you get Xen installed on your domain0 system, and getting your first few domainU guests up and running. Assuming that all of this has been successful, this section dives into some advanced topics, some of which are optimization-related (tweaking GRUB settings, managing memory, and so on), and others that are procedural topics that aren't "day 1" topics, but which will probably become important to you as you expand and fine-tune your Xen implementation (how to add new hardware in domain0 and use it in domainU systems, how to work with X, how to use Xen security policies). This chapter is still hands-on. The next chapter focuses on the more theoretical aspects of rolling out Xen; integrating it with your policies, SLAs, and procedures; and so on.
This chapter discusses many different configuration settings for paravirtualized and HVM Xen guests. If you are using Xen's lifecycle management from the command line or a configuration tool (such as virt-manager) that stores its configuration information in the XenStore, you will need to update the XenStore configuration information for a domain before this new setting will actually take effect. This is most easily done from the command line by backing up your configuration information in XML or SXP format, deleting the old configuration by domainU name, and then reloading your configuration file into the XenStore.
virt-manager
As in all technologies, experimentation and deployment are very different things. Experimentation is an obvious first... more
As in all technologies, experimentation and deployment are very different things. Experimentation is an obvious first step in examining and evaluating any new technology. Many technologies are interesting for their own sake, and can provide insights into both new ways of using hardware and software and into the business processes that depend on them. Regardless of whether any specific technology is eventually adopted, research into new technologies is an important investment that most successful businesses understand. Even if there is no immediate business benefit from a specific experimental technology, keeping up with the technology curve poises you to successfully understand, implement, and incorporate technologies that can increase productivity, performance, and therefore profitability.
Deploying a new technology as a part of your enterprise infrastructure introduces the same reliability and availability requirements that you have for any other technology that you currently depend on. However, it also introduces new support, maintenance, and education requirements for IT staff in order to manage and support the day-to-day use of the new technology, and the creation, incorporation, and adoption of new IT processes across your enterprise for longer-term issues such as disaster and recovery planning.
This chapter highlights the most important planning and process issues related to adopting Xen as a core part of your enterprise infrastructure. If virtualization is a new technology for your organization, this chapter will help you identify important considerations for successful incorporation, use, and management of any virtualization technology, while focusing on Xen-specific issues.
If you are using Xen to augment or replace existing virtualization technologies, you can probably adapt or expand your existing process for dealing with virtualization technologies. However, as with any technology, Xen has its own unique capabilities and associated requirements that you must make sure are addressed by additions to existing policies and procedures. This chapter may even help you identify any omissions or overlooked aspects of your current policies and procedures.
As discussed throughout this book, the xm command is the core Xen command for interacting with the hypervisor,... more
xm
As discussed throughout this book, the xm command is the core Xen command for interacting with the hypervisor, controlling resource allocation and availability, creating and terminating Xen domainU guests, and so on.
The xm command is essentially a command suite that actually performs many different functions. To perform any of these subcommands, you type xm subcommand and supply the options that are necessary for that particular subcommand.
subcommand
You can display a list of the most commonly used xm subcommands by typing the xm command with no arguments. To see a complete list of all available subcommands, type xm help.
This appendix describes all of the available xm subcommands, what they do, the options that each subcommand requires in order to perform a specific task, and any optional arguments that you can supply when executing any of these subcommands.
As discussed in Chapter 6 and touched upon elsewhere in this book, Xen supports a number of different mechanisms for defining... more
As discussed in Chapter 6 and touched upon elsewhere in this book, Xen supports a number of different mechanisms for defining virtual machines and storing their configuration information. Most commonly, Xen virtual machine configuration information is stored in text files in Python variable format, making it easy to examine and update that configuration information. Links to these configuration files can be placed in /etc/xen/auto to automatically restart specific virtual machines whenever you restart a domain0 system.
/etc/xen/auto
If you are using Xen's lifecycle management, discussed in Chapter 9, the configuration information in these files can be loaded into the XenStore and preserved there, making this configuration information persistent and simplifying scripted system restarts. Once in the XenStore, virtual machine configuration information can also be displayed in standard formats such as SXP and XML. Distributions such as Fedora and Red Hat provide utilities such as virt-manager for graphically defining, storing, and editing configuration information for Xen virtual machines. As with Xen's lifecycle management, virt-manager stores this configuration information in the XenStore.
Regardless of how you define your Xen virtual machines and where their configuration information is stored, the configuration parameters that are supported by Xen are the key to your Xen virtual machines. This appendix discusses all of the virtual machine configuration parameters that Xen supports, any arguments they require or accept, and any default values for the parameters or their arguments. Some sample Xen configuration files in Python variable format are provided in the directory /etc/xen. These files have names beginning with xmexample, and show a variety of different paravirtualized and HVM configurations and suggested variable settings.
/etc/xen
xmexample
Purchase Before purchasing this product, please be sure you have met all software and system requirements, and that you understand any limits placed upon its use.
Return Policy Wrox Chapters on Demand are non-returnable and non-refundable.
Reader Software Wrox Chapters on Demand are offered as PDFs, and they must be viewed using the Adobe Reader. If you do not have the Reader installed, it can be downloaded for free at Adobe.com.
Test Download As Wrox Chapters on Demand purchases are non-returnable, it is advisable that you test your system and software configurations with a free sample download before you place an order.
Usage Rights for a Wrox Chapter on Demand File Any Wrox Chapter on Demand product you purchase from this site will come with certain restrictions that allow Wiley to protect the copyrights of its products. After you purchase and download this title, you:
If you have any questions about these restrictions, you may contact Customer Care at (877) 762-2974 (8 a.m. - 5 p.m. EST, Monday - Friday). If you have any issues related to Technical Support, please contact us at 800-762-2974 (United States only) or 317-572-3994 (International) 8 a.m. - 8 p.m. EST, Monday - Friday).
Related Books