迷你主机的AIO(All in one)实战记录【pve+openwrt+windows+centos+群晖】(一)

2024-03-13 10:52

本文主要是介绍迷你主机的AIO(All in one)实战记录【pve+openwrt+windows+centos+群晖】(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        

一、实战背景

        随着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的界面。

                

这篇关于迷你主机的AIO(All in one)实战记录【pve+openwrt+windows+centos+群晖】(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/804627

相关文章

Golang操作DuckDB实战案例分享

《Golang操作DuckDB实战案例分享》DuckDB是一个嵌入式SQL数据库引擎,它与众所周知的SQLite非常相似,但它是为olap风格的工作负载设计的,DuckDB支持各种数据类型和SQL特性... 目录DuckDB的主要优点环境准备初始化表和数据查询单行或多行错误处理和事务完整代码最后总结Duck

Python MySQL如何通过Binlog获取变更记录恢复数据

《PythonMySQL如何通过Binlog获取变更记录恢复数据》本文介绍了如何使用Python和pymysqlreplication库通过MySQL的二进制日志(Binlog)获取数据库的变更记录... 目录python mysql通过Binlog获取变更记录恢复数据1.安装pymysqlreplicat

windows系统下shutdown重启关机命令超详细教程

《windows系统下shutdown重启关机命令超详细教程》shutdown命令是一个强大的工具,允许你通过命令行快速完成关机、重启或注销操作,本文将为你详细解析shutdown命令的使用方法,并提... 目录一、shutdown 命令简介二、shutdown 命令的基本用法三、远程关机与重启四、实际应用

Python中的随机森林算法与实战

《Python中的随机森林算法与实战》本文详细介绍了随机森林算法,包括其原理、实现步骤、分类和回归案例,并讨论了其优点和缺点,通过面向对象编程实现了一个简单的随机森林模型,并应用于鸢尾花分类和波士顿房... 目录1、随机森林算法概述2、随机森林的原理3、实现步骤4、分类案例:使用随机森林预测鸢尾花品种4.1

Windows自动化Python pyautogui RPA操作实现

《Windows自动化PythonpyautoguiRPA操作实现》本文详细介绍了使用Python的pyautogui库进行Windows自动化操作的实现方法,文中通过示例代码介绍的非常详细,对大... 目录依赖包睡眠:鼠标事件:杀死进程:获取所有窗口的名称:显示窗口:根据图片找元素:输入文字:打开应用:依

Golang使用minio替代文件系统的实战教程

《Golang使用minio替代文件系统的实战教程》本文讨论项目开发中直接文件系统的限制或不足,接着介绍Minio对象存储的优势,同时给出Golang的实际示例代码,包括初始化客户端、读取minio对... 目录文件系统 vs Minio文件系统不足:对象存储:miniogolang连接Minio配置Min

javafx 如何将项目打包为 Windows 的可执行文件exe

《javafx如何将项目打包为Windows的可执行文件exe》文章介绍了三种将JavaFX项目打包为.exe文件的方法:方法1使用jpackage(适用于JDK14及以上版本),方法2使用La... 目录方法 1:使用 jpackage(适用于 JDK 14 及更高版本)方法 2:使用 Launch4j(

Node.js 中 http 模块的深度剖析与实战应用小结

《Node.js中http模块的深度剖析与实战应用小结》本文详细介绍了Node.js中的http模块,从创建HTTP服务器、处理请求与响应,到获取请求参数,每个环节都通过代码示例进行解析,旨在帮... 目录Node.js 中 http 模块的深度剖析与实战应用一、引言二、创建 HTTP 服务器:基石搭建(一

Servlet中配置和使用过滤器的步骤记录

《Servlet中配置和使用过滤器的步骤记录》:本文主要介绍在Servlet中配置和使用过滤器的方法,包括创建过滤器类、配置过滤器以及在Web应用中使用过滤器等步骤,文中通过代码介绍的非常详细,需... 目录创建过滤器类配置过滤器使用过滤器总结在Servlet中配置和使用过滤器主要包括创建过滤器类、配置过滤

windows端python版本管理工具pyenv-win安装使用

《windows端python版本管理工具pyenv-win安装使用》:本文主要介绍如何通过git方式下载和配置pyenv-win,包括下载、克隆仓库、配置环境变量等步骤,同时还详细介绍了如何使用... 目录pyenv-win 下载配置环境变量使用 pyenv-win 管理 python 版本一、安装 和