opennebula(以下简称one)提供了disk-snapshot功能,可以用来做备份之用。

$ onevm disk-snapshot <vm-id> <disk-id> hello
$ onevm shutdown <vm-id>

这个时候,one会将disk.0回传到image datastore中,同时通过ssh删除位于host中的vm。

该功能跟transfer manager无关,经验证,来自第三方的nfs_lvm也能正常操作。

验证方式:

  1. 在vm中

    $ echo "hello.kitty" > /etc/hello-kitty
  2. 在frontend中

    $ oneimage list
     ID USER       GROUP      NAME            DATASTORE     SIZE TYPE PER STAT RVMS
     18 oneadmin   oneadmin   d7-32-kvm-raw   nfslvm-img     10G OS    No rdy     0
     23 oneadmin   oneadmin   d7-32-kvm       nfslvm-img     10G OS    No rdy     0
     24 oneadmin   oneadmin   hello.kitty     nfslvm-img     10G OS    No rdy   1
  3. 创建一个新的vm

    $ onevm create --name hello-kitty --memory 1024 --cpu 0.1 --disk hello.kitty --hold
    $ onevm deploy <vm-id> <host-id>
  4. 在host中

    $ sudo virt-cat -a disk.0 /etc/hello-kitty
    hello.kitty

说明,经过修改的disk.0已经被传回到front-end的image datastore中了。