KVM基础 ——Ansible安全基线配置(一)

简介: 本系列《Ansible安全自动化》首篇详解KVM原理:介绍KVM作为Linux内核模块如何协同QEMU实现高效虚拟化,并讲解Libvirt常用命令,为后续Ansible自动化打下基础。

引言

大家好,欢迎来到我的 《Ansible 安全自动化:从服务器到K8S的堡垒之路》 系列教程,我是Prism!
在这个系列里,我们的目标是彻底告别繁琐的人工配置,用 Ansible 打造一套固若金汤、一键部署的服务器与K8S安全基线
作为本系列的开篇之作,我们将从什么是KVM以及KVM的原理开始开始
通过本篇文章的学习,您将了解:
1、KVM是什么
2、KVM的工作原理
3、操作过程中涉及的常见命令

链接:知识点扩展包(建议和知识点扩展包结合起来看本篇文章,可以加深理解)

预告: 下一期将介绍创建KVM虚拟机的几种方式,使用Ansible创建为重点内容

注意:如大家有更好的建议,欢迎提出,如果喜欢煮波的内容,点点关注不迷路,谢谢大家!!!

准备好了吗?发车咯!!!

一、KVM是什么

1、定义

A、KVM 的全称是 Kernel-based Virtual Machine(基于内核的虚拟机)

B、KVM 本身不是一个完整的虚拟机软件,而是 Linux 内核的一个核心模块(驱动),它负责把 Linux 操作系统变成一个“裸机”虚拟机监控程序(Type-1 Hypervisor)

2、KVM属于寄居架构,但因为深深嵌入Linux内核,因此运行效率很高

3、层次

在物理硬件之上,宿主机Linux内核通过KVM模块(利用CPU硬件虚拟化扩展)来高速执行Guest OS的指令,并协同QEMU(模拟主板、硬盘、网卡等I/O设备),共同为Guest OS构建出一个完整且高效的虚拟运行环境

A、物理硬件

CPU、RAM、NIC

B、宿主机操作内核(Linux Kernel)

负责调度KVM模块和QEMU进程,以及管理物理资源

C、KVM内核模块

扮演 “加速器”。负责 CPU 和内存的执行(最耗性能的部分),利用硬件虚拟化扩展(VT-x/AMD-V)让 Guest OS 直接在物理 CPU 上全速运行

1、“超能力”核心

KVM 模块的核心任务是启用和管理 CPU 的硬件虚拟化扩展

2、“只干大事”

KVM 只负责最核心、最困难的 CPU 和内存虚拟化。它会创建特殊的 /dev/kvm 设备,允许用户态程序(比如QEMU)来调用这个能力

3、“不干杂活”

KVM 自己不模拟任何硬件,比如网卡、硬盘、显卡、USB等

D、硬件模拟器(QEMU)(QEMU用户态程序)

扮演 “车壳子和方向盘”。负责模拟主板、硬盘、网卡、显卡等所有I/O“杂活”,并负责启动和管理虚拟机的整个“进程

E、客户操作系统(Guesy OS)

运行应用程序和服务的环境,让应用程序和服务认为自己在独立运行

二、KVM的工作流程

QEMU 启动一个虚拟机进程,当需要执行 CPU 指令时,QEMU 会通过 KVM 模块,让 Guest OS 的指令直接上物理CPU;当 Guest OS 要访问硬件(比如写网卡)时,KVM 会“暂停”Guest OS,把这个请求“踢”回给 QEMU 去模拟处理

三、KVM的管理(运维视角)

1、Libvirt

管理接口/API

1、作用

统一的管理层。它能控制KVM,Xen等多种Hypervisor.所有脚本和GUI操作都是通过Libvirt API转发给KVM/QEMU

2、常用命令

A、虚拟机生命周期管理
1、列出虚拟机
virsh list # 查看当前正在运行的虚拟机
virsh list --all # 查看所有虚拟机(包括关机的)
2、启动
# 启动一个已定义的虚拟机
virsh start <虚拟机名>
3、关机
# 正常关机
virsh shutdown <虚拟机名>
# 强制关机(直接拔电源)
virsh destroy <虚拟机名>
4、重启
virsh reboot <虚拟机名>
5、暂停
# 挂起虚拟机,状态保存到内存中
virsh suspend <虚拟机名>
6、恢复
# 恢复一个被挂起的虚拟机
virsh resume <虚拟机名>
7、定义(注册)
# 从一个XML文件定义一个虚拟机,但不启动
virsh define <xml配置文件>
8、取消定义(删除)
# 删除虚拟机的配置(“开除学籍”)
virsh undefine <虚拟机名>
# 删除配置并同时删除磁盘文件("彻底消失")
virsh undefine <虚拟机名> --remove-all-storage
B、虚拟机信息查看与监控
1、查看VM信息
# 查看VM的CPU、内存、状态等概要信息
virsh dominfo <虚拟机名>
2、查看VM状态
# 快速查看VM的运行状态
virsh domstate <虚拟机名>
3、查看VNC端口
virsh vncdisplay <虚拟机名>
4、查看IP地址
# 快速查看虚拟机的IP地址(需要Guest Agent支持)
virsh domifaddr <虚拟机名>
5、查看虚拟网卡
# 查看VM的网卡连接到了哪个宿主机网络
virsh domiflist <虚拟机名>
C、虚拟机配置修改(在线热插拔)

不用关机就能修改配置

