最近折腾 hyper-v 的一些吐槽

2021-07-22 20:01:04 +08:00
 join
hyper-v 就不是给个人用的,都好多年了还不支持文件共享。网络配置很复杂,实际上现在 windows 宿主机也是被虚拟成 hyper-v 的虚拟机,只是一个特殊的带 hyper-v 管理端的操作系统而已。
网络配置太复杂了,我配置好 internal 模式后,随便关了 public 网络文件共享后,linux 的客户机就 ping 不通 internal 交换机地址了。我为啥要区动网络文件共享?因为配置 samba,想安全一点。然后 samba 也是个巨大的配置坑,我根本不想去碰。
为啥要用 hyper-v ?
我被 wsl2 莫名奇妙的网络问题折腾太厉害了,有时候服务能 ping 通,端口也能通,就是不能收发数据通信。。。。很多同学抱怨 wsl2 里面开个 http 服务器有时能连上,有时连不上,就是这个问题。我一个月前碰到一个 rpc 服务连接的问题,调试了好几个小时,就差去动手抓包了,最后由于太晚了,就关机睡下了。第二天开机后问题消失了。。。。。
docker 和 hyper-v 不能共存,经常会在开机时 docker 报错。尤其是你好几个月从来没有打开过 hyper-v,突然手贱打开了一下就会有这个问题,并且之后会一直伴随你每次开机报错。。。。
wsl2 有时候你用着用着文件目录就变成了 unreachable,我不想管这个问题,也不想去修,一般都是重新启动 wsl 。
还有 wsl 是个残废的 linux,很多命令没有,比如 netstat,还有些莫名奇妙的问题,就是用着用着 docker 不能用了。。。。

如果你要用 wsl2 建议把 hyper-v 禁掉,我已经打算去弄个 vmware 了。
10751 次点击
所在节点    Windows
60 条回复
bfdh
2021-07-23 09:02:40 +08:00
最终我也放弃了 hyper-v 和 wsl(2),现在要么用 windows 主机+vmware,要么用 linux 主机+vbox 。
bfdh
2021-07-23 09:04:22 +08:00
@sky96111 我也是用 Linux 做主操作系统,Vbox 开 windows,但是 Vbox 经常 CPU 占用高,即使 windows 处于空闲状态。这个有解决方案吗?
soulzz
2021-07-23 09:07:46 +08:00
碰到过 hyper-v 虚拟机死机,重启无法启动,有检查点也无法还原
坑的一批
建议老老实实 kvm
lingxi27
2021-07-23 09:34:12 +08:00
直接 linux 桌面版不就得了
cheng6563
2021-07-23 09:38:39 +08:00
Hyper-V 的网络真的是一言难尽,我只是想整个 NAT 让虚拟机脸上网,鬼知道为什么虚拟机会分到和主机一样的 IP 导致双双断网。然后重启他又正常了。
wolfie
2021-07-23 09:49:32 +08:00
docker for windows 就是基于 hyper-v 的吧
whale
2021-07-23 09:55:18 +08:00
Windows Server 下的 Hyper-V 还是挺好用的,Windows 10 就……
debuggerx
2021-07-23 10:00:26 +08:00
别的不说,虚拟 Linux 的图形性能极差。
我的笔记本已经是双系统了,留着 win 的唯一原因是,linux 没有好用的无线投屏方案,办公室开会的时候需要进 Win 投屏,然后虚拟机挂载物理硬盘启动 Linux 做演示。最开始用 Hyper-V,好家伙直接卡成 ppt,1fps 可能都不到,而且挂载前还必须让物理磁盘脱机;后来试了 VMWare player,性能很好,图形显示流畅,大概有个 30fps,但是也要脱机硬盘;最后用的 VBox,图形性能不如 VM,大概 20fps 吧,但是终于可以不用脱机硬盘了……
zoain
2021-07-23 10:03:32 +08:00
@bfdh 我用的精简 win 7 还行
zone10
2021-07-23 10:05:54 +08:00
之前一直用的 VirtualBox, 用过 wsl2 后 VirtualBox 暂时可以抛了, 目前没遇到问题. Docker Desktop 也可以用 wsl2, 使用体验就是爽的批爆, 回不去了
libook
2021-07-23 10:33:53 +08:00
emmmm,WSL1 用过挺长一段时间,最近一年都在用 WSL2,基本用来做 Web 全栈开发,有时候还打个 Docker 镜像和 you-get 一些学习资料。

