码迷,mamicode.com
首页 > 其他好文 > 详细

XEN的clone和copy那点事

时间:2014-07-31 13:02:06      阅读:248      评论:0      收藏:0      [点我收藏+]

标签:des   blog   os   strong   io   数据   for   art   

一、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。

bubuko.com,布布扣

                       图2.1:Clone流程图

bubuko.com,布布扣

                      图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。
 
bubuko.com,布布扣
                      图3.1:简单Copy
 
bubuko.com,布布扣
                      图3.2:复杂Copy
 
 

XEN的clone和copy那点事,布布扣,bubuko.com

XEN的clone和copy那点事

标签:des   blog   os   strong   io   数据   for   art   

原文地址:http://www.cnblogs.com/jingyunyb/p/3880284.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!