02/09/2010 Industrial Project Course (234313) Virtualization-aware database engine Final Presentation Industrial Project Course (234313) Virtualization-aware.

Slides:



Advertisements
Similar presentations
Virtual Memory Basics.
Advertisements

WHAT IS AN OPERATING SYSTEM? An interface between users and hardware - an environment "architecture ” Allows convenient usage; hides the tedious stuff.
1/1/ / faculty of Electrical Engineering eindhoven university of technology Introduction Part 3: Input/output and co-processors dr.ir. A.C. Verschueren.
Virtual Machine Security Design of Secure Operating Systems Summer 2012 Presented By: Musaad Alzahrani.
Keith Wiles DPACC vNF Overview and Proposed methods Keith Wiles – v0.5.
G Robert Grimm New York University Disco.
Network Implementation for Xen and KVM Class project for E : Network System Design and Implantation 12 Apr 2010 Kangkook Jee (kj2181)
Virtual Machines Measure Up John Staton Karsten Steinhaeuser University of Notre Dame December 15, 2005 Graduate Operating Systems, Fall 2005 Final Project.
OPERATING SYSTEM OVERVIEW
Figure 1.1 Interaction between applications and the operating system.
KVM/ARM: The Design and Implementation of the Linux ARM Hypervisor Fall 2014 Presented By: Probir Roy.
Introduction Operating Systems’ Concepts and Structure Lecture 1 ~ Spring, 2008 ~ Spring, 2008TUCN. Operating Systems. Lecture 1.
Virtualization and the Cloud
Operating System Support for Virtual Machines Sam King George Dunlap Peter Chen CoVirt Project, University of Michigan.
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
Virtualization for Cloud Computing
Web Application Architecture: multi-tier (2-tier, 3-tier) & mvc
Students: Nadia Goshmir, Yulia Koretsky Supervisor: Shai Rozenrauch Industrial Project Advanced Tool for Automatic Testing Final Presentation.
Tanenbaum 8.3 See references
Extreme Networks Confidential and Proprietary. © 2010 Extreme Networks Inc. All rights reserved.
SymCall: Symbiotic Virtualization Through VMM-to-Guest Upcalls John R. Lange and Peter Dinda University of Pittsburgh (CS) Northwestern University (EECS)
Microkernels, virtualization, exokernels Tutorial 1 – CSC469.
Jakub Szefer, Eric Keller, Ruby B. Lee Jennifer Rexford Princeton University CCS October, 2011 報告人:張逸文.
UNIX System Administration OS Kernal Copyright 2002, Dr. Ken Hoganson All rights reserved. OS Kernel Concept Kernel or MicroKernel Concept: An OS architecture-design.
SAIGONTECH COPPERATIVE EDUCATION NETWORKING Spring 2010 Seminar #1 VIRTUALIZATION EVERYWHERE.
SAIGONTECH COPPERATIVE EDUCATION NETWORKING Spring 2009 Seminar #1 VIRTUALIZATION EVERYWHERE.
A Survey on Virtualization Technologies. Virtualization is “HOT” Microsoft acquires Connectix Corp. EMC acquires VMware Veritas acquires Ejascent IBM,
Operating System Review September 10, 2012Introduction to Computer Security ©2004 Matt Bishop Slide #1-1.
Virtualization. Virtualization  In computing, virtualization is a broad term that refers to the abstraction of computer resources  It is "a technique.
Operating System Support for Virtual Machines Samuel T. King, George W. Dunlap,Peter M.Chen Presented By, Rajesh 1 References [1] Virtual Machines: Supporting.
Benefits: Increased server utilization Reduced IT TCO Improved IT agility.
Operating System Support for Virtual Machines Sam King George Dunlap Peter Chen CoVirt Project, University of Michigan.
Improving Network I/O Virtualization for Cloud Computing.
Virtualization: Not Just For Servers Hollis Blanchard PowerPC kernel hacker.
Virtual Machine Monitors: Technology and Trends Jonathan Kaldor CS614 / F07.
SplitX: Split Guest/Hypervisor Execution on Multi-Core 林孟諭 Dept. of Electrical Engineering National Cheng Kung University Tainan, Taiwan, R.O.C.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Operating Systems Overview Part 2: History (continued)
The Client/Server Database Environment Ployphan Sornsuwit KPRU Ref.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Server Virtualization
 Virtual machine systems: simulators for multiple copies of a machine on itself.  Virtual machine (VM): the simulated machine.  Virtual machine monitor.
