Title: Architecture Virtual Machine Monitor VMM
1ArchitectureVirtual Machine Monitor (VMM)
- CPU needs to switch between host process and
guest process - VMM switches context between those processes
- Computer runs either host context or VMM context
- Only one operating system can "run" on CPU
- Ring compression
2Architecture
Host
Guest (VM)
AdminWeb Site
Virtual ServerService
IIS
Guest Applications
Ring 3
Ring 3
Ring 1
Ring 1
VM Additions
Windows in VM
Virtual hardware
Ring 0
Win2003 or WinXP
Kernel
VMM.sys
Hardware
3CPU virtualizationStill one problem left to solve
- We want CPU direct-mode execution
- Guest OS runs directly on CPU - fast! (99 speed)
- When a priviliged operation is required, a trap
occurs, and VMM handles operation in kernel mode - Problem x86 is not fully virtualized in this way
- 20 kernel-mode read CPU instructions are allowed
from outside ring 0 ! - Four possible solutions
- a) Recompile OS and applications without those 20
instructions - avoid those 20 instructions
- b) Use Binary Translation execution
- patch code while running on host
- c) Install VM Additions in guest
- patch code in memory in VM
- d) Use hardware-assisted virtualization
- catch instructions in special ring "-1"
4CPU virtualizationSolutions
- Binary translation
- Translate guest instruction code to host
instruction code - Always possible, but is very slow
- VM Additions
- Patches dll-code in memory in VM (similar to a
rootkit) - Not possible for 64-bit Vista/Longhorn
- Note that VM Additions also do
- Time-sync, heartbeat, shutdown supportoptimized
SCSI disk, and better mouse/video driver - Hardware-assisted virtualization
- Use Intel VT or AMD Virtualization CPU
- CPU solves the problem by maintaining settings
per VM - Can be considered as ring "-1"
5VM AdditionsVersions
6VM AdditionsLinux
- Adds
- time sync
- Heartbeat
- shutdown support
- SCSI disk
- mouse/display driver
- But not direct-mode execution support
- Distributions (9x)
- Red Hat 7.3/9.0, Enterprise 2.1/3/4
- SuSE Linux 9.2/9.3/10.0, Enterprise Server 9
- More available at release VS 2005 R2 SP1
7ArchitectureHardware-assisted virtualization
Host
Guest (VM)
AdminWeb Site
Virtual ServerService
IIS
Guest Applications
Ring 3
Ring 3
Ring 1
Ring 0
VM Additions
Win2003 or WinXP
Windows in VM
Kernel
VMM.sys
Ring "-1"
Virtual hardware
CPU
Hardware
8Hardware-assisted virtualizationIntel VT or AMD
Virtualization
- Supported in
- Virtual PC 2007
- Virtual Server 2005 R2 SP1
- Windows Virtualization (is requirement)
- Enable in BIOS
- Plus enable in Virtual PC 2007 Options
- Windows guests do not run faster
- Up-to-date VM Additions already provide
direct-mode execution - Windows installation is 2x-3x faster
- Non-Windows guests (Linux, Netware) run faster
9Virtual Server 2005 R2Specifications
- Host
- CPU
- ? VS2005 Standard Edition max 4 CPUs (1 or 2
cores) - VS2005 Enterprise Edition max 32 CPUs (1 or 2
cores) - Memory max 64 GB
- Guest
- CPU max 1
- Memory max 3.6 GB
- Network adapters max 4
- Unlimited bandwidth !
- USB no
- USB keyboard/mouse is supported
- Workaround for USB smartcard-readers exists !
10Virtual Server 2005 R2What's new
- Performance
- Increased performance
- Scalability
- x64 hosts Win2003 and WinXP
- Availability
- Virtual Machine clustering
- Failover VM on same host
- Uses Shared SCSI (or iSCSI) in guest
- Virtual Server Host clustering
- Move VS2005 to other host
- Planned and unplanned downtime
- Requires script - http//go.microsoft.com/fwlink/?
LinkId55644
11Virtual Server 2005 R2What's new (cont'd)
- Additional guest support
- Win2003 SE SP1
- WinXP SP2
- PXE Booting
- F6 disk (SCSI disk)
- Speeds up Windows installation
- Virtual Disk Precompactor.iso
- Also...
- Supports hyperthreading on host
- Reserve space for save state file (.vsv)
- Open Windows Firewall ports at install
12Virtual Server 2005 R2 SP1What's new
- Features
- Intel VT and AMD Virtualization support
- Volume Shadow Copy (VSS) support
- Active Directory integration using Service
Connection Points - Vista as Guest support
- Includes VHD mount tool
- Also...
- Host clustering whitepaper included
- Default vhd capacity is 127 GB (was 16 GB)
- Virtual SCSI fix for Linux 2.6.x guests
13Differences VS2005 - VPC2007
- Virtual Server 2005
- Use multiple host CPUs
- Multithreaded
- Multiple CD ROM drives
- NAT through host ICS
- Unlimited networks
- Using vnc-files on host
- Only in VS2005
- SCSI disk (in VM)
- COM API
- Remote Management
- Run as service
- Auto start VMs
- Virtual PC 2007
- Use single host CPU
- Single thread for all VMs
- Single CD ROM drive
- NAT support
- Unlimited networks
- Using host (loopback) adapters
- Only in VPC2007
- Sound card (VM)
- Folder Sharing
- Drag-and-drop
- Copy / Paste
14Windows VirtualizationVMM arrangements
Type-2 VMM
Type-1 VMM Hypervisor
Hybrid VMM
Guest 1
Guest 2
Guest 1
Guest 2
Guest 1
Guest 2
VMM
Host OS
VMM
VMM (Hypervisor)
Host OS
Hardware
Hardware
Hardware
- Examples
- - JVM
- - .NET CLR
- Examples
- - Virtual PC
- - Virtual Server
Example - Windows Virtualization ("Viridian")
15Windows Virtualization
- Virtualization for Windows Server
- Code name "Viridian" ( color rgb 64-130-109
) - Windows Hypervisor
- Thin layer of software, underneath "host OS"
(160 KB) - Parent partition - manages child partitions
- Child partition - any number of OS, managed by
parent - Virtualization Stack
- Runs in root partition ( parent partition)
- Provides virtualization of devices
- WMI interface for management
- Virtualization Service Providers (VSPs)
- Hardware sharing architecture
- Need "viridian" drivers in guest
16Windows Virtualization
- Virtualization for Windows Server
- Requires
- x64 hardware
- Intel VT / AMD-V processor
- Provides
- 32-bit and 64-bit guest
- Max 8 CPU per VM
- Hot "add" processor, memory, network, disk
- 32 GB RAM per VM
- Live virtual machine migration
- Multiple snapshots
- No new driver model
- Can use existing Windows drivers in guest
- Same set of emulated hardware
- S3 Trio video card, DEC 21440 network card, etc
- Support for Server Core as parent OS
17ArchitectureVirtual PC / Virtual Server 2005 R2
Host
Guest (VM)
AdminWeb Site
Virtual ServerService
IIS
Guest Applications
Ring 3
Ring 3
Ring 1
VM Additions
Windows in VM
Virtual hardware
Ring 0
Win2003 or WinXP
Kernel
VMM.sys
Hardware
18Windows Virtualization
Parent partition
Child partition
Virtualization Stack
WMI
VM Service
VM Worker
Guest Applications
Ring 3
Windows (core)
Windows
VSPs
VSCs
Kernel
Kernel
VMBus
Enlightments
Drivers
Ring 0
Windows Hypervisor
Ring "-1"
Hardware
19Windows VirtualizationVSC - VSP Communication
Parent Partition
Child Partitions
Provided by
Windows
Windows Virtualization
ISV
Kernel Mode
Hardware
20Virtual Server 2005 vsWindows Server
Virtualization
21Networking
- Create .vnc-files to define "virtual switches"
- Three settings per vnc-file
- - Network name
- - Connected to which host network adapter
or to None (guest-only) - - DHCP settings for this switch
- Pre-defined vnc-files
- Internal network.vnc
- Separate vnc-file for each host network adapter
- Unique MAC-address assigned
- Unlimited network speed (not max 10/100 Mbps)
22Disks
- Data store in virtual hard disk (.vhd) files
- File format is the same
- Virtual PC 2004
- Virtual Server 2005
- Windows Virtualization (future)
- Max sizes
- IDE (VPC2004) 130,557 MB ( 127.5 GB)
- IDE (VS2005) 130,048 MB ( 127.0 GB)
- SCSI (VS2005) 2,088,960 MB ( 2040.0 GB)
23DisksVHD Format
- Free license from Microsoft
- www.microsoft.com/windowsserversystem/virtualserve
r/techinfo/vhdspec.mspx - 45 vendors signed up (April 2006)
- Examples
- Diskeeper
- PlateSpin
- WinImage
- XenSource
- From 17-Oct-2006
- Unregistered download available
Virtual Hard Disk Format Specification
Introductions Overview of Virtual Hard Disk
Types Virtual hard disk Footer Format
Dynamically expanding .VHD Header Format Block
Allocation Table and Data Blocks Implementing a
Dynamically expanding .VHD Mapping a Disk
Sector to a Sector in the Block Splitting
virtual hard disks Implementing a Differencing
virtual hard disk CHS Calculation
24VHD Types
2TB
1GB
Host
2TB
Guest
2TB
Host
2TB
Guest
Session
SP1
SP2
Host
25VHD Test Drive Program
- New announced 6-Nov-2006
- Fully configured VHD-files
- Downloadable from Microsoft's Web site
- Evaluation versions
- Expires after 30 days
- Partners can also provide their applications
- See www.microsoft.com/vhd for more information
26VHD Mount ToolAccess VHD content offline
- VHDMount tool is included with VS2005 R2 SP1
- Can install separate
- Use as command-line tool
- Use for copying or injecting files, inspecting,
virus-scanning - Do not use for offline patching (yet)
C\gt msiexec.exe /i "Virtual Server 2005
Install.msi" /qn ADDLOCALVHDMount
C\Program Files\Microsoft Virtual
Server\Vhdmountgt vhdmount.exe Usage VHDMOUNT /p
VHDFileName - mounts
vhd-file VHDMOUNT /m VHDFileName DriveLetter -
mounts vhd-file, assign drive letters VHDMOUNT /u
VHDFileName All - unmounts vhd-file or
all VHDMOUNT /q VHDFileName All -
lists mounted vhd-file or all
27VHD EnhancementsWindows Virtualization
- While VM is running
- Compact VHD-file
- Create new diff-disk (snapshotting)
- Create VHD-chain
- Schedule snapshot every 10 minutes
- Merge
- Hot add VHD-file
- Add VHD-file notes
- Think 1000s of VHD-files on network
- Pass-through VHD - map to SAN
28Differencing disks
- VHD files use blocks of 2 MB
Virtual Server service
Link toparent
1
2
4
Read only
3
File-a.doc
File-b.doc
File-d.doc
29DisksRead/write zero-filled files
- VHD file format optimizes read/write
ofzero-filled blocks - Best example empty pagefile.sys
Virtual Server service
30Compact VHD Files
- Steps
- Note Does not work on differencing disks
- In VM - Cleanup
- Startup VM without Undo disks
- 1 Defragment disk
- 2 Zero-fill all unallocated spaces
- Use Precompactor.iso
- Shutdown VM
- On host - Compact
- 3 Use VPC Disk Wizard or VS Inspect Disk to
compact
31Virtual Server Clustering
- Three different options
- Virtual Machine (Guest) Clustering - Shared SCSI
- Cluster VMs on same host
- Virtual Machine (Guest) Clustering - iSCSI
- Cluster VMs on different hosts
- Virtual Server Host Clustering
- Cluster VS on different hosts
32Clustering
33ClusteringVirtual Machine (Guest) Clustering
- VM (Guest) is the cluster node
- Application in guest is a resource group
- Application is cluster-aware (or Generic)
- Protects against failure of Guest
- If VM or application fails,then failover to
other VMon same host or on another host
34Out-of-the-Box High AvailabilityHost Updating
WSUS server
- Administrator wants to update node 1 with Windows
Server Update Services - Microsoft Cluster Administration Console saves
the state of virtual machines and restores them
on another node - Node 1 is ready for update installation
Shared Storage
Node 1
Node 2
Node 3
35Out-of-the-Box High AvailabilityUnplanned
downtime
Shared Storage
- Node 1 suffers a power outage or a network
failure - A simple script attached to the Microsoft Cluster
Administration Console notices the lack of
heartbeat and starts the virtual machines
associated with node 1 on other nodes
Node 1
Node 2
Node 3
X
36ClusteringVirtual Server Host Clustering
- Host is the cluster node
- Each VM (Guest) is a resource group
- Generic Script havm.vbs makes VM "cluster-aware"
- Protects against failure of Host
- Application in guest is not monitored by cluster
Function Open() .. 'starts Virtual
Server service Function Online() .. 'send
start control to VM Function LooksAlive() ..
'quick check if VM is alive Function IsAlive()
.. 'thorough check if VM is alive Function
Offline() .. 'send save state control to
VM Function Terminate() .. 'best attempt to
take offline
37ClusteringVirtual Server Host Clustering
- Benefits
- Move VMs before scheduled host maintenance
- Hardware upgrades
- Software updates on host
- Steps Saves state VM1 - failover - restore state
in VM2 - Protect against unscheduled host failure
- Steps (Oops) - failover - startup VM2
- Run legacy operating systems in a "clustered" way
38ClusteringVirtual Server Host Clustering
- Deploy
- Hosts run Cluster service
- Uses iSCSI or SCSI/Fibre Channel to shared
storage - Note Disable Cluster service when installing
VS2005 - Each VM is in a Resource Group
- Or multiple VMs in same Resource Group
- Implemented as Physical Disk resource
- Containing vmc-file, vhd-file and vsv-file
- Add havm.vbs as Generic Script in Resource Group
- Resource dependencies
- Script havm.vbs ? OS disk ? Data disk