迷你主机的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

相关文章

Python版本信息获取方法详解与实战

《Python版本信息获取方法详解与实战》在Python开发中,获取Python版本号是调试、兼容性检查和版本控制的重要基础操作,本文详细介绍了如何使用sys和platform模块获取Python的主... 目录1. python版本号获取基础2. 使用sys模块获取版本信息2.1 sys模块概述2.1.1

Linux挂载linux/Windows共享目录实现方式

《Linux挂载linux/Windows共享目录实现方式》:本文主要介绍Linux挂载linux/Windows共享目录实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录文件共享协议linux环境作为服务端(NFS)在服务器端安装 NFS创建要共享的目录修改 NFS 配

基于Python开发Windows自动更新控制工具

《基于Python开发Windows自动更新控制工具》在当今数字化时代,操作系统更新已成为计算机维护的重要组成部分,本文介绍一款基于Python和PyQt5的Windows自动更新控制工具,有需要的可... 目录设计原理与技术实现系统架构概述数学建模工具界面完整代码实现技术深度分析多层级控制理论服务层控制注

Python爬虫HTTPS使用requests,httpx,aiohttp实战中的证书异步等问题

《Python爬虫HTTPS使用requests,httpx,aiohttp实战中的证书异步等问题》在爬虫工程里,“HTTPS”是绕不开的话题,HTTPS为传输加密提供保护,同时也给爬虫带来证书校验、... 目录一、核心问题与优先级检查(先问三件事)二、基础示例:requests 与证书处理三、高并发选型:

Ubuntu向多台主机批量传输文件的流程步骤

《Ubuntu向多台主机批量传输文件的流程步骤》:本文主要介绍在Ubuntu中批量传输文件到多台主机的方法,需确保主机互通、用户名密码统一及端口开放,通过安装sshpass工具,准备包含目标主机信... 目录Ubuntu 向多台主机批量传输文件1.安装 sshpass2.准备主机列表文件3.创建一个批处理脚

docker编写java的jar完整步骤记录

《docker编写java的jar完整步骤记录》在平常的开发工作中,我们经常需要部署项目,开发测试完成后,最关键的一步就是部署,:本文主要介绍docker编写java的jar的相关资料,文中通过代... 目录all-docker/生成Docker打包部署文件配置服务A的Dockerfile (a/Docke

Oracle数据库在windows系统上重启步骤

《Oracle数据库在windows系统上重启步骤》有时候在服务中重启了oracle之后,数据库并不能正常访问,下面:本文主要介绍Oracle数据库在windows系统上重启的相关资料,文中通过代... oracle数据库在Windows上重启的方法我这里是使用oracle自带的sqlplus工具实现的方

Oracle Scheduler任务故障诊断方法实战指南

《OracleScheduler任务故障诊断方法实战指南》Oracle数据库作为企业级应用中最常用的关系型数据库管理系统之一,偶尔会遇到各种故障和问题,:本文主要介绍OracleSchedul... 目录前言一、故障场景:当定时任务突然“消失”二、基础环境诊断:搭建“全局视角”1. 数据库实例与PDB状态2

Git进行版本控制的实战指南

《Git进行版本控制的实战指南》Git是一种分布式版本控制系统,广泛应用于软件开发中,它可以记录和管理项目的历史修改,并支持多人协作开发,通过Git,开发者可以轻松地跟踪代码变更、合并分支、回退版本等... 目录一、Git核心概念解析二、环境搭建与配置1. 安装Git(Windows示例)2. 基础配置(必

MySQL使用EXISTS检查记录是否存在的详细过程

《MySQL使用EXISTS检查记录是否存在的详细过程》EXISTS是SQL中用于检查子查询是否返回至少一条记录的运算符,它通常用于测试是否存在满足特定条件的记录,从而在主查询中进行相应操作,本文给大... 目录基本语法示例数据库和表结构1. 使用 EXISTS 在 SELECT 语句中2. 使用 EXIS