一、实战背景
随着Arm芯片架构的普及,越来越多的arm电脑进入c端消费市场,其强大的性能,较低的功耗,较长的续航和良好的设计使得越来越的主机使用arm芯片。但与此带来的问题是,arm主机的虚拟化支持较差,精简指令集无法支持对复杂指令集的虚拟化,对于嵌套虚拟化的灵活需求也支持较差,相比于传统x86显得并不是那么通用。
因此,正是在此背景下,虽然已经有arm主机办公使用,但是无法得到良好的虚拟化,同时支持的游戏和软件少,入手一台x86的主机主机弥补x86的缺失和通用虚拟化的空白的需求非常急迫。
二、架构选型
当然,x86的主机千千万,怎么选用什么需要深思熟虑。由于已经有了一台arm的笔记本,再置办一台笔记本显得不那么合宜,因此范围从台式主机中开始选择。传统台式机,体型大,考虑到提及和后续的搬迁属性,觉得台式机的性价比并不如小主机来的那么实在。
因此,在迷你主机中开始选择。传统的迷你主机以intel的NUC制霸天下,但随着国内厂家的进入,越来越多的OEM厂商开始涌现出来。熟知的小米、联想、华硕、雷神、神舟都开始开始进军迷你主机,新兴的积核、铭凡、魔方也进入选择范围内。
但是在考虑品牌前,需要对整体的架构一个设计和构想,避免后期选择中反复横跳。本实践中主要考虑的架构有两种,两种方案的根本区别点是cpu的性能,不通的cpu决定了价格和使用方式,一种是低U多机的分布式的多主机方案,另一种的本文所述的高U单机的aio方案,在实践中,本人均做了实现,但是最后优选了aio方案下面做个对比。
|----|----------------------------------|------------------------------------|
| | 分布式多机 | All in One 模式 |
| 优势 | 单机成本低,可扩展性极强 | 单机性能强 |
| 劣势 | 单机新能差,但组成集群后可以一搏,但最强性能虚拟机受制于单机性能 | 扩展性较差,无法实现多集扩展,可玩性差 |
| 难度 | 多机组网复杂,需要额外配置交换节和路由器 | 单机难度较低,仅需考虑本机的问题 |
| 综合 | 适合入门,进阶后,会发现性能一般般 | 适合有一定基础的中级玩家,如果对扩展性有要求,可以后期堆叠高性能主机 |
[架构选型]
明确了架构后,在讨论选型,作者一开始先期使用了分布式方案,使用的是3台intel NUC8的i58beh,单机成本低,配置完成内存和硬盘后,综合单机价格1500元左右,但是由于网络管理复杂,需要进一步的交换机网络设备,综合布线、电源管理和安装集群配置繁琐,单虚拟机的最高新能受限于cpu性能,因此逐渐趋于放弃。
经过横跳后,最后选择了积核的i713700h的迷你主机,最新版本的有13700h和13900h两个选项,对比数字,我们简单的理解为,13700的主频比13900低0.4Ghz,但是价格便宜了很多,因此把它看作一个高性价比方案不为一种优选。
当然,大家可能还会有疑问,为什么要选择这个厂家,原因有三:1、积核的主机大小和intel的NUC一样,可以适配已有的散热模块;2、传统老牌厂家并没有推出13700,13900的迷你主机,可选范围直接拉到国内小厂家;3、积核有jd自营,个人感觉售后相对方便,半年内玩坏了能修,比tb有一些安全感(但实际都是听天由命)。
综上,本人选择了积核的13700h作为本次all in one的基座,配置了1T+ 1T +2T的全固态环境,配置了16G+16G的双通道内存。
三、规划设计
完成架构设计后,需要对功能和使用方式做进一步规划,对网络连接做进一步规划。对于整体架构,我们做如下设计。
首先有0号虚拟机:openWrt(1U,2G,10G-ssd)。作为整个主机中的软路由设备,代理虚拟机内的所有虚拟机的路由,进一步的可以作为旁路由介入家里的路由器。配置有三个虚拟网口:
1个2.5G的WAN,用于上行出口
1个1G的LAN,用于虚拟机内外的管理网互通(后续考虑透传无限网卡,实现手机热点接入)
1个1G的LAN1,用于虚拟机的主机的数据网传输
**其次有1号虚拟机:**windows10(10U,16G,100+300G-ssd),作为整个主机中的管理主机,用于日常管理、办公、游戏等。配置有两个网口,分别为LAN1,LAN用于与软路由互通。配置远程桌面,通过LAN网可以实现arm电脑通过网线接入windows,尽可能实现0感知远程联入。
最后有CentOS虚拟机 X 3:(单机2U,4G,50G-ssd,外加100G的NFS),作为开发用途,大家K8S集群,用于容器化部署启动后续的项目。主节点配置双网卡,实现管理上网,其他节点均仅配置LAN1数据网。
后续还有群晖NAS:用于家庭内的NAS管理
四、实践记录
1、pve的安装:
装机准备: 官方镜像下载地址:Proxmox VE版本用最新的8版本就可以,7版本测了试一下好像没烧写成功,不过也不纠结了。烧写镜像使用balenaEtcher - Flash OS images to SD cards & USB drives 这个比之前传统的UtraISO要好用一些。
烧写镜像:设置BIOS启动顺序第一位为usb启动,进入界面后,可以无脑下一步,在配置硬盘时可以留意一下,如果有多硬盘,可以考虑做RAID。之后便是ip地址设定,此处需要为主机设置管理ip,可以结合自身喜好,配置一个管理地址,但是建议避开192开头的,避免与WAN的ip段重复。之后便可以下一步进入烧写,烧写很快,完成烧写后,重启主机便可进入pve的界面。