Processes Introduction to Operating Systems: Module 3.
Disco : Running commodity operating system on scalable multiprocessor Edouard et al. Presented by Vidhya Sivasankaran.
VMware vSphere Configuration and Management v6
Lecture 5: Threads process as a unit of scheduling and a unit of resource allocation processes vs. threads what to program with threads why use threads.
ELI: Bare-Metal Performance for I/O Virtualization 林孟諭 Dept. of Electrical Engineering National Cheng Kung University Tainan, Taiwan, R.O.C.
A. Frank - P. Weisberg Operating Systems Structure of Operating Systems.
Full and Para Virtualization
Operating-System Structures
Protection of Processes Security and privacy of data is challenging currently. Protecting information – Not limited to hardware. – Depends on innovation.
IT 5433 LM1. Learning Objectives Understand key terms in database Explain file processing systems List parts of a database environment Explain types of.
Unit 2 VIRTUALISATION. Unit 2 - Syllabus Basics of Virtualization Types of Virtualization Implementation Levels of Virtualization Virtualization Structures.
Virtualization Neependra Khare
Virtualization for Cloud Computing
Virtualization.
Virtual Machine Monitors
Business System Development
Fundamentals Sunny Sharma Microsoft
Current Generation Hypervisor Type 1 Type 2.
Container-based Operating System Virtualization: A scalable, High-performance Alternative to Hypervisors Stephen Soltesz, Herbert Potzl, Marc E. Fiuczynski,
Virtualization overview
OS Virtualization.
Operating System Support for Virtual Machines
A Survey on Virtualization Technologies
Virtual Memory Overcoming main memory size limitation
Windows Virtual PC / Hyper-V
CSE 451: Operating Systems Autumn Module 24 Virtual Machine Monitors
CSE 451: Operating Systems Autumn Module 24 Virtual Machine Monitors
In Today’s Class.. General Kernel Responsibilities Kernel Organization
Presentation transcript:

02/09/2010 Industrial Project Course (234313) Virtualization-aware database engine Final Presentation Industrial Project Course (234313) Virtualization-aware database engine Final Presentation Students: Filimonov Dennis, Maor Dahan Supervisor: Abel Gordon

Introduction What is Machine Virtualization? It is the ability to run multiple operating systems simultaneously on the same physical machine.  Virtualization can provide server consolidation, a legacy environment on new platforms and simplified management.  Systems running on virtual machines suffer performance penalties.

Goals  Analyze how virtualization technologies affect applications performance and present alternative methods for reducing virtualization overhead.  Analyze and measure performance of the mySQL open source DB engine being used as a test subject running on a virtual machine hypervisor.  Identify virtualization critical overhead.  Prototyping an approach to reduce virtualization overhead by making the application aware of the virtualized environment.

Methodology  KVM – kernel Based Virtual Machine It is an Open source full virtualization solution for Linux on x86 hardware containing virtualization extensions.  Virtio - An I/O virtualization framework for Linux. We developed Virtio – SQL which is used to enable communication between guest machine and host machine. We integrated a char device in the Virtio– SQL frontend driver to enable user space communication with the MySQL server running in the guest machine. The Virtio-SQL backend driver we developed sits in the hypervisor.

Methodology (Cont.)  MySQL MySQL's pluggable Storage Engine Architecture gives users the flexibility to choose from a variety of purpose-built storage engines that are optimized for specific application demands. we isolated an engine from the whole MySQL stack to be able to run it in the host machine. the engine is isolated and compiled in to a dynamic library which can be opened from the Virtio-SQL backend to activate function calls.

