Server-Virtualisierung als Basis eines modernen Rechenzentrums Michael Korp Infrastruktur Architekt Microsoft Deutschland GmbH Windows Virtualisierung Den meisten bekannt: VMware – ESX, vCenter Viele Funktionen als einzelne Module zu lizenzieren Open Source = frei = Linux? KVM Xen (Citrix, freie und kommerzielle Lösung verfügbar) Windows: Hyper-V Kostenfreie Version verfügbar: Microsoft Hyper-V Server 2008 R2 Alle Funktionen für die Virtualisierung enthalten Verwaltung über MMC oder im größeren Unternehmen mit den Standard System Center Werkzeugen (kostenpflichtige Lizenzen) Hyper-V Server 2008 R2 Unterstützt „nur“ die Virtualisierung mit Hyper-V Reduzierter Server Core mit Hyper-V Micro-Kernel Alle relevanten Features enthalten, inkl. Clustering, also auch Live Migration und Failover Alle aktuellen Fähigkeiten wie SLAT, Core Parking, … Vollständige Integration! Active Directory System Center Alle Hyper-V Tools und Skripte Gleiche Updates und Service Packs wie Windows Server 2008 R2 Hyper-V Server: Lokale Administration – HVconfig Kommandozeile zur Konfiguration des Hyper-V Servers Automatischer Start nach dem Anmelden Lokalisiert in 11 Sprachen Hyper-V Server: Fähigkeiten und Grenzen Hyper-V Server 2008 R2 CPU 8 CPUs Arbeitsspeicher (Host) 1 TB Arbeitsspeicher (VM) 64 GB pro VM Live Migration Ja Failover Clustering Ja Verwaltung Hyper-V Manager (MMC), System Center Virtual Machine Manager Windows Server 2008 R2: Verbesserter Hypervisor Live Migration – basiert auf dem Failover Cluster Prozessor Unterstützung Second Level Address Translation (SLAT) Core Parking Netzwerk Unterstützung TCP/IP Chimney Offload Jumbo Frames VM Queues – erlaubt Direct Memory Access für VMs Dynamische Festplattenkonfiguration Hinzufügen und Entfernen von Disks (VHD und Pass-Through) während das Gastsystem online ist Bessere Skalierbarkeit Stichwort: Live Migration Virtual Machine User Cluster Node 1 Virtual Machine Configuration Memory MemoryContent Sync Data VHD Network Storage Cluster Node 2 Live Migration Steuerung Failover Cluster Manager (MMC) System Center Virtual Machine Manager Voraussetzungen für die Implementierung Einschränkungen für Gastsysteme: Nein! Änderungen an Gastsystemen: Nein! Änderungen an Storage Controller (SAN): Nein! Änderungen am Netzwerk: Nein! Quick Migration vs. Live Migration Quick Migration Live Migration 1. Save state 1. VM State/Memory Transfer (Hyper-V seit Windows Server 2008) (Hyper-V seit Windows Server 2008 R2) a) Erstellen der VM auf Target Host a) Erstellen der VM auf Target Host b) Hibernate auf Shared Storage b) Kopieren des Speicher-Inhalts auf Ziel-VM 2. Verschieben der VM a) Zugriff auf Shared Storage -> Target Host 3. Resume 2. State Transfer a) Pausieren der VM b) Zugriff auf Cluster Shared Volume 3. Resume a) Resume von Shared Storage b) Ausführen der VM auf Target Host Host 1 Host 2 Host 1 Host 2 Stichwort: Cluster Shared Volumes Konsistenter Namensraum: Alle Server sehen die gleichen LUNs (Disks) Sehr einfache Installation Keine Änderung an bestehenden LUNs: verwendet NTFS Keine Probleme mit Laufwerksbuchstaben Bestehende Tools und Prozesse funktionieren weiterhin Ausfallsicherheit für Netzwerk und SAN-Anbindung!!! Cluster Shared Volumes Gleichzeitiger Zugriff auf das Dateisystem SAN VHD VHD VHD Nur noch ein Volume Cluster Fault Tolerances I/O Connectivity Fault Tolerance I/O Redirected via network VM running on Node 2 is unaffected Volume mounted on Node 1 SAN VHD SAN Connectivity Failure Cluster Fault Tolerances Node Fault Tolerance Node Failure Volume relocates to a healthy node VM running on Node 2 is unaffected SAN VHD Brief queuing of I/O while volume ownership is changed Cluster Fault Tolerances Network Fault Tolerance Routed to Redundant Network VM running on Node 2 is unaffected SAN VHD Network Path Connectivity Failure Stichwort Netzwerk I/O: Datenpfad klassisch Parent Partition VM1 VM2 TCP/IP TCP/IP VM NIC 1 VM NIC 2 Virtual Machine Switch Routing VLAN Filtering Data Copy Port 2 Port 1 Miniport Driver VM BUS NIC Ethernet Netzwerk I/O Datenpfad mit VMQ Parent Partition VM1 VM2 TCP/IP TCP/IP VM NIC 1 VM NIC 2 Virtual Machine Switch Routing VLAN filtering Data Copy Port 2 Port 1 Miniport Driver Q1 Q2 Default Queue VM BUS Switch/Routing unit NIC Ethernet Stichwort SLAT: VM Memory Management Ein Hypervisor muss zwei Ebenen von Speicher-Virtualisierung abwickeln -> Shadow Page Table VM definiert GVA > GPA-Zuordnung Guest Virtual Address Guest Virtual Address CPU unterstützt nur eine Ebene der SpeicheradressenVirtualisierung Guest Physical Address Hypervisor definiert GPA -> SPA-Zuordnung System Physical Address System Physical Address Second Level Address Translation (SLAT) Verschiedene Bezeichnungen Intel: Extended Page Tables (EPT) AMD: Nested Page Tables (NPT) oder Rapid Virtualization Indexing (RVI) CPU unterstützt zwei Ebenen der Adress-Virtualisierung Kein Hypervisor-Code benötigt Signifikante Einsparungen CPU Nutzung des Hypervisor : 2% (vorher: 10%) Windows Server 2008 R2 SP1 Hyper-V Aktualisierungen durch das SP1 Dynamic Memory Dynamische ArbeitsspeicherVerwaltung für Hyper-V Aktive Abstimmung zwischen Hyper-V Host und Gastsystem Kein Verlust an Leistung RemoteFX Hardware-basierte Grafikbeschleunigung für Hosted Desktops Virtuelles Gerät: GPU Unterstützt Rich Clients und Thin Clients Applikationsunabhängig!!! SP1 Update: Dynamic Memory Dynamische ArbeitsspeicherVerwaltung für Hyper-V Aktive Abstimmung zwischen Hyper-V Host und Gastsystemen Kein Performanz-Verlust Dynamic Memory ≠ Memory Overcommit Gibt es nicht als Technologie … Bedeutung: Mehr RAM zuweisen, als physikalisch vorhanden ist Technologien zur Speicherverwaltung Page Sharing Second Level Paging Dynamic Memory Balancing (Ballooning) Page Sharing So funktioniert’s: Hash aller RAM-Seiten, speichern in Tabelle… Identische Hashes identifizieren… Bit-Vergleich … Das bedeutet… Page Sharing ist nicht dynamisch Benötigt Stunden, bis erste Wirkung spürbar ist Funktioniert am besten bei „Zero Pages‟ … Page Sharing: Begrenzung der Effektivität Ältere Betriebssysteme nutzen RAM nicht aus Aktuelle Windows-Versionen: SuperFetch ASLR (zufällige Adressen für DLL + EXE) Large Memory Pages !!! Second Level Paging (1/3) Problem #1: Swapping Guest Kernel Resources “the guest operating system will never page out its kernel pages since those pages are critical to ensure guest kernel performance. The hypervisor, however, cannot identify those guest kernel pages, so it may swap them out. In addition, the guest operating system reclaims the clean buffer pages by dropping them. Again, since the hypervisor cannot identify the clean guest buffer pages, it will unnecessarily swap them out to the hypervisor swap device in order to reclaim the mapped host physical memory.” Understanding Memory Resource Management in VMware ESX Server p. 9-10; http://www.vmware.com/resources/techresources/10062 Second Level Paging (2/3) Problem #2: Double Paging “Assuming the hypervisor swaps out a guest physical page, it is possible that the guest operating system pages out the same physical page, if the guest is also under memory pressure. This causes the page to be swapped in from the hypervisor swap device and immediately to be paged out to the virtual machine‟s virtual swap device. Note that it is impossible to find an algorithm to handle all these pathological cases properly. ESX attempts to mitigate the impact of interacting with guest operating system memory management by randomly selecting the swapped guest physical pages.“ Understanding Memory Resource Management in VMware ESX Server p. 9-10; http://www.vmware.com/resources/techresources/10062 Second Level Paging (3/3) Problem #3: Ram vs. Festplatte RAM-Zugriff: DDR3-1600 = 5 ns; DDR3-1066 = 7.5 ns; DDR3-1333 = 6 ns DDR3-800 = 10 ns Festplatte: Seek Zeit ~8 ms Und nochmal im direkten Vergleich … DDR3-1600 Ram ist 1,600,000 mal schneller als die Festplatte DDR3-1333 Ram ist 1,333,333 mal schneller als die Festplatte DDR3-1066 Ram ist 1,066,666 mal schneller als die Festplatte DDR3-800 Ram ist 800,000 mal schneller als die Festplatte Fazit: Je mehr es benutzt wird, desto langsamer wird es Benchmark Fakten Understanding Memory Resource Management in VMware ESX Server p. 16; http://www.vmware.com/resources/techresources/10062 Dynamic Memory: Konfiguration Startup: Boot RAM BIOS weiß nichts von Dynamic Memory Gastsystem weiß vielleicht nichts von Dynamic Memory Maximum Obere Grenze Nur auf Anfrage des Gastsystems Dynamic Memory: In Betrieb Dynamic Memory: Beteiligte Komponenten Provided by: Guest Applications VMWP VMMS Memory Balancer Memory Balancer Interface OS Microsoft Hyper-V Dynamic Memory Components User Mode DM VDEV/VSP GMO Memory Manager Windows Kernel Windows Kernel DM VSC VID VMBus VMBus Hypervisor Kernel Mode SP1 Update: RemoteFX Hardwarebasierte Grafikbeschleunigung für Hosted Desktops Virtuelles Gerät: GPU Unterstützt Rich Clients und Thin Clients Applikationsunabhängig! WAN-Beschleunigung z.B. mit Citrix HDX RemoteFX: Komponenten Endgerät – Benutzer startet grafikintensive Applikation RemoteFX Hardware oder Software Decoder auf dem Endgerät Server – Hardwarebeschleunigung (GPU) GPU im Server, Zugriff für alle VMs RemoteFX Hardware Encoder optional Primitive Remoting (optional) Hardware Encoder (optional) Client mit Decoder (SW/HW) GPUs Server RemoteFX in Remote Session Solutions RemoteFX in VDI Solutions -Accelerated -Enhanced -Accelerated -Enhanced RemoteFX Software Encoding RemoteFX Encoder and Decoder in ASIC Graphics Processor Windows Client Traditional Thin Client Ultra-Light Thin Clients With RemoteFX ASIC LCD Panel With RemoteFX ASIC -Enabled Clients RemoteFX USB vs. High-Level Redirection RemoteFX USB RDP High-Level Treiber auf Endgerät? Nein Ja Treiber auf Server? Ja Nein Gleiche Methode der USBUmleitung für alle Geräte? Ja Nein USB-Geräte von mehreren Sitzungen verwendbar? Nein Ja Netzwerk Anforderungen LAN LAN/WAN Voraussetzungen auf dem Client RDP 7.1 USB Redirection aktivieren per Gruppenrichtlinie Computer Configuration\Administrative Templates\Windows Components\Remote Desktop Services\Remote Desktop Connection Client\RemoteFX USB Device Redirection Voraussetzungen auf dem Hosted Desktop RemoteFX aktiviert auf Host und VM Konfiguration per Gruppenrichtlinie Computer Configuration\Administrative Templates\Windows Components\Remote Desktop Services\Remote Desktop Session Host\Device and Resource Redirection Funktionsweise ohne RemoteFX Anwendung 4 Win32 I/O API User Kernel Windows Kernel (I/O Mgr, PnP) Provided by: Microsoft IHV/ISV 3 2 USB Device Driver USB HUB 1 Funktionsweise mit RemoteFX (1) RDP Client VM RDP Server 6 RDP User 3 Kernel 4 USB DeviceUSB Driver Remote FX Generic Driver Windows Kernel (I/O Mgr, PnP) 2 RemoteFX USB Hub Filter Bereitgestellt von : Microsoft IHV/ISV 1 USB HUB 5 Funktionsweise mit RemoteFX (2) Anwendung VM RDP Server 10 Win32 I/O API User Kernel 7 USB Device Driver 8 Bereitgestellt von: Microsoft IHV/ISV RemoteFX Device Proxy RemoteFX USB HUB 9 Weitere Informationen TechNet Webcasts http://www.microsoft.com/germany/technet/webcasts TechNet Edge http://technet.microsoft.com/edge TechNet Blogs http://blogs.technet.com/ralfschnell http://blogs.technet.com/germanvirtualizationblog http://blogs.technet.com/virtualization www.microsoft.com Informationen http://www.microsoft.com/de/de/dynamicit/thema/virtualisierung.aspx http://www.microsoft.com/germany/windowsserver2008/produktinformationen/r2virtualisierung.mspx http://www.microsoft.com/virtualization Vielen Dank für Eure Aufmerksamkeit Michael Korp