image_copy命令说明
1 命令参数
image_copy -i [vhd|pvhd|zvhd|raw] -o [vhd|pvhd|zvhd|raw] -s src_volpath -d dst_volpath
以上为必要参数,其中-i 表示源文件格式,-o 表示目的文件格式,-s 表示源文件路径(- 表示0管道), -d 表示目的文件路径(- 表示1管道)。
另外还有其他参数,说明如下:
-l 表示限速;
-r 表示源文件O_DIRECT打开;
-x 表示指定目的卷为普通,如卷迁移时可以指定卷格式;
-y 指定目的卷为精简卷(默认);
-z 指定目的卷为sparse卷(普通卷的中间态,通过填零以及修改footer即可变为普通卷);
-v 当目的卷为raw格式,同时从源卷读到全零,则不写入目的卷;
-a 当目的卷为vhd或pvhd格式,若不使用xcopy,则不管源读取是否为全零以及目的卷格式,都会全部写入目的卷;若使用xcopy,则只有源卷读取全零,同时目的卷为sparse,才会为目的卷填零;
-e 表示当源和目的卷都位于xcopy开关打开的数据存储之上,使用xcopy方式拷贝卷内容;
-D 表示打印debug级别日志。
支持的格式:
l vhd:小于等于2043G的vhd格式的卷;
l pvhd:大于2043G的vhd格式的卷;
l zvhd:压缩格式,非vhd卷。若每个块(2M)内容不全为0则压缩写入zvhd文件,若全0则不写入;该格式存在两个版本,当前版本命令兼容老版本;
l raw:位于块数据存储之上卷创建device mapper设备之后的格式。
默认情况下源文件(管道除外)非O_DIRECT打开,目的文件(管道除外)O_DIRECT打开(安全要求)。
2 文件格式
2.1 vhd(包括pvhd)
vhd是Microsoft公司创建的一种虚拟磁盘文件格式。它能够支持存储瘦分配、链接克隆、快照等高级特性。vhd格式分为三种类型:
l Fixed格式文件在建立时就分配指定大小的磁盘空间,之后使用过程中不改变大小。不同的文件系统对Fixed磁盘文件有不同的大小限制。
l Dynamic格式文件是按需分配的,比如初始化为10G的Dynamic虚拟磁盘文件,实际在物理磁盘中的大小只有24K(用于存储元数据),随着用户数据的不断写入,实际文件才慢慢增长为10G(最大只能增长到10G)。
l Differencing格式文件是一种差分文件,它只保存了原磁盘中修改过的数据块,因此必须依赖于原磁盘文件才能被虚拟机使用。
vhd文件总体结构(dynamic和difference)
虚拟化数据存储之上创建的卷即为vhd文件,当卷规格大于2093046M时,原有元信息无法表示,则创建的卷为pvhd。对外呈现都是vhd文件,但是作为开发人员需要注意。
2.2 raw
在image_copy中raw是指可直接访问的块设备,如已挂载的device mapper设备,dsware设备等。在大lun块数据存储和本地块数据存储之上创建卷为普通卷,当其挂载之后生成的device mapper设备即为raw。它的大小由BRM控制,需要特别关注,如位于块数据存储之上的卷等。
2.3 zvhd
zvhd格式由导出ovf模板特性引入,其内部保存已过压缩的有效数据。zvhd使用vhd格式中的footer保存元数据,但是文件内部格式与vhd完全不同。文件内部在保存元数据以及有效数据的起始位置保持4k对齐。
针对http传输导出模板方式,zvhd支持管道传输,根据场景0管道作为输入,1管道作为输出,需要避免往回写的情况(lseek)。
- 点赞
- 收藏
- 关注作者
评论(0)