1、编辑配置
# 在默认编辑器中打开XML配置并持久化修改(注意:通常需要重启VM生效)
virsh edit <虚拟机名>
2、挂载磁盘
# 热插拔一块虚拟磁盘(比如vdb,vdc)
virsh attach-disk <虚拟机名> <源路径> <目标路径>
3、热卸载磁盘
virsh detach-disk <虚拟机名> <目标设备>
4、热卸载网卡
virsh attach-interface <虚拟机名> ...
5、动态调整内存(需要VM支持)
virsh setmem <虚拟机名> <大小>
6、调整CPU
# 动态调整CPU个数(需要VM支持)
D、虚拟机快照管理
1、创建快照
# 为虚拟机创建一个快照(存档)
virsh snapshot-create-as <虚拟机名> <快照名>
2、列出快照
# 查看该虚拟机有哪些快照
virsh snapshot-list <虚拟机名>
3、恢复快照
# 将虚拟机恢复到指定快照状态(读档)
virsh snapshot-revert <虚拟机名> <快照名>
4、删除快照
virsh snapshot-delete <虚拟机名> <快照名>
E、宿主机资源管理(网络与存储)
1、列出网络
# 列出所有的虚拟网络
virsh net-list --all
2、列出存储池
# 列出所有的存储池
virsh pool-list --all
3、列出存储卷
# 列出某个存储池中的所有存储卷(虚拟磁盘)
virsh vol-list <存储池名>
4、创建存储卷
# 创建一个新的qcow2虚拟磁盘
virsh vol-create-as <池> <卷名> <容量>
5、删除存储卷
# 删除一个虚拟磁盘文件
virsh vol-delete <卷名> --pool <池>
F、其他高频命令
1、连接控制台
virsh console <虚拟机名>
2、设置自启动
# 设置开机自启动
virsh autostart <虚拟机名>
3、取消自启动
virsh autostart --disable <虚拟机名>
目录
相关文章
|
3月前
|
存储 调度 KVM
深入浅出KVM虚拟化技术原理——Ansible安全基线配置(一)
本文深入解析KVM虚拟化核心机制,涵盖内核如何调度QEMU进程与KVM模块协同工作、CPU虚拟化扩展(VT-x/AMD-V)的硬件加速原理,以及存储池的管理与优势,助你全面掌握KVM底层运行逻辑。
403 11
|
3月前
|
存储 Kubernetes 数据库
K3S ——轻量化K8S 入门指南
本文介绍轻量级Kubernetes发行版K3s,适用于边缘计算、IoT等场景。涵盖其架构、安装部署(单节点/高可用/离线)、核心组件、网络存储配置及生产建议,助力快速构建轻量化容器平台。
745 4
|
3月前
|
缓存 Linux KVM
深入浅出KVM内存管理——Ansible安全基线配置(一)
本文介绍了KVM的内存管理机制设计,用于帮助大家更深入理解KVM的内存管理
321 4
|
3月前
|
JSON 网络安全 数据格式
深入浅出Ansible技术原理——Ansible安全基线配置(一)
本系列深入解析Ansible安全自动化,涵盖其无代理、幂等性、声明式三大设计哲学,剖析基于Python的内核原理与SSH通信机制,并详解Inventory、Roles、Handlers、Vault等核心组件与最佳实践,助你从入门到精通,构建高效、安全、可复用的自动化运维体系。
274 7
|
3月前
|
监控 安全 Linux
Linux如何部署服务并设置为开机自启
系统ctl命令用于管理Linux服务,包括启动、停止、重启和重载配置等操作。journalctl命令可查看特定服务日志。编写服务文件时需定义[Unit]、[Service]和[Install]部分,通过systemctl管理新服务并设置开机自启。
367 14
|
1月前
|
存储 人工智能 移动开发
2026年阿里云最新域名类活动,注册、续费和转入相关活动参考
本文为大家整理了2026年阿里云域名注册、续费和转入相关的,如万网新客权益中心推出39元AI建站赠.CN域名、.com低至35元、.net注册39元起等活动;域名转入每周三享低价,批量注册.cn低至19元、.net低至51元;特色域名如.xin、.xyz等1元起限时特惠。
1109 8
|
1月前
|
人工智能 自然语言处理 搜索推荐
智能体来了,智创未来:当人工智能开始真正“做事”
智能体来了,智创未来:AI正从“会聊天”迈向“能做事”。依托大模型、算力与工具调用,智能体具备目标理解、规划决策与持续行动能力,成为真正的数字助手。它重塑工作流程,推动产业智能化,标志着人工智能进入新阶段。
104 2
|
6月前
|
人工智能 运维 Cloud Native
阿里云Serverless计算产品入选Gartner®报告「领导者」象限!
近日,Gartner® 发布了 2025 年度全球《云原生应用平台魔力象限》报告,阿里云凭借 Serverless 应用引擎 SAE(以下简称 SAE)和函数计算 FC,成为亚太地区唯一入选「领导者象限」的科技公司。
586 16
|
3月前
|
监控 安全 Linux
使用 Ansible 自动化部署 Snort3 入侵检测系统:从零到生产环境(RedHat)
本文介绍如何使用Ansible自动化部署Snort3入侵检测系统,涵盖从环境准备、分层架构设计到生产级配置的完整流程。通过基础设施即代码实现一键部署、配置验证与规则管理,提升部署效率与一致性,助力企业快速构建可靠的网络安全防线。(238字)
256 11
|
2月前
|
人工智能 NoSQL API
【Azure Policy】实现拒绝新建/可以修改已存在资源的 Azure Policy 方案
本文介绍如何在Azure中通过结合Audit策略、豁免(Exemption)和Deny策略,实现“禁止新建资源但允许修改已有资源”的管控需求,解决Azure Policy无法直接区分创建与修改操作的限制,提供一种实用的变通方案。
129 8