内容
活动
关注

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 <虚拟机名> 
目录
相关文章
|
2天前
|
存储 调度 KVM
深入浅出KVM虚拟化技术原理——Ansible安全基线配置(一)
本文深入解析KVM虚拟化核心机制,涵盖内核如何调度QEMU进程与KVM模块协同工作、CPU虚拟化扩展(VT-x/AMD-V)的硬件加速原理,以及存储池的管理与优势,助你全面掌握KVM底层运行逻辑。
59 11
|
8天前
|
SQL 数据采集 人工智能
评估工程正成为下一轮 Agent 演进的重点
面向 RL 和在数据层(SQL 或 SPL 环境)中直接调用大模型的自动化评估实践。
228 36
|
8天前
|
人工智能 JSON Java
AI时代,我们为何重写规则引擎?—— QLExpress4 重构之路
AI时代下,规则引擎的需求反而更旺盛。QLExpress4 通过全面重构,在性能、可观测性和AI友好性上大幅提升。
253 14
AI时代,我们为何重写规则引擎?—— QLExpress4 重构之路
|
20天前
|
Kubernetes Java Go
Cloud Naive最佳开发实践
经过多年的工作,我们的精神导师John领悟了java那一套docker in docker的艺术并带到golang项目架构设计中。
373 49
|
3天前
|
自然语言处理 语音技术 Apache
阶跃星辰发布首个开源 LLM 级音频编辑大模型 Step-Audio-EditX
阶跃星辰发布全球首个开源LLM级音频编辑大模型Step-Audio-EditX,支持零样本TTS、多语言方言及情感、风格、副语言特征精准控制,采用统一LLM框架,实现文本驱动音频创作。
187 16
|
18天前
|
人工智能 开发框架 安全
浅谈 Agent 开发工具链演进历程
模型带来了意识和自主性,但在输出结果的确定性和一致性上降低了。无论是基础大模型厂商,还是提供开发工具链和运行保障的厂家,本质都是希望提升输出的可靠性,只是不同的团队基因和行业判断,提供了不同的实现路径。本文按四个阶段,通过串联一些知名的开发工具,来回顾 Agent 开发工具链的演进历程。
267 40
|
3天前
|
搜索推荐 算法 小程序
基于微信小程序的个性化漫画阅读推荐系统
本研究设计并实现基于微信小程序的个性化漫画推荐系统,结合用户行为数据与先进算法,提升阅读体验与平台黏性,推动漫画产业数字化发展。
|
1月前
|
人工智能 安全 API
近期 AI 领域的新发布所带来的启示
2024 年以来,AI 基础设施的快速发展过程中,PaaS 层的 AI 网关是变化最明显的基建之一。从传统网关的静态规则和简单路由开始,网关的作用被不断拉伸。用户通过使用网关来实现多模型的流量调度、智能路由、Agent 和 MCP 服务管理、AI 治理等,试图让系统更灵活、更可控、更可用。国庆期间 AI 界发布/升级了一些产品,我们在此做一个简报,从中窥探下对 AI 网关演进新方向的启示。
304 26
|
存储 人工智能 安全
智存跃迁,阿里云存储面向 AI 升级全栈数据存储能力
一文总览阿里云存储产品创新与进展!
484 0
下一篇