开发环境解决方案
硬件环境
DIY台式电脑
- CPU: 5950X
- GPU: 4070Ti
- 内存: 128GB DDR4
- 硬盘:4T PCIE4.0 SSD
- 系统:Windows 11 24H2 专业工作站版
现在192GB内存已经很稳,消费级主板已经支持 256GB DDR5了,但是目前还没有单条64GB的DDR5内存上市,感觉消费级主板完全满足需求了。
开发环境需求
1.跑多个Linux虚拟机,(多节点应用集群、数据库集群、后端程序编译),需要 多核CPU、大容量内存、高性能M2硬盘(IOPS)
2.数据备份存储
方案1: 8块8T硬盘, ZFS Raidz2, 6/(6+2) 48TB容量
方案2: 8块10TB硬盘, ZFS Raidz2, 6/(6+2) 60TB容量
方案3: 4块8TB硬盘, ZFS Raidz1, 3/(3+1) 24TB容量, 后期再加4块 8TB硬盘
方案4: 4块10TB硬盘, ZFS Raidz1, 3/(3+1) 30TB容量, 后期再加4块10TB硬盘
3.万兆网络(光纤 or 6类线 ???)
方案1: 万兆交换机+网线+电脑
方案2: 虚拟化网络(10Gb,25Gb,40Gb), 依赖CPU性能
4.显卡直通
真的需要直通显卡吗? 除了游戏
需求方案1: Intel DG1, vGPU支持桌面系统(win10、win11、Linux Desktop),只是亮机,能流畅运行图形界面,没有专业应用和游戏
需求方案2: RTX 4070TI, 直通独占显卡,用来打游戏, 但是好像也能用于专业应用
想来想去,其实就是需要一台服务器 + 一台台式电脑, 上面提到的都是服务器需求。
服务器和台式电脑之间通过交换机+网线连接, 网线可以是光纤or6类线,主要取决于交换机+线缆+万兆网卡的价格。
我的解决方案
只有一台台式电脑,Windows下Hyper-V用起来不如VMware方便,因此使用VMware Workstation Pro进行虚拟化。
方案说明:
- 物理机安装Windows,所有软件安装在C盘。在PE环境下,使用 DiskGenius 对C盘做磁盘镜像,实现Windows系统备份。
- Windows下完全关闭Hyper-V,因为安装PVE时,Hyper-V会跟 VMware 有冲突。
- 使用 VMware Workstation Pro 安装PVE8虚拟机, 开机自启动运行,充当服务器的角色。
- 使用 VMware Workstation Pro 安装Ubuntu虚拟机,有了Linux开发环境。
关闭Hyper-V虚拟化,这意味着:
- 不能使用 WSL2,
- 不能使用 Docker Desktop
- 放心使用 安卓模拟器, 不必担心 Hyper-V 冲突。
WSL2替代方案
WSL2说到底就是一个Linux虚拟机, 那我通过直接使用 VMware Workstation Pro 创建的Ubuntu虚拟机就好了。
因为我不需要用到很强的图形性能,所以直接使用Linux虚拟机对我来说没什么影响。
如果对图形性能有很强的需求,还需要在Linux环境下使用,推荐直接使用Linux物理机或者GPU直通。
Docker Desktop 替代方案
Docker本就起源于Linux, 直接在Ubuntu虚拟机安装使用Docker就好了。
如何在物理机Windows上使用docker打镜像?
第一步:把Windows的D盘、E盘设置为共享, 在Ubuntu虚拟机里面,使用CIFS挂载共享文件夹到
/mnt/d
,/mnt/e
,解决虚拟机访问Windows文件的问题。第二步:使用 Xshell SSH 登录到Ubuntu虚拟机, 切换到对应位置, 执行打镜像的命令。
第三步:在Ubuntu虚拟机里面安装 portainer ,用来管理docker。 信我,这玩意比 Docker Desktop 好用多了。
VMware网络规划
VMware网络设置:
- VMware Workstation Pro NAT网络VMnet8,网段为 172.17.0.0/16,网关是 172.17.0.2
- VMware Workstation Pro 仅主机网络VMnet1,网段为 192.168.17.0/24
- VMware Workstation Pro 桥接网络
对于局域网其他设备要访问PVE虚拟机的这个问题,最好的解决办法是再添加一块网卡,连接方式设置为桥接,直接连到局域网内;别想着用Linux/Windows路由转发,那玩意过于麻烦,根本不适合这个使用场景。
PVE虚拟机配置
PVE虚拟机有两块网卡。
- 第一块网卡叫ens33,连接到NAT网络VMnet8上面。
- 第二块网卡叫ens32,连接到桥接网络。
在PVE管理界面,基于 ens33 创建网桥(Linux Bridge),名字叫vmbr0
,用于虚拟机上网。 PVE创建的虚拟机,默认都连接到vmbr0网桥,并且配置了静态IP地址。
在PVE管理界面,基于 ens33 创建网桥(Linux Bridge),名字叫vmbr1
,让家庭局域网的其他设备可以访问PVE创建的虚拟机,比如:访问群晖NAS。
如果后续有机会迁移升级,要把PVE虚拟机换成PVE物理机,只要把局域网网段改成 172.17.0.0/16 网段就可以,再修改一下VMware网络设置即可。
Ubuntu虚拟机配置
Ubuntu虚拟机使用NAT网络VMnet8, 就可以访问PVE创建的虚拟机了,很方便!