Tải bản đầy đủ (.pdf) (70 trang)

ADVANCED SERVER VIRTUALIZATION VMware and Microsoft Platforms in the Virtual Data center phần 1 ppt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (966.69 KB, 70 trang )

ADVANCED
SERVER
VIRTUALIZATION
VMware
®
and Microsoft
®
Platforms in the Virtual
Data Center
AUERBACH PUBLICATIONS
www.auerbach-publications.com
To Order Call: 1-800-272-7737 • Fax: 1-800-374-3401
E-mail:
The Complete Project Management
Office Handbook
Gerard M. Hill
0-8493-2173-5
Complex IT Project Management: 16
Steps to Success
Peter Schulte
0-8493-1932-3
Creating 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
Richard M. Kesner
0-8493-1991-9


Interpreting the CMMI®: A Process
Improvement Approach
Margaret Kulpa and Kent Johnson
0-8493-1654-5
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
Management of Software
Phillip G. Armour
0-8493-1489-5
Real Process Improvement Using the
CMMI®
Michael West
0-8493-2109-3
Six Sigma Software Development
Christine Tayntor
0-8493-1193-4
Software Architecture Design Patterns
in Java
Partha Kuchana
0-8493-2142-5
Software Configuration Management
Jessica Keyes 0-8493-1976-5
Software Engineering for Image
Processing
Phillip A. Laplante 0-8493-1376-7
Software Engineering Handbook

Jessica Keyes 0-8493-1479-8
Software Engineering Measurement
John C. Munson 0-8493-1503-4
Software Metrics: A Guide to Planning,
Analysis, and Application
C.R. Pandian
0-8493-1661-8
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
Boca Raton New York
Auerbach Publications is an imprint of the
Taylor & Francis Group, an informa business
ADVANCED
SERVER
VIRTUALIZATION
VMware
®
and Microsoft
®
Platforms in the Virtual
Data Center
David Marshall
Wade A. Reynolds
and Dave McCrory

