Applications of Virtual Machine Monitors for Scalable, Reliable, and Interactive Internet Services

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Notes on slide 1

    Selling your ideas is challenging. First, you must get your listeners to agree with you in principle. Then, you must move them to action. Use the Dale Carnegie Training® Evidence – Action – Benefit formula, and you will deliver a motivational, action-oriented presentation.

    Favorites, Groups & Events

    Applications of Virtual Machine Monitors for Scalable, Reliable, and Interactive Internet Services - Presentation Transcript

    1. Applications of Virtual Machines For Scalable, Reliable, And Interactive Internet Services Ph.D. Oral Examination Amr A. Awadallah June 24 th , 2006 [email_address] http://www.awadallah.com/vmatrix
    2. What is The vMatrix?
    3. Virtual Machine Monitors Virtual Machine Monitor (aka Hypervisor) Real Machine (CPU, Memory, Disks, Network) Virtual Machine 1: vCPU, vMem, vDisk, vNet OS1: Windows 2000 Oracle, IIS Virtual Machine 2: vCPU, vMem, vDisk, vNet OS2: Linux MySQL, Apache
    4. Live Demo of VMware player:
    5. The vMatrix!
      • A network for delivering virtual machines (VMs) between real machines (RMs) running the virtual machine monitor (VMM) software.
    6. Contribution
      • An overlay network of VMMs (the vMatrix) enables backward-compatible improvement of the scalability, reliability, and interactivity of Internet services.
      Applications: 1. Dynamic Content Distribution 2. Server Switching 3. Fair placement of Game Servers
    7. First Application: Dynamic Content Distribution
      • Motivation: To enable distribution of dynamic content. (40% of web requests)
      Definition: Dynamic content is web pages which are constructed by programs that execute on the server at the time a request is made. (e.g. http://maps.yahoo.com)
    8. Today Is Static Mirroring
    9. Dynamic Content Distribution
    10. Two Tier Architecture
    11. Main Problem
      • It is very hard to copy services due to all the dependencies that code has on system libraries, third-party modules, operating systems, and server hardware.
    12. Challenges: Mobility (NAT) VMM RM VM Agent VM1 VM2 192.168.1.10 NAT/LB Internet 64.58.77.28 DNS maps.yahoo.com  64.58.77.28
    13. Challenges: Security (VPNs) VMM VM1 VM2 RM VM Agent VPN Intranet DNS 192.168.1.10 172.21.162.9 c009.proxy.yahoo.com maps.yahoo.com  64.58.77.28 NAT/LB Internet 64.58.77.28
    14. Two Tier Challenges
      • Response Time
      N 1 FRONT END BACK END FRONT END N 1 BACK END N 2 BACK END
      • Perception!
    15. Two Tier Challenges
      • Availability
      FRONT END BACK END
    16. The AJAX Solution
    17. Advantages
      • Faster Response Time
      • Higher Availability
      • Network Bandwidth Savings
      • Backward Compatibility
      Disadvantage
      • VM files are very large (order of gigabytes)!
    18. Second Application: Server Multiplexing
      • Motivation: To allow statistical sharing of servers between services.
    19. Static Servers (ala Circuit Switching) FINANCE SPORTS Load Balancer
    20. Server Switching (ala Packet Switching) FINANCE & SPORTS Load Balancer vMatrix Oracle Key: Peak of Sums < Sum of Peaks
    21. What makes Switching hard ?
      • Software Dependencies
      • Hardware Dependencies
      • People Dependencies
    22. vMatrix Framework: The Oracle: This is the main control program Hibernation Nest : VM files are suspended and stored here for later retrieval. Production Cluster : Live operational VMs, typically only one VM per RM Loading Chambers : Development and Maintenance Cluster, there could be more than one VM per RM here. RM VMM VM VM VM VM VM VM VM VM VM RM VMM VM VM VM RM VMM VM VM VM RM VMM VM RM VMM VM
    23. Lifecycle of a server VM Loading Chambers Hibernation Nest Instantiated 1. A large number of virtual servers are stored as dormant files on a SAN or Netapps 2. A number of virtual servers are activated in a shared RM so that developers & system admins can upgrade, debug, or patch them. 3. A virtual server is activated on a dedicated RM and exposed to live load.
    24. Sample Implementations: Real Machine (PIII-550MHz, 640MB RAM, 9GB hard disk) VMware ESX VMM Server (consumes 184MB RAM, 3.5GB hard disk and 5% CPU) Virtual Machine exposes a PIII-550MHz with 512MB RAM and 5.5GB hard disk. Operating System: Red Hat Linux 9 Apache Web Server MySQL Database PHP (Hyper Text Processor) PHP-Nuke and osCommerce Internet Services Real Machine (PIII-550MHz, 640MB RAM, 9GB hard disk) VMware ESX VMM Server (consumes 184MB RAM, 3.5GB hard disk and 5% CPU) Virtual Machine exposes a PIII-550MHz with 1024MB RAM and 5.5GB hard disk. Operating System: Yahoo FreeBSD 4.8 YLIB (Yahoo C/C++ Libraries) YSS (Yahoo Structured Search) Yahoo! Autos Search Network API
    25. Advantages
      • Presents developers with isolation model they expect
      • Backward Compatibility
      • Efficient Resource Utilization (People and Power)
      • Peak Absorption
      • Faster Recovery
      Disadvantages
      • VM files are very large (order of gigabytes)!
      • VM Software is not free 
      • Operating System Licensing Issues
    26. Third Application: Equi-Ping Game Server Placement For Pre-Arranged First-Person-Shooter Multiplayer Matches
      • Motivation: To place game server hosts optimally such that all participating players have a fairer game experience.
    27. Delay Sensitivity of Online Games: Extremely Lag sensitive (on the order of 50ms) First Person Shooters (FPS) (Halo, Battlefield2, Doom, CounterStrike) Moderate sensitivity to lag (on the order of 500ms) MMORPG and RTS (World of Warcraft, Everquest, Generals) Not sensitive to lag (on the order of seconds) Turn Based Strategy (Civilization 4, Risk, Chess, Pool)
    28. Screenshot from Halo PC:
    29. The Problem: Unfair Lag Clan A Clan B 130ms 30ms Game Server
    30. The Solution: Equi-Ping Server Clan A Clan B 80ms Real Machine 80ms VMM Virtual Game Server in VM
    31. Equi-ping placement problem
      • Red dots are servers, green dots are players, we need to pick the Red dot that is equi-distant from all players.
      • S = set of m servers available to host the match.
      • P = set of n players participating in this match.
      • RTT s,p = round-trip-time (ping) from server s to player p
      • The Algorithm has 3 main steps:
      • 1. Disregard all servers that have any RTT s,p larger than 180ms
      • For each server s, we compute a closeness factor C s representing the average differential ping between the players if server s is picked:
      • Pick the server with smallest C s
      • The order of complexity of this algorithm is O(n 2 m) ≈ O(m) since m » n
      Equi-ping placement Algorithm
    32. Halo PC VM Server Stack Real Machine (PIII-550MHz, 640MB RAM, 9GB hard disk) VMware ESX VMM Server (consumes 184MB RAM, 3.5GB hard disk and 5% CPU) Virtual Machine exposes a PIII-550MHz with 512MB RAM and 5.5GB hard disk. Operating System: Windows XP (1.8GB) Halo PC Game Server (278MB)
    33. Advantages:
      • Equi-ping placement of game servers to minimize round-trip-time difference between participants
      • Backward compatibility leading to zero cost for converting existing
      • Economies of scale: this network can be shared among many games
    34. Applications Summary
      • Dynamic Content Distribution which improves interactivity for Internet services.
      • Server Switching which improves resource utilization, availability and enables peek absorption.
      • Equi-ping server placement for game host servers which is very important for the fairness of online FPS games.
    35. Related Work
      • Common drawback: no backward compatibility.
      • Disk Imaging / Ghosting, (no concurrent VMs).
      • Application Servers: IBM WebSphere, ATG Dynamo, BEA WebLogic, JBoss, (no strict isolation, interface violations).
      • Java Virtual Machine (J#/C#/.Net), (needs recoding, low performance).
      • Packagers: Debian APT, Redhat RPM, PRC, (no isolation).
      • Light Weight OSes (Denali), (new OS API, needs recoding).
      • OS Virtualization (Ensim, Ejasent, EXETender, Chrooting), (tied to OS).
      • Active Proxy Caches (ICAP, Active cache, OPES)
    36. Papers
      • &quot;The vMatrix: A Network of Virtual Machine Monitors for Dynamic Content Distribution&quot;, Amr Awadallah and Mendel Rosenblum, 7th International Workshop on Web Content Caching and Distribution (WCW 2002), Boulder, Colorado, August 2002
      • &quot;The vMatrix: Server Switching&quot;, Amr A. Awadallah and Mendel Rosenblum, IEEE 10th International Workshop on Future Trends in Distributed Computing Systems (IEEE FTDCS 2004), Suzhou, China, May 2004.
      • &quot;The vMatrix: Equi-Ping Game Server Placement For Pre-Arranged First-Person-Shooter Multiplayer Matches&quot;, Amr A. Awadallah and Mendel Rosenblum, The 4th ACS/IEEE International Conference on Computer Systems and Applications (AICCSA 2006), Dubai/Sharjah, UAE, March 2006
    37. Other Papers
      • &quot;TCP-BFA: Buffer Fill Avoidance&quot;, Amr A. Awadallah and Chetan Rai, IFIP High Performance Networking Conference, Vienna, Austria, September 1998.
      • &quot;Analysis of a packet switch with memories running slower than the line-rate&quot;, Sundar Iyer, Amr A. Awadallah, and Nick McKeown, IEEE INFOCOM 2000, Tel-Aviv, Israel, March 2000.
    38. Conclusion
      • The vMatrix is an overlay network of virtual machine monitors enabling delivery of virtual machines between real machines.
      • The vMatrix is a practical backward-compatible solution for improving the scalability, reliability, and interactivity of existing Internet applications.
    39. Thank You
    40. Appendix: VMware Perl API
      • use VMware::Control;
      • use VMware::Control::Server;
      • use VMware::Control::VM;
      • my $VMMserver = VMware::Control::Server ::new($hostname, $port, $user, $password);
      • $VMMserver->connect();
      • my $VM = VMware::Control::VM ::new($server, $vmconfig);
      • $VM->connect();
      • # To get a list of all VMs on a server
      • my @vmlist = $VMMserver->enumerate();
      • # To register a new VM on a server
      • $VMMserver->register($vmconfig);
      • # To start and stop a VM
      • $VM->start();
      • $VM->stop();
      • # To suspend and resume a VM
      • $VM->suspend();
      • $VM->resume();
      • # To get CPU, Memory, Net, IO stats
      • $VM->get(“Status.Stats.vm.cpuUsage”, 5*60);
      • # Check if VM is running (heart-beat)
      • $VM->get(“Status.Power”);
    41. Two Tier Challenges
      • Replication
      BACK END FRONT END FRONT END FRONT END

    + Amr AwadallahAmr Awadallah, 2 years ago

    custom

    928 views, 0 favs, 0 embeds more stats

    My PhD oral defense.

    An overlay network of VMMs ( more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 928
      • 928 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 20
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories