自建实体服务器
Foreword
打算自建服务器,完成一些内部的测试和使用,有些东西也需要内部验证,一些管理软件也都需要一个内部平台。
硬件选型
成本考虑,1手最新服务器买不起,所以上个老服务器,能用就行了,水平其实差不多的。
- 机柜 Dell R7525
- CPU 7H12*2
- 内存 64G*12
- 硬盘 7.68T*1
- 阵列卡H745卡
- 电源 双电2400w
价格26760 不含税
安装
有了服务器自然还需要机柜,又增加了一个80x60x100的机柜
服务器一般可以使用拖板拖住服务器,也可以使用滑轨方便抽拉。
- 滑轨又分静态和动态的,静态只能抽出来10cm左右,动态的可以完全抽出来
有了这些还不够,还需要电源,一般都是使用PDU类型的电源
- 注意总功率,一般可能单电源就2400w了,双电源就4800w,多台服务器,这个数量就上去了
- 接头高功率都是单独引线过来的,不能直接用默认的线材
风扇
服务器启动真的是飞机起飞,就跟涵道电机一样,呜呜的
想要服务器声音小一点,可以通过DELL的设置,直接修改风扇速率
风扇可以通过iDRAC的API进行控制,下面是一个通用的控制工具
https://github.com/cw1997/dell_fans_controller
这里有更高级的版本,可以独立控制每个风扇
https://github.com/zzccchen/DellEmcFansController
使用风扇控制需要开始IPMI,具体操作在这里
https://zhuanlan.zhihu.com/p/157796567
顺带看了下,他还写了一个温度和内存监控程序,也挺好的
https://github.com/zzccchen/DellEMCThermalMonitor
iDRAC
Integrated Dell Remote Access Controller (iDRAC) 专为实现安全的本地和远程服务器管理而设计,可帮助 IT 管理员随时随地部署、更新和监视戴尔 PowerEdge 服务器。
iDRAC也要一个独立网线接入,接入以后就可以进入服务器远程访问和操作
- 远程开关机:在iDRAC Web界面或命令行界面中,管理员可以实现服务器的远程开关机、重启和冷启动等操作。
- 远程监控:iDRAC可以提供服务器的实时监控信息,包括温度、风扇速度、硬盘健康状态等,帮助管理员及时发现和解决潜在问题。
- 日志查看:iDRAC记录了服务器的事件和日志信息,管理员可以查看这些日志以进行故障排除和问题分析。
- 虚拟媒体:通过iDRAC,管理员可以将本地计算机上的光盘或ISO映像文件连接到服务器,实现虚拟媒体的加载和启动。
iDRAC也有API接口,可以用python之类的语言写一些自动化管理的脚本
系统虚拟化
有了硬件基础以后,还需要一个好用的系统方便做虚拟化,想折腾就上PVE,想稳定就用ESXi
PVE
PVE,全称Proxmox Virtual Environment,虚拟机内核是KVM,主要还是Linux系统,扩展能力很强,对应要求操作的人也很高
ESXi
ESXi是VMWare旗下的虚拟化组件之一,界面比较清晰,简单易用,扩展性差一些。
VMWare系列用的比较多的话,实际创建虚拟机之类的操作都非常类似,简单好用。
硬件直通
简单说,就是如果虚拟化会严重损失硬件性能,比如显卡、硬盘、网卡等,为了防止损失,所以可以指派某些硬件和虚拟机构成硬件直通,这样可以最大程度利用硬件性能。
目前普遍看到的是ESXi硬件直通大概率会遇到点问题,需要找到各种解决办法才行,PVE的硬件直通大部分都可以配置好以后直接使用。
显卡直通
显卡直通的配置,这里以RXT A5000为例
首先ESXi中的PCI设备中,找到新加入的显卡,然后将二者从直通禁用模式变成活动模式
对应的虚拟机,要增加一个PCI设备,选择刚才的显卡,显卡模式也改成自定义设置
虚拟机选项中选择高级-配置参数,增加3个参数
pciPassthru.use64bitMMIO=TRUEpciPassthru.64bitMMIOSizeGB=64hypervisor.cpuid.v0= FALSE
到这里外部的配置就已经可以了
启动虚拟机,先看是否检测到了
大概率看到的是这样的一个有问题的设备,这是还没安装驱动的状态
https://www.nvidia.com/Download/index.aspx
驱动下载从官方即可,需要注意不要选择消费者类型,而是Data Center /Tesla
类型,虚拟机这类的驱动和消费者是不一样的,安错了可能会不识别
安装完成以后,RTXA5000已经可以正常识别了
RDP GPU加速
默认的RDP是没有显卡支持的,所以是类似集显的实现方式,如果用渲染或者一些3D软件,可能会很卡,最简单的办法就是直接RDP启用显卡加速
【菜单键+R】打开运行,输入gpedit.msc回车即可打开本地组策略编辑器。
以下配置均在组策略中修改,请定位到【计算机配置】->【管理模板】->【Windows组件】->【远程桌面服务】->【远程桌面会话主机】
1、【连接】中,把【选择RDP传输协议】修改为【已启用】,并且将选项改为【使用UDP或TCP】。
2、【远程会话环境】中,把【将硬件图形适配器应用于所有远程桌面会话服务】改为【已启用】。
3、【远程会话环境】中,把【为远程桌面连接使用WDDM图形显示驱动程序】改为【已启用】。
4、【远程会话环境】中,把【为远程桌面连接设置 H.264/AVC 444 图形模式的优先级】改为【已启用】。
5、【远程会话环境】中,把【为远程桌面连接的 H.264/AVC 444 硬件编码】改为【已启用】。
6、【远程会话环境】中,把【对RemoteApp使用高级RemoteFX图形】改为【已启用】。
7、【远程会话环境】中,把【配置 RemoteApp 数据的压缩】改为【已启用】,并且将选项改为【已优化为使用较少网络带宽】。
8、【远程会话环境】中,把【配置 RemoteApp 自适应图形的图像质量】改为【已启用】,并且将选项改为【低】。
9、【远程会话环境】中,把【配置 RemoteApp 自适应图形】改为【已启用】,并且将选项改为【优化使用最低网络带宽】。
以上完成以后,管理员命令行中输入 gpupdate /force 来更新整个策略组
内网使用可以提高帧率
新增注册表,DWMFRAMEINTERVAL
类型是DWORD,数值十进制15,代表的就是60FPS
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations
而如果写的是十六进制的8,代表的就是120+的FPS,拉满,这样GPU的默认消耗会稍微高一点
OpenGL
RDP打开一些软件可能需要OpenGL支持,RDP本身不能调用OpenGL,这个需要Nvidia的专用驱动,下载这个驱动有一堆注册信息
https://github.com/elmagnificogi/MyTools/blob/master/rdp/nvidiaopenglrdp.exe
我直接放到我的仓库里,方便下载
ESXi基础配置
ISO安装包上传
比较简单,可以直接通过数据存储浏览器上传各种镜像
然后就能在虚拟机的设置中选到对应的iso了
NTP
NTP首先把当前系统时间改到接近真实的时间,然后再填入NTP服务器,使用网络协议时间
保存以后发现NTP依然无法启动,下面却提示成功了
这里需要去服务中手动启动ntpd
再回去刷新,发现时间已经同步并且启动了
开启iDRAC和IPMI
iDRAC需要重启服务器的时候按F2进入BIOS,然后开启iDRAC,设置一下对应的网络即可
再通过ip就可以进入iDRAC的管理页面
开启IPMI,然后就可以通过一些管理软件直接操控了
风扇管理
https://blog.vimc.cc/2020/10/18/%E5%9C%A8ESXi%E4%B8%8A%E6%89%8B%E5%8A%A8%E6%8E%A7%E5%88%B6%E6%9C%8D%E5%8A%A1%E5%99%A8%E9%A3%8E%E6%89%87/
ipmitool
ipmitool可以直接安装在ESXi上,但是目前最新版的是不支持ESXi 8.0的,8.0风控提高了,导致实际无法使用了
https://vswitchzero.com/ipmitool-vib/
此方案行不通
IPMICFG
https://www.cnblogs.com/ispace/p/17261196.html
DellEmcFansController
读取风扇、cpu等信息没有问题,但是控制风扇就会发现没有起作用。
手动试了一下命令,发现直接使用命令会提示权限不足
实际上已经是IPMI和iDRAC的管理员身份了,依然提示权限问题
看了一下能用的都是iDRAC 3.0甚至更老的版本,我是7.0版本,所以不能用了。
复制虚拟机
复制虚拟机非常简单,进入数据存储浏览器
先给新虚拟机创建一个目录
然后把要复制的虚拟机vmx和vmdk文件复制过来
然后直接注册这个新的虚拟机
虚拟机里就能看到一个同名的虚拟机出现了,所有的设置是一模一样的
常见问题
分配了一个64核的虚拟机,但是实际进去以后发现只有2核心
分配了一个32插槽,每插槽2线程的虚拟机,实际进去以后只有2核心4线程
造成这种问题都是因为超分配了,前者是由于实际逻辑核心不够分配了,所以直接分配成了2核,而后者是实际2插槽cpu,无法分配成32插槽的,只能分配成2插槽N核的模式
代理
如果是正规机房应该是有多线网络的,甚至专门走国外VPN之类的分流也是有的,而我这里就不太行了,想要给服务器一个透明代理没啥好的办法,只能说外面再套一层OpenWRT,这样把服务器直接连到OpenWRT这里,通过OpenWRT分流管理。
- RouterOS,自身是没有V2ray或者是SS、Clash等代理工具的,甚至SOCKS代理部署起来都有点麻烦
淘宝看到的软路由私聊都是不能说OpenWRT的,这个受到管控了,要聊只能加V私聊
软路由目前老一些的就是各种3代甚至2代的i3笔记本的板子改出来的软路由或者是N系列、J系列低功耗U做的集成的板子
最后选了一个稍微新一点的J6413的系统,安装到机柜里配合使用
后来发现其实如果知识单纯的需要一个旁路由作为代理网关的话,直接用EXSi开启一个OpenWRT的虚拟机就行了,没必要外置一个软路由。软路由也有一个好处,就是和服务器本身解耦了,不至于服务器挂了,连带着旁路由都直接没了,风险低了
ESXi 安装OpenWRT
安装OpenWRT其实非常简单,只要有个PE的U盘,进去以后IMG写盘工具.exe
将OpenWRT的镜像直接写入磁盘即可
透明代理
透明代理则非常简单,直接开启ShadowSocksR Plus+
就行了,剩下只要在需要代理的客户端中设置成静态IP,网关修改为OpenWRT的地址即可。
还有一种方式可以让全局都是用透明代理,直接在主路由的DHCP服务中,将网关指向Op地址即可
到这里基本就可以无感翻墙了,还是很不错的
注意关闭软路由上的动态伪装,否则主路由的NAT 端口映射在软路由这边不生效
OpenWrt证书
直接在服务中的uHTTPd中上传证书即可
完成以后需要重启uHTTPd服务即可使用域名访问
证书
登录EXSi的时候总是提示不安全,这里导入通用证书解决这个问题
这种方式基本100%会报错
还是要通过SSH进行证书更新
先启动SSH
然后通过ip和22端口连接,登录的账号和密码与网页相同,注意xshell需要用Keyboard Interactive
方式输入密码
登录以后进入以下目录替换证书
cd /etc/vmware/ssl
保存原始证书
mv rui.key rui.key.bkpmv rui.crt rui.crt.bkp
然后通过SFTP上传新的证书,依然是rui的名称即可
重启http服务,让证书生效
/etc/init.d/hostd restart/etc/init.d/vpxa restart
注意不要通过IP登录,使用域名可以看到证书已经生效
UPS
发现群晖的NAS和ESXi在偶尔断电的时候,还是会受到影响,最好还是接一个UPS,防止硬盘被干挂了
UPS要长时间支撑,价格要上天,所以一般都是支撑几分钟,监控程序发现断电以后对整体进行关机处理
山特UPS配合Winpower
,可以在ESXi等系统上直接使用,监控到断电以后关闭全部虚拟机,然后关机
服务器双电4800W,加上需要支持未来的拓展,山特选了一款C6K,支持5700W,几分钟供电,用来关机什么的还是够的
https://www.santak.com.cn/page/santak-downloads.html
vCenter Server
默认的ESXi用的管理界面是ESXi Host Client,这是比较简单的管理界面,基础功能都有了,但是想要一些复杂的自动化的功能,这里就做不到了。
比如监控看到更长时间的情况,就必须要上vCenter Server
vSphere是VMware的整体解决方案,它里面包含了vSphere Client、ESXi、vCenter Server
vSphere Client是管理员用来管理ESXi的客户端
vCenter Server则是一个数据中心管理服务,可支持多个ESXi主机加入其中,做资源虚拟化,有类似ESXi管理界面的一个全功能的管理端,很多自动化的功能都在这里
安装了vCenter Server来完成一些自动化的工作,不过这个服务器的要求有点点高,tiny版本,14g内存,接近500g硬盘,其他的配置选项更离谱。
vCenter的使用逻辑和ESXi Host就有一些区别了,他是基于数据中心-集群-主机-虚拟机的架构,而之前使用的ESXi Host只是这里的一个主机而已,所以vCenter需要先建立数据中心,然后创建集群,在将之前的主机添加进来,整个vCenter才有资源可以使用
FQDN,Fully qualified domain name,完全限定域名,又称为绝对领域名称(absolute domain name)、 绝对域名,能指定其在域名系统 (DNS) 树状图下的一个确实位置。简单说就是主机名+域名,比如machine1.esxi.localhost,machine1是虚拟机名称,esxi.localhost就是这个虚拟机所在的主机的域名,vSphere都是基于这种域名进行访问和管理的
疑难杂症
无法添加主机
安装完vCenter以后出现了一个奇怪的问题
vCenter无法将ESXi主机加入管控,提示无法连接,vCenter本身就是安装在这个ESXi上的
经过debug发现:
- vCenter无法ping通ESXi
- vCenter可以ping通路由以及子网内任何一个设备
- ESXi可以ping通vCenter以及子网内任何一个设备
这就非常诡异了,DNS查过了也都正确,就是ping不通,也就造成了添加主机无法成功
https://community.spiceworks.com/topic/953549-can-t-ping-esxi-host-from-vcenter-but-from-other-machines
经过查找有类似的情况,也都是vCenter ping不通安装的ESXi,最后都是通过重启ESXi来解决的,真实原因都没有解释
证书失效
有了vCenter以后ESXi的证书都是由vCenter进行管理,同时vCenter不支持通配符证书,必须用单域名证书,这就导致了你得买两个证书的情况,非常傻。
快照
有了vCenter以后就可以创建调度任务,自动执行一些事情,比如这里自动生成快照
VMware Workstation
如果要把原本本地的虚拟机移动到服务器上,不能直接copy vmx和vmdk文件,服务端是无法识别对应的硬盘的。
最简单的方法就是VMW连上服务端,然后使用管理中的上载功能,这样会自动转换文件格式,服务端就能正常启动了
还有一种方式是导出OVF文件,这样在服务端再导入也可以
vGPU
一般来说在虚拟机这里使用显卡直通比较多,用虚拟显卡的反而比较少,目前虚拟显卡性能损失大概在5%左右,还是能接受的。
虚拟显卡比较适合给云游戏、云桌面一类使用,我这里虽然不用这几个,但是还是有一些对于显卡的需求,还是想能做到虚拟给任何一个机器使用。
vGPU是有显卡限制的,一般来说分为2代,第一代Grid 1.0是K1和K2,他们不需要授权服务,直接可以虚拟化,但是毕竟年代久远,性能已经相对很弱了。第二代Grid 2.0开始部分专业卡加入了,这种卡一般都是通用类型的,既能适合神经网络计算、也适合图像渲染
https://www.nvidia.cn/data-center/graphics-cards-for-virtualization/
vGPU价格和限制
https://www.nvidia.com/content/dam/en-zz/Solutions/design-visualization/solutions/resources/documents1/Virtual-GPU-Packaging-and-Licensing-Guide.pdf
一般来说分为vAPPs,vPC,vWS,vCS,每个适用的场景不同,他们支持的显卡或者显存大小也不同
根据每种场景,收费方式也不同,这里的CCU是每个虚拟机,所以如果是云游戏或者云桌面,这个CCU就非常高了,而且还是订阅制的
vGPU试用
https://www.nvidia.cn/data-center/free-trial-virtual-gpu/
通过这里申请vGPU试用资格,需要填写一些信息和邮箱,等待了接近2周还没收到资格…只好转向淘宝
显卡安装
R7525的显卡是安装在Riser上的,默认应该是有4个Riser,看起来就是个PCIE转接卡,后续的计算卡都是需要独立供电的,对应的接口如图所示是12pin的,所以需要一个转接线,这个要单独买
然后插好就可以开机了
授权服务器
驱动安装
测试
Summary
iDRAC的工具还是比较少的,IPMI tools也停止维护了,想要更多的还是得自己写
Quote
https://blog.csdn.net/weixin_42930696/article/details/128642633
https://post.smzdm.com/p/aqm7d5pk/
https://it.sohu.com/a/706181660_121748409
https://www.python100.com/html/NX4HDQ8854F9.html
https://jingyan.baidu.com/article/5d6edee2004690d8eadeec8a.html
https://zhuanlan.zhihu.com/p/157796567
https://blog.csdn.net/yjun89/article/details/131344940
https://blog.csdn.net/qq_38844263/article/details/128699337
https://post.smzdm.com/p/az6p6ern/
https://www.cnblogs.com/guangdelw/p/17340637.html
https://www.bilibili.com/video/BV1sm4y1u787/?vd_source=fe2e37e9c6518671631012d39f18a581
https://community.spiceworks.com/topic/2306716-wildcard-ssl-certificate-installation-vcenter-7
https://blog.csdn.net/shida219/article/details/131363989
https://blog.csdn.net/skyew/article/details/136534913
https://learn.microsoft.com/zh-cn/troubleshoot/windows-server/remote/frame-rate-limited-to-30-fps