Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1762830
  • 博文数量: 323
  • 博客积分: 5970
  • 博客等级: 大校
  • 技术积分: 2764
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-03 23:13
文章分类

全部博文(323)

文章存档

2018年(2)

2017年(11)

2016年(10)

2015年(27)

2014年(2)

2013年(30)

2012年(197)

2011年(44)

分类: 虚拟化

2012-05-16 01:03:50

虚拟机 磁盘空间调整
 

以下有一定的风险

 

Shrinking Virtual Disks 
如果你的虚拟磁盘正随着你的数据的增加而变大,你能够通过阅读这一章节所教你的方法来收缩它。如果你在创建虚拟机时预分配了虚拟磁盘,你将不能收缩它。 
注:你在收缩你的虚拟磁盘以前,对虚拟磁盘进行磁盘碎片整理,这将能最大限度的发挥收缩磁盘的作用。请看附录中对虚拟磁盘的磁盘碎片整理的说明。 
收缩虚拟磁盘收回虚拟磁盘中未使用的空间。如果有空闲空间在虚拟磁盘中,这个收缩过程会减少虚拟磁盘文件对宿主机磁盘的空间占用。 
收缩磁盘过程通过转换一个Workstation支持的格式的虚拟磁盘这种方便的方法来实现这个过程。所创建的新格式的虚拟磁盘只能被VMware Workstation 3.0以上版本所识别。 

此图为我在收缩磁盘过程中,出现了叫Windows XP Professional.vmdk.dfgshkgr 的文件(此文件在收缩过程中变大,收缩过程后消失。) 


限制和要求 
收缩需要你的宿主机磁盘上有与你要收缩的虚拟磁盘同样大小的空闲空间。 
收缩功能仅仅应用在虚拟磁盘上。你不能收缩物理硬盘或光盘。 
如果虚拟机虚拟系统有以下情况,收缩功能将不能使用。 
包含一个快照 
链接克隆的来源 
链接克隆 
如果虚拟机虚拟系统中任何一个虚拟磁盘有以下情况,收缩功能将不能使用。 
预分配磁盘 
没有使用虚拟磁盘独立-持久的模式 
非持久模式的遗留磁盘 
独立的磁盘引导 
注:你可以在开启虚拟机以前改变虚拟磁盘的模式。(当然之前你必须删除所有快照) 




收缩过程 
收缩磁盘分两步: 
第一步,被称为清理,VMware Tools要求收回所有磁盘分区中未使用的部分(诸如删除的文件)并为收缩作好准备。清理工作在客户机操作系统中进行。 
第二步,收缩虚拟磁盘,它在宿主机中进行。Workstation通过清理程序回收磁盘空间来减少虚拟磁盘文件的大小。 
当虚拟机打开时,你可以通过VMware Tools控制面板收缩虚拟机的虚拟磁盘。如果虚拟磁盘有快照,你就不能收缩虚拟磁盘了。如果这样,可以移除快照,通过选择 虚拟机 〉 快照 〉快照管理 〉删除。 
在Linux或FreeBSD客户机操作系统中,在进行收缩虚拟磁盘的准备工作,你需要root用户的权限才能运行VMware Tools。这样,你要确保收缩的是整个虚拟磁盘。否则,如果你不是以root用户来收缩磁盘,你就不能清理(收缩)这个虚拟磁盘了。 
收缩虚拟磁盘: 
1.运行VMware Tools控制面板 
Windows客户机——双击系统托盘中VMware Tools图标,或选择 开始 〉控制面板,然后双击VMware Tools。 
Linux或FreeBSD客户机——以root用户身份,然后运行vmware-toolbox. 
(Red hat Linux中的VMware Tools是 /usr/lib/vmware-tools/bin/vmware-toolbox-gtk) 
2.选择Shrink(收缩)选项卡 

3.选择你想要收缩的虚拟磁盘,然后点Prepare to Shrink (准备收缩) 
一个对话框将显示清理(准备工作)的进度。 
注:如果你没有选择某些分区,这个磁盘仍将收缩。无论怎么样,那些没有被选择收缩的分区将不被收缩,收缩进程将尽可能多地收缩所有被选择的分区减少这个虚拟磁盘的大小。 
4.当VMware Tools完成清理所选择收缩的分区后,点Yes。 

一个显示收缩进度的对话框将出现(在宿主机中)。收缩磁盘可能要化大量的时间。 

5.点击OK完成收缩。 

不支持和禁用的分区 
在一些配置中,不能收缩虚拟磁盘。如果你的虚拟机用了如此的配置,收缩选项卡将显示为什么你不能收缩虚拟磁盘的解释。 

举个例子,你不能收缩虚拟磁盘在以下情况中: 
当你在创建磁盘时因为典型和自定义创建虚拟机方法默认预分配磁盘空间,你就预分配了磁盘空间。 
虚拟机拥有快照。但可以通过选择 虚拟机 〉 快照 〉快照管理 〉删除,来删除快照。 
虚拟机包含在物理磁盘上。 
虚拟磁盘在持久模式中不是一个独立的磁盘。 
虚拟磁盘被储存在光盘上。 

