虚拟磁盘格式简单说明

1. VM workstation、ESXi 最常用的虚拟磁盘格式

vmdk

vmdk 是最常见,最常用的磁盘格式,其实不仅仅是服务器版本的ESXi 或者是 Virutalbox的虚拟机均可以支持。

ESXi的宿主机的磁盘格式一般是VMFS (注意 这是服务器的磁盘)

一个服务器的磁盘简单介绍

一版情况下 单个虚拟机的最大磁盘是2T 有时2T的虚拟机无法制作快照,这里需要注意一下。

2. Virtualbox 的虚拟磁盘格式

vdi 格式 和 vmdk格式

virtualbox 默认的磁盘格式是自己的 vdi 格式。 workstation和ESXi不认

所以建议创建vb的虚拟机时 建议使用 vmdk的格式 而不是 vdi的格式 来保证 兼容性。

3. HyperV 的虚拟机

vhd vhdx

早期版本的HyperV 虚拟机 使用 vhd格式的磁盘格式 但是有较多的物理限制 后期新增了 vhdx的磁盘格式, 有了更好的性能和参数

创建虚拟机的快照之后的磁盘格式变为:

这一块可以注意一下。

4. KVM 创建的虚拟机的 部分磁盘格式

qcow2

linux下的磁盘格式 不是很清楚 vmdk 可以用来跑 virtualbox的虚拟机 但是不清楚 能否支持KVM的虚拟机

5. XEN 模式的虚拟机 不清楚。

备注 各种磁盘之间的格式转换

1. 可以使用 vmdk2vhd 的方式 将 vmdk的格式转换成 vhd 格式或者是vhdx 格式 可以用在hyperV 的机器

2. vmdk 可以用在 workstation virtualbox esxi等机器上面

3. 可以使用P2V的方式虚拟化机器也可以使用直接上传vmdk格式磁盘文件的方式 来处理。

4. kvm的虚拟机文件不熟悉。 只是知道有这种格式,其他的不清楚。

转帖一个别人的内容

https://blog.csdn.net/zhengmx100/article/details/53887162

qcow2、raw、vmdk等镜像格式

目录

原文:http://www.prajnagarden.com/?p=248

June 12th, 2012

云计算用一个朋友的话来说:”做云计算最苦逼的就是得时时刻刻为一些可能一辈子都碰不到的事做好准备。更苦逼的就是刚以为一个问题不会遇到,立刻就发生了。。。“。这个还真的没有办法,谁让哥我是搞云计算的呢,简单一个虚拟化就搞的你蛋疼,你还能想其它的吗?

一直纠结在做虚拟化使用什么镜像格式,刚刚开始用了raw的file,后来发现LVM的很多特性对于虚拟化还是有比较理想的能力,而且性能也很不错就用了LVM。后来被VMware骗了跑去搞Esxi接触了VMDK,最近研究openstack发现了qcow2格式,貌似现在很流行呀。也说不上分析这些镜像格式的能力,就简单说说自己的一些使用心得。

目前主要有那些格式来作为虚拟机的镜像:

raw

(default) the raw format is a plain binary image of the disc image, and is very portable. On filesystems that support sparse files, images in this format only use the space actually used by the data recorded in them.

老牌的格式了,用一个字来说就是裸,也就是赤裸裸,你随便dd一个file就模拟了一个raw格式的镜像。由于裸的彻底,性能上来说的话还是不错的。目前来看,KVM和XEN默认的格式好像还是这个格式。因为其原始,有很多原生的特性,例如直接挂载也是一件简单的事情。 裸的好处还有就是简单,支持转换成其它格式的虚拟机镜像对裸露的它来说还是很简单的(如果其它格式需要转换,有时候还是需要它做为中间格式),空间使用来看,这个很像磁盘,使用多少就是多少(du -h看到的大小就是使用大小),但如果你要把整块磁盘都拿走的话得全盘拿了(copy镜像的时候),会比较消耗网络带宽和I/O。接下来还有个有趣的问题,如果那天你的硬盘用着用着不够用了,你咋办,在买一块盘。但raw格式的就比较犀利了,可以在原来的盘上追加空间:


1

2

ddif=/dev/zeroof=zeros.raw bs=1024k count=4096   # 先创建4G的空间

catforesight.img zeros.raw > new-foresight.img    # 追加到原有的镜像之后

当然,好东西是吹出来的,谁用谁知道,还是有挺多问题的。由于原生的裸格式,不支持snapshot也是很正常的。传说有朋友用版本管理软件对raw格式的文件做版本管理从而达到snapshot的能力,估计可行,但没试过,这里也不妄加评论。但如果你使用LVM的裸设备,那就另当别论。说到LVM还是十分的犀利的,当年用LVM做虚拟机的镜像,那性能杠杠的。而且现在好多兄弟用虚拟化都采用LVM来做的。在LVM上做了很多的优化,国外听说也有朋友在LVM增量备份方面做了很多的工作。目前来LVM的snapshot、性能、可扩展性方面都还是有相当的效果的。目前来看的话,备份的话也问题不大。就是在虚拟机迁移方面还是有很大的限制。但目前虚拟化的现状来看,真正需要热迁移的情况目前需求还不是是否的强烈。虽然使用LVM做虚拟机镜像的相关公开资料比较少,但目前来看牺牲一点灵活性,换取性能和便于管理还是不错的选择。

对于LVM相关的特性及使用可以参考如下链接:http://www.ibm.com/developerworks/linux/library/l-lvm2/index.html

cow

copy-on-write format, supported for historical reasons only and not available to QEMU on Windows

曾经qemu的写时拷贝的镜像格式,目前由于历史遗留原因不支持窗口模式。从某种意义上来说是个弃婴,还没等它成熟就死在腹中,后来被qcow格式所取代。

qcow

the old QEMU copy-on-write format, supported for historical reasons and superseded by qcow2

一代的qemu的cow格式,刚刚出现的时候有比较好的特性,但其性能和raw格式对比还是有很大的差距,目前已经被新版本的qcow2取代。其性能可以查看如下链接:http://www.linux-kvm.org/page/Qcow2

qcow2

QEMU copy-on-write format with a range of special features, including the ability to take multiple snapshots, smaller images on filesystems that don’t support sparse files, optional AES encryption, and optional zlib compression

现在比较主流的一种虚拟化镜像格式,经过一代的优化,目前qcow2的性能上接近raw裸格式的性能,这个也算是redhat的官方渠道了,哈哈,希望有朋友能拍他们砖:https://fedoraproject.org/wiki/Features/KVM_qcow2_Performance

对于qcow2的格式,几点还是比较突出的,qcow2的snapshot,可以在镜像上做N多个快照:

  1. 更小的存储空间,即使是不支持holes的文件系统也可以(这下du -h和ls -lh看到的就一样了)
  2. Copy-on-write support, where the image only represents changes made to an underlying disk image(这个特性SUN ZFS表现的淋漓尽致)
  3. 支持多个snapshot,对历史snapshot进行管理
  4. 支持zlib的磁盘压缩
  5. 支持AES的加密

vmdk

VMware 3 & 4, or 6 image format, for exchanging images with that product

VMware的格式,这个格式说的蛋疼一点就有点牛X,原本VMware就是做虚拟化起家,自己做了一个集群的VMDK的pool,做了自己的虚拟机镜像格式。又拉着一些公司搞了一个OVF的统一封包。从性能和功能上来说,vmdk应该算最出色的,由于vmdk结合了VMware的很多能力,目前来看,KVM和XEN使用这种格式的情况不是太多。但就VMware的Esxi来看,它的稳定性和各方面的能力还是可圈可点。

vdi

VirtualBox 1.1 compatible image format, for exchanging images with VirtualBox.

