【每日一记11】 使用Vagrant 后发现虚拟机磁盘空间爆满的血泪填坑记
  

sailyang 2815

{{ttag.title}}
现象:
    用了几天vagrant后,发现docker 里的 Mysql5.7 服务无法启动,用docker ps 命令,发现mysql一直在反复重启, 查看mysql log 发现说磁盘空间不够, 导致mysql无法启动。
觉得很奇怪, docker里只安装了redis和mysql两个image, 也没用几天mysql, 怎么会40G的空间都满了?

    于是一通百度查找, 都说是mysql日志过多,但是一个一个目录的用du -sh * 和 df -h 查看, 发现日志log并不大。 进一步查找发现是/var/lib/docker/overlay2下面的子目录里有文件过大,于是
开始陷入了坑里, 一直怀疑是docker的问题, 但是网上的办法都说是log文件占用空间,使用 cat /dev/null > *-json.log 删除, 结果发现毫无卵用。
实在无法解决,忍痛将docker的images全部删掉看看, 结果发现还是没用。。。

转机:
    经过几个小时的死磕,终于发现了一个文件夹: /vagrant/AppData, 这个文件夹居然有32G? 再一细看不得了, 这个/vagrant下除了AppData文件夹,怎么还有一堆文件感觉跟我的PC电脑
里的 user文件夹里的东西一模一样? 比如有 download ,  有document, 有music , 还有OneDrive, 虚拟机上怎么可能有微软的OneDrive? 于是突然灵光一现,难道vagrant把我电脑里的
文件都复制到虚拟机里了? 顺着这个思路百度,果然柳暗花明又一村,彻底找到了问题所在,那就是:

    vagrant提供了将本机目录挂载到虚拟机目录下的功能,默认是将vagrant配置文件所在目录挂载到虚拟机/vagrant目录下。即: c:\user\nioth(这里是我电脑的用户名,你可以改成你的)\Vagrantfile  所在的目录  与 虚拟机 /vagrant目录进行同步,
    因此, 会将本机大量文件复制到虚拟机, 导致虚拟机空间爆满。 并不是docker的问题啊, 可怜我把docker里的image都删掉了,回头又得重装mysql,配置一堆数据库,郁闷啊~~~

解决办法:
一开始找到的是 C:\Users\nioth\Vagrantfile 文件里有一行配置(默认是注释掉的): #config.vm.synced_folder ".", "/vagrant_data"
   于是修改这个文件,改成下面(MyVagrantSyncFolder是自己新建得文件夹,空的,放在C:\Users\nioth\下面):
  config.vm.synced_folder "./MyVagrantSyncFolder", "/vagrant_data"再用vagrant reload 重启, 果然发现没有用,心里一紧,不会吧, 再用Everything软件搜一遍,发现另外还有一个地方有一个vagrant配置文件:
C:\Users\nioth\.vagrant.d\boxes\centos-VAGRANTSLASH-7\2004.01\virtualbox\Vagrantfile

原来如此: 每一个虚拟机的操作系统里还有自己的配置文件!!!啊啊啊!
打开发现有如下配置:
Vagrant.configure("2") do |config|
  config.vm.base_mac = "5254004d77d3"
  config.vm.synced_folder ".", "/vagrant", type: "rsync"
end
于是,修改为:

Vagrant.configure("2") do |config|
  config.vm.base_mac = "5254004d77d3"
  config.vm.synced_folder "./MyVagrantSyncFolder", "/vagrant", type: "rsync"
end

(原来那个文件里的配置还给它注释掉,恢复原样。)

保存文件,再用vagrant reload, 大功告成!
控制台显示:
==> default: Configuring and enabling network interfaces...
==> default: Rsyncing folder: /cygdrive/c/Users/nioth/MyVagrantSyncFolder/ => /vagrant
==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> default: flag to force provisioning. Provisioners marked to run always will still run.

现在是 ./MyVagrantSyncFolder 文件夹与 虚拟机中的/vagrant文件夹进行映射, 这样就不会将大量主机文件复制到虚拟机了。

打赏鼓励作者,期待更多好文!

打赏
暂无人打赏

小鱼儿 发表于 2024-1-17 13:40
  
一起来学习一起来学习
小西北 发表于 2024-1-17 13:42
  
一起来学习一起来学习
梦境人生 发表于 2024-1-17 13:44
  
一起来学习一起来学习
唐三平 发表于 2024-1-17 13:45
  
一起来学习一起来学习
鲤鲤 发表于 2024-1-17 13:50
  
一起来学习一起来学习
日出 发表于 2024-1-17 13:53
  
一起来学习一起来学习
朱墩2 发表于 2024-1-17 13:54
  
一起来学习一起来学习
小德 发表于 2024-1-17 14:00
  
一起来学习一起来学习
飞飞侠 发表于 2024-1-17 14:02
  
一起来学习一起来学习
发表新帖
热门标签
全部标签>
每日一问
技术盲盒
技术笔记
干货满满
功能体验
技术咨询
每周精选
产品连连看
通用技术
2024年技术争霸赛
信服课堂视频
标准化排查
2023技术争霸赛专题
技术圆桌
新版本体验
秒懂零信任
自助服务平台操作指引
故障笔记
答题自测
网络基础知识
上网策略
运维工具
信服圈儿
技术晨报
GIF动图学习
安装部署配置
用户认证
原创分享
解决方案
授权
排障笔记本
场景专题
畅聊IT
专家问答
在线直播
MVP
升级
安全攻防
测试报告
日志审计
问题分析处理
流量管理
每日一记
云计算知识
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
SDP百科
功能咨询
终端接入
设备维护
资源访问
地址转换
虚拟机
存储
迁移
加速技术
产品预警公告
玩转零信任
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
深信服技术支持平台
社区帮助指南
答题榜单公布
纪元平台
卧龙计划
华北区拉练
天逸直播
以战代练
山东区技术晨报
文档捉虫活动
齐鲁TV
华北区交付直播
北京区每日一练

本版达人

adds

本周建议达人

无极剑圣

本周分享达人

新手25642...

本周提问达人