谷粒商城实战笔记-vagrant避坑指南

一,虚拟机磁盘空间不足

使用vagrant管理虚拟机的过程中遇到了一个问题,虚拟机安装完成后,很快磁盘dev/sda1就满了,40G的空间,瞬间就不够了,非常奇怪。

问题原因

输入指令vagrant up开启虚拟机的过程中,控制台有很多日志,最后一条日志是这样的:

在这里插入图片描述

 default: Rsyncing folder: c/Users/Lenovo/ => /vagrant

这个日志记录了vagrant启动虚拟机后完成了一项工作,把C盘下的Lenovo用户文件夹下的所有文件同步到虚拟机的根目录下的vagrant文件夹中。

这行日志表示的是 Vagrant 正在同步文件夹的过程。理解这行日志的内容:

  1. default:: 这表示是默认的 Vagrant 机器实例。如果你在一个 Vagrantfile 中配置了多个虚拟机,那么每个虚拟机都会有自己的标签。在这里,“default”是指默认的虚拟机实例。

  2. Rsyncing folder:: 这是 Vagrant 正在执行的操作,即使用 rsync 工具来同步文件夹。rsync 是一个高效的文件同步工具,常用于文件夹的增量备份和同步。

  3. c/Users/Lenovo/ => /vagrant: 这部分指出了 rsync 正在同步的具体路径。这里是从宿主机(通常是你的开发电脑)的一个文件夹 c:\Users\Lenovo 同步到虚拟机内的 /vagrant 文件夹。

这种同步通常会在 Vagrant up 或者 vagrant reload 之后自动发生,以便确保虚拟机内部的文件与宿主机上的文件保持一致。

这就是问题所在,会把C盘上的文件夹内容同步到虚拟机,而这些文件夹内容对虚拟机来说是没有用的。

解决方案

这个同步的机制,在 Vagrant 和其他虚拟化环境中是非常重要的功能,主要用于在宿主机(host machine)和虚拟机(guest machine)之间共享文件。

但我们并没有需要共享的文件,多余的复制反而导致虚拟机磁盘空间浪费。

为了避免无用的文件复制,可以新建一个空的文件夹,指定为vagrant的工作文件夹。就不会有大量的无用文件的复制,这就是解决问题的思路。

删除根目录下的vagrant文件夹及以下目录。

sudo rm -rf /vagrant

使用命令查看磁盘空间。

df -h

可以看到,失去的空间,回来了。

关闭虚拟机,找到C盘C:\Users\用户名目录下的Vagrantfile文件。

在这里插入图片描述

打开这个配置文件,加上如下配置。

在这里插入图片描述

config.vm.synced_folder "./vagrantbackup", "/vagrant", type: "rsync"

C/Users/用户名目录下新建vagrantbackup文件夹。

在这里插入图片描述

关闭虚拟机,cmd终端执行命令。

vagrant reload

这个命令会重新加载配置文件。

执行命令启动虚拟机。

vagrant up

执行命令验证磁盘空间使用情况。

df -h

结果如下,仅占用15%,还有大量可用空间。
在这里插入图片描述

二,虚拟机导致C盘空间不足

开始在自己的windows电脑上使用vagrant创建Vitualbox虚拟机之后,发现C盘常常居高不下,系统时常报警。

在这里插入图片描述

排查发现Vitualbox创建的虚拟机占用了40G的空间,毫无疑问,这才是 罪魁祸首。

必须把这些虚拟机迁移到其他盘。

1,数据迁移

将VirtualBox默认路径下的虚拟机相关数据迁移到其他盘,比如D盘。

VirtualBox将创建的虚拟机存储在C盘用户目录下的VirtualBox VMs目录,如C:\Users\86138\VirtualBox VMs

将这个目录下的所有数据拷贝到你准备好的其他盘的目录,如D盘下提前创建好的VirtualBoxVMs目录。

原目录暂时不要删除,迁移成功后删除。

2,修改默认配置

如下图,打开VirtualBox,选择管理-全局设定-常规,将默认虚拟电脑位置修改为第一步创建的目录,如D盘下提前创建好的VirtualBoxVMs目录,注意这个目录要和第一步的目录保持一致。
在这里插入图片描述

3,在VirtualBox上删除原来的虚拟机

在这里插入图片描述

3,在新的虚拟机目录下

在新的虚拟机目录下,双击vmdk文件,就能在VirtualBox上看到一个新的虚拟机,如果虚拟机能正常启动和使用,说明虚拟机迁移成功。
在这里插入图片描述

5,删除C盘上的虚拟机文件

删除默认的C盘虚拟机存储目录,瞬间多出40G空间,再也不报空间不做了。

在这里插入图片描述

6,虚拟机消耗磁盘分析

VirtualBox 创建的虚拟机可能会占用较大的磁盘空间,这主要是因为虚拟机的磁盘文件(通常是.vdi格式)以及其中包含的操作系统和应用程序等数据所占的空间。

  1. 虚拟硬盘文件类型:VirtualBox 使用 .vdi 文件来模拟物理硬盘。这种文件可以是固定大小或动态分配的。固定大小的磁盘文件在创建时会立即占用全部指定的空间;而动态分配的磁盘文件则根据实际使用的空间逐渐增长,但即便如此,随着使用过程中文件系统的碎片化和临时文件的积累,也会逐渐增大。

  2. 操作系统安装:虚拟机中安装的操作系统本身就需要一定的磁盘空间,例如 Windows 或 Linux 等。即使是最小安装,也需要几个GB的空间来存储系统文件、更新和用户配置。

  3. 应用软件:为了满足不同需求,用户可能会在虚拟机中安装各种应用软件,如办公软件、开发工具等,这些都会增加磁盘占用。

  4. 系统缓存与日志:操作系统运行过程中会产生大量的缓存文件和日志记录,这些文件通常不会自动删除,随着时间积累会占据一定的磁盘空间。

  5. 快照功能:VirtualBox 支持快照功能,允许用户保存虚拟机的状态以便随时恢复。每个快照都会保存从上一个快照点到当前状态之间的所有更改,因此多个快照会导致额外的空间消耗。

  6. 虚拟机配置:除了硬盘空间外,虚拟机的内存、CPU设置等也会影响其性能,间接影响到磁盘空间的使用效率。例如,更多的内存分配可能会导致更大的页面文件或交换分区。

参考文献

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小手追梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值