In order to better understand a virtualized computer environment, it is bene-fi cial to compare the basic computer organization of a typical physical computer to that of a computer runnin
Trang 2ADVANCED
SERVER
VIRTUALIZATION
Platforms in the Virtual Data Center
Trang 3Creating Components: Object Oriented,
Concurrent, and Distributed Computing
in Java
Charles W Kann
0-8493-1499-2
The Hands-On Project Office:
Guaranteeing ROI and On-Time Delivery
ISO 9001:2000 for Software and Systems
Providers: An Engineering Approach
Robert Bamford and William John Deibler II
0-8493-2063-1
The Laws of Software Process: A New
Model for the Production and
Software Testing: A Craftsman’s Approach, Second Edition
Paul C Jorgensen 0-8493-0809-7
Software Testing and Continuous Quality Improvement, Second Edition
William E Lewis 0-8493-2524-2
IS Management Handbook, 8th Edition
Carol V Brown and Heikki Topi, Editors 0-8493-1595-9
Lightweight Enterprise Architectures
Fenix Theuerkorn 0-8493-2114-X
Outsourcing Software Development Offshore: Making It Work
Tandy Gold 0-8493-1943-9
Maximizing ROI on Software Development
Vijay Sikka 0-8493-2312-6
Implementing the IT Balanced Scorecard
Jessica Keyes 0-8493-2621-4
Other Auerbach Publications in Software Development, Software Engineering,
and Project Management
Trang 4Boca Raton New York
Auerbach Publications is an imprint of the
Taylor & Francis Group, an informa business
ADVANCED
SERVER
VIRTUALIZATION
Platforms in the Virtual Data Center
David Marshall
Wade A Reynolds
and Dave McCrory
Trang 5VMware, the VMware “boxes” logo, GSX Server, ESX Server, Virtual SMP, VMotion, and VMware ACE are trademarks of VMware, Inc.
Microsoft, Windows, and Windows NT are registered trademarks of Microsoft Corporation
This book is an independent publication and is not affiliated with, nor has it been authorized, sponsored, or otherwise approved by Microsoft Corporation.
Linux is a registered trademark of Linus Torvalds.
Published in 2006 by Auerbach Publications Taylor & Francis Group
6000 Broken Sound Parkway NW, Suite 300 Boca Raton, FL 33487-2742
© 2006 by Taylor & Francis Group, LLC Auerbach is an imprint of Taylor & Francis Group
No claim to original U.S Government works Printed in the United States of America on acid-free paper
10 9 8 7 6 5 4 3 2 1 International Standard Book Number-10: 0-8493-3931-6 (Hardcover) International Standard Book Number-13: 978-0978-0-8493-3931-8 (Hardcover) This book contains information obtained from authentic and highly regarded sources Reprinted material is quoted with permission, and sources are indicated A wide variety of references are listed Reasonable efforts have been made to publish reliable data and information, but the author and the publisher cannot assume responsibility for the validity of all materials or for the consequences of their use.
No part of this book may be reprinted, reproduced, transmitted, or utilized in any form by any electronic, mechanical, or other means, now known or hereafter invented, including photocopying, microfilming, and recording, or in any information storage or retrieval system, without written permission from the publishers For permission to photocopy or use material electronically from this work, please access www.copyright.com (http://www.copyright.com/) or contact the Copyright Clearance Center, Inc (CCC) 222 Rosewood Drive, Danvers, MA 01923, 978-750-8400 CCC is a not-for-profit organization that provides licenses and registration for a variety of users For organizations that have been granted a photocopy license by the CCC, a separate system of payment has been arranged
for identification and explanation without intent to infringe.
Visit the Taylor & Francis Web site at http://www.taylorandfrancis.com and the Auerbach Publications Web site at http://www.auerbach-publications.com
Taylor & Francis Group
is the Academic Division of Informa plc.
AU3931_Discl Page 1 Friday, April 14, 2006 2:33 PM
Trang 6About the Authors
David Marshall is currently employed as a Senior Software Engineer for
Sur-gient, Inc., the leading software provider of on-demand applications He holds
a B.S degree in Finance as well as an Information Technology Certifi cation
from the University of New Orleans He is Microsoft Certifi ed and has attained
numerous certifi cations from CompTia Marshall has been working with
vir-tualization software for nearly six years While working for a startup company,
ProTier, he became one of the few people in the country to work with server
class virtualization products such as VMware ESX Server, Connectix Virtual
Server, and Microsoft Virtual Server while each were still in their Alpha stage
Using this knowledge, he was able to help contribute to the writing of ProTier’s
product manual and training guides As a Systems Engineer and a Deployment
Manager with ProTier, he was able to create and implement complex solutions
for a number of Fortune 1000 clients Continuing to expand his
virtualiza-tion knowledge to other platforms and other products, Marshall contributes to
Surgient’s products and its customers Prior to joining ProTier and Surgient, he
enjoyed a long and successful career employed as a Project Manager and
Sys-tems Manager for Bank One Louisiana He can be reached at david.marshall@
vmbook.info
Wade A Reynolds is currently employed as an Architect in the Professional
Services department of Surgient Inc., an Austin, Texas based company that
pro-vides leading-edge software solutions that leverage server virtualization
technol-ogy He has been designing and implementing enterprise solutions using server
virtualization technology for more than four years with VMware ESX Server and
Microsoft Virtual Server Reynolds has a strong background in software
develop-ment, database design, networked systems engineering, and system integration
He earned MCP certifi cation and worked as the Senior Solutions Developer
for SCP Pool Corporation, the world’s largest pool supply distributor, where he
architected and implemented enterprise-level business applications, databases,
and processes, and as a consultant for General Electric, where his server and
net-working skills were honed He can be contacted at wade.reynolds@vmbook.info
Trang 7vi
Dave McCrory currently works as an expert in Enterprise Data Center
Vir-tualization and Hosting Technologies McCrory has been granted two U.S
Pat-ents and has fi ve others pending, all based on Data Center Management and
Virtualization technologies He has worked with Microsoft Virtual Server in
its Alpha stage as well as with its predecessor, Connectix Virtual Server While
working with these products, he provided these companies with assistance on
the original designs Additionally, he also was the fi rst successful Alpha site for
VMware ESX Server Previously, he had also worked as a consultant for both
Sprint and General Electric McCrory also founded ProTier, a startup company
that wrote virtualization management software that was later acquired by
Sur-gient Inc He has also attained Microsoft Certifi ed Systems Engineer, Master
Certifi ed Netware Engineer, and Citrix Certifi ed Administrator certifi cations
He can be reached at dave.mccrory@vmbook.info
About the Authors
Trang 8Contents
Part I Basic Concepts
1 Introduction to Server Virtualization 3
Overview of Virtualization Technology 3
History of Virtualization 8
Emulation, Simulation, and Virtualization 11
Summary 12
2 Types of Server Virtualization Technologies 15
Physical Partitioning 15
Logical Partitioning 18
Operating Systems and Runtime Environments 24
Summary 25
3 Server Virtualization Concepts 27
Host Servers, Virtual Machines, and Guest Operating Systems 27
Virtual Hardware Overview 29
Network Adapters 39
Summary 44
Part II Planning 4 Business Cases for Server Virtualization 47
Solving Business Problems 47
Limitations of Server Virtualization 53
Summary 53
5 Other Uses of Server Virtualization 55
Software Development and QA/Testing 55
Reduce Budget 56
Accelerating Development and Testing Cycle 57
Improve Product Quality and Productivity 58
Trang 9viii
Technical Support and Help Desk 61
Software Training and E-Learning Systems 64
Benefi ts of Virtualization 65
Summary 68
6 Planning for Deployment 69
Selecting a Server Virtualization Platform 69
Supported Versus Unsupported Guest Operating Systems 81
Support from Software Vendors 83
Unexpected Server Growth 84
Virtual Machine Density 85
Availability Considerations 89
Data and System Backup Considerations 90
Use Case 100
Requirements 103
Deployment Plan 103
Summary 103
7 Server Virtualization Platform Diff erences 105
Software Maturity (VMware) 105
Host and Guest Operating System Support (VMware GSX Server) 106
Training and Certifi cation (VMware) 107
Management and User Interface (VMware GSX Server) 107
Ease of Creating Virtual Machines (VMware GSX Server) 107
Hardware Support (Microsoft Virtual Server and VMware GSX Server) 108
Technical Support (Microsoft Virtual Server) 108
Performance (VMware ESX Server) 109
Price (Microsoft Virtual Server) 110
Usage Scenarios 111
Virtual Machine Specifi cations 114
Summary 114
Part III Implementing Microsoft Virtual Server 8 Th e Microsoft Virtual Server Platform 119
Product Background 119
Product Editions 121
Hardware Requirements 123
Software Requirements 125
Summary 125
9 Installing Microsoft Virtual Server 127
Virtual Server 2005 R2 Requirements 127
Preparing the Host Server 128
Preparing the Host Operating System 128
Installing Microsoft Virtual Server 2005 R2 129
Summary 138
Contents
Trang 10 ix
10 Confi guring Microsoft Virtual Server 139
Tools 139
Virtual Server Administration Website 139
Server Properties 140
Virtual Server Security Properties 142
Securing Virtual Server and IIS 143
Virtual Machine Remote Control Server 149
Virtual Server Scripts 151
Virtual Server Search Paths 153
Physical Computer Properties 154
Administration Website Properties 156
Recent Events Properties 157
Event Viewer Properties 157
Virtual Server Manager Search Paths 158
Resource Allocation 158
Event Viewer 160
Summary 161
11 Creating a Microsoft Virtual Server Virtual Machine 163
Preparation 163
Creating a Virtual Machine 165
Summary 188
12 Microsoft Virtual Server Advanced Topics 189
Virtual Machine Additions 189
Passing Information from the Host to the Guest Operating System 192
Virtual Machines 193
Virtual Hard Disks 196
Creating a Virtual Hard Disk 202
Virtual Hard Disk Modes 203
Inspecting Disks 205
Merging Virtual Hard Disks 206
Converting Disk Types 206
Compacting Dynamic Disks 208
Virtual Networking 208
Virtual Switches 209
Virtual Machines Communicating with the Host 210
Virtual Machines Communicating with Each Other Privately 210
DHCP Server 211
Creating a Virtual Network or Virtual Switch 213
Performance Optimization 214
Host Clustering 218
iSCSI Support 220
Unattended Installation 221
Summary 225
Contents
Trang 11x
Part IV Implementing VMware ESX Server
13 Th e VMware ESX Server Platform 229
Product Background 229
Platform Specifi cs 231
Summary 234
14 Installing VMware ESX Server 237
VMware ESX Server 2.5.2 Requirements 237
Preparing the Host Server 239
Preparing the Host Operating System 239
Installing VMware ESX Server 2.5.2 241
Summary 253
15 Confi guring VMware ESX Server 255
Management Interface 255
Virtual Machine Remote Console (VMRC) 259
Service Console 261
Boot Profi les and LILO 262
How to Access and Log in to the Service Console at the Physical Server 262
How to Access and Log in to the Service Console Remotely 263
Basic Linux Commands 263
ESX Server Commands 270
How to Edit a Virtual Machine’s Conifi guration File in the Service Console 292
Th e Proc File System (procfs) 293
Summary 298
16 Creating a VMware ESX Server Virtual Machine 299
Preparation 299
Creating a Virtual Machine with Microsoft Windows Server 2003 Guest OS 301
Installing a Guest Operating System 308
Installing Windows Server 2003 in a Virtual Machine 308
VMware Tools for a Windows Installation 309
Installing a Linux Guest Operating System 317
VMware Tools for a Linux Installation 318
Summary 320
17 VMware ESX Server Advanced Topics 321
VMware Tools 321
VMware Tools: Time Synchronization 323
VMware Tools: Heartbeat Service 324
VMware Tools: Clipboard Integration 324
VMware Tools: Obtaining Data from the ESX Host Server 325
VMware Tools: Automated Scripts 326
VMware Tools: Optimized Mouse 327
VMware Tools: Optimized Display 328
VMware Tools: Optimized Network Adapter 328
Contents
Trang 12 xi
VMware Tools: Windows Service 330
VMware Tools: Windows Control Panel and Tray Icon 330
VMware Tools: Windows Properties Interface: Options Tab 330
VMware Tools: Windows Properties Interface: Devices Tab 331
VMware Tools: Windows Properties Interface: Scripts Tab 332
VMware Tools: Windows Properties Interface: Shrink Tab 333
VMware Tools: Windows Properties Interface: About Tab 334
VMware Tools: Linux Toolbox Interface 335
VMware Tools: Linux Toolbox Interface: Devices Tab 335
VMware Tools: Linux Toolbox Interface: Scripts Tab 336
VMware Tools: Linux Toolbox Interface: Options Tab 337
VMware Tools: Linux Toolbox Interface: Shrink Tab 337
Virtual Machines 338
VMFS 341
Hard Disk Drives 341
Networking 351
Resource Management 365
Performance Optimization 367
Summary 369
Part V Implementing VMware GSX Server 18 Th e VMware GSX Server Platform 373
Product Background 373
Product Versions 375
Hardware Requirements 376
Software Requirements 380
Summary 383
19 Installing VMware GSX Server 385
GSX Server for Windows Requirements 385
Preparing the Host Server 386
Preparing the Host Operating System 387
Installing VMware GSX Server for Windows 387
Complete Installation 390
Custom Installation 392
GSX Server for Linux Requirements 396
Preparing the Host Server 397
Preparing the Host Operating System 398
Installing VMware GSX Server for Linux 399
Installing the VMware Management Interface for Linux 403
Installing the VMware Virtual Machine Console for Linux Hosts 405
Installing the VmPerl Scripting API on a Linux Host 406
Summary 408
Contents
Trang 13xii
20 Confi guring VMware GSX Server 409
VMware Management and Confi guration Tools 409
Add Virtual Machine 438
Virtual Machine Overview 439
Security 444
Virtual Machines and File Permissions 452
Summary 454
21 Creating a VMware GSX Server Virtual Machine 455
Preparation 455
Installing a Guest Operating System 469
Installing a Windows Guest Operating System 471
Installing a Linux Guest Operating System 474
Summary 478
22 VMware GSX Server Advanced Topics 479
VMware Tools 479
VMware Tools Control Panel—Properties (Toolbox) 487
VMware Tools Properties (Windows Guest Operating System) 487
VMware Toolbox (Linux Guest Operating System) 492
Virtual Machines 497
Virtual Networking 518
GSX Server Network Confi gurations 520
Dynamic Versus Static MAC Addresses 527
Resource Management 529
Performance Optimization 532
Installing Patches and Updates 538
Summary 539
Part VI Advanced Concepts 23 Upgrading VMware GSX Server and ESX Server 543
VMware GSX Server 3.2 543
Planning the Upgrade 547
How to Handle Virtual Machine Disk Modes 547
Upgrading the Linux Host Server 550
Upgrading the Guest Operating System 552
Upgrading a Windows Guest Operating System 553
Upgrading a Linux Guest Operating System 555
VMware ESX Server 2.5 556
Planning the Upgrade 558
Upgrading a Previous ESX Server Release to ESX Server 2.5 559
Migrating Older ESX Server Virtual Machines 562
Upgrading a Virtual Machine 563
Summary 564
Contents
Trang 14 xiii
24 Guest Operating System Techniques 565
Images 565
Template Guest Operating System Image Concepts 566
Eff ectively Creating and Optimizing Template Guest OS Images 571
Cloning Template Images 582
Creating and Managing a Template Image Library 587
Summary 588
25 Scripting with Microsoft Virtual Server, VMware GSX Server and ESX Server 589
Getting Started with Application Programming Interfaces (APIs) 589
Microsoft Virtual Server 2005 COM Interfaces 591
Controlling a Virtual Server Th rough Scripting 593
Security and Microsoft Virtual Server 595
Backing Up Microsoft Virtual Server 595
Backing Up VMware GSX Server 597
Backing Up VMware ESX Server 599
Summary 602
26 Other Advanced Topics 605
Back Up and Restore 605
Backing Up Individual Files from within the Virtual Machines 607
Backing Up Virtual Machines with a Host Operative System Backup Agent 608
Backing Up Individual Machine Files without Backup Agents 610
Clustering 612
Clustering in Virtualization 614
Other Virtual Disk Images 622
Physical to Virtual Conversions (P2V) 633
Summary 635
Part VII Resources 27 Tools and Utilities 639
Communications Tools 639
Disk Tools 640
Disk Imaging Tools 643
Floppy Disk Image Tools 644
ISO Image Tools 645
Image Cloning Tools 647
Image Migration / P2V Tools 647
Management and Monitoring Tools 649
Single User Virtualization Platforms 650
VMware Player 651
Other Tools 651
Summary 653
Contents
Trang 15xiv
28 Related Products and Open Source Projects 655
Commercial 655
Open Source Eff orts 660
Summary 663
29 Other Virtualization Resources 665
Product Vendor Resources 665
Resources and Web Links 672
Summary 677
Part VIII Appendices Appendix I Deployment Planning Checklist 681
Appendix II File Extensions by Virtualization Platform 683
Appendix III Useful Log Files 689
Appendix IV Useful TCP/IP Ports 699
Appendix V Useful Linux Commands for Windows Users 703
Glossary 707
Index 719
Contents
Trang 16Acknowledgments
Without trying to sound too cliché, we realize that this book would not be
possible without the help of many people Although we cannot thank everyone
by name, we appreciate all of the hard work, dedication, and energy that
every-one has contributed Virtualization is a subject that all three of us hold in high
regard, and we each have a strong belief in the endless possibilities that it can
provide to the IT community
We’d like to begin by thanking all of those who helped contribute to the book
We owe a great deal of thanks to the wonderful team at Auerbach Publications,
Taylor and Francis Group Our editor, John Wyzalek, has been incredibly easy
and fl exible to work with during the course of this project Julie Spadaro, our
project editor, did a fantastic job overseeing the production of our book Th eir
guidance along the way has been invaluable And a special thank you to Lynn
Goeller and her team at EvS Communications for their diligent work handling
the copyediting, page layout, and proofreading of the book
Next, we’d like to acknowledge the work of our contributing authors For his
work on chapter 16, we want to thank Robert Oster, Senior Network Engineer
and IT Services Manager at Universal Data, Inc He has years of experience
working with virtualization platforms and was one of the founders of ProTier,
a pioneering software company in the virtualization application arena For his
work on chapter 25, we would like to thank Richard Cardona, Principal
Engi-neer at Surgient, Inc His expertise at scripting and programming against the
major virtualization platforms was key to the creation of this chapter Th ank you
both for lending us your time and creativity
We also need to off er a special thank you to Surgient, Inc for allowing us to
write this book, for giving us the opportunity to work with virtualization day in
and day out, and for allowing us to explore new opportunities
Trang 17xvi
Family is an important facet in each of our lives Without our family members,
this book would have been impossible to write
“Writing a book is an exercise in fortitude, and without the constant support
of my family, I wouldn’t have had the energy to complete this project My wife,
Donna, and my children, Megan and Haley, deserve more than a thank you for
their tireless eff orts in supporting me through those long months of me being
locked away in my offi ce working on the book It isn’t easy giving up the
week-ends, but they understood I also need to thank my parents, David and
San-dra Marshall, and my sister, Tammy Lapeyrouse, for helping to foster creativity
growing up and for pushing me to strive for excellence.”
“I would like to personally thank my family, Leanna, Elaina, and Madison, for
putting up with my diffi cult schedules while this book was being created and
for supporting my eff orts I also want to thank Susan and Don Townsend,
Jes-se Reynolds, Evan Mersch, Robert James Reynolds, Warren and Hellen
Borge-son, Robert “Red” Borgeson and Leta BorgeBorge-son, Melanie “Honey Bee” Peoples,
Joseph Gebbia, and all of my cousins, for always believing in me For this I am
truly blessed.”
Wade Reynolds
“I would like to off er a special thanks to the most extraordinary companion and
friend anyone could ever have, my wife Sonya, as well as my children Nick, Julia,
Travis, and Olivia In addition, I need to thank my family: my parents Dennis
and Lolly, my brother Dan and my sister Morgan Finally I would like to thank
all of my friends, family, and the original ProTier team.”
Dave McCrory
Acknowledgments
Trang 18Part I
Basic Concepts
Trang 20Chapter 1
Introduction to Server
Virtualization
diff erences between emulation, simulation, and virtualization technologies
Overview of Virtualization Technology
Virtualization technology is a way of making a physical computer function as
if it were two or more computers, each nonphysical or “virtualized” computer
is provided with the same basic architecture as that of a generic physical
primarily discuss software-based server virtualization, but will touch on other
forms including hardware partitioning, emulation, and simulation
In order to make a physical computer function as more than one computer,
its physical hardware characteristics must be recreated through the use of
software is used in many software systems, including inside the Windows
for all drivers and software to talk to the hardware in a common/unifi ed format
don’t have to write custom software for each brand or type of computer that
they want their code to run on Abstraction, as it relates to virtualization, is the
representation of a set of common hardware devices that are entirely software
Trang 214 Advanced Server Virtualization
technology allows the installation of an operating system on hardware that does
not really exist
Virtualization is a concept that allows a computer’s resources to be divided or
inter-operate or be totally unaware of each other A single environment may or may
not be aware that it is running in a virtual environment Environments are most
commonly known as virtual machines (VMs) VMs will almost always house an
system installations are commonly known as Guest operating systems
Instruc-tions for a VM are usually passed directly to the physical hardware that allows
more complex instructions must be trapped and interpreted in order to ensure
proper compatibility and abstraction with the physical hardware
In order to better understand a virtualized computer environment, it is
bene-fi cial to compare the basic computer organization of a typical physical computer
to that of a computer running a virtualization platform and virtualized
onto which is installed an operating system (e.g., Linux or Windows) and one
or more applications installed into the operating system Figure 1.1 shows this
arrangement
Inside a computer hosting a virtualization platform, the arrangement may
be slightly diff erent because the computer has a set of hardware onto which the
has a virtualization platform installed into which one or more virtual machines
are created, each acting as a set of separate hardware and capable of having an
operating system and applications installed as shown in Figure 1.2
Figure 1.1 Traditional System Architecture.
Trang 22Introduction to Server Virtualization 5
Another common arrangement of a virtualized computing system is one in
which the virtualization platform is installed directly onto the computer’s
vir-tual machines can be created, each capable of having a unique operating system
Implementations of server virtualization include:
VMware ESX Server
plat-form to date VMware ESX Server runs directly on the physical hardware
VMware GSX Server
VMware GSX Server is a lightweight server virtualization platform,
origi-nally based on VMware’s workstation product VMware GSX Server must
be installed into either a Linux or Windows operating system
Microsoft Virtual Server 2005
Microsoft Virtual Server 2005 is a server virtualization platform based on
technology acquired by Connectix Corporation Virtual Server 2005 must
Virtual Machine
Operating System
(Linux, Solaris, Windows, etc.)
Software Applications
Software Applications
Software Applications
Software Applications
Software Applications
Figure 1.2 Virtualized System Architecture 1.
Trang 236 Advanced Server Virtualization
be installed into a Windows 2003 Server or Windows XP Professional
op-erating system (Microsoft does not support Virtual Server 2005 on
Win-dows XP Professional for production use)
Portability
hard-ware beneath is from diff erent manufacturers
Manageability
Virtual environments can be managed easily and off er access to the virtual
hardware
Effi ciency
When properly implemented, server virtualization allows the physical
hardware’s resources
Figure 1-B, Virtualized System Architecture 1
Virtual Machine
Operating System (Linux, Solaris, Windows, etc.)
Virtual Hardware
Virtual Machine
Operating System (Linux, Solaris, Windows, etc.)
Virtual Hardware
Software Applications
Software Applications
Software Applications
Software Applications
Software Applications
Software Applications
Figure 1.3 Virtualized System Architecture 2.
Trang 24Introduction to Server Virtualization 7
When to use server virtualization:
Server consolidation
Server consolidation allows many physical servers to be virtualized and
hosted on as little as a single physical server leveraging virtualization Most servers today are far underutilized, running between 8 percent and 12 per-cent utilization
Legacy application support
operat-ing systems onto new hardware without incurroperat-ing issues due to ibilities with newer hardware platforms
Multiple operating system support
operating systems is necessary
Software demonstration
By using virtualization, demonstrations and beta software can be run in a
consistent manner
Development, testing, and debugging
Because of the strong isolation between the environment and the
virtualiza-tion platform, it becomes easy to perform software testing and debugging
Technical training and E-learning
In many advanced classes today, several computers are required for each
student By using virtualization, companies can reduce the number of computers required to teach a class and the time it takes to set up the next class
When server virtualization should not be used:
Testing of x86 virtualization
virtualization IBM’s older virtualization was engineered to support this type of usage
Computer games
play high end games in virtual environments
Specialized hardware and peripherals
representa-tion of these devices in the virtual environment
Performance testing
Trang 258 Advanced Server Virtualization
Hardware driver debugging
Because all virtual machines in each version of virtualization are the same
and the hardware is fi xed and emulated, there is no way to test or debug
hardware drivers on this platform
History of Virtualization
might think (see Figure 1.4) In fact the idea of virtualization was fi rst discussed
-cant events that occurred from the early 1960’s through today and the impact
that each had on x86 server virtualization
In the early 1960’s, IBM introduced Time Sharing which was the original
driv-ing force behind virtualization Today, many people associate time shardriv-ing with
mainframe computers, but arguably x86 could be headed in this direction under
the name On-Demand Computing In 1964, IBM introduced the IBM
Sys-tem/360, which provided limited virtualization capabilities and was architected
by the legendary Gene Amdahl Later in 1964, the CP-40 was released and gave
way to the fi rst mentions of Virtual Machines and Virtual Memory In 1965,
was followed in 1967 by another release of CP-40 and CMS, which put into
production a system supporting 14 VMs each having 256K of Virtual Memory
provided a much needed boost in both performance and stability to 40
CP-67 Version 2 in 1969 gave way to a new scheduler and PL/I support and in 1970
CP-67 Version 3 had free storage sub pool support which provided additional
performance and the addition of SLT instruction Finally in 1971, Version 3.1
of CP-67 was released with high speed I/O enhancements
In 1972, the System/370 Advanced Function was released and had new
Ad-dress Relocation Hardware and now supported four new operating systems
(VM/370, DOS/VS, OS/VS1, and OS/VS2) As VM technology became more
popular in the IBM community, the MVMUA (Metropolitan VM User
Release 2 in 1974 contained the fi rst iteration of VMA (Virtual Machine Assist)
Microcode Also in 1974, Gerald J Popek and Robert P Goldberg created a set
of formal requirements for architectures titled “Formal Requirements for
the rise of the Internet gave way to the need for TCP/IP support In 1987, VM
TCP/IP also known as FAL made TCP/IP available to VMs
virtualization technologies and platforms
Trang 26Introduction to Server Virtualization 9
1961 Time Sharing Introduced By IBM
1999 VMware introduces VMware Virtual Platform
2000 VMware GSX Server 1.0 for Linux and Windows
2001 VMware ESX Server 1.0
2002 VMware ESX Server 1.5, VMware GSX Server 2.0
2003 VMware ESX Server 2.0, VMware GSX Server 2.5
2003 VMware VirtualCenter
2003 Connectix Virtual Server 1.0 RC
2003 Microsoft acquires Connectix VPC and Virtual Server
2004 EMC acquires VMware
2004 VMware GSX Server 3.0, VMware GSX Server 3.1
2004 Microsoft Virtual Server 2005
2004 VMware ESX Server 2.5
2005 VMware GSX Server 3.2, Dual-Core CPU Support
2005 Microsoft Virtual Server 2005 R2
Figure 1.4 Virtualization History Timeline.
Trang 2710 Advanced Server Virtualization
In 1988, a small company, Connectix Corporation, was founded and
provid-ed solutions for Apple Macintosh (Mac) systems Connectix became well known
for its innovative approach to solving problems that Apple either could not or
would not solve One such example of this was Mode32, a solution to the 24-bit
memory addressing problem on the Motorola 68020 and 68030 processors used
in early Macs Another product by Connectix was SpeedDoubler, a product that
provided a high-performance emulation bridge from the Motorola 68000
pro-cessors to the Power PC-based propro-cessors Following SpeedDoubler was RAM
Doubler, which provided a way to double a Mac’s memory by compressing and
decompressing the contents of RAM on the fl y
Connectix’s experience with the Mac would lead them to create a new
was quite a feat of programming in that it incorporated a binary translation
engine to translate instructions from a virtual Intel x86 processor to a physical
would lead Connectix into virtualization technologies
In 1998, VMware was founded by Diane Greene and husband Dr Mendel
Rosenblum along with two students from Stanford University and a colleague
from Berkley On October of 1998, these founders fi led for a patent regarding
new virtualization techniques based on research conducted at Stanford
On February 8, 1999, VMware introduced “VMware Virtual Platform” to
virtu-alization platform, and would later become the VMware Workstation product
In late 2000, VMware released their fi rst server virtualization platform,
imple-mentations and installed on top of either a Linux or Windows operating system
the release of VMware ESX Server 1.0, a mainframe class server virtualization
platform Unlike VMware GSX Server, VMware ESX Server installs on bare
metal and provides a more stable and high performance computing
environ-ment due to its native Hypervisor otherwise known as a Virtual Machine
Moni-tor (VMM) which requires much less overhead From 2002 to present, VMware
has continued to release updated versions of both GSX Server and ESX Server
platforms adding new capabilities and enhancing performance
Connectix built a relationship with Microsoft which was based on the
bun-dling of operating system packs for Connectix’s Virtual PC for Mac product
Later, Connectix provided the PocketPC emulation technology embedded in
Microsoft’s Visual Studio.NET application Connectix entered the x86 server
virtualization arena with their release candidate version of the Connectix Virtual
Server product in early 2003 Connectix Virtual Server would not make it to
market as a Connectix product however, as Microsoft acquired from Connectix
Trang 28Introduction to Server Virtualization 11
the intellectual property rights for both Virtual PC for Mac and Windows as
well as Connectix Virtual Server
Microsoft’s virtualization plan is focused on supporting legacy application
rehosting, server consolidation, and automation of software development and
Virtual PC 2004, on December 2, 2003 Microsoft’s planned entry into the
x86 server virtualization market, Microsoft Virtual Server 2004, was delayed in
order to implement heavy security modifi cations due to the new Microsoft
in mid 2004 with two versions, Microsoft Virtual Server 2005 Standard Edition
(supporting up to four physical processors) and Microsoft Virtual Server 2005
Enterprise Edition (supporting up to 32 physical processors)
as a surprise; however the underlying reason was that, like EMC’s acquisition
of Documentum and Legato, they were aiming for software applications which
consume very large quantities of storage space VMware remains as an
indepen-dent subsidiary of EMC and is still headed by CEO Diane Greene
Today, both Intel and AMD have introduced new technologies to provide
proces-sors, Intel’s Virtualization Technology (originally known as Vanderpool and
Silvervale), and AMD’s Pacifi ca project Unlike previous x86 processors,
Van-derpool, Silvervale, and Pacifi ca are expected to meet the Popek and Goldberg
requirements for virtualization architectures
Emulation, Simulation, and Virtualization
Emulation is a concept that allows one environment to act or behave as if it were
imperson-ation An environment is an execution platform, operating system, or hardware
architecture Instructions are interpreted from the executing environment into
instructions that the real, underlying environment understands Emulation is
used for running legacy environments, operating system development, and
soft-ware testing Emulated environments incur a high performance penalty when
compared to virtualized systems due to the overhead of the interpreter
Common implementations of emulation include:
Bochs
Bochs is an open source x86 emulator which emulates the x86 processor,
devices, and BIOS
MAME
run on Windows It emulates the arcade hardware for which the games were originally programmed
Trang 2912 Advanced Server Virtualization
Virtual PC for Mac
Virtual PC for Mac emulates the x86 hardware environment which allows
Microsoft Windows operating systems to be installed and run
WINE
WINE enables Windows applications to run on Linux, FreeBSD, and
So-laris It emulates portions of the Windows operating system, but the code
executes natively on the x86 processor Ironically, the name WINE is a
recursive acronym which stands for “WINE Is Not an Emulator.”
Simulation is a concept in which an environment imitates another
An environment is an execution platform, operating system, or hardware
archi-tecture Simulators are used diff erently than both emulation and virtualization
reduces the costs and risks associated with mistakes being made on hardware and
chips before they are fabricated
Common implementations of simulation include:
Cadence and Synopsis
the capability that simulators provide
Simics
operating systems using its simulated processors and devices
SimOS
simu-lated the SPRITE system on SPARC hardware Other implementations of
SimOS supported MIPS-based SGI systems, Digital Alpha Processors and
the Power PC
Summary
is the only technology that enables revolutionary capabilities in the datacenter
Virtualization provides the benefi ts necessary to give IT organizations the ability
provisioning, and management Virtualization also enables physical hardware
independence, which gives IT the fl exibility and freedom of not being locked in
to a single vendor’s hardware solution
Trang 30Introduction to Server Virtualization 13
real-ize Several signifi cant developments occurred in the early 1960s, in the late
pioneering companies in the x86 server virtualization space, VMware, and
Con-nectix Together these two companies have defi ned x86 server virtualization and
created the market for server consolidation Both companies have been acquired
(VMware by EMC and Connectix by Microsoft) and their technology continues
to lead to innovations in the computer industry
While virtualization solves many of the problems for IT, it is not a universal
enough of a technology to be applied, such as with applications requiring high
processor utilization or heavy multiprocessing capabilities (those consuming the
resources of a four-way or greater server) or when the need for high end graphics
display is needed (such as doing 3D design work in a CAD/CAM application
implement server virtualization using best practices learned through real
experi-ences, enabling successful server virtualization deployments across all uses
Trang 32Th ere are many diff erent approaches and technologies used to implement
virtu-alized systems It is important to be aware of these technologies and how they
diff er from x86 server virtualization Th is chapter provides a high-level overview
of these approaches, how they are used, and their diff erentiation
Virtualization technology comes in several forms Th e set of virtualization
technologies used in enterprise server systems are collectively referred to as
par-titioning technologies Although this book is primarily focused on server
virtu-alization by means of software partitioning, for completeness, the diff erences
between hardware, software, application, resource, and service partitioning are
explained as well as other types of virtualization including operating systems and
runtime environments
Physical Partitioning
Physical partitioning refers to the separation of execution environments by
liter-ally using physicliter-ally separate hardware devices or by using physical
hardware-based partitioning
Physical hardware separation (see Figure 2.1) is the easiest and most prolifi c
form of partitioning It is the practice of using multiple physical servers (or
computers), each having a single instance of an operating system, to serve
dif-ferent needs or purposes A common example of this practice is an organization
that has a separate server for each of the following server roles or applications:
fi le sharing, print spooling, domain authentication and authorization, database
Trang 3316 Advanced Server Virtualization
server, email server, web server, FTP server, and so on Physical hardware
separa-tion is commonly driven by applicasepara-tions that have mutually exclusive
require-ments of the hardware devices and/or operating system, applications with high
resource utilization, or server stability Some applications cannot share the same
environment as other applications because they were designed to have control of
the entire operating system and the server’s resources Other applications have
high resource utilization such as processor, memory, intensive disk I/O, storage
size limitations, or network adapter bandwidth that often requires a dedicated
server Consider installing Microsoft SQL Server and Microsoft Exchange Server
together on a single server Although it is technically possible, it is likely that
each server application will perform poorly as they continuously compete for
control of the same system resources
Applications have also been separated onto dedicated physical servers because
of the idea that it is generally more stable to have fewer applications running
within the same instance of an operating system, usually because of poor resource
management by the operating system (whether true or perceived) or because of
poor resource handling or wasteful resource utilization by an application
An-other reason that applications are installed on separate hardware is because they
were designed and written for diff erent operating systems or diff erent hardware
architectures For example, Microsoft BizTalk Server must be installed onto a
Windows operating system-based server with an Intel processor whereas
appli-cations written for IBM’s OS/400 operating system must be installed on IBM
AS/400 server hardware, while applications written for the Microsoft Windows
operating system must be installed on IA-32 compatible computer hardware
Hardware partitioning is a highly-specialized hardware technology that
al-lows the computing resources of a single, physical computer to be divided into
multiple partitions (often called hard partitions), each of which can host its
own, isolated instance of an operating system Hardware partitioning has existed
for quite some time, originating in high-end mainframe systems from IBM
Today, there are several hardware partitioning technologies available, although
Figure 2.1 Physical Hardware Separation.
Trang 34Types of Server Virtualization Technologies 17
each implementation is proprietary and requires very specifi c server hardware
and software to be used In some implementations, only one or two very specifi c
operating systems are supported In general, all of the required components of a
system featuring hardware partitioning are only available from a single vendor,
due to their proprietary nature
One of the key advantages of hardware partitioning is its very effi cient resource
sharing and management capabilities Th ese systems are much more effi cient
than equivalent software partitioning systems because the resource management
between hard partitions is handled using separate hardware components (chips,
circuits, memory, storage, etc.) Th e specialized software (sometimes referred
to as microcode) that performs the actual resource management resides in the
specialized resource management hardware components as well As a result, the
available performance in each hard partition is maximized and remains
unaf-fected by the resource management system’s overhead Th is is very diff erent from
software partitioning technologies where the partitioning occurs in software that
is executed using the same hardware that is being managed and shared Another
advantage, available in some implementations of hardware partitioning, is
elec-trical isolation of each hard partition Elecelec-trical isolation in hardware
partition-ing systems allows a hardware fault to occur in one hard partition while not
aff ecting any other hard partition in the same system Systems off ering hardware
partitioning technologies are usually mid-range to high-end computing systems
that are generally very scalable (usually scaling up) and robust
Hardware partitioning systems have several disadvantages: expensive,
pro-prietary hardware and software, additional costs incurred by the support and
maintenance of the proprietary hardware, limited support for various operating
systems, limited hardware portability for an existing installed base of hard
parti-tions, and vendor lock-in Proprietary hardware and software systems almost
always have additional costs for installation, training, support, and maintenance
due to the lack of expertise of most IT organizations with these types of systems
Often vendors will only allow their services organization to perform the
instal-lation and support of these systems Hardware partitioning systems generally
only allow one type of operating system to be installed; of course, each hard
partition supports a separate instance of that operating system Th ere are some
systems that are more fl exible and support more than one operating system, but
it is almost always limited to operating systems provided by the vendor Aside
from limited operating system support, hardware partitioning systems have very
limited portability of existing partitions Generally, these partitions may only be
moved to systems comprised of the same vendor’s hardware because of the lack
of complete hardware abstraction Investment in proprietary hardware and
soft-ware systems almost always leads an organization into what is known as vendor
lock-in Vendor lock-in occurs when an organization has made an investment in
a single vendor’s proprietary technologies and it thus is cost prohibitive for the
organization to move to a diff erent technology or vendor Vendor lock-in aff ects
Trang 3518 Advanced Server Virtualization
organizations for long periods of time, usually fi ve or more years at a time Of
course, the vendor reaps the benefi t of vendor lock-in because of the expense and
diffi culty an organization faces when attempting to switch to another vendor
Th e organization suff ers due to cost and infl exibility in changing hardware and
software, which makes it diffi cult to quickly move on to new opportunities
Hardware partitioning systems (see Figure 2.2) are available from the
follow-ing vendors (listed with their current technologies):
HP—nPartition (Hard Partitions)
IBM—LPAR and DLPAR (Logical Partitioning and Dynamic Logical
Partitioning)
Sun Microsystems—Dynamic System Domains
Unisys—Dynamic Partitioning
Logical Partitioning
Logical partitioning refers to the separation of execution environments within
a computing system using logic implemented through software Th ere are
dif-ferent ways in which the resources of a computer system may be managed and
shared Logical partitioning includes software partitioning, resource
partition-ing, and service partitioning technologies
Software partitioning is a software-based technology that allows the resources
of a single, physical computer to be divided into multiple partitions (also called
soft partitions or virtual machines), each of which can host its own, isolated
in-stance of an operating system Software partitioning is generally similar to
hard-ware partitioning in that multiple instances of operating systems may coexist
on a single physical server Th e major diff erence between hardware and software
partitioning is that in software partitioning, the isolation of each soft partition
and the management of the shared resources of the computer are completely