Design MySQL server Storage Engine front end Guest machine Host machine Kernel module Virtio – SQL Frontend Virtio frontend Char device QEMU – KVM virtualizer Virtio backend Storage engine backend Run time library Virtio – SQL Backend

 Frontend storage engine will receive SQL function calls for execution from remote user then forward them to the char device which is integrated in the Virtio-SQL frontend driver (for user space communication propose between the server and the Virtio-SQL frontend that is part of the kernel).  The Virtio – SQL frontend driver communicates with the backend driver of the Virtio-SQL located in the KVM hypervisor Which receives the function call and delivers it to the storage engine backend for execution.  The query result is propagated the same way back. Design (Cont.)

Measurements  The /proc file system is a virtual file system that permits a novel approach for communication between the Linux kernel and user space. it was used to measure and record information from the kernel.  We modified the KVM kernel module and injected code that measures and records the cycles in guest and root mode for each VM exit, then using the /proc file system we can retrieve that data.  We wrote scripts to automate measurements.  We wrote code which generates random SQL insert queries.  We used SSH to activate remote scripts on the Guest machine from the host machine.  We wrote data analyzing and extraction scripts

Benchmarking  Test specification We compared three test configurations 1.A default engine (MyISAM) running on a virtual machine. 2.New approach engine running on a virtual machine. 3.New approach engine running on a virtual machine while using batches of 8 queries at a time.  We ran 7 tests on each of the configurations.  1k,2k,4k,8k,16k,32k,64k record size insert queries.  Each test on a system ran 10 times and an average was calculated.  The number of queries was between queries for 1k test to queries for 64k test.  Each test ran one and a half minute.

Results Tests with over 2k insert queries are more then 20% faster and up to 32% faster for 64k insert queries! For smaller insert queries using batching of inserts can increase performance but still slower then the regular run. Bigger insert queries batching doesn’t show significant improvement.

So where does the difference come from? Reminder – exit reasons the reasons the Hypervisor had to exit from the guest and switch to the host machine.  EXCEPTION_NMI: there was an exception or non – maskable interrupt. most of them are caused by page faults handled by the host to maintain the shadow page tables (the machine does not have EPT support).  EXTERNAL_INTERRUPT: there was an interrupt caused by the real hardware while the guest was running.  PENDING_INTERRUPT: if the guest disables interrupts the host can not inject any interrupt. In this case, the host can write to the VMCS a value telling the processor to exit when the guest enables interrupts. Thus, right after the guest enables interrupts the host can inject them.  CR_ACCESS: the guest read/write to a control register in the processor.  IO_INSTRUCTION: I/O instruction.  APIC_ACCESS: advanced programmable interrupt controller access. most of them are caused when the guest accesses the APIC PAGE, most of them probably to acknowledge interrupts.  HALT: the processor is idling.

Total time distribution between Guest and Host machine

And what about the other exits?

So what did we learn?  There is a strong relation between the exit distribution and the Insert record length.  Some exits are very dominant while other are negligible.  The writing to the real disk is more efficient then the virtual disk Therefore the Halt overhead is reduced.  The total time spent in the host machine for the new approach is smaller and the time spent in the guest machine remains similar therefore we improve virtualization overhead.  As a result of transferring a small but significant part of the code to the host machine we gained significant improvement.  We observe that for the new approach small insert queries degrade Performance.

Conclusions  Isolating MySQL storage engine to work independently from the MySQL stack is extremely difficult.  Dependents on global variables.  Usage of external functions.  Virtualization overhead can be reduced by changes at the application layer.  Measuring virtualization overhead is long and tedious so scripts should be used to automate measurements.  Analyzing virtualization overhead is very complex because many variables need to be considered and the relations between them.  Virtio alternatives should be considered to improve performance further.

Deliverables  Documentation User’s Manuel Developer’s Manuel Project Internet site  Code Virtio - SQL driver code. KVM code changes. Measurement script’s. New approach MySQL engine – supports only INSERT queries. Thank you