百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

ESXi裸金属虚拟化体验小记(裸金属虚拟化是什么)

nanshan 2024-11-15 22:48 44 浏览 0 评论

背景

一般情况下家用电脑都装Windows系统,不一般的情况是有些人需要家庭网盘、家庭影院、OpenWrt路由器等等服务,但是又希望安装在一台机器上,这就有了一机多系统的需求,这种情况下可以利用强大的虚拟化技术

  • ESXi:虚拟化巨头Vmware开发的商用级别裸金属虚拟化工具,虚拟化下CPU几乎无损耗,教程文档比较多,界面易操作,可和Vmware WorkStation联动(作为客户端)
  • PVE:开源的基于Debian的KVM裸金属虚拟化,CPU损耗比ESXi大些,因为本身是一个Linux系统,有系统开销,可忽略不计

上面的是裸金属虚拟化,和Vmware WorkStation等跑在操作系统之上的虚拟化技术不同的是裸金属虚拟化更底层,虚拟化效果更好,裸金属虚拟化下,Windows等操作系统跑在虚拟化层之上,硬件直接归虚拟化软件控制,下面说明ESXi虚拟化技术上下怎么安装Windows10、CentOS7、Windows11等


硬件

主要说三大件,无显卡

  • CPU:i5-8500,支持硬件虚拟化VT-x,支持硬件直通技术VT-d,带有核心显卡
  • 主板:瑞芯微B450M,带有NVME固态接口
  • 内存:24G,型号随便

方案

ESXi安装在NVME固态,其余硬盘通过板载SATA直通,这样做是因为直通速度更快,而且直通硬盘数据备份恢复更好做,不直通可能面对的就是一堆虚拟磁盘vmdk文件,说白了,直通就相当于没有虚拟化,直接用。

  • Win10作为主力系统,系统装在NVME,板载SATA直通给它、核显直通
  • CentOS7主要跑一些docker服务,系统装在SSD,硬盘通过WIn10的iSCSI服务供CentOS7使用(通过ESXi的vmxnet3网卡连接,走虚拟交换机,10Gbps速度,相当于本地硬盘的速度,不要走路由器,走了路由器速度瓶颈就在路由器)
  • Win11:作为尝鲜用,随便装一装

这个方案一路都是坑,稍微不注意就要折腾一整天:),所以 follow me。坑我已经趟平了。

下面是截图

  • 虚拟机




  • 网络拓扑,vswitch是ESXi的虚拟交换机,虚拟机内部走虚拟交换机,不过物理网卡到路由器



  • 和Vmware WorkStation联动



  • 三台虚拟机同时工作



  • 同时工作负载



安装ESXi

本文主要说思路, 不提供下载

本着一切稳定优先的原则选择了6.7 Update3版本,结果在最后核显直通后启动卡住,信息如下

dma_mapper_iommu loaded successful

网上检索了下,发现6.7 版本不支持核显直通,或者有问题,最后换成了7.0 Update3版本,安装思路是将ESXi 7.0镜像烧录到U盘,然后U盘启动安装即可,注意,如果想直通,需要先在bios里面将CPU的VT-d特性打开!

  1. 下载ESXi Update3
  2. 下载烧录工具rufus,工具打开的时候会提示联网更新,忽略即可
  3. 打开rufus,将ESXi烧录到U盘
  4. U盘启动,进行安装接口

注意:

  • 如果提示menu.c32 not a COM32R image,按下TAB键,然后输入install hddboot即可
  • ESXi 7默认会占用100+G的空间,缩小该空间在启动倒计时的时候按Shift + O输入autoPartitionOSDataSize=4096表示只需要4G该空间,可自定义
  • 密码要求比较复杂,尽量设置复杂密码,否则一致不通过

装好之后通过Web去连接,所以网线要先插上!

直通板载SATA

板载SATA直通后该接口上的所有硬盘都不会被ESXi识别,所以ESXi不能装在板载SATA的接口上,需要装在NVME固态或者U盘里面,如果装在SATA接口的硬盘上,直通后,ESXi会启动失败!

之所以ESXi要隐藏板载SATA有可能就是避免上面的问题,所以需要手动开启!



  1. 先打开安全shell,如上图(截图的时候是6.7,无所谓,7.0也一样)
  2. 进入shell,通过ssh连接,用户root,密码就是安装时候设置的密码
  3. 查看板载SATA硬件ID号,如下,我的硬件ID号是a352,8086代表供应商是intel
lspci -v | grep "Class 0106" -B 1

0000:00:17.0 Mass storage controller SATA controller: Intel Corporation Cannon Lake PCH-H AHCI Controller [vmhba0]
         Class 0106: 8086:a352
?
?
  1. 开启直通配置,注意替换硬件ID号
# 拷贝
cp /etc/vmware/passthru.map  /etc/vmware/passthru.map.bak
# 添加备注,不加也行
sed -i '$a\# Intel Corporation Cannon Lake PCH-H AHCI Controller' /etc/vmware/passthru.map 
# 添加直通SATA配置,注意替换硬件ID号a352,你的不一定是a352
sed -i '$a\8086 a352 d3d0 false' /etc/vmware/passthru.map 
  1. 去页面上重启ESXi

重启去管理 >> 硬件,找到AHCI类似字样的设备,切换直通,切换后再次重启,显示为活动说明已直通。



直通核显

核显自身支持直通,不需要特别设置,如果切换后发现一直是“已启用 / 需要重新引导”状态多重启几下,此处没查出原因。最后显示活动说明直通成功。



关于直通独显?直通独显后可以直接输出HDMI信号,和使用物理机基本一致,目前我还没有该需求,本身ESXi就是用作服务器,少有连接显示器的需求,等后面有需求了在折腾。

安装WIndows10

我安装的版本是Windows 10 LSTC,具体可到MSDN上下载镜像文件,新建虚拟机就不细说了,主要说明网卡需要选择两个



E1000e是1Gbps网卡,用于连外网、VMXNET3是10Gbps网卡,用于内网,也就是虚拟机之间硬盘共享,因为硬盘都给Windows10了,其他虚拟机没有硬盘,所以Win10需要通过提供iSCSI服务让别的虚拟机挂载该虚拟网络硬盘,数据走VMXNET3,否则过路由器速度会很慢!

  • iSCSI步骤:Win10打开iSCSI服务,ESXi存储 >> 适配器 >> 软件iSCSI,填入Win10提供的iSCSI服务的IP,如果连接成功,在设备里面会多出网络存储设备,该设备用于其他虚拟机使用

关于Win10使用核显说明:装好之后一定要先设置虚拟机参数hypervisor.cpuid.v0 = FALSE(在虚拟机选项 >> 高级 >> 配置参数里面)该参数会让显卡认为自己不是运行在虚拟机中,而是在物理机中,欺骗网卡驱动,否则会遇到臭名昭著的43错误问题


设置好改参数后再进入系统,安装vmware-tools,然后在设备管理器中选中显示设备,右键Microsoft基本显示适配器(大概是这名),选择搜索安装驱动,装好如下图,任务管理器也能看到核显使用情况,如遇到43问题,可能是上面参数没有设置!



最后虚拟机里面还需要开启3D硬件加速,这样会流畅很多,如下图,默认是没开启的!



安装其他系统

其他系统大同小异,不再细说,主要是主力系统需要直通硬件,会有比较多的坑,其他系统不直通硬件,使用的都是ESXi分配的虚拟硬件,一直下一步就OK


参考

  • https://blog.irain.in/archives/ESXi_Synology_10G_Passthrough.html
  • https://post.smzdm.com/p/a3d4mqdk/
  • https://www.chiphell.com/thread-2292749-1-1.html
  • https://tieba.baidu.com/p/6362294403
  • https://blog.csdn.net/gaokang_1992/article/details/111530671
  • https://post.smzdm.com/p/a5k6de9x/
  • https://blog.51cto.com/lookingdream/2113902
  • https://www.cnblogs.com/rui517hua20/p/13405949.html
  • https://blog.csdn.net/tmaccs/article/details/111595474
  • https://www.right.com.cn/forum/thread-4045612-1-1.html
  • https://blog.csdn.net/qiaohewei/article/details/108622880
  • https://www.chiphell.com/thread-2208833-1-1.html

编辑于 11-27 23:02

相关推荐

0722-6.2.0-如何在RedHat7.2使用rpm安装CDH(无CM)

文档编写目的在前面的文档中,介绍了在有CM和无CM两种情况下使用rpm方式安装CDH5.10.0,本文档将介绍如何在无CM的情况下使用rpm方式安装CDH6.2.0,与之前安装C5进行对比。环境介绍:...

ARM64 平台基于 openEuler + iSula 环境部署 Kubernetes

为什么要在arm64平台上部署Kubernetes,而且还是鲲鹏920的架构。说来话长。。。此处省略5000字。介绍下系统信息;o架构:鲲鹏920(Kunpeng920)oOS:ope...

生产环境starrocks 3.1存算一体集群部署

集群规划FE:节点主要负责元数据管理、客户端连接管理、查询计划和查询调度。>3节点。BE:节点负责数据存储和SQL执行。>3节点。CN:无存储功能能的BE。环境准备CPU检查JDK...

在CentOS上添加swap虚拟内存并设置优先级

现如今很多云服务器都会自己配置好虚拟内存,当然也有很多没有配置虚拟内存的,虚拟内存可以让我们的低配服务器使用更多的内存,可以减少很多硬件成本,比如我们运行很多服务的时候,内存常常会满,当配置了虚拟内存...

国产深度(deepin)操作系统优化指南

1.升级内核随着deepin版本的更新,会自动升级系统内核,但是我们依旧可以通过命令行手动升级内核,以获取更好的性能和更多的硬件支持。具体操作:-添加PPAs使用以下命令添加PPAs:```...

postgresql-15.4 多节点主从(读写分离)

1、下载软件[root@TX-CN-PostgreSQL01-252software]#wgethttps://ftp.postgresql.org/pub/source/v15.4/postg...

Docker 容器 Java 服务内存与 GC 优化实施方案

一、设置Docker容器内存限制(生产环境建议)1.查看宿主机可用内存bashfree-h#示例输出(假设宿主机剩余16GB可用内存)#Mem:64G...

虚拟内存设置、解决linux内存不够问题

虚拟内存设置(解决linux内存不够情况)背景介绍  Memory指机器物理内存,读写速度低于CPU一个量级,但是高于磁盘不止一个量级。所以,程序和数据如果在内存的话,会有非常快的读写速度。但是,内存...

Elasticsearch性能调优(5):服务器配置选择

在选择elasticsearch服务器时,要尽可能地选择与当前业务量相匹配的服务器。如果服务器配置太低,则意味着需要更多的节点来满足需求,一个集群的节点太多时会增加集群管理的成本。如果服务器配置太高,...

Es如何落地

一、配置准备节点类型CPU内存硬盘网络机器数操作系统data节点16C64G2000G本地SSD所有es同一可用区3(ecs)Centos7master节点2C8G200G云SSD所有es同一可用区...

针对Linux内存管理知识学习总结

现在的服务器大部分都是运行在Linux上面的,所以,作为一个程序员有必要简单地了解一下系统是如何运行的。对于内存部分需要知道:地址映射内存管理的方式缺页异常先来看一些基本的知识,在进程看来,内存分为内...

MySQL进阶之性能优化

概述MySQL的性能优化,包括了服务器硬件优化、操作系统的优化、MySQL数据库配置优化、数据库表设计的优化、SQL语句优化等5个方面的优化。在进行优化之前,需要先掌握性能分析的思路和方法,找出问题,...

Linux Cgroups(Control Groups)原理

LinuxCgroups(ControlGroups)是内核提供的资源分配、限制和监控机制,通过层级化进程分组实现资源的精细化控制。以下从核心原理、操作示例和版本演进三方面详细分析:一、核心原理与...

linux 常用性能优化参数及理解

1.优化内核相关参数配置文件/etc/sysctl.conf配置方法直接将参数添加进文件每条一行.sysctl-a可以查看默认配置sysctl-p执行并检测是否有错误例如设置错了参数:[roo...

如何在 Linux 中使用 Sysctl 命令?

sysctl是一个用于配置和查询Linux内核参数的命令行工具。它通过与/proc/sys虚拟文件系统交互,允许用户在运行时动态修改内核参数。这些参数控制着系统的各种行为,包括网络设置、文件...

取消回复欢迎 发表评论: