qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [RFC] COLO HA Project proposal


From: Hongyang Yang
Subject: [Qemu-devel] [RFC] COLO HA Project proposal
Date: Tue, 24 Jun 2014 10:08:00 +0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0

Background:
  COLO HA project is a high availability solution. Both primary
VM (PVM) and secondary VM (SVM) run in parallel. They receive the
same request from client, and generate response in parallel too.
If the response packets from PVM and SVM are identical, they are
released immediately. Otherwise, a VM checkpoint (on demand) is
conducted. The idea is presented in Xen summit 2012, and 2013,
and academia paper in SOCC 2013. It's also presented in KVM forum
2013:
http://www.linux-kvm.org/wiki/images/1/1d/Kvm-forum-2013-COLO.pdf
Please refer to above document for detailed information.

The attached was the architecture of kvm-COLO we proposed.
  - COLO Manager: Requires modifications of qemu
    - COLO Controller
        COLO Controller includes modifications of save/restore
      flow just like MC(macrocheckpoint), a memory cache on
      secondary VM which cache the dirty pages of primary VM
      and a failover module which provides APIs to communicate
      with external heartbead module.
    - COLO Disk Manager
        When pvm writes data into image, the colo disk manger
      captures this data and send it to the colo disk manger
      which makes sure the context of svm's image is consentient
      with the context of pvm's image.

  - COLO Agent("Proxy module" in the arch picture)
      We need an agent to compare the packets returned by
    Primary VM and Secondary VM, and decide whether to start a
    checkpoint according to some rules. It is a linux kernel
    module for host.

  - Other minor modifications
      We may need other modifications for better performance.

--
Thanks,
Yang.

Attachment: kvm-colo-arch.jpg
Description: JPEG image


reply via email to

[Prev in Thread] Current Thread [Next in Thread]