VMware, 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
10987654321
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
( 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.

Trademark Notice:

Product or corporate names may be trademarks or registered trademarks, and are used only
for identification and explanation without intent to infringe.

Visit the Taylor & Francis Web site at


and the Auerbach Publications Web site at

Taylor & Francis Group
is the Academic Division of Informa plc.

AU3931_Discl Page 1 Friday, April 14, 2006 2:33 PM
v
About 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
Marshall_AU3931_C000.indd vMarshall_AU3931_C000.indd v 4/13/2006 4:35:44 PM4/13/2006 4:35:44 PM
vi 
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
About the Authors
Marshall_AU3931_C000.indd viMarshall_AU3931_C000.indd vi 4/13/2006 4:35:44 PM4/13/2006 4:35:44 PM
vii
Contents
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
Marshall_AU3931_C000.indd viiMarshall_AU3931_C000.indd vii 4/13/2006 4:35:44 PM4/13/2006 4:35:44 PM
viii 
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  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
Marshall_AU3931_C000.indd viiiMarshall_AU3931_C000.indd viii 4/13/2006 4:35:44 PM4/13/2006 4:35:44 PM
 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
Marshall_AU3931_C000.indd ixMarshall_AU3931_C000.indd ix 4/13/2006 4:35:44 PM4/13/2006 4:35:44 PM
x 
Part IV Implementing VMware ESX Server
13  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
 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
Marshall_AU3931_C000.indd xMarshall_AU3931_C000.indd x 4/13/2006 4:35:44 PM4/13/2006 4:35:44 PM
 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  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
Marshall_AU3931_C000.indd xiMarshall_AU3931_C000.indd xi 4/13/2006 4:35:45 PM4/13/2006 4:35:45 PM
xii 
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
Marshall_AU3931_C000.indd xiiMarshall_AU3931_C000.indd xii 4/13/2006 4:35:45 PM4/13/2006 4:35:45 PM
 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  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
Marshall_AU3931_C000.indd xiiiMarshall_AU3931_C000.indd xiii 4/13/2006 4:35:45 PM4/13/2006 4:35:45 PM
xiv 
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
Marshall_AU3931_C000.indd xivMarshall_AU3931_C000.indd xiv 4/13/2006 4:35:45 PM4/13/2006 4:35:45 PM
xv
Acknowledgments
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.  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.  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.

Marshall_AU3931_C000.indd xvMarshall_AU3931_C000.indd xv 4/13/2006 4:35:45 PM4/13/2006 4:35:45 PM
xvi 
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.”
D M
“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 Borgeson, Melanie “Honey Bee” Peoples,
Joseph Gebbia, and all of my cousins, for always believing in me. For this I am
truly blessed.”
W R
“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.”
D MC
Acknowledgments
Marshall_AU3931_C000.indd xviMarshall_AU3931_C000.indd xvi 4/13/2006 4:35:45 PM4/13/2006 4:35:45 PM
Part I
Basic Concepts
Marshall_AU3931_P001.indd 1Marshall_AU3931_P001.indd 1 3/31/2006 11:14:45 AM3/31/2006 11:14:45 AM
Marshall_AU3931_P001.indd 2Marshall_AU3931_P001.indd 2 3/31/2006 11:14:52 AM3/31/2006 11:14:52 AM
3
Chapter 1
Introduction to Server
Virtualization
 is chapter provides a high-level overview and background of virtualization
technology.  e most basic concepts are introduced as well as a discussion of the
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 com-
puter.  ere are several ways to do this, each has its pros and cons.  e book will
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 soft-
ware.  is is accomplished by a software layer called abstraction. Abstraction
software is used in many software systems, including inside the Windows oper-
ating system families.  e Windows Hardware Abstraction Layer (HAL) is an
excellent example of abstraction.  e Windows HAL provides a common way
for all drivers and software to talk to the hardware in a common/unifi ed format.
 is makes the job of writing software and drivers easier because developers
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
driven.  is is basically software that looks and acts like hardware. Virtualization
Marshall_AU3931_C001.indd 3Marshall_AU3931_C001.indd 3 4/4/2006 10:05:56 AM4/4/2006 10:05:56 AM
4  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
shared by multiple environments simultaneously.  ese environments can 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
installation of an operating system (e.g., Linux, Windows, etc.).  ese operating
system installations are commonly known as Guest operating systems. Instruc-
tions for a VM are usually passed directly to the physical hardware that allows
the environment to operate faster and more effi ciently than emulation, although
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 environ-

ments.  e arrangement of a typical computer has a set of hardware devices
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
operating system (e.g., Linux or Windows) is installed.  e operating system
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.
Marshall_AU3931_C001.indd 4Marshall_AU3931_C001.indd 4 4/4/2006 10:06:31 AM4/4/2006 10:06:31 AM
Introduction 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 hard-
ware.  is form of virtualization provides a platform on which one or more vir-
tual machines can be created, each capable of having a unique operating system
and applications installed.  is layout is shown in Figure 1.3.
Implementations of server virtualization include:
 VMware ESX Server
 is is the fastest performing and most mature server virtualization plat-
form to date. VMware ESX Server runs directly on the physical hardware
to maximize effi ciency.
 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
Virtual Hardware
Virtual Machine
Operating System
(Linux, Solaris, Windows, etc.)
Virtual Hardware
Software
Applications
Software
Applications
Software
Applications
Software
Applications
Software
Applications
Figure 1.2 Virtualized System Architecture 1.
Marshall_AU3931_C001.indd 5Marshall_AU3931_C001.indd 5 4/4/2006 10:06:32 AM4/4/2006 10:06:32 AM
6  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).
 e benefi ts of using virtualization are numerous and include the following:
 Portability
 e ability to have a consistent hardware platform, even if the real 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 to be used more effi ciently, allowing higher utilization of the
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.
Marshall_AU3931_C001.indd 6Marshall_AU3931_C001.indd 6 4/4/2006 10:06:33 AM4/4/2006 10:06:33 AM

Introduction 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
 is provides an upgrade path for moving legacy applications and operat-
ing systems onto new hardware without incurring issues due to incompat-
ibilities with newer hardware platforms.
 Multiple operating system support
 is is benefi cial in environments where development and testing of many
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
Do not test virtualization inside of virtualization.  is will cause double
time slicing and will not be useable.  is limitation only applies to x86
virtualization. IBM’s older virtualization was engineered to support this

type of usage.
 Computer games
 e performance requirements are simply too great to successfully test and
play high end games in virtual environments.
 Specialized hardware and peripherals
 ere is no way today to leverage custom hardware peripherals/cards in a
virtualization platform.  is is because there is no emulation or representa-
tion of these devices in the virtual environment.
 Performance testing
 e overhead of virtualization will cause an inaccurate view of performance.
Marshall_AU3931_C001.indd 7Marshall_AU3931_C001.indd 7 4/4/2006 10:06:33 AM4/4/2006 10:06:33 AM
8  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
 e history of virtualization technology goes back further than most people
might think (see Figure 1.4). In fact the idea of virtualization was fi rst discussed
as far back as the late 1950’s.  e following will attempt to chronicle the signifi -
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 sharing 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,
the System/360 Model 67 and TSS (Time Sharing System) were developed.  is

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.
A new iteration of the CP-40 called CP-67 Version 1 debuted in 1968.  is
provided a much needed boost in both performance and stability to CP-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 As-
sociation) was founded in New York in 1973.  e introduction of VM/370
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 Virtu-
alizable  ird Generation Architectures.”
 is led to a quiet period in the virtualization space from 1974 to 1987, when
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.
 e following events directly lead to the current set of available x86 server
virtualization technologies and platforms.
Marshall_AU3931_C001.indd 8Marshall_AU3931_C001.indd 8 4/4/2006 10:06:34 AM4/4/2006 10:06:34 AM

×