Virtualization Components of the Modern Hypervisor Sean Mcadams University of North Florida
Total Page:16
File Type:pdf, Size:1020Kb
UNF Digital Commons UNF Graduate Theses and Dissertations Student Scholarship 2015 Virtualization Components of the Modern Hypervisor Sean McAdams University of North Florida Suggested Citation McAdams, Sean, "Virtualization Components of the Modern Hypervisor" (2015). UNF Graduate Theses and Dissertations. 599. https://digitalcommons.unf.edu/etd/599 This Master's Thesis is brought to you for free and open access by the Student Scholarship at UNF Digital Commons. It has been accepted for inclusion in UNF Graduate Theses and Dissertations by an authorized administrator of UNF Digital Commons. For more information, please contact Digital Projects. © 2015 All Rights Reserved Virtualization Components of the Modern Hypervisor by Sean McAdams A thesis submitted to the School of Computing in partial fulfillment of the requirements for the degree of Master of Science in Software Engineering UNIVERSITY OF NORTH FLORIDA SCHOOL OF COMPUTING August, 2015 Copyright© 2015 by Sean McAdams All rights reserved. Reproduction in whole or in part in any form requires the prior written permission of Sean McAdams or designated representative. The opinions and conclusions expressed herein represent the sole opinion of the author and do not necessarily represent the opinion of the University of North Florida or its employees. ii Signature Deleted Signature Deleted Signature Deleted Signature Deleted Signature Deleted ACKNOWLEDGEMENT I wish to thank all of the professors who have given me advice and pushed me to complete this thesis after all the time that I have spent on it. I also want to thank my friends who listened to me complain about it constantly while encouraging me to keep moving forward. iv CONTENTS List of Figures .................................................................................................................. viii Abstract .............................................................................................................................. ix Chapter 1: Introduction ....................................................................................................... 1 Chapter 2: On Hypervisors and Virtualization ................................................................... 5 2.1: Type 1 Hypervisor.................................................................................................... 5 2.2: Type 2 Hypervisor.................................................................................................... 6 2.3: Virtualization Types ................................................................................................. 8 2.4: Container-Based Virtualization .............................................................................. 11 Chapter 3: Core components of the Modern Hypervisor .................................................. 13 3.1: Paravirtual Block (Disk) Drivers ........................................................................... 15 3.2: Paravirtual Network Drivers .................................................................................. 17 3.3: Paravirtual Memory Drivers .................................................................................. 19 3.4: Huge Pages/LargePages ......................................................................................... 20 3.5: Hypervisor Enabled Components .......................................................................... 21 3.5.1: Network Bridging vs. Network Address Translation ...................................... 21 3.5.2: Memory Compression ..................................................................................... 21 3.5.3: Hypervisor Disk Swapping .............................................................................. 21 3.5.4: Resource Overcommitting ............................................................................... 22 3.5.5: Kernel Samepage Merging / Transparent Page Sharing .................................. 22 v 3.5.6: SSD Support .................................................................................................... 23 Chapter 4: A look at the hypervisors of today .................................................................. 24 4.1: VMWare VSphere/Workstation/Player ................................................................. 24 4.2: Xen/XenServer ............................................................................................................................ 25 4.3: KVM ............................................................................................................................................... 26 4.4: Hyper-V ......................................................................................................................................... 26 4.5: Oracle VM Server/VirtualBox ................................................................................................ 27 4.6: Parallels Desktop/Virtuozzo Containers .............................................................................. 27 Chapter 5: Purpose and Goals .............................................................................................................. 28 Chapter 6: Existing Research ............................................................................................................... 30 Chapter 7: Methods and Results.......................................................................................................... 33 7.1: Methods ......................................................................................................................................... 33 7.2: Results ............................................................................................................................................ 37 7.2.1: Parallel no modifications (PNM) vs. Parallel with paravirtualization (PWP) ........... 38 7.2.2: Single no modifications (SNM) vs. Single with paravirtualization (SWP) .............. 39 7.2.3: Single no modifications (SNM) vs. Parallel no modifications (PNM) ..................... 40 7.2.4: Single with paravirtualization (SWP) vs. Parallel with paravirtualization (PWP) .... 42 7.2.5: Cross hypervisor comparison for single no modifications (SNM) .......................... 44 7.2.6: Cross hypervisor comparison for single with paravirtualization (SWP) .................. 45 7.2.7: Cross hypervisor comparison for parallel no modifications (PNM) ........................ 46 7.2.8: Cross hypervisor comparison for parallel with paravirtualization (PWP) ................ 47 7.2.9: Network performance ......................................................................................... 48 vi Chapter 8: Conclusions .......................................................................................................................... 50 Chapter 9: Future Work ......................................................................................................................... 54 References.................................................................................................................................................. 57 Appendix A: XenServer Host Configurations ................................................................................ 60 Appendix B: KVM Host Configurations .......................................................................................... 61 Appendix C: Guest Configurations .................................................................................................... 64 Appendix D: Physical System Specifications ................................................................................. 66 Appendix E: Performance Metrics ..................................................................................................... 67 Appendix F: LinqPad Script ................................................................................................................. 71 Appendix G: Batch Scripts ................................................................................................................... 91 Appendix H: Parallel Execution v1.0 .............................................................................................. 105 vii LIST OF FIGURES Figure 1: VMWare Architecture - Type 1 Hypervisor ....................................................... 6 Figure 2: Hosted Architecture - Type 2 hypervisor ............................................................ 7 Figure 3: Binary Translation ............................................................................................... 9 Figure 4: Hardware-assisted Virtualization ...................................................................... 10 Figure 5: Paravirtualization............................................................................................... 11 Figure 6: Container-Based Virtualization ......................................................................... 12 Figure 7: KVM Emulated Network Device vs VirtIO Paravirtual Network Device ....... 18 Figure 8: Xen paravirtual network architecture ................................................................ 19 Figure 9: Example output of the statistical comparison from LinqPad script .................. 37 Figure 10: Results for Parallel No Modifications vs Parallel with paravirtualization ...... 39 Figure 11: Results for Single no Modifications vs Single with paravirtualization ........... 40 Figure 12: Results for Single no Modifications vs Parallel no Modifications .................. 42 Figure 13: Results for Single with paravirtualization vs Parallel with paravirtualization