virtual machine fault tolerance
play

Virtual Machine Fault-tolerance Cheng Wang, Xusheng Chen, Weiwei - PowerPoint PPT Presentation

PLOVER: Fast, Multi-core Scalable Virtual Machine Fault-tolerance Cheng Wang, Xusheng Chen, Weiwei Jia, Boxuan Li, Haoran Qiu, Shixiong Zhao, and Heming Cui The University of Hong Kong 1 Virtual machines are pervasive in datacenters Physical


  1. PLOVER: Fast, Multi-core Scalable Virtual Machine Fault-tolerance Cheng Wang, Xusheng Chen, Weiwei Jia, Boxuan Li, Haoran Qiu, Shixiong Zhao, and Heming Cui The University of Hong Kong 1

  2. Virtual machines are pervasive in datacenters Physical machine Physical machine Guest VM Guest VM Guest VM Guest VM … … Hardware Failure VMM VMM … VM fault tolerance is crucial ! 2

  3. Classic VM replication - primary/backup approach Remus [NSDI’08] Primary memory ACK Guest VM pages service VMM 3 client

  4. Classic VM replication - primary/backup approach Remus [NSDI’08] Primary backup memory memory ACK Guest VM Guest VM pages pages service service VMM VMM 3 client

  5. Classic VM replication - primary/backup approach Remus [NSDI’08] Primary backup memory memory ACK Guest VM Guest VM pages pages service service VMM VMM 3 client

  6. Classic VM replication - primary/backup approach Remus [NSDI’08] Primary backup memory memory ACK Guest VM Guest VM pages pages Synchronize primary/backup every 25ms 1. Pause primary VM (every 25ms) and service service transmit all changed state (e.g., memory pages) to backup. VMM VMM 3 client

  7. Classic VM replication - primary/backup approach Remus [NSDI’08] Primary backup memory memory ACK Guest VM Guest VM pages pages Synchronize primary/backup every 25ms 1. Pause primary VM (every 25ms) and service service transmit all changed state (e.g., memory pages) to backup. VMM VMM 3 client

  8. Classic VM replication - primary/backup approach Remus [NSDI’08] Primary backup memory memory ACK Guest VM Guest VM pages pages Synchronize primary/backup every 25ms 1. Pause primary VM (every 25ms) and service service transmit all changed state (e.g., memory pages) to backup. VMM VMM 3 client

  9. Classic VM replication - primary/backup approach Remus [NSDI’08] Primary backup memory memory ACK Guest VM Guest VM pages pages Synchronize primary/backup every 25ms 1. Pause primary VM (every 25ms) and service service transmit all changed state (e.g., memory pages) to backup. VMM VMM Output buffer 3 client

  10. Classic VM replication - primary/backup approach Remus [NSDI’08] Primary backup memory memory ACK Guest VM Guest VM pages pages Synchronize primary/backup every 25ms 1. Pause primary VM (every 25ms) and service service transmit all changed state (e.g., memory pages) to backup. VMM VMM Output buffer 3 client

  11. Classic VM replication - primary/backup approach Remus [NSDI’08] Primary backup memory memory ACK Guest VM Guest VM pages pages Synchronize primary/backup every 25ms 1. Pause primary VM (every 25ms) and service service transmit all changed state (e.g., memory pages) to backup. VMM VMM Output buffer 3 client

  12. Classic VM replication - primary/backup approach Remus [NSDI’08] Primary backup memory memory ACK Guest VM Guest VM pages pages Synchronize primary/backup every 25ms 1. Pause primary VM (every 25ms) and service service transmit all changed state (e.g., memory pages) to backup. 2. Backup acknowledges to the primary when complete state has been VMM VMM received. Output buffer 3 client

  13. Classic VM replication - primary/backup approach Remus [NSDI’08] Primary backup memory memory ACK Guest VM Guest VM pages pages Synchronize primary/backup every 25ms 1. Pause primary VM (every 25ms) and service service transmit all changed state (e.g., ACK memory pages) to backup. 2. Backup acknowledges to the primary when complete state has been VMM VMM received. Output buffer 3 client

  14. Classic VM replication - primary/backup approach Remus [NSDI’08] Primary backup memory memory ACK Guest VM Guest VM pages pages Synchronize primary/backup every 25ms 1. Pause primary VM (every 25ms) and service service transmit all changed state (e.g., ACK memory pages) to backup. 2. Backup acknowledges to the primary when complete state has been VMM VMM received. 3. Primary’s buffered network output is Output buffer released. 3 client

  15. Classic VM replication - primary/backup approach Remus [NSDI’08] Primary backup memory memory ACK Guest VM Guest VM pages pages Synchronize primary/backup every 25ms 1. Pause primary VM (every 25ms) and service service transmit all changed state (e.g., ACK memory pages) to backup. 2. Backup acknowledges to the primary when complete state has been VMM VMM received. 3. Primary’s buffered network output is Output buffer released. 3 client

  16. Two limitations of primary/backup approach (1) • Too many memory pages have to be copied and transferred, greatly ballooned client-perceived latency Redis latency with varied # of clients (4 vCPUs per VM) # of concurrent clients Page transfer size (MB) unreplicated Remus (25ms synchronization interval) 16 20.9 600 48 68.4 500 80 110.5 400 Latency (us) 300 200 100 0 16 48 80 4 Number of concurrent clients

  17. Two limitations of primary/backup approach (2) • The split-brain problem Primary Backup ACK Guest VM Guest VM page page KVS KVS VMM VMM Output buffer 5 client1 client2

  18. Two limitations of primary/backup approach (2) • The split-brain problem Primary Backup ACK Guest VM Guest VM page page KVS KVS VMM VMM Output buffer 5 client1 client2

  19. Two limitations of primary/backup approach (2) • The split-brain problem Primary New primary Backup Outdated primary ACK Guest VM Guest VM page page KVS KVS VMM VMM Output buffer 5 client1 client2

  20. Two limitations of primary/backup approach (2) • The split-brain problem Primary New primary Backup Outdated primary ACK Guest VM Guest VM page page KVS KVS VMM VMM Output buffer X=5 x=7 5 client1 client2

  21. Two limitations of primary/backup approach (2) • The split-brain problem Primary New primary Backup Outdated primary ACK Guest VM Guest VM page page KVS KVS x=7 X=5 VMM VMM Output buffer 5 client1 client2

  22. Two limitations of primary/backup approach (2) • The split-brain problem Primary New primary Backup Outdated primary ACK Guest VM Guest VM page page KVS KVS x =5 x =7 x=7 X=5 VMM VMM Output buffer 5 client1 client2

  23. State Machine Replication (SMR): Powerful backup primary backup service service service consensus log consensus log consensus log client1 client2 6

  24. State Machine Replication (SMR): Powerful backup primary backup service service service consensus log consensus log consensus log client1 client2 6

  25. State Machine Replication (SMR): Powerful backup primary backup service service service consensus log consensus log consensus log client1 client2 6

  26. State Machine Replication (SMR): Powerful backup primary backup service service service consensus log consensus log consensus log client1 client2 • SMR systems: Chubby, Zookeeper, Raft [ATC’14], Consensus in a box [NSDI’15], NOPaxos[OSDI’16], APUS [SoCC’17] • Ensure same execution states 6

  27. State Machine Replication (SMR): Powerful backup primary backup service service service consensus log consensus log consensus log client1 client2 • SMR systems: Chubby, Zookeeper, Raft [ATC’14], Consensus in a box [NSDI’15], NOPaxos[OSDI’16], APUS [SoCC’17] • Ensure same execution states • Strong fault tolerance guarantee without split-brain problem 6

  28. State Machine Replication (SMR): Powerful backup primary backup service service service consensus log consensus log consensus log client1 client2 • SMR systems: Chubby, Zookeeper, Raft [ATC’14], Consensus in a box [NSDI’15], NOPaxos[OSDI’16], APUS [SoCC’17] • Ensure same execution states • Strong fault tolerance guarantee without split-brain problem • Need to handle non-determinism • Deterministic multithreading (e.g., CRANE [SOSP’15]) - slow 6 • Manually annotate service code to capture non- determinism (e.g., Eve [OSDI’12]) - error prone

  29. Making a choice State machine replication Pros: • Good performance by ensuring the same execution states • Solve the split-brain problem Cons: • Hard to handle non-determinism Primary/backup approach Pros: • Automatically handle non-determinism Cons: • Unsatisfactory performance due to transferring large amount of state 7 • Have the split-brain problem

  30. PLOVER: Combining SMR and primary/backup • Simple to achieve by carefully designing the consensus protocol • Step 1: Use Paxos to ensure the same total order of requests for replicas • Step 2: Invoke VM synchronization periodically and then release replies • Combines the benefits of SMR and primary/backup • Step 1 makes primary/backup have mostly the same memory (up to 97%), then PLOVER need only copy and transfer a small portion of the memory • Step 2 automatically addresses non-determinism and ensures external consistency • Challenges: • How to achieve consensus and synchronize VM efficiently? • When to do the VM synchronization for primary/backup to maximize the same memory pages? 8

  31. PLOVER architecture Primary Backup Witness VM VM Sync VM Sync VM page page service service VMM VMM log log consensus consensus consensus Output buffer Output buffer Client 9

Recommend


More recommend