个人遇到的 WSL2 目前最大的短板有两个:一个是 IP 不固定(只有 WSL2 有这个问题,自己建的虚拟机不会有这个问题);另一个是因为是类似 chroot 的环境所以没有系统启动阶段,这样会导致 systemd 等一众工具没法用。

但实际上 WSL 面向的场景从来就是那 80%的应用开发场景,不涉及系统和硬件的那一部分,有剩下 20%特殊需求肯定还是要考虑虚拟机或双系统。不过这 80%对于我来说完全够用了。

文件共享,我没有在 Hyper-V 上直接用过这个功能,因为 WSL2 的话应该会帮你把 Windows 的分区都挂载好了,你可以 df 看一下是不是这样,我用的 Arch 发行版,Widnows 的分区会自动挂在 /mnt 下面,所以一般我不需要单独再配置一个文件共享功能。

Docker 的话不知道你说的是不是 Docker Desktop for Windows,这个应该是有一个引擎是直接用 Hyper-V 的,你可以去设置里看看,而且它还专门适配了 WSL2 (基于 Hyper-V ),都有适配了肯定是希望你能两个一起开配合使用的,你说的不能共存的问题我没有遇到过。但是说实话,Windows 和 Mac 上的 Docker Desktop 真的是很难用,我现在基本都是把他们卸载掉,用 docker-machine 的方案直接在虚拟机里跑一个完整的 Linux,然后再跑满血的 Docker,不用 docker-machine 工具的话你自己创建一个虚拟机装个 Linux,然后装 Docker 配置一个局域网访问,最后在 WSL 里配置一个 DOCKER_HOST 环境变量就可以直接用指令操纵虚拟机里的 Docker 服务了。

netstat 我的 WSL2 里可以用,你看看是不是要装个 net-tools 软件包,这个在很多 Linux 发行版都是不预装的,手动安装一下就好。

总结下来就是:
1. WSL 的设计目标是应用开发的时候用的,硬件开发、系统开发、跑服务都不是它能胜任的。
2. WSL2 和自己创建的 Hyper-V 虚拟机差别比较大,有跑服务的需求可以自己创建虚拟机并配置固定 IP 。
3. 有问题可以把问题发出来,大家帮你解决,很多事情下结论还比较早,只要你还有那么一点点热情,问题都会解决的。
pkoukk
2021-07-23 10:39:22 +08:00
之前用 hyperv 和 wsl2 开发了一年左右吧,除了偶尔出现 localhost 不通的情况,其他好像也没啥问题
网络上的问题大多数都能通过 wsl --shutdowm 解决
至于为啥现在不用了...因为内存占用太高了,公司发的本配置不咋滴
andyangyu
2021-07-23 10:42:08 +08:00
@echo1937 我也走了这个坑, 后来发现 win10 新版 Virtualbox 和 hyper-v 可以共存, vagrant 就可以用 virtualbox 作为后端了.
sky96111
2021-07-23 12:23:21 +08:00
@bfdh 我直接用的 QEMU
df0618
2021-07-23 13:36:41 +08:00
@libook IP 你装了 docker 的话可以直接 host.docker.internal
xman99
2021-07-23 13:57:11 +08:00
本地开发 php 的,开启 wsl2 内置功能后,卡到无法工作。 把 docker 桌面版 里面 wsl2 内联关闭后,还可以的。就是单次接口需要 2s 左右才响应的
join
2021-07-23 14:10:32 +08:00
@libook 这就是 windows 坑的所在,每个用户的环境不一致,导致遇到的问题也不一样。你看起来配置没问题运行得好好的,但出了问题搜索引擎通常解决不了问题。而且微软的提问社区工作人员回答质量非常差,根本解决不了问题。 你也找不到地方去解决问题,这就是闭源的问题所在。这对开发者是不友好的。开发者的使用环境和普通用户真的不一样。我依赖的组件是我工作必须,它不工作了,我也没法工作了,我的软件也没法工作了。而普通用户遇到问题换个电脑或软件,或重装操作系统就解决了。
fuxiuyin
2021-07-23 14:11:22 +08:00
最简单的 hyper-v 网络就是创建一个 internel 的 switch,然后加一个 nat 。直接搜 hyper-v internel switch internet access
join
2021-07-23 14:16:53 +08:00
@fuxiuyin 这些我都干了,也能用了但就是中途会出问题,而且解决不掉。
bfdh
2021-07-23 14:35:16 +08:00
@zoain #29 Win7 我没试过,不知道有没有这个问题。不过现在有点不敢用各类修改版 /精简版,还是更相信官方原版。

@sky96111 #34 我有同事用 QEMU 的,一样存在 CPU 占用高的问题。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/791142

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX