前言

All in one

前段时间,在某多多上花了446大洋弄了一台J4125准系统小主机,再花了一点钱买个杂牌msata和“全新”三星内存条,入坑了All in one。

All in one是什么呢?从英文直译为“多合一”,所谓的All in one就是将若干个设备的特殊功能赋予一个高性能设备,功能可以同时工作,可以单独控制。

一般情况使用x86架构的设备作为硬件平台,虚拟机系统来做底层系统,将常见的特定功能系统如软路由、NAS、HTPC(家庭影院电脑)等安装到同一台物理机中,并且同时运行。在提高资源利用率,也提供了不少的可玩性。

图1.底层虚拟机系统示意图

底层虚拟机系统选择

虚拟机两种模式

虚拟机有两种模式Type1和Type2,Type 1在裸机上运行,而Type 2在操作系统上运行。

Type2即我们平常使用的VMware Workstation Pro(VM虚拟机)、VirtualBox之类运行在Windows系统之上的软件,软件通过Windows API调用,相比Type1模式对有额外损耗,并且有一些功能也无法实现。目前对底层虚拟机系统的必须的要求是:支持硬件直通,这是Type2所不具有的功能。比如显卡、网卡,需要直接直通给某虚拟机独占使用,因为不支持硬件直通会而外消耗CPU性能。之前我的本科毕业设计就是使用树莓派4B安装Debian再通过Docker安装Openwrt来实现旁路由(因为树莓派4B只有单网口),这样不仅可以享受到Debian下的软件生态,也可以实现Openwrt的软路由,压榨了树莓派。但是其毕竟是arm架构下的软件生态,生态如x86架构下的完善。

常用的可以实现all in one的虚拟机系统中方案中有PVE、ESXi、Windows Server + Hyper-v,这三种方案这段时间我都玩了个遍,我会分享我的我踩过的坑和心得。当然这个结果嘛,我结合了其他网友的分享得出的。

这里只是大概的描述而已,仅供参考,因为评定标准有很多,所以不一定准确

方案 虚拟机损耗 待机消耗 上手难度 优点
PVE 5%~10% 10天 硬件兼容性好、支持虚拟机核显直通视频输出
ESXI 几乎无损耗 3天 稳定、虚拟能效最好
WinServer   较高 1天 自带Windows桌面以及软件生态

PVE(Proxmox VE)

PVE使用Debian系统作为底层,可以安装Debian所支持的软件,免费开源,可玩性很高,甚至可以安装桌面。

可以这样理解:PVE=Debian+PVE管理工具

使用Linux中的KVM技术做虚拟化,对新硬件的兼容性极好,虚拟出来的性能大约是物理直接安装系统80%~90%。

  • 注意事项:上手难度较大,需要有一定的Linux基础,当然如果是有需要学习。
  • 推荐安装版本:其实版本区别不大,推荐安装7.0即以上版本,因为7.0后使用debian11为内核,旧版本可能教程不适用了。

PVE官网下载:Get the free Proxmox VE ISO installer

图.PVE的web控制面板

ESXI

ESXI为就是和VMWare公司开发的商业软件,使用自研的esxi作为虚拟化核心,面向的服务器硬件,对家用的网卡等基本上都需要自己打包驱动(当然也可以下载大佬们现成打包好的)。

  • 很容易上手,而且虚拟机损耗很低,最经使用。

图.ESXI的web控制面板

Windows Server + Hyper-V

Hyper-v是Windows系统下自带的个虚拟机应用。建议使用Windows Server或企业多会话版,此版本下Hyper-v是支持PCIe设备直通到虚拟机的。

Windows Server入门就更简单了,如果你本身就有Windows的使用需求,还可以可以省一个虚拟机,但是如果你不需要Windows图形化界面会比esxi和pve方案更浪费性能,而且也没有esxi、pve那样的虚拟机Web监控管理面板(Windows Admin Center体验很一般)。

  • 适合本就需要安装Windows环境

微软官网的介绍:Hyper-V 技术概述 | Microsoft Learn

图.Windows下的Hyper-V管理器

特定功能的系统

