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

sailyang 3691

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

本版达人

adds

本周建议达人

无极剑圣

本周分享达人

新手25642...

本周提问达人