XEN的clone和copy那点事
一、XEN API
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.
Make a fresh VDI in the specified SR and copy the supplied VDI's data to the new disk
二、vdi clone步骤
首先,vdi将自身重命名为Base Copy,并生成一块新的vdi替代自己,该新生成的vdi指向Base Copy(vdi);其次,生成一个新的vdi(即克隆出来的vdi),这个克隆出来的vdi也指向Base Copy。
如果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步骤
如果只是对一块普通的vdi(没有进行过克隆)进行Copy的话,那么比较简单,完整的生成一个全新的、独立的vdi即可;