附录 
碎片整理 
(摘自VM5.5.1_User's Manual.pdf 第215页) 
虚拟磁盘的碎片整理 
像物理磁盘驱动器一样,虚拟磁盘也会产生磁盘碎片。磁盘碎片整理程序通过重新排序虚拟磁盘上的文件、程序和未使用的空间来使程序运行和文件打开更快。磁盘碎片整理程序不能收回虚拟磁盘中的空闲空间;你可以通过收缩磁盘来回收空闲空间。你能通过以下步骤来达到做好的磁盘碎片整理效果。 
1. 在虚拟机中运行磁盘碎片整理程序 
2. 关闭虚拟机,通过虚拟机设置〉硬盘〉碎片整理 来对虚拟磁盘进行磁盘碎片整理。 
注意:这个功能仅仅是整理虚拟磁盘而不是物理硬盘。 

3. 在主机上运行磁盘碎片整理工具。 
注意:磁盘碎片整理程序需要一定的主机硬盘空间。举个例子,如果你的虚拟磁盘包含在一个文件中的话,那么你需要相当于这个虚拟磁盘文件大小的空间来运行你的磁盘碎片整理工具。而配制虚拟磁盘不需要空的空间。 
(我认为第二步比较重要,第一步和第二步相近) 

摘自VM5.5.1_User's Manual.pdf 第215-218页

 

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

   

   虚拟机在使用过程中,虚拟磁盘的大小会不断变大。即使你删除了磁盘中的文件,虚拟磁盘的大小仍然不会缩小。VMWare在VMWare Tools中推出了Shrink这个功能。在安装VMWare Tools后,在没有Snapshot的情况下,在Guest操作系统为Windows的情况下,能有效缩小虚拟磁盘大小。但如果在Guest操作系统为Linux时,此方法效果就不好了,而且有些挂载点无法Shrink

     VMWare还推出了vmware-vdiskmanager工具,也能Shrink虚拟磁盘。在Guest操作系统为Linux时,单独用此工具没有什么效果。需要先在Guest系统中把未使用的 空间清零,在使用vmware-vdiskmanager,效果比较好。可以通过以下步骤有些缩小虚拟磁盘。

    1、cat /dev/zero > zero.fill;sync;sleep 1;sync;rm -f zero.fill

         在Shell中运行以上命令,能对未使用空间清零,需要较大的空闲空间(跳过这步也可以,只是压缩效果没有这样好)

    2、关闭Guest操作系统,进入VMWare安装目录运行:

         vmware-vdiskmanager.exe -k "f:/vmware/Fedora11/Fedora11.vmdk"

         就可以有效缩小虚拟磁盘的大小,基本达到你用了多少占用多少的效果。

    用此方法分别对Guest系统为Fedora11和OpenSolaris10的VMDK文件进行Shrink,效果明显。


 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

大家用虚拟机vmware一段时间以后,是不是感觉越来越慢了呢,虚拟机的文件是不是越来越大,在虚拟系统中看硬盘只有 1、2g,而在硬盘中显示已经占用了3、4g了,那多余的空间这么释放出来呢,看我的,用这种方法我曾经将占用1.75g的精简版XP减少到600m以下,减少约2/3之多。 
在vmware workstation中关于整理磁盘的有两种方法,整理defragment和压缩shrink。整理defragment在虚拟机设置中的虚拟磁盘设置可以找到,类似于windwos的磁盘整理,可以保持磁盘数据的连续性,提高磁盘性能。很简单,不多说了。 
关于压缩,启动虚拟机后,在托盘区右击vmware tools,找到shrink项,选中要压缩的分区,点prepare to shrink,准备进行压缩。 
完毕后会跳到真实系统中,出现进度条进行压缩。完成既可~~~ 
需要注意的是:压缩功能有些限制,如不能用在选择了预分配空间的虚拟机上、不能有快照、只能对分区进行压缩,不能对物理盘进行压缩等等。 
经过压缩处理,你的磁盘占用至少可以减少1/3到1/2以上。用虚拟机的朋友赶快试一试(见图) 
最好经常使用,尤其是剩余空间还比较大的时候,因为等到剩余剩空间小的时候是不能瘦身的,该过程需要大的剩余空间. 



ps(有用的观点) 
一、从逻辑上说,虚拟机是另一台电脑,这是一个很基本很基础的同时也是很重要的概念,这也是一个很容易被忽视的问题。 
二、安装虚拟机的时候,选择正确的操作系统类型可以避免日后出现一些不应有的问题。 
三、分配给虚拟机的内存最好小于物理内存的一半,以便使主机和虚拟机的性能达到一定的平衡。 
四、如果安装了多台虚拟机,想同时启动时,最好先计算一下这些虚拟机所需要的内存的总和,一旦这个总和接近甚至超过物理内存,则会出现性能问题,这很可能让你以为要按Reset键了。 
五、在VMWARE上,只要能装上,应该尽量安装VMWARE TOOLS,这会带来很多便利。但并非所有的虚拟系统都能成功安装VMWARE TOOLS。 
六、禁用虚拟机的“快照”功能,适当调低显示分辨率,可以提高性能。 
七、备份虚拟机的最彻底办法是退出VMWARE后,把虚拟机的文件打包备份。 
八、试图让虚拟机承担真实系统的许多功能,是很容易受挫的。 
九、新建的虚拟机相当于裸机,需要安装系统,安装系统可以使用光盘,也可以使用ISO镜像——通过VMWARE指定ISO镜像可以代替光盘;也可以使用虚拟光驱来载入ISO镜像,但这又需要设置虚拟的光驱作为虚拟机的“CDROM”,这种做法是行得通,却不是明智之举。 
十、安装好虚拟系统后,要设置网络连接才能联网,跟实际安装系统是一样的。 
十一、想让虚拟的系统读写真实的Window$的文件,首选是安装VMWARE TOOLS,其次是使用局域网连接。想打开一个“资源管理器”之类的窗口就能达到目的是办不到的。 
十二、虚拟系统通过局域网连接访问Window$,常见的做法是使用SMB或FTP,但使用FTP多少需要一点管理FTP服务器的经验。 
十三、要想在虚拟系统上网,先要设对虚拟机的“以太网”选项,还要设对虚拟系统的网络连接。VMWARE默认的“桥接”通常都能起作用,如果确认虚拟系统的网络连接设对了,但不能上网,则可以使用“共享主机IP(NAT)”的选项,此时虚拟系统的网络连接应设为通过DHCP获得IP地址。 
十四、使用虚拟机的“以太网”-“桥接”选项时,虚拟系统的网络连接设定的静态IP应该不同于主机的IP。 
十五、虚拟系统的“硬盘空间”大小在新建虚拟机时就已经决定了,一般的设置情况下,虚拟机的文件是会越来越大,在虚拟系统里删除文件只能增加“虚拟的硬盘”的剩余空间,不能减小虚拟机的文件的大小。所以对一个“干净”的系统作打包备份是有必要的。 
十六、让虚拟系统获得USB盘,应该先在VMWARE的菜单栏里操作;虚拟系统获得USB盘的同时,Window$就读不到该USB盘了。当你让虚拟系统不再连接该USB盘时,Window$上的反应就象是你刚刚插入一个USB盘。 
十七、对虚拟系统作屏幕截图可以在VMWARE的菜单栏里轻松操作,得到的BMP图片将保存在主机的某处由你选定的地方。
  

 

现在我们看一个更深入的问题,通常我们有这样的习惯,把虚拟机中的操作系统和软件安装完毕,调整之最佳状态后,给这个虚拟磁盘做一个快照(其实快照的实质就是锁定虚拟磁盘文件,把快照以后的修改保存到另一个文件中),这样我们就可以放肆地玩这个系统了,什么时候玩乱了,就恢复一下快照,后回到了最佳状态。但是如何使虚拟磁盘达到一个最佳的状态是值得研究的,主要是要处理好这四者之间的关系:
1,Shrink虚拟磁盘;2,子系统整理磁盘碎片;3,VMware整理磁盘碎片;4,主系统整理磁盘碎片;
VMware Work Station的用户手册中有这样的文字:
For best disk performance, you can take the following three actions, in the order listed: 
Run a disk defragmentation utility inside the virtual machine. 
Use the VMware Workstation defragmentation tool. Go to VM > Settings, click the listing for the virtual disk you want to defragment, then click Defragment. 
Run a disk defragmentation utility on the host computer.
也就是说用户手册推荐我们的顺序是234,可是用户手册中并没有说如何定位操作1的顺序可以使虚拟磁盘又小又快,搜索了国外的网站,似乎他们优化虚拟磁盘的方法都是2134的顺序,大家觉得怎么安排这四个步骤最科学呢?

 
///////////////////////////////////////////////////////////
jiangkb ps:
       我们可以创建2个硬盘,这样当需要缩小的时候,就可以将一个虚拟硬盘的东西拷贝出来,然后删除这个硬盘镜像文件(以.vmdk为后缀名),然后重新建立个,再拷贝回去,这样就可以达到变相缩小空间的问题。
       但是有时当vm软件版本不同时,即使虚拟机系统配置里已删除第二个虚拟硬盘,可是无法删除第二个虚拟硬盘镜像文件(以.vmdk为后缀名,删除后就会启动不了虚拟系统),这时可以采取另一种方法,clone,克隆一个虚拟机,克隆出来的虚拟机只会拷贝虚拟系统用到的虚拟硬盘(该虚拟硬盘所占磁盘空间与克隆源大小相同),所以最好是先将源系统进行硬盘整理(如上):
(cat /dev/zero > zero.fill;sync;sleep 1;sync;rm -f zero.fill
 vmware-vdiskmanager.exe -k "f:/vmware/Fedora11/Fedora11.vmdk") 
这样才能最大的缩小硬盘
阅读(4753) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~