VMWare 回收磁盘空间
两部分内容:
1) 实际操作体验下在vmware player里回收guest vm的磁盘空间,还给host;
2)顺便把之前的笔记翻出来关于vmware unmap/reclaim, 对照总结。
1. 回收VMWare 磁盘空间
笔记本上用了VMWarePlayer 7(面向个人版本,装在win/mac里),里面装了ubuntu15.Thin disk. 半年不到,几个折腾下来发现vm占的空间就飙上去了现在要占40+GB。反思下,主要由于linuxpackage upgdate, 创建删除dockerimage。直接后果就是本子180GB空间要耗尽。删了vm里的无用的文件,接下来的主要问题,需要把VM瘦身磁盘空间还给本子。
尝试player的菜单里做碎片整理-压缩,只要回来3GB,还不够,guest linux有38GB free
osboxes@osboxes:/media/osboxes/VMware Tools$ df -lh
Filesystem Size Used Avail Use% Mounted on
udev 568M 0 568M 0% /dev
tmpfs 116M 9.3M 107M 9% /run
/dev/sda1 48G 7.2G 38G 17% /
应该使用vmware tools从guest OS里开始下手,vwmare会把一个工具放在guest OS 里(应该是mount给guest)。需要自己去安装下,Linux里叫vmware-toolbox-cmd,通过它发起回收。
root@osboxes:~#vmware-toolbox-cmd help disk
disk:perform disk shrink operations
Subcommands:
list: list available locations
shrink <location>: wipes and shrinks a file system at the givenlocation
shrinkonly: shrinks all disks
wipe <location>: wipes a file systemat the given location
我用的是shrink 。需要root权限,有一些限制(最好看下后面的pdf手册,声程不支持journalingfs: ext4/xfs/jfs, what fuck ext3就不算了? 反正我直接ext4上运行了也没错我提示)
1. 准备阶段:主要搜集不用的guest os unused blocks(such as deleted files) . VMWare会把带回收的空间抢占主/inflate,免得被人再分走. 48GBSSD 83%是deleted可回收; scan大概几分钟;期间vm可以正常访问。然后你会发现整个磁盘基本都被占用了
osboxes@osboxes:/media/osboxes/VMware Tools$ df -lh
Filesystem Size Used Avail Use% Mounted on
udev 568M 0 568M 0% /dev
tmpfs 116M 9.3M 107M 9% /run
/dev/sda1 48G 44G 909M 99% /
2. 回收阶段: 花的时间较长20来分钟,vm没有响应。网络中断
完成后,resume (就开始报错, 被忽略。能报错说明系统没死...)
thin LUN. 依然显示50GB,但大部分是hole/unprovisoing. 本子的windows已经显示多了30+GB
osboxes@osboxes:~$ df -lh
Filesystem Size Used Avail Use% Mounted on
udev 568M 0 568M 0% /dev
tmpfs 116M 9.4M 107M 9% /run
/dev/sda1 48G 7.9G 37G 18% /
2. VMWare reclaim storage总结
主要是之前做的ppt ,
vSphere Reclaim基本到5.1之后才可用;5.0虽然开始支持但因为重大bug不推荐。在ESX 5.5 的两种方式
1. vmkfstools–y <%free space to unmap>
- it crease a tempfile in top dir named.asyncUnmapFile. Reserved size= number *blockSize
2. esxcli storagevmfs unmap --volume-label=volume_label|--volume-uuid=volume_uuid--reclaim-unit=number
- number of VMFSblocks to UNMAP per iteration. If not specified, default value of 200.
- Run may fail or runlong time depending on #and how storage array behaves/performance
主要实现步骤(官图):
基本思路说起来简单:上层不用了,要通知下层: 在哪,多大,请注意回收(不是保证);但环节很多(至少3个还不算array内部的),细节很多 尤其是早期的layout就没考虑shrink功能;做起来那叫个费劲
GuestOS 里需要VMWare tools eitherwipe or shrink fs。主要目的搜集free block &location. 通常要在fs级别要和fs一起。除非你一把清了磁盘不care数据
VMWare tools 得到结果/ metadata
vSphere 通知vmfs/sparse disk做re-org: unmap to vSCSI -> SE sparse Disk
这就要搬数据了取决于sparse/thin layout 的设计,但原则是大块回收。Vmware的设计比较简单而糙。
read /write to move,update sparseDisk metadata, compact, use a temp file .asyncUnmapFil. vSphere issue “shrink”when enough free at end of SE disk,
不是说糙就多坏,但很可能设计之初没这方面的意识和考虑;最后补功课,往往事倍功半or 效果不好。怎么做都别扭的感觉。恨不得推倒重来
4. 然后VMFS级别释放空间: by SCSI unmap or NFS-truncate
5. 最后通知后台的share storage回收空间,这样资源才能分给其他使用者。async to reclaim,企业存储里分层太多(sw defined精髓...),基本上把上面的4步再来一遍。异步-攒-搬-更新metadata,IO密集, metadata load/lock/update。不是轻松的事。什么时候真正把空间回收了,还没法细说;当然都基本做到了透明 online. 以后再需要空间时会alloc-on-demand,然后…循环。
当然,用户操作起来基本是半/自动化, 意识不到这里面一坨苦逼的活,而且极容易出错,影响性能。我shrink完了,guest linux隔会就开始报system detectexception. Fuck也不知道哪个筋出错了,不过还能继续用,那就委屈了。
新的存储系统基本在设计之初就充分考虑thin,shrink,当然端到端的支持得配合;shrink/reclaim的效率,性能影响这得看各家的功夫,不一而足,尤其是还纠缠着snap,dedup这些share-data以及auto-balancee/rebuild/tiering之类的IO密集应用,在架构,layout方面要综合考虑,一开始就考虑。
其他参考:
1. vmware tool手册,linux/windows ***bsd都支持:http://www.vmware.com/pdf/vmware-tools-installation-configuration.pdf
2. 利用vMotion+vSphere 的方法:http://blogs.vmware.com/vsphere/2012/04/vaai-thin-provisioning-block-reclaimunmap-in-action.html
VMWare 回收磁盘空间的更多相关文章
- vmware压缩磁盘空间的方法
家里笔记本40G,可用空间怎么挤都只剩7G,从单位copy回来的linux虚拟机要10G,经检查实际使用空间5.7,也就是其他都是空余空间,可以释放掉.(只适合independent.Persiste ...
- vmware压缩磁盘空间的方法, linux怎么卸载vmware
家里笔记本40G,可用空间怎么挤都只剩7G,从单位copy回来的linux虚拟机要10G,经检查实际使用空间5.7,也就是其他都是空余空间,可以释放掉.(只适合independent.Persiste ...
- [CentOS7] [VMWARE] 增加磁盘空间后扩大逻辑分区
Learn to rescan disk in Linux VM when its backed vdisk in vmware is extended. This method does not r ...
- Vmware中Linux或macOS客户端如何回收硬盘空间
Vmware对于Windows的客户端,使用GUI操作硬盘回收和整理磁盘即可.对于Linux或macOS客户端,需要在安装Vmware Tools之后,在客户端OS的终端Terminal里输入命令进行 ...
- Linux 系统磁盘空间占满,df 和 du 结果不一致
服务器运行一段时间后df查看磁盘剩余空间不足,通过du统计发现被几个文件占用,遂删除之.过了一段时间磁盘空间再次不足,通过du统计却找不到那么多大文件.搜索后才得知原因:文件删除后空间没有释放,du统 ...
- vmware Esxi 回收Thin模式磁盘空间
本文来自:https://blog.csdn.net/happyfreeangel/article/details/85075179 第一部分 回收Thin模式磁盘空间背景:在使用Thin模式的磁盘, ...
- VMware虚拟机Mac OS X无法调整扩展硬盘大小,更新xcode时出现磁盘空间不足
使用VMware虚拟机搭建的MacOSX,安装xcode时出现磁盘空间不足的错误. 因为很多朋友在初次安装MacOSX的时候都默认选择40G的磁盘大小,结果用了没两天之后就发现磁盘不够用了. 这时,百 ...
- 【转载】VMware下LINUX的虚拟机增加磁盘空间
转载自:http://space.itpub.net/24435147/viewspace-694200 VMware6.7安装目录下有一个命令行工具vmware-vdiskmanager.exe 程 ...
- VMware:虚拟机磁盘空间不足怎么办
前言: 虚拟机里一般我们用的虚拟磁盘,在电脑上是一个或多个文件,随着软件和数据的增多,有时也会提示磁盘空间不足. 那么,虚拟机磁盘空间不足如何处理呢? 一:调整磁盘分区大小; 若只是提示相应磁盘分 ...
随机推荐
- 转 jmeter使用IP欺骗压力测试
jmeterIP 欺骗多IP 最近在使用jmeter进行压力测试时需要使用类似于loadrunner的IP欺骗功能,经问津度娘无果后决定再次耐心研究jmeter官方文 档,终于发现在jmeter2.5 ...
- Linux内核(5) - 内核学习的相关资源
“世界上最缺的不是金钱,而是资源.”当我在一份报纸上看到这句大大标题时,我的第一反应是——作者一定是个自然环保主义者,然后我在羞愧得反省自身的同时油然生出一股对这样的无产主义理想者无比崇敬的情绪来. ...
- SICP 习题 (2.8) 解题总结:区间的减法
SICP 习题 2.8 须要我们完毕区间运算的减法.区间运算的加法书中已经有了,代码例如以下: (define (add-interval x y) (make-interval (+ (lower- ...
- JAVA class 编译jar。 控制台使用jar
//编译jar jar -cvf -mgtvEncode.jar -mgtvEncode.class //使用jar java -cp mgtvEncode.jar mgtvEncode
- 【Android】16.4 IntentService类
分类:C#.Android.VS2015: 创建日期:2016-03-01 一.简介 为了进一步简化Intent过滤器的用法,Android系统又提供了一个IntentService类,这样一来,你也 ...
- asp.net web网站权限系统的简单设计
权限设计总结一句话就是:拥有权限的主体来管控系统的各种资源资源,及在资源上体现的各种操作. 概括来说就是,权限离不开三要素: 1:权限的主体 2:管控的资源 3:各种操作 现对三要素分别做简单的阐述 ...
- 每日英语:Is Bo Xilai the Past or Future?
Bo Xilai may be in jail, but a struggle is now underway within the Communist Party over the policies ...
- nyoj228 士兵杀敌(5)插线问线
士兵杀敌(五) 时间限制:2000 ms | 内存限制:65535 KB 难度:5 描述 南将军麾下有百万精兵,现已知共有M个士兵,编号为0~M,每次有任务的时候,总会有一批编号连在一起人请战 ...
- jQuery提供的一些判断数据类型的方法总结
// jQuery提供一系列工具方法,用来判断数据类型,以弥补JavaScript原生的typeof运算符的不足. // 以下方法对参数进行判断,返回一个布尔值. // jQuery.isArray( ...
- Maven打包可执行Jar的几种方法
http://m.blog.csdn.net/article/details?id=51871705