kvm教程
KVM
虚拟化
虚拟机的组成
-
内核虚拟模块 ( KVM )
-
系统设备仿真 ( QEMU )
-
虚拟机管理程序 ( Libvirt )
-
一个 XML 文件 ( 虚拟机配置声明文件)
-
位置: /etc/libvirt/qemu
-
-
一个磁盘映像文件 ( 虚拟机的硬盘 )
-
位置: /var/lib/libvirt/images/
-
企业进化
-
将任意一种形式的资源抽象成另一种形式的技术

-
初期: 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 网络桥接功能
什么是桥接
**网桥介绍****: 我们经常所说的 Bridge 设备其实就是网桥设备,也就相当亍现在的二层交换机,用亍连接
同一网段内的所有机器,所以我们的目的就是将网络设备 eth0 添加到 br0,此时 br0 就成为了所谓的交换机设备,我们物理机的 eth0 也是连接在上面的。
添加桥接设备 br0:相当亍一个二层交换机
安装桥设备工具:
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












浙公网安备 33010602011771号