SUN收购了VirtualBox,Oracle又收购了SUN,这么说呢,vdi也算虚拟化这方面的一朵奇葩,可惜的是入主的两家公司。SUN太专注于技术(可以说是IT技术最前端也不为过),Oracle又是开源杀手(mysql的没落)。单纯从能力上来说vdi在VirtualBox上的表现还是不错的。也是不错的workstation级别的产品。

说了这么多虚拟机镜像格式,这么多虚拟化,做云计算的伤不起呀,得为长期发展考虑,也有朋友对镜像的转换做了很多事情,简单看看几种镜像的转化:

转换工具

  • VMDK–>qcow2

  • qcow2–>raw
    • qemu-img convert -O qcow2 image-raw.raw image-raw-converted.qcow
  • raw-> qcow2
  • qemu-img convert -f raw -O qcow2 2fuel2.img  2fuel2.qcow2
  • 将OVA或VMDK格式转换为Xen可运行格式
    • 将VMDK转换为Xen可运行格式

      • 假设待转换vmdk格式的硬盘为origin.vmdk
      • 要有qemu-img和vmware-vdiskmanager两个工具
        • 安装qemu来获得qemu-img工具
        • 安装vmware server来获得vmware-vdiskmanager工具
      • 首先运行:vmware-vdiskmanager -r origin.vmdk -t 0 temp.vmdk
      • 然后运行:qemu-img convert -f vmdk temporary_image.vmdk -O raw xen_compatible.img
    • 将ova格式转换为Xen可读格式
      • 假设待转换文件为origin.ova,在windows下将其改为origin.rar直接解压缩或在Linux下使用tar xvf oringin.ova解压缩。
      • 解压缩后生成三个文件:
        • xxx.vmdk
        • xxx.mf
        • xxx.ovf
      • 使用上文方法一的步骤将xxx.vmdk转为Xen可运行格式。
  • 转换VMWare的image让KVM能使用
    • 我们先要安装一个小软件virt-goodies: sudo apt-get install virt-goodies
    • 然后使用vmware2libvirt来给VMWare VM的基本资料vmx转成KVM可以读入的XML. 如: vmware2libvirt -f myvm.vmx > myvm.xml
    • 使用qemu-img将VMWare VM的disk image转成KVM能读的文件: qemu-img convert -f vmdk myvm.vmdk -O qcow2 myvm.qcow2
    • 可能还需要修改一下vmx转成的xml
      • disk中的target dev,在VMWARE是ide(target dev=’hda’ bus=’ide’)可能要修改成scsi(target dev=’sda’ bus=’scsi’),我们看能不能找到ROOT就知道是不是用对了;
      • bridge mode, 给interface type=’network’修改成interface type=’bridge’, 而source network=’default’修改成source bridge=’br0′.
    • qcow选项,则会创建QCOW(写时复制)格式
    • 修改后给VM的配置加入到libvirtd中.
      • virsh -c qemu:///system define myvm.xml
      • virsh -c qemu:///system list --all

原文地址:https://www.cnblogs.com/jinanxiaolaohu/p/9246480.html

时间: 2024-10-11 12:07:14

虚拟磁盘格式简单说明的相关文章

js日期格式简单转换代码

