一、XEN API

•VDI clone (session session_id, VDI vdi, Map[string,string] driver_params)

Take an exact copy of the VDI and return a reference to the new disk. If any driver_params are specified then these are passed through to the storage-specific substrate driver that implements the clone operation. NB the clone lives in the same Storage Repository as its parent.

•VDI copy (session session_id, VDI vdi, SR sr)

Make a fresh VDI in the specified SR and copy the supplied VDI's data to the new disk

二、vdi clone步骤

•1、vdi最初的克隆

首先,vdi将自身重命名为Base Copy,并生成一块新的vdi替代自己,该新生成的vdi指向Base Copy(vdi);其次,生成一个新的vdi(即克隆出来的vdi),这个克隆出来的vdi也指向Base Copy。

•2、再次对vdi进行克隆(vdi中数据没有发生什么变化)

如果vdi中的数据没有发生任何变化,那么将直接生成一个新的克隆出来的vdi,这个克隆出来的vdi也指向Base Copy;

如果vdi中的数据发生了变化,那么首先,vdi再次将自身重命名为Base Copy(我们称之为Base Copy 2,之前的那块Base Copy我们称之为Base Copy 1),并生成一块新的vdi替代自己,该新生成的vdi指向Base Copy 2,而Base Copy 2指向Base Copy 1,其次,生成一个新的vdi(即克隆出来的vdi),这个克隆出来的vdi指向Base Copy 2。

                       图2.1:Clone流程图

                      图2.1-1:Clone流程图的附图(子图)

三、vdi Copy步骤

•1、简单Copy

如果只是对一块普通的vdi(没有进行过克隆)进行Copy的话,那么比较简单,完整的生成一个全新的、独立的vdi即可;

•2、复杂Copy
•如果是对vdi-clone-2这样的vdi进行的克隆的话,那么要找到其克隆链上的所有vdi( Base Copy 1、 Base Copy 2、 vdi-clone-2 ),收集到所有信息后再完整的生成一个全新的、独立的vdi。
图3.1:简单Copy
图3.2:复杂Copy

转载于:https://www.cnblogs.com/jingyunyb/p/3880284.html

XEN的clone和copy那点事相关推荐

  1. Copy Clone

    最近在写SqlCenter的测试的时候,经常要写Clone和Copy的测试.由于这个需要,好好的温习了下Clone(Shallow Copy)和 Copy(Deep Copy). 我们知道: Clon ...

  2. 关于copy和clone

    在软件世界中,这两个概念对于我们来说并不陌生,如.NET中的Object.MemberwiseClone().prototype设计模式的clone等,copy就更常见了,如copy一段文字等. 从本 ...

  3. rust copy 和 clone 区别

    Rust 中有两个常见的 trait,Clone 和 Copy,许多初学者没有搞明白.今天我们来专门谈一谈这两个 trait. Copy 的含义 Copy 的全名是 std::marker::Copy ...

  4. clone方法是如何工作的

    2019独角兽企业重金招聘Python工程师标准>>> clone()是java.lang.Object类下面的一个很难处理的方法,clone()的作用很简单,提供一种克隆机制创建对 ...

  5. 虚拟化之安装Xen实例

    -----本文大纲 Xen简介 Xen体系结构 Xen布署(Centos 6.5) ------------- 一.Xen简介 Xen 是一个开放源代码虚拟机监视器,由剑桥大学开发.它打算在单个计算机 ...

  6. Java 深copy 浅copy 引用copy

    大家好,我是烤鸭: 今天分享一下浅copy和深copy. 1.   深copy 什么是深copy,只复制原对象属性值,不管地址. 说一下业务场景: 如果我想创建一个对象,只是对原对象的某个属性值改变. ...

  7. java super.clone解释_super.clone()做了什么

    java对象如果想被克隆,它对应的类需要implements标志接口Cloneable.如果不重写clone()方法,则在调用clone()方法实现的是浅复制(所有的引用对象保持不变,意思是如果原型里 ...

  8. MySQL 8.0 clone plugin 完整版

    作者介绍:罗小波,<千金良方--MySQL性能优化金字塔法则>作者之一. 熟悉MySQL体系结构,擅长数据库的整体调优,喜好专研开源技术,并热衷于开源技术的推广,在线上线下做过多次公开的数 ...

  9. Prototype Pattern

    一. 原型(Prototype)模式 原型模式的用意是:通过给出一个原型对象来指明所要创建的对象类型,然后用复制这个原型对象的办法创建出更多的同类型对象. 从孙大圣的手段谈起 孙悟空在与黄风怪的战斗中 ...

最新文章

  1. 服务器主机防御系统,主机入侵防御系统
  2. Error in value[[3L]](cond) : You have a 32-bit version of Java. H2O works best with 64-bit Java.
  3. VUE中使用sass
  4. Activity的使用(四):两个activity的交互
  5. leetcode412
  6. 【机器视觉】 dev_open_dialog算子
  7. tez什么意思_Tezos 与 Ethereum 的区别
  8. 浅析LAN交换机的线速释义 From: www.c114.net
  9. GIS案例练习-----------第七天
  10. 2021-08-19初识JSP
  11. 仿照MEMZ做一个特效程序
  12. html返回的状态值,iradon函数返回的是什么值
  13. mysql 主从1236_mysql主从复制1236错误
  14. ctrlaltdel命令手册
  15. 学习C#的一点一滴(20)
  16. z5s+android+4.4,中兴NX403a(Nubia Z5S Mini Android 4.4)刷Recovery教程
  17. jmeter 录制--https代理证书导入IOS手机
  18. 运维工程师岗位职责、职业路线和常用工具
  19. 使用SQL Server管理数据表
  20. Hbuildx的快捷键集合

热门文章

  1. 电子书推荐--《Python灰帽子》,python黑客编程
  2. EZ430 Chronos 如何提高开发调试效率探讨
  3. XenApp 6 license导入报错的终极解决方案
  4. 安全警报:Oracle 2018一月号安全补丁修复由来已久安全漏洞
  5. new Integer 和 Integer.valueOf 有什么不同
  6. Linux用户、群组管理
  7. 第一个程序实现登录功能,密码输错三次封账号。
  8. mysql ERROR 1042 (HY000): Can't get hostname for your address
  9. enum类型被intent所携带时需要注意的地方
  10. C语言中volatilekeyword的作用