使用ESXi完成homelab的最终搭建
🗒️使用ESXi完成homelab的最终搭建
type
status
date
slug
summary
tags
category
icon
password

前言

这套平台其实在很久以前就已经搭建起来了,之前也反反复复尝试过不同的系统,希望能把所有资源利用上+合理调度。之前觉着Windows server就是版本答案,但直到前两天,Windows server一登录直接蓝屏,甚至都不给我导出数据的时间。也幸好我之前的重要数据都设置备份到了DS723里面,实质上并没有损失,但这意味着Windows server不再安全,我也需要重新考虑系统的选择问题了。
 
选型上,omv之前没用过,unraid需要付费且之前尝试过不认SN640,truenas core/scale时认时不认SN640的,我可不希望某一次重启之后集群又挂了,因此就还是希望可以回ESXi,毕竟整套平台也是企业级的方案,应该总有方法可以实现的,于是就开始了新一轮的折腾(幸好最近不怎么需要用到这套平台,可以有时间让我折腾一下)
 
介绍一下现有的平台
C422:
  • CPU: Xeon W-2191b
  • Memory: 32G * 4, REG ECC, 2400Mhz
  • Motherboard: Supermicro X11SRM-VF
  • GPU: NVIDIA RTX A4000
  • SSDs: 4*WD SN640, WD SN550, SAMSUNG 980 Pro, Intel S4610
  • OS: VMware vSphere ESXi8.0U1
 

SN640的问题

安装和排查过程

要使用ESXi,当务之急就是要让ESXi可以使用SN640。在网上寻找了一段时间之后,chiphell论坛有人提到ESXi原生并不支持4Kn的NVMe硬盘,而SN640恰恰就是4Kn的。他也同时提到解决方法是改成512e格式,然而网上并没有工具,官方内部的工具只在一些商家那里有,所以我只能把硬盘寄回去,让商家帮忙刷了之后再发回来。
 
发回来之后我直接上机,依然不行,于是我开始在BIOS里面找硬盘相关的设置,经过摸索之后,发现打开Intel VMD技术之后,ESXi可以在存储里面看到了:
notion image
 
这里需要注意的是,设置了VMD技术之后,在管理页面理论上可以配置VMD设备的直通,但直通给TrueNAS Scale之后,尽管可以开机,但TrueNAS并不能识别到SN640。同时,此时如果关闭TrueNAS虚拟机,ESXi会直接紫屏报错。
notion image
这里什么都看不到
 
 
notion image
IPMI里面看到ESXi直接紫屏报错
 
 
而如果不打开VMD,ESXi可以在管理页面配置SN640的PCIe直通。但设置直通之后虚拟机直接无法开机,表现是进度条卡在65%,稍等之后报错。因此此路不通。
 
回到正题,在BIOS里面配置了VMD之后,ESXi的存储页面可以看到SN640,此时可以设置为存储空间,也可以选择RDM软直通方式。因为我希望在TrueNAS Scale中组建软RAID-Z,因此这里选择RDM。这里参考了:
 
具体的命令:
 
依次完成四块硬盘的映射。
 