js日期格式简单转换代码: 未经修饰的东西总是狂野粗糙的,比如人没有经过良好的教育,这人可能会有各种问题,同样js中的时间格式也是如此,所以要对时间进行一定的格式化操作,下面是一段非常简单的代码实例和大家分享一下. 代码如下: function dateStr(x,y) { var z={ y:x.getFullYear(), M:x.getMonth()+1, d:x.getDate(), h:x.getHours(), m:x.getMinutes(), s:x.getSeconds() }

gif/jpg/png 图片格式 简单对比

本文章来自于艾某人的网易博客. 在网站开发中,我们经常会用到背景图,或者是数据图,这些都是图片,我们常用的图片的文件格式有三种:GIF,JPG,PNG.这三种图片格式具有不同的特点,对动画.透明度支持的情况不同,同时对色彩的处理也不同.我们在开发的过程中只有选择合适的图片格式,才能使我们的开发速度更快. 在面试的过程中,发现被问的很频繁的是有关于图片格式的问题,这时候才猛然发觉我对这些问题知之甚少,仅停留在表面的一些认知,可能表面的认知也是需要提一下的,但是对于图片的认识越深,才能在选用的过程中

Raw qcow qcow2 vhd-vpc虚拟磁盘格式间相互转换

php几行代码实现CSV格式文件输出

//适用于不需要设置格式简单将数据导出的程序,多多指教...... $str .= 'pro_code'.','.'words'.'\n';//首先写入表格标题栏 foreach($is_error as $key => $value){//循环写入数据 $str .= $value['pro_code'].",".$value['words']."\n"; } $str = iconv('utf-8','gb2312',$str);//防止中文乱码 $fil

js时间戳与日期格式之间的互转

1. 将时间戳转换成日期格式 // 简单的一句代码 var date = new Date(时间戳); //获取一个时间对象 注意:如果是uinx时间戳记得乘于1000.比如php函数time()获得的时间戳就要乘于1000 /** 1. 下面是获取时间日期的方法,需要什么样的格式自己拼接起来就好了 2. 更多好用的方法可以在这查到 -> http://www.w3school.com.cn/jsref/jsref_obj_date.asp */ date.getFullYear(); // 获

对比XML JSON INIDG 三种格式

在移动与WEB开发时,避免不了服务端与客户端数据交换,需要从多种格式中找到一种合适的 主要考虑两点,数据量小,解析快速,支持工具丰富 json(JavaScript Object Notation) 一般用于WEB和移动应用的网络数据交换 优点: 可以被JS原生解析 应用广泛,适合于数据交换处理,被于WEB和移动应用开发,所以服务端与客户端一般被要求同时支持JSON 数据量小,易于解析,因为格式简单,只有数组,对象和普通文本 缺点: 肉眼可读性差, 字符类型与数值类型容易混淆 举例 ["str1

【图像格式】 PPM/PGM/PBM格式编码详解

PPM(Portable PixMap)是portable像素图片,是由netpbm项目定义的一系列的portable图片格式中的一个.这些图片格式都相 对比较容易处理,跟平台无关,所以称之为portable,就是比较直接的图片格式.比如PPM,其实就是把每一个点的RGB分别保存 起来.所以,PPM格式的文件是没有压缩的,相对比较大,但是由于图片格式简单,一般作为图片处理的中间文件(不会丢失文件 信息),或者作为简单的图片格式保存. 格式分析 netpbm的几种图片格式是通过其表示的颜色类型来区

直播服务器简单实现 http_flv和hls 内网直播桌面

直播都不陌生了,如今主流的协议分析的对比图,个人见解. 协议 httpflv rtmp hls dash 传输层 http流 tcp流 http http 视频格式 flv flv tag Ts文件 Mp4 3gp webm 延时 低 低 很高 高 数据分段 连续流 连续流 切片文件 切片文件 Html5播放 可通过html5解封包播放(flv.js) 不支持 可通过html5解封包播放(hls.js) 如果dash文件列表是mp4webm文件,可直接播放 http_flv&rtmp 这两个协议

利用freemarker导出页面格式复杂的excel

刚开始大家可能会利用poi生成简单的excel,但是遇到需要生成复杂的excel,poi导出excel就比较困难,这时候可以利用freemarker来渲染实现实现生成复杂的excel, 首先将excel右键导出xml(最好利用excel microsoft导出,不要用wps导出xml,因为microsoft导出的xml格式简单) ---->xml data部分用freemarker语法渲染,然后重命名为*.ftl(注意ss:ExpandedRowCount="3" wps可以不改