zoukankan      html  css  js  c++  java
  • ESXi以及WorkStation缩减thin provision模式Linux虚拟机磁盘的方法

    1. 公司的服务器采用ESXi 进行管理. 有时候为了灵活性,需要将虚拟机从ESXi服务器上面导出来. 放置到不同的客户机器上面去. 

    2. 但是发现,比如我在linux里面安装了Oracle数据库, 里面还有Oracle数据库的安装文件, 虚拟机df -h 提示占用空间 55G以上, 我删除了所有的垃圾文件, 看到占用文件信息变成了35G左右.

    我将虚拟机导出成为 ovf文件,然后使用workstation导入.发现磁盘文件还是接近60G没有大的变化  如下图示:

     虚拟机实际的磁盘占用信息

     3. 最简单的解决办法:

    1. 将导出的ovf文件 在workstation 执行导入
    就是第一个张图里面的结果.
    并且执行开机操作.ESXi虚拟机里面删除完文件之后执行导出,在workstation里面执行导入,并且开机.
    执行如下两个命令
    dd if=/dev/zero of=/zero.file bs=2M
    rm -rf /zero.file
    #注意 dd 命令非常缓慢.根据不同机器的性能执行时间不一样.
    #方法来源: https://blog.csdn.net/weixin_42741271/article/details/97256803
    #注意这个命令 我在ESXi上面的虚拟机执行,直接导致磁盘文件变成了df -h 里面的容量大小(200G), 但是在Workstation虚拟机里面执行,文件仅仅增长了不到1G.
    2. 将 workstation的安装目录放到 环境变量里面去 #注意这一边我就是偷懒,不想输入老长一堆的路径用的. #比如默认安装我这边的目录如图示

    虚拟机内文件的信息

    3. 进入workstation vmdk 所在的目录执行命令进行shrink
    最简单的办法如下:
    在地址栏里面输入 cmd 打开命令行就精确定位到当前目录了.

    4. 执行命令
    vmware-vdiskmanager.exe -k  xxxx.vmdk

    #注意 一定要保证宿主机的磁盘剩余空间大于 vmdk的文件大小.
    #shrink的速度比较慢.
    #虽然有一个GUI的界面可以shrink磁盘文件,但是我发现linux的情况下或者某一些极端情况shrink是无效的
    #使用命令行反而就有效果.
    #需要注意一下shrink的速度是比较慢的. 有百分比的进度显示可以参考.
    #我这边接近60G的硬盘, 如果不执行 dd 命令的话 shrink无效.并且shrink的时间大约是20分钟. 如果执行了dd命令, shrink的时间大概是15分钟. 硬盘性能差不多 一分钟读取加写入3G左右. 之后的文件是35G大小.

     

     执行shrink命令的最终文件大小

  • 相关阅读:
    如何在一个页面调用另一个页面
    CSS3新增的选择器和属性
    js中函数和方法的区别
    jQuery中哪几种选择器
    关于JS数组的栈和队列操作
    HDU1232 畅通工程(并查集)
    并查集
    有关素数的基础算法
    二分教室
    蚂蚁下桥(思维)
  • 原文地址:https://www.cnblogs.com/jinanxiaolaohu/p/12325868.html
Copyright © 2011-2022 走看看