kvm教程
KVM
虚拟化#
虚拟机的组成#
企业进化#
-
将任意一种形式的资源抽象成另一种形式的技术#
-
初期: cup资源不够用时,会产生蓝屏,< 当一个应用蓝屏后,其他应用也会他停止,那么就一台服务器运行一个应用,(简单的说,就是应用隔离)>#
-
进化一: 一台服务器不够用#
-
进化二: 购买服务器,< 由于一台服务器只能运行一个项目,成本高>#
-
成熟阶段: 利用KVM 虚拟化技术,既实现了应用隔离,也实现了资源利用率#
虚拟化的几个重要概念#
虚拟化架构#
什么是KVM#
KVM 即 Kernel-based Virtual Machine 基亍内核的虚拟机。#
KVM,是一个开源 的系统虚拟化模块,自 Linux 2.6.20 之后集成在 Linux 的各个主要发行版本中。#
它使用 Linux 自身的调度器进行管理,所以相对亍 Xen,其核心源码很少。KVM 目前已成为学术界的主流 VMM(虚拟机监控器)之一。KVM 的虚拟化需要硬件支持(如* *Intel VT 技术戒者 AMD V 技术)。是基于硬件的完全虚拟化。而 Xen 早期则是基亍软件模拟的 Para-Virtualization。#
KVM:#
是挃基亍 Linux 内核的虚拟机(Kernel-based Virtual Machine)。是第一个整合到 Linux内核的虚拟化技术。在 KVM 模型中,每一个虚拟机都是一个由 Linux 调度程序管理的标准进程,你可以在用户空间启劢客户机操作系统。
一个普通的 Linux 进程有两种运行模式:内核和用户。 KVM 增加了第三种模式:客户模式(有自己的内核和用户模式)
KVM 支持 linux 以外的其它系统。比如:windows
QEMU:
是一套由 Fabrice Bellard 所编写的以 GPL 许可证分发源码的模拟处理器,在 GNU/Linux平台上使用广泛。QEMU 具有高速度和跨平台的特性,QEMU 能模拟至接近真实电脑的速度。
QEMU 能模拟整个电脑系统,包括中央处理器及其他周边设备。
QEMU 和 vmware 一样都是支持仿真虚拟化,效率比较低。
配置 KVM 前期准备工作#
KVM 实验拓扑图#
环境准备#
虚拟机规划#
安装一台 Centos7 Linux 系统, 并开启虚拟化
注意:
**安装时不知道怎么点,百度也很难找到,怎么办? **
查看是否支持虚拟化#
grep -Em 1 "vmx|svm" /proc/cpuinfo PS: svm是amdcpu,vmx是intel的cpu
装载模块#
先查看是否存在模块#
lsmod | grep kvm kvm_amd 2177212 0 kvm 586948 1 kvm_amd irqbypass 13503 1 kvm
如果没有模块,则执行以下操作#
modprobe kvm # 加载 kvm 模块 modprobe kvm-amd # 加载 amd 支持模块
检验#
ll /dev/kvm crw-------. 1 root root 10, 232 Jan 29 2022 /dev/kvm # 出现以下结果表明 “可以运行虚拟机”
实战一: 创建虚拟机#
命令行#
安装程序包
yum -y install qemu-kvm # Qemu-Kvm 命令行工具
创建软连接
- 查看命令路径 rpm -ql qemu-kvm /usr/libexec/qemu-kvm - 创建软连接 ln -sv /usr/libexec/qemu-kvm /usr/bin/qemu-kvm # 将 '/usr/libexec/qemu-kvm' 放入/usr/bin 形成快捷键
查看映像文件
ls /var/lib/libvirt/images/ # 映像文件路径 cirros-0.3.4-x86_64-disk.img # 使用此镜像运行虚拟机
使用qemu-img info命令查看虚拟磁盘映像文件信息
qemu-img info /image/kvm/cirros-0.3.4-x86_64-disk.img image: /image/kvm/cirros-0.3.4-x86_64-disk.img file format: qcow2 virtual size: 39M (41126400 bytes) disk size: 13M cluster_size: 65536 Format specific information: compat: 0.10
创建虚拟机
qemu-kvm -m 128 -smp 2 -name cirros -hda /image/kvm/cirros-0.3.4-x86_64-disk.img VNC server running on `::1:5900' -m : 指定虚拟内存 (MB) -smp : 指定虚拟CPU个数 -name: 指定虚拟机名字 -hda : 指定硬盘
访问虚拟机 < 通过VNC>
复制一个终端
下载软件 yum -y install tigervnc 会产生一个 'vncviewer' 命令
在桌面界面打开
vncviewer:5900
sudo su - # 进入root用户
图形化工具#
安装相关软件#
< libvirtd —— 虚拟化平台 >
yum -y install qemu-kvm libvirt virt-manager virt-install virt-viewer libvirt # 虚拟机管理工具 virt-manager # 图形化管理工具 virt-install # 命令行 virt-viewer # 图形化远程连接虚拟机工具
- 查看命令路径 rpm -ql qemu-kvm /usr/libexec/qemu-kvm - 创建软连接 ln -sv /usr/libexec/qemu-kvm /usr/bin/qemu-kvm # 将 '/usr/libexec/qemu-kvm' 放入/usr/bin 形成快捷键
设置开机自启#
systemctl start libvirtd systemctl enable libvirtd # 查看是否开启成功 systemctl is-enabled libvirtd enabled
进入图形化界面操作,并启动一台虚拟机#
virt-manager # 打开图形化界面
查看运行的虚拟机#
virsh list Id 名称 状态 ---------------------------------------------------- 5 centos7.0 running
实战二: 配置 KVM 网络桥接功能#
什么是桥接#
安装桥设备工具:#
yum -y install bridge-utils-1.5-9.el7.x86_64
把eth0绑到br0桥设备上:#
cd /etc/sysconfig/network-scripts/ cp ifcfg-eth0 /opt/ # 备份 eth0 network-scripts]# vim ifcfg-eth0 #编辑配置文件为以下内容 …… # 删除 IPADDR=10.0.0.6 PREFIX=24 GATEWAY=10.0.0.2 DNS1=114.114.114.114 …… BRIDGE="br0" #在文件最后插入这一行
生成桥设备的配置文件:
network-scripts]# vim ifcfg-br0 #创建 ifcfg-br0 文件,并写入以下内容 DEVICE="br0" NM_CONTROLLED="yes" ONBOOT="yes" TYPE="Bridge" BOOTPROTO=none IPADDR=10.0.0.6 PREFIX=24 GATEWAY=10.0.0.2 DNS1=114.114.114.114
注:TYPE="Bridge" , B要大写
重启服务#
systemctl restart network
测试 br0:#
ifconfig ping baidu.com
查看桥接信息#
network-scripts]# brctl show bridge name bridge id STP enabled interfaces br0 8000.000c2948cbaf no eth0 vnet1 virbr0 8000.5254000d84e6 yes virbr0-nic
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)