软路由:

  • OpenWRT、RouterOS、IKUAI
  • 在提供最基础的网络的路由交换功能以及NAT、DHCP等服务,还可以实现终端监控控制等高级的功能,一般情况需要网卡直通到软路由虚拟机,避免使用虚拟网卡额外消耗CPU。

NAS:

  • 群晖DSM、TrueNAS
  • 对于多硬盘的设备,使用NAS系统来管理,可以直接直通SATA控制器或硬盘。其实文件共享如果需求不高也可以使用一些简单的FTP、SMB、WEBDEV之类的协议,因为我购入的设备硬盘位是不太够用的哈哈。

电视盒子(HTPC家庭影音类):

  • Windows、AndroidTV
  • 核显设备通常比较难利用上板载的视频、音频接口,在esxi上是不可以,部分设备和主板是支持使用vbios在pve上通过直通核显。依据网友的实战经验,可以购买带有HDMI接口USB HUB,直通板载这个HUB实现音视频输出。也可以直接安装Windows Server,直接就是自带了图像界面,或者给PVE安装上桌面环境,做简单的网页浏览(下次我开坑这个)。

实战

在确认好使用那种方案作为底层虚拟机系统,首先我们需要使用Ventoy制作来启动盘。可查看我往期的博客。

Ventoy制作PE启动盘 和 使用VMware测试启动盘 - alittlemc - 博客园 (cnblogs.com)

设备介绍

CPU要求支持虚拟化,对应到现在AMD和Intel即分别支持AMD-V、VT-X技术。不过现在CPU基本上都支持,有一些需要去bios中开启虚拟化选项。

内存需求看需求,直通硬件会需要预留额外的内存,但是还是建议多多益善,建议8G。

目前我使用的机器主要配置如下:

  • 准系统446元:

    • CPU,J4125(4核4线程,默频2GHz睿频2.7GHz)
    • 网卡,4个i225v3b,支持2.5Gbps,
  • 固态74元:
    • 某多多256g的杂牌msata、闲置的三星860evo。
  • 内存条95x2:

    • 单条95三星颗粒DDR4 笔记本8G(咸鱼说是全新,我觉得应该是回收颗粒)。

下期我以此硬件平台为基础,使用PVE作为系统,安装Debian桌面,安装软路由系统。

更新日志

2022年12月30日16:07:54

  • 更新计划:下次从0开始更新讲解如何使用PVE作为All in one

All in one入门之All in one和三种PVE、ESXI、Windows Server方案的更多相关文章

  1. Android开发入门——Button绑定监听事件三种方式

    import android.app.Activity; import android.os.Bundle;import android.view.View;import android.widget ...

  2. spring boot快速入门 1 :创建项目、 三种启动项目方式

    准备工作: (转载)IDEA新建项目时,没有Spring Initializr选项 最近开始使用IDEA作为开发工具,然后也是打算开始学习使用spring boot. 看着博客来进行操作上手sprin ...

  3. JdbcTemplae使用入门&&Spring三种连接池配置&&Spring配置文件引用外部properties文件

    JdbcTemplate的使用 Spring为了各种支持的持久化技术,都提供了简单操作的模版和回调. JdbcTemplate 简化 JDBC 操作HibernateTemplate 简化 Hiber ...

  4. 脑残式网络编程入门(四):快速理解HTTP/2的服务器推送(Server Push)

    本文原作者阮一峰,作者博客:ruanyifeng.com. 1.前言 新一代HTTP/2 协议的主要目的是为了提高网页性能(有关HTTP/2的介绍,请见<从HTTP/0.9到HTTP/2:一文读 ...

  5. Spring Boot 入门之持久层篇(三)

    原文地址:Spring Boot 入门之持久层篇(三) 博客地址:http://www.extlight.com 一.前言 上一篇<Spring Boot 入门之 Web 篇(二)>介绍了 ...

  6. windows server 证书的颁发与IIS证书的使用 Dapper入门使用,代替你的DbSQLhelper Asp.Net MVC中Action跳转(转载)

    windows server 证书的颁发与IIS证书的使用   最近工作业务要是用服务器证书验证,在这里记录下一. 1.添加服务器角色 [证书服务] 2.一路下一步直到证书服务安装完成; 3.选择圈选 ...

  7. TensorFlow 入门之手写识别CNN 三

    TensorFlow 入门之手写识别CNN 三 MNIST 卷积神经网络 Fly 多层卷积网络 多层卷积网络的基本理论 构建一个多层卷积网络 权值初始化 卷积和池化 第一层卷积 第二层卷积 密集层连接 ...

  8. 第五篇 CSS入门 明白 三种嵌套形式,三种常用控制器

    CSS入门 css是 层叠式样式表   css的作用是什么呢?举个抽象的例子啊,HTML是人,CSS则是衣服...   css给html穿上衣服,有三种形式: 内嵌.内联.外联. 这三种形式,优先级为 ...

  9. ZYNQ入门实例——三种GPIO应用、中断系统及软硬件交叉触发调试

    一.前言 Xlinx的ZYNQ系列SOC集成了APU.各种专用外设资源和传统的FPGA逻辑,为ARM+FPGA的应用提供助力,降低功耗和硬件设计难度的同时极大提高两者间传输的带宽.之前在研究生课题中使 ...

  10. Java并发编程入门与高并发面试(三):线程安全性-原子性-CAS(CAS的ABA问题)

    摘要:本文介绍线程的安全性,原子性,java.lang.Number包下的类与CAS操作,synchronized锁,和原子性操作各方法间的对比. 线程安全性 线程安全? 线程安全性? 原子性 Ato ...

随机推荐

  1. aws-cli命令-S3相关的操作及管理

    在工作中,我们可能经常会将本地数据上传S3进行备份,或者将S3数据下载到本地 本文主要讲解下,工作中可能经常会用到的与S3相关的操作 1.将本地目录的数据同步到指定的S3位置,及s3资源管理 # 同步 ...

  2. 关于在Linux上安装aws cli版本1的记录

    AWS Command Line Interface (AWS CLI) 是一种开源工具,让您能够在命令行 Shell 中使用命令与 AWS 服务进行交互. 因公司项目要求,要在Linux服务器安装a ...

  3. C++面向对象编程之堆、栈和内存形式

    1.stack 是存在与某个作用域的一块内存空间,当调用函数时,函数就会形成一个stack 存这它的一些参数.返回地址等,生闷气在函数执行完会自动消灭: 2.heap 是操作系统提供的全局的内存空间, ...

  4. P1896 [SCOI2005] 互不侵犯 方法记录

    原题链接 [SCOI2005] 互不侵犯 题目描述 在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案.国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子 ...

  5. 关于从Ecplise导入项目到MyEclipse会出现冲突的原因。

    昨天,从网上下了一个Eclipse的小项目导入到MyEclipse中,出现了许多错误. 原因如下. JDK的编译版本和JRE的运行版本不一致导致了这个问题. 在MyEclipse中,对项目进行Buil ...

  6. Docker | 制作tomcat镜像并部署项目

    本文讲解如何制作自己的tomcat镜像,并使用tomcat部署项目 原料准备: tomcat.jdk安装包,dockerfile文件 步骤 1.准备压缩包 jdk-8u301-linux-x64.ta ...

  7. dotnet 用 SourceGenerator 源代码生成技术实现中文编程语言

    相信有很多伙伴都很喜欢自己造编程语言,在有现代的很多工具链的帮助下,实现一门编程语言,似乎已不是一件十分困难的事情.我利用 SourceGenerator 源代码生成技术实现了一个简易的中文编程语言, ...

  8. 动词时态=>3.现在时态和过去时态构成详解

    现在时态构成详解 一般现在时态 最容易构成的时态,直接加动词原形(字典当中显示的词条)就可以 第三人称"单数"的话需要加s 这是最容易出错的时态:容易将 现在的时间,和一般的状态: ...

  9. Python学习三天计划-3

    面向对象 一.类的定义 1.类定义 class是关键字,表示要定义类了 类的属性,即定义在类中的变量(成员变量) 类的行为,即定义在类中的函数(成员方法) 2.对象 创建类对象的语法: class S ...

  10. 【JavaSE】面向对象三大特征——封装、继承、多态

    前言:本文主要介绍思想 封装 封装这一概念并不仅存在与面向对象中,甚至说封装这一概念不仅限于编程中,其实生活中的封装无处不在.比如 需求:你到银行取钱 参数:你只需要提供银行卡和密码 返回值:柜员会将 ...