免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6957 | 回复: 4
打印 上一主题 下一主题

KVM客户机磁盘占用与实际的磁盘虚拟文件差别很大! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-04-25 16:01 |只看该作者 |倒序浏览
KVM客户机虚拟磁盘映像使用qcow2格式
一台windows 2003 x64客户机,从客户机操作系统查看,磁盘使用量为11G,但从KVM主机看虚拟磁盘文件有17G大小,当时分配的虚拟磁盘大小为60G
一台debian客户机,从debian系统看,磁盘使用量为5G,但从KVM主机看虚拟磁盘文件由25G之大,当时分配的虚拟磁盘文件为大约60G

难道qcow2格式这么浪费主机磁盘空间吗???

论坛徽章:
0
2 [报告]
发表于 2012-04-27 12:34 |只看该作者

论坛徽章:
8
亥猪
日期:2014-02-09 10:55:252015小元宵徽章
日期:2015-03-06 15:57:20数据库技术版块每日发帖之星
日期:2015-06-08 22:20:00综合交流区版块每日发帖之星
日期:2015-06-14 22:20:002015亚冠之阿尔沙巴布
日期:2015-09-01 20:23:45IT运维版块每日发帖之星
日期:2015-09-04 06:20:00IT运维版块每日发帖之星
日期:2015-11-04 06:20:00IT运维版块每日发帖之星
日期:2015-12-04 06:20:00
3 [报告]
发表于 2012-04-27 13:12 |只看该作者
mopyman 发表于 2012-04-27 12:34
已经找到原因并处理了
减少qcow2虚拟磁盘文件实际占用的存储空间


我帮你贴过来吧,刚才那个网站打开很慢

虚拟磁盘文件占用的空间会越来越大,就算从客户机里面删除了很多文件,但这些空间并未释放出来,qcow2文件仍然占用大量的主机存储空间。

虽然qcow2有一个特点,客户机需要时才分配存储空间,这工作的一直很好。但是当从客户机删除了很多文件,释放了很多空间时,从KVM主机端完全看不到qcow2虚拟磁盘文件有变小的迹象。这是因为现在的文件系统都有一个特点,删除文件时并没有真正的清除文件的内容,只是简单的做了标记,这样删除文件会很迅速,只有当用到这些空间时才重新写入新的数据。这也是反删除甚至反格式化软件存在的基础。所以要想缩小qcow2虚拟磁盘文件的大小,就要真正释放这些未使用的空间才可以。

不同的客户机类型有不同解决方式,基本思路就是用0填充未使用的客户机磁盘空间,然后用qemu-img转换磁盘镜像文件,转换后的磁盘镜像文件将只包含所有已使用的磁盘空间。

KVM客户机

    使用dd命令将客户机未使用的磁盘空间用0填满
    $dd if=/dev/zero of=~/junk
    dd: writing to `/home/***/junk’: No space left on device
    然后
    $rm junk
    关闭客户机
    转换磁盘镜像文件
    $qemu-img convert -O qcow2 debian.qcow2 debian_new.qcow2

    转换完成后可以看到debian_new.qcow2占用的KVM主机存储空间与客户机使用的磁盘空间基本是一致的。然后用新的磁盘镜像文件debian_new.qcow2启动客户机即可。

windows客户机

    删除不需要的文件,清理系统垃圾,然后整理磁盘碎片
    下载SDelete,借助sdelete用0来填充未使用硬盘空间

    查看sdelete帮助
    C:\>sdelete
    SDelete – Secure Delete v1.6
    Copyright (C) 1999-2010 Mark Russinovich
    Sysinternals – www.sysinternals.com

    usage: sdelete.exe [-p passes] [-s] [-q] …
    sdelete.exe [-p passes] [-z|-c] [drive letter] …
    -a Remove Read-Only attribute
    -c Clean free space
    -p passes Specifies number of overwrite passes (default is 1)
    -q Don’t print errors (Quiet)
    -s or -r Recurse subdirectories
    -z Zero free space (good for virtual disk optimization)

    用0填充C分区空闲区域
    C:\>sdelete -z c

    关闭客户机
    最后在KVM主机上转换qcow2磁盘镜像文件

    $qemu-img convert -O qcow2 windows.qcow2 windows_new.qcow2
    转换完成后可以看到windows_new.qcow2占用的KVM主机存储空间与客户机使用的磁盘空间基本是一致的。然后用新的磁盘镜像文件windows_new.qcow2启动客户机即可。

论坛徽章:
0
4 [报告]
发表于 2012-05-15 11:13 |只看该作者
建议用lvm作为镜像,可以利用lvm提高虚拟机性能。

论坛徽章:
0
5 [报告]
发表于 2012-05-15 13:20 |只看该作者
在这lvm的快照技术,可以作为虚拟机的备份。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP