虚拟化与 KVM 实战:拆解云计算底层基石
虚拟化与 KVM 实战拆解云计算底层基石摘要我们日常使用的公有云 ECS、私有云平台底层核心都离不开虚拟化技术。很多初学云计算的同学容易混淆存储架构、虚拟化类型、KVM/QEMU/Libvirt 组件关系。本文结合 PDF 文档资料跳过传统 IT 历史背景直接从存储体系、虚拟化原理、KVM 完整实操带你吃透底层技术适合运维、云计算入门阅读。前言现在不管是公有云厂商阿里云、华为云还是企业内部搭建私有云虚拟化都是整个云计算的底层地基。很多人会使用云主机但并不清楚虚拟机到底如何实现、块存储 / 文件存储区别、KVM 整套组件如何协同工作。本文基于学习文档聚焦存储架构、虚拟化原理、KVM 完整实操包含理论概念 可复制的生产级命令帮助大家建立完整的虚拟化知识体系。一、企业存储架构完整演进存储是虚拟化与云计算不可分割的一部分从早期直连存储发展到现代 SAN、NAS不同架构适用不同业务场景。1. DAS 直连附加存储DAS (Direct Attached Storage) 直连存储是最早出现的存储架构诞生于 70 年代。连接方式SCSI、SAS、FC 线缆磁盘阵列直接物理连接到一台服务器。特点架构简单但是存储设备只能被一台服务器使用无法多服务器共享存储。缺点硬盘容易成为性能瓶颈硬盘槽位有限容量扩展困难数据分散维护麻烦。适用场景早期小型业务现在企业生产环境很少大规模使用 DAS。2. NAS 网络附加存储NASNetwork Attached Storage网络附加存储90 年代随局域网发展诞生。NAS 是文件级存储存储设备接入局域网自带独立文件系统。协议Linux/Unix 客户端使用NFS 协议Windows 客户端使用CIFS 协议。核心优势多台服务器可以同时挂载访问同一套存储实现文件共享。典型用途文件服务器、文档共享、素材存储。3. SAN 存储区域网络SAN 是专用高速存储网络提供块存储服务器识别 SAN 提供的资源如同本地物理硬盘。SAN 分为两大技术路线 FC‑SAN、IP‑SAN。FC‑SAN使用 FC 光纤链路依赖专用FC 光纤交换机。存储划分 LUN 提供给前端服务器使用支持快照、容灾等高阶特性。优点性能高、延迟低缺点硬件成本昂贵FC 交换机、光纤模块价格高。IP‑SANiSCSI2001 年出现为了解决 FC‑SAN 成本高昂的痛点。复用现有以太网基础设施使用普通以太网交换机、网线基于 IP 网络传输 SCSI 指令。同样把存储划分为 LUN 给服务器使用同样支持快照、容灾。优势复用现有 IP 网络学习、运维成本低是现在中小企业主流块存储方案。✨ 快速记忆区分 NAS给你「共享文件夹」文件级别访问适合文件共享 SAN给你「一块虚拟硬盘」块级别访问适合数据库业务。4. 集中式存储与分布式存储集中式存储整套存储硬件集中在一套设备分为 SAN、NAS 架构。部署简单市面上华为 OceanStor、HPE 企业存储都属于集中式存储。分布式存储本世纪兴起多台普通服务器组成存储集群横向无限扩展代表 Ceph云环境广泛使用。硬盘关键性能指标不管什么存储架构硬盘硬件指标决定整体性能容量磁盘可存储数据大小转速机械硬盘 HDD 指标转速越高读写越快SAS 硬盘常见 10K、15000 转带宽针对大文件连续读写IOPS每秒 IO 操作次数针对小文件随机读写SSD 固态硬盘 IOPS 远高于机械硬盘。硬盘分类SATA 盘多用于桌面、归档存储SAS 盘企业服务器机械硬盘SSD 固态硬盘高性能高 IOPS 业务首选。二、虚拟化核心技术原理虚拟化定义将物理硬件资源做抽象把硬件资源逻辑表示实现资源池化上层操作系统和底层硬件解耦。基础名词释义Host Machine物理服务器Host OS物理机操作系统Guest Machine虚拟机实例Guest OS虚拟机内部运行的操作系统Hypervisor (VMM 虚拟机监控器)虚拟化中间层管理、调度硬件资源隔离多台虚拟机。主流产品 KVM、Xen、VMware ESXi、Hyper‑V。虚拟化四大核心特性分区单台物理服务器划分出多份资源同时运行多台虚拟机虚拟机可以跑不同操作系统Windows、CentOS、Ubuntu充分利用硬件资源。隔离虚拟机之间互相隔离。一台虚拟机系统崩溃、中毒不会影响同一物理机其他虚拟机同时可以做资源限额防止某一台虚拟机耗尽 CPU 内存。封装虚拟机的 BIOS、CPU、内存、磁盘全部状态封装成一组文件。复制这组文件即可完成虚拟机复制、迁移。硬件无关性虚拟机不绑定物理服务器硬件虚拟机镜像不需要修改就可以在不同 x86 物理主机运行。三种虚拟化实现方式x86 架构 CPU 设计之初并不适合虚拟化存在 19 条敏感非特权指令后续发展出 3 套虚拟化实现方案全虚拟化二进制翻译 BTVMM 捕获敏感指令二进制翻译模拟执行Guest 操作系统不需要做任何修改兼容性极强。缺点二进制翻译带来 CPU 性能开销。半虚拟化Para‑Virtualization修改虚拟机 Guest OS 内核增加专门和 Hypervisor 交互的 Hypercall 调用。优点性能非常接近物理裸机缺点必须修改虚拟机操作系统内核兼容性差无法直接运行普通 Windows 等闭源系统。硬件辅助虚拟化工业界现在主流CPU 芯片增加虚拟化扩展指令集Intel VT‑X、AMD AMD‑V。 硬件层面完成指令捕获不再需要软件翻译不需要修改 Guest OS同时获得接近物理机的性能。现在 KVM、VMware 全部默认开启硬件辅助虚拟化。CPU Ring0‑Ring3 保护环x86 CPU 分为 4 个权限环 Ring0~Ring3Ring0最高权限可以直接操作硬件操作系统内核运行在此Ring3最低权限普通应用程序运行在这里。早期 x86 虚拟化难题部分敏感指令属于非特权指令运行在 Ring3VMM 无法捕获引发异常。硬件辅助虚拟化引入 VMX 根模式 / 非根模式解决该历史问题。KVM、QEMU、Libvirt 三者关系重中之重很多初学者容易混淆三者三者分工明确组合起来构成完整虚拟化方案。KVM全称 Kernel‑based Virtual Machine基于内核虚拟机。是 Linux 内核内置模块kvm.ko2007 合并进入 Linux 主线内核。只负责CPU 虚拟化、内存虚拟化KVM 视角每一台虚拟机本质就是 Linux 普通进程由内核调度。KVM 本身不做任何 IO 设备模拟。QEMU用户空间开源模拟器。专门模拟 IO 设备网卡、硬盘、显卡、USB 控制器等外设。协作逻辑KVM 负责 CPU 内存QEMU 负责 IO 设备模拟二者组合实现完整虚拟机。Libvirt不是虚拟化它是一套管理抽象 API 库。 Libvirt 屏蔽底层差异可以统一管理 KVM、Xen、VMware 等多种 Hypervisor。 基于 libvirt 衍生出全套运维工具virsh功能最全命令行管理工具适合脚本自动化、无图形服务器virt‑manager图形 GUI 管理界面virt‑install命令行创建虚拟机virt‑viewer轻量虚拟机控制台只负责显示虚拟机画面配套工具virt‑clone克隆虚拟机virt‑xml修改配置。libvirt 中概念 Node物理主机节点Hypervisor 虚拟化层Domain就是虚拟机实例。三、KVM 完整实操指南环境说明Linux 操作系统已经安装 kvm、qemu、libvirt 组件。两种操作模式图形 virt‑manager、命令行 virsh。方式 1图形界面 virt‑manager启动图形界面virt‑manager准备 ISO 镜像在服务器创建目录存放镜像例mkdir /iso通过 SFTP 把操作系统镜像上传到此目录。新建虚拟机流程 选择本地 ISO 介质 → 指定 ISO 镜像路径 → 分配内存、vCPU → 创建 qcow2 虚拟磁盘 → 设置虚拟机名称完成创建。Windows7 安装小技巧系统安装界面按shiftF10调出 CMD执行lusrmgr.msc取消 Administrator 账户禁用打开任务管理器结束msoobe进程跳过新建普通用户步骤。快照虚拟机关机状态图形界面可以创建快照用于故障回滚。默认存储池 default 路径/var/lib/libvirt/images存放 qcow2 虚拟机磁盘镜像。qcow2 属于稀疏格式虚拟磁盘大小和实际占用宿主机磁盘空间不一致。方式 2virsh 核心命令行生产环境高频# 查看运行中虚拟机virshlist# 查看全部虚拟机包含关机状态virshlist--allvirshstart vmname# 启动虚拟机virshshutdownvmname# 优雅关机优先使用给系统时间保存数据virshdestroy vmname# 强制断电相当于拔电源故障应急使用virshrebootvmname# 重启虚拟机virshsuspendvmname# 挂起虚拟机内存写入磁盘virshresume vmname# 恢复挂起虚拟机virshautostart vmname# 设置虚拟机宿主机开机自启virshautostart--disablevmname# 关闭开机自启virshdumpxml vmname# 输出虚拟机完整XML配置virshedit vmname# 编辑虚拟机xml配置文件# 快照全套命令virshsnapshot‑create‑as vmname--namesnap01# 创建快照自定义快照名virshsnapshot‑list vmname# 列出该虚拟机全部快照virshsnapshot‑revert vmname--snapshotnamesnap01# 回滚快照virshsnapshot‑delete vmname--snapshotnamesnap01# 删除快照qemu‑img 磁盘管理工具qcow2 磁盘格式管理工具关机状态操作磁盘镜像。# 创建qcow2磁盘镜像qemu‑img create-fqcow2 /disk/test.qcow2 20G# 查看磁盘镜像详细信息qemu‑img info /disk/test.qcow2virt‑install 命令行无图形创建虚拟机服务器没有图形界面使用virt‑install直接命令行部署虚拟机同时支持 VNC 远程访问安装界面。# 创建磁盘qemu-img create-fqcow2 /disk/vm3.qcow2 20G# 创建虚拟机开启VNC远程访问virt-install--namevm3--memory2048--vcpus1\--diskpath/disk/vm3.qcow2\--location/iso/CentOS-7-x86_64-Minimal-1810.iso\--networknetworkdefault\--vnc--vnclisten0.0.0.0--vncport5903--noautoconsole参数解释--vnc --vnclisten0.0.0.0 --vncport5903开启 VNC允许外部访问端口 5903--noautoconsole宿主机本地不自动弹出控制台。外部 PC 使用 VNC Viewer连接宿主机IP:5903就可以打开虚拟机安装界面。四、补充拓展知识点1. 服务器硬件基础服务器硬件形态分为塔式、机架、刀片服务器。机架服务器单位1U1.75英寸44.45mm机房常见机柜 42U约 1.87 米、47U 机柜 国内主流服务器厂商浪潮、华为、超聚变、联想、H3C 新华三、中科曙光。2. IPMI、BIOS 基础概念IPMI智能平台管理接口通过 BMC 基板管理控制器可以不依赖操作系统远程管理服务器硬件开关机、查看硬件状态。BIOS基本输入输出系统负责硬件检测初始化、引导操作系统。不同品牌服务器、主板进入 BIOS 热键不同。3. 网络设备基础概念交换机二层终端接入做帧交换同一个交换机属于同一个广播域。路由器三层连接不同网段隔离广播域做 IP 报文转发维护路由表。光猫光信号转电信号防火墙隔离不同安全级别网络访问控制、NAT、VPN无线 AP胖 AP 独立工作瘦 APAC 控制器架构适合大规模无线网络部署。小提示快照≠完整备份快照依赖原始磁盘镜像适合测试环境快速回滚生产业务数据需要独立完整备份。写在最后虚拟化是打开云计算大门的钥匙。KVM 作为开源虚拟化标杆大量云平台 OpenStack 底层都基于 KVM。 记住分层逻辑物理硬件 → KVM 内核模块CPU 内存虚拟化 → QEMU 模拟 IO 外设 → libvirt 工具层提供运维能力。存储上分清块存储 SAN 与文件存储 NAS理解 FC‑SAN 与 IP‑SAN 的取舍。掌握 virsh 日常命令就可以完成 KVM 虚拟机大部分运维工作。