第二章

Hypervisor 与虚拟机基础

第一层 · Hypervisor/VM 概念 装了 ESXi 之后,世界变了

一、什么是 Hypervisor:硬件和虚拟机之间的"包工头"

"小陈,虚拟化最关键的一层,叫 Hypervisor(虚拟机监视器)。"老周在纸上画:

没有 Hypervisor:     有 Hypervisor:
┌──────────────┐    ┌──────────────────────┐
│  应用         │    │  VM1  VM2  VM3 ...   │ ← 虚拟机
├──────────────┤    ├──────────────────────┤
│  操作系统     │    │   Hypervisor(包工头) │ ← 虚拟化层
├──────────────┤    ├──────────────────────┤
│  硬件         │    │   硬件(CPU/内存/磁盘) │
└──────────────┘    └──────────────────────┘

"Hypervisor 是运行在硬件和虚拟机之间的软件层,它负责'分配'和'调度'物理硬件给每一台虚拟机。 你可以把它想象成'包工头':物理 CPU、内存、磁盘就是'工地的机器',每台虚拟机是'包工队'——包工头决定哪支队伍用哪台机器、用多久。"

"VMware 的 Hypervisor 产品就叫 ESXi(现在叫 vSphere Hypervisor)。它是整个 VMware 虚拟化世界的地基。"


二、Hypervisor 的两种类型:裸机 vs 托管

"Hypervisor 分两种,这是 VCP 考试必考的基础题。"老周说:

类型 1(裸机型 / Bare-metal):
  ┌────────────────────┐
  │  VM1   VM2   VM3    │
  ├────────────────────┤
  │  Hypervisor(ESXi) │  ← 直接跑在硬件上
  ├────────────────────┤
  │  硬件               │
  └────────────────────┘
  特点:Hypervisor 自己就是"微型操作系统",直接控制硬件
  代表:VMware ESXi、Microsoft Hyper-V、KVM、Xen
  场景:服务器、数据中心(生产环境几乎都用类型 1)

类型 2(托管型 / Hosted):
  ┌────────────────────┐
  │  VM1  VM2  VM3      │
  ├────────────────────┤
  │  Hypervisor 软件    │
  ├────────────────────┤
  │  Windows/Mac/Linux  │  ← 先装一个普通操作系统
  ├────────────────────┤
  │  硬件               │
  └────────────────────┘
  特点:Hypervisor 是装在你日常操作系统上的"一个软件"
  代表:VMware Workstation、VirtualBox、Parallels
  场景:开发测试、个人电脑(跑个 Linux 练手)

"生产环境用类型 1(ESXi),个人电脑用类型 2(Workstation)——这是最直观的记忆点。"


三、什么是虚拟机(VM):一台"虚拟电脑"

"装好 ESXi 之后,我们就可以在它上面创建虚拟机(VM)了。"老周打开 vSphere Client,演示创建一台 VM:

创建虚拟机向导(关键步骤):
  ① 名称:web-01(起个好名字,运维的尊严)
  ② 兼容性:ESXi 8.0 及更高版本
  ③ Guest OS 类型:Linux / CentOS 8(告诉虚拟化层"这是台什么电脑")
  ④ 存储位置:选一个数据存储(磁盘放哪,下章讲)
  ⑤ 配置资源:
     CPU:2 核
     内存:4 GB
     磁盘:100 GB
     网卡:1 块(接哪个网络,第五章讲)
  ⑥ 完成 → 一台"虚拟电脑"诞生了 → 插入安装光盘 → 装系统

"虚拟机从用户(VM 里的操作系统)的角度看,就是一台普通的电脑:有 BIOS、有 CPU、有内存、有硬盘、有网卡。区别只在于——这些'硬件'不是真的硬件,是 Hypervisor 用软件'假装'出来的(这叫硬件虚拟化)。Guest OS 里的程序根本察觉不到自己跑在虚拟机上。"

"VM 在磁盘上其实就是一堆文件(.vmdk 虚拟磁盘、.vmx 配置文件、.nvram BIOS……)。这也是为什么 VM 能随便拷贝、迁移——它本质上是文件!"


四、ESXi 上跑通第一个 VM:云间书店的 Web 服务搬家

小陈按老周指导,把网店的 Web 服务从"万能服务器"迁到了一台新 VM 上:

云间书店虚拟化改造第一步(迁移计划):
  物理机上的 7 个服务 → 拆成 7 台 VM:
    VM1 web-01      :Nginx + Python Web   (2 核 4G)
    VM2 db-01       :MySQL                (4 核 8G,数据库最重要)
    VM3 cache-01    :Redis                (2 核 2G)
    VM4 file-01     :文件存储              (2 核 4G)
    VM5 ai-01       :AI 荐书服务           (4 核 8G)
    VM6 mq-01       :消息队列              (2 核 2G)
    VM7 monitor-01  :监控                 (1 核 1G)

  物理机总资源:8 核 32G
  7 台 VM 合计:17 核 29G(看起来超了?因为可以"超分"!)

小陈看着资源分配表,疑惑:"师傅,7 台 VM 加起来 17 核,物理机才 8 核?这不是超了吗?"

"问得好!这就是虚拟化的精髓之一——超分(Overcommitment)。"老周说,"物理机 8 核,VM 配置 17 核,听起来不合理,但实际没问题。为什么?因为 7 个服务的 CPU 不会同时满载——Web 高峰期时,Redis 闲着;半夜备份时,Web 闲着。Hypervisor 就是靠'错峰复用',让有限的物理资源服务更多的虚拟机。"

"但是!"老周强调,"超分是'锦上添花',不是'雪中送炭'。数据库这种吃内存的大户,内存绝对不要超分——内存不像 CPU 能排队,内存不够就是不够,会直接 OOM(内存耗尽)。所以我们的策略是:CPU 可以适度超分,内存按需分配、不超分。"


五、vCenter Server:管理多台 ESXi 的"总控台"

"一台 ESXi 能跑几十台 VM。但云间书店以后会有 3 台、5 台 ESXi——难道每台都单独登录管理?"老周说,"所以要上 vCenter Server——VMware 的统一管理平台。"

没有 vCenter:                          有 vCenter:
  ESXi1 单独管                          ┌──────────────────┐
  ESXi2 单独管                          │ vCenter Server    │ ← 统一管理所有
  ESXi3 单独管                          ├────┬────┬────────┤
  (每次要登录三台机器,累死)              │ESXi1│ESXi2│ ESXi3  │
                                        └────┴────┴────────┘

vCenter 能干什么:
  - 统一管理所有 ESXi 和 VM(一个界面看全部)
  - 集中权限控制(给谁开什么权限)
  - 高级功能的地基:HA、DRS、vMotion(第六章)
  - 模板、克隆、批量部署(第八章)
  - 监控、告警、性能图表(第九章)

"记住:单台 ESXi 是'单机版',vCenter 是'网络版'。 生产环境至少要 vCenter 管 2 台以上 ESXi,才有高可用的意义。"


六、章末:老周的第一层总结

第一层:虚拟化基础
├── Hypervisor:硬件与虚拟机之间的"包工头"(调度资源)
├── 类型1(裸机型):ESXi / Hyper-V / KVM → 生产环境
├── 类型2(托管型):Workstation / VirtualBox → 个人电脑
├── 虚拟机(VM):一台"虚拟电脑",本质是文件
├── 超分(Overcommitment):CPU 错峰复用,内存不要超分
└── vCenter:统一管理多台 ESXi 的"总控台"(高级功能的地基)

"小陈,这一层讲完,你已经能创建 VM 了。但你现在创建的 VM 都是'默认配置'——你知道那 4 个配置项(CPU、内存、磁盘、网卡)背后到底是怎么回事吗?"

小陈摇头:"我就跟着向导点……"

"知其然,还要知其所以然。 下一章,我们把一台虚拟机拆开,看看它的四大组成——vCPU、内存、虚拟磁盘、虚拟网卡,它们各自是怎么'假装'出来的。这是你理解后面所有内容(存储、网络、性能)的基础。"

✌ 语言