然后在虚拟机编辑页面添加现有硬盘即可。自此,TrueNAS Scale可以识别并使用SN640。
notion image
(这里的sda 16G是TrueNAS的系统盘,具体如何安装使用TrueNAS这里略过
 

测速

这里参考了:
 
具体的执行指令:
 
 
Read: 2159MB/s
notion image
 
 
Write: 778MB/s
notion image
 
Performance:
  • 因为是软阵列,运行测试的时候CPU基本打满
  • 现在的瓶颈已经在CPU了,硬盘本身上限应该是比较高的
  • 不过2159/778的速度也已经满足我的要求了,VMXNET3的20Gbps内网带宽也可以直接满上
 

一些相关的考虑

由于RDM直通没有办法在TrueNAS中直接获取SN640的smart信息,而这块盘其实是很热的(BIOS里面看有12W的功耗档位),因此在这里介绍一种在ESXi查看smart信息的方法。这里参考了:
 
具体的指令:
 
输出:
 
虽然这里52度看起来比较高了,但SN640是设计在70度以下都可以运行,因此52度不算什么大事。
 

架构搭建

 

计算

直接passthrough一个GPU进去就ok,内存和CPU都分高一点,主要存储放到980pro上。
notion image
 

数据

基于以上步骤,我们已经实现了在ESXi中的TrueNAS Scale中使用SN640的目的,接下来的数据架构方案仅作参考。
 
  1. 重要数据(代码、工程文件):Ubuntu虚拟机NFS挂载TrueNAS Scale,TrueNAS同步备份到DS723和OneDrive
  1. 一般数据(e.g. 开源、公开的AI模型):Ubuntu虚拟机NFS挂载TrueNAS Scale,不需要备份
  1. 数据库:单独的Ubuntu虚拟机,用DS723的Active Backup for Business备份到DS723,再备份到OneDrive for Business
  1. 个人照片:Synology Photos→OneDrive/AWS S3 Glacier, iCloud
  1. macOS Time Machine: DS723
 

数据库

因为一些项目需要搭建数据库,且不便于提前预测数据规模,因此决定把数据库文件放到最大最快的truenas里面。但truenas scale的插件系统并没有提供sql server和mysql的server安装方式,truenas scale的docker也一点不好用,因此最终方案在truenas建立sqlserver和mysql文件夹,nfs共享给ubuntu,再用docker映射路径的方式实现部署。
 
 

监控

希望可以用grafana来监控整个vSphere的状况。
 

vmware exporter

vmware_exporter
pryordaUpdated Oct 25, 2023
 
grafana/prometheus相关的服务都跑在DS723上,方便晚上把C422关机了睡个好觉。
 
 

prometheus

本地的prometheus安装在DS723上,从vmware exporter抓取数据,再上传到云端的prometheus数据库中
 

grafana

这里使用免费套餐的Grafana Cloud,对个人来说也已经足够了,根据官方教程一步步导入数据,摸索一会儿就可以自己DIY一个dashboard了。
 
Grafana作为SaaS服务,本文无需多言。
 

高可用

 
希望可以在多台hypervisor上运行数据库虚拟机,提高可用性。这个留作之后再来吧。
 
 

Final thoughts

在折腾这玩意儿的过程中,我一度想把NAS的功能拿出去,让这套平台成为纯粹的计算平台。然而事情并不尽如人意,目前能上U2的NAS就寥寥无几。一些想过的方案
  • QNAP桌面几款可以用U2做缓存但主要存储还是在HDD里面,h-1290FX太大太贵,而且我也没有也不想要12块U2组一个全闪(太贵且用不完),更不用说那几款机架式了
  • Synology的全闪居然只有SATA SSD的全闪方案,心情复杂
  • 华硕旗下的NAS品牌也是以HDD为主,对他们的系统没什么信心也没什么兴趣,没有特意去看
  • 国产的NAS们全是HDD为主的,也有隐私风险,不考虑
  • DIY NAS的机箱基本也是HDD为主,基本没有小的全闪方案。我可不想在3.5寸的盘位里面放一个小小的2.5寸U2,密度太低了。
  • b站上有一个3D打印的2.5寸全闪方案,但用的很消费级的主板,也没有扩展性可言,只能上2.5寸SATA SSD应该还不错。
 
其实如果谁能看到,用3D打印做一个支持ITX主板,能适配市面上已有的u2背板的机箱就好了。拿超微X10SDV,Xeon D-1521,PCIe槽装一个PCIe x16转U2的转接卡(主办自带通道拆分也不贵),主板自带万兆网卡,这不就是一台很理想的万兆全闪NAS了,就算有瓶颈,就算跑不满,但又怎样呢。
 
 
 
 
 
 
 
 
homelab中的常用命令基于Windows Server搭建homelab
  • Utterance