目录
一、KVM 概述
二、KVM工作原理
三、部署KVM
四、新建虚拟机步骤
4.1 创建存储池并创建存储卷
4.1.1 创建存储池
4.1.2 创建存储卷
4.3 创建ISO存储池
4.4 生成新的虚拟机
一、KVM 概述
KVM 是 Kernel-based Virtual Machine 的缩写,是一种用于虚拟化的开源硬件虚拟化技术。它使用 Linux 内核的虚拟化模块,将物理服务器划分为多个虚拟机。
KVM 允许虚拟机直接访问物理硬件资源,从而提供出色的性能和稳定性,同时还支持许多常见的操作系统和应用程序。 KVM 使用了 QEMU (Quick Emulator) 作为其默认的虚拟机监控程序。
除此之外,KVM 还支持多种嵌入式和云计算场景,并且得到了广泛的应用。
二、KVM工作原理
KVM 的工作原理是使用 Linux 内核的虚拟化模块,将物理服务器划分为多个虚拟机。
具体来说,它在 Linux 内核之上构建一个虚拟化层,该虚拟化层允许多个虚拟机共享物理服务器上的计算资源(如 CPU、内存和 0 设备)。在此虚拟化层中,每个虚拟机都被视为单独的计算机,每个虚拟机可以运行不同的操作系统和应用程序。
KVM使用硬件虚拟化技术,即通过 intel VT-x 和 AMD-V 等 CPU 虚拟化指集的支持,将虚拟化性能提升到接近原生性能。
此外,KVM 还使用 QEMU 作为其虚拟机监控程序,QEMU为每个虚拟机提供了一个虚拟化的环境,在该环境中,虚拟机可以访问它需要的资源(如磁盘、网络和其他I/0 设备)。
同时,KVM 利用 Linux 内核的强大功能,如分时调度和内存管理,来确保多个虚拟机之间的隔离性和安全性。
综上所述,KVM 的工作原理是结合硬件虚拟化技术和 Linux 内核的虚拟化模块,创建出一个虚拟化层,将物理服务器划分为多个虚拟机,并为每个虚拟机提供一个虚拟化的环境,从而实现资源共享和隔离。
三、部署KVM
测试服务器
系统版本 | IP地址 | 最低资源配置 |
CentOS7.6 | 192.168.2.126 | CPU:8核 |
虚拟化软件:WMware ESXi、KVM | 7.0版本 |
- 宿主操作系统(在哪个操作系统上操作):CentOS 7.6
- 虚拟化软件:VMWare ESXI7.0、KVM
- 待安装操作系统(等下虚拟机建好后需要安装的操作系统):CentOS 7.6
基础环境设置
# 关闭防火墙和selinux
systemctl stop firewalld
systemctl disable firewalld
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
# 安装基本工具包。
yum -y install vim wget net-tools unzip zip gcc gcc-c++ epel-release
检测机器的CPU是否支持KVM。若显示结果由vmx(Intel)或svm(AMD)字样,就说明支持。
安装 KVM 和相关软件包,可以通过以下命令来安装:
yum -y install qemu-kvm qemu-kvm-tools virt-install qemu-img bridge-utils libvirt virt-manager
安装包说明:
KVM安装包 | 含义 |
qemu-kvm | 主要KVM程序包 |
virt-manager | GUI虚拟机管理工具 |
libvirt | C语言工具包,提供libvirt服务 |
qemu-kvm-tools | KVM调试工具 |
qemu-img | 安装qemu组件,使用qemu命令来创建磁盘,启动虚拟机 |
bridge-utils | 创建和管理桥接设备的工具 |
创建一个网络桥接器
cat > /etc/sysconfig/network-scripts/ifcfg-br0 << EOF
TYPE="Bridge"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="br0"
UUID="4eaf3908-3128-4e53-84a8-fd13984e4525"
DEVICE="br0"
ONBOOT="yes"
IPADDR="192.168.2.126"
GATEWAY="192.168.2.254"
EOF
cat > /etc/sysconfig/network-scripts/ifcfg-ens192 << EOF
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens192"
UUID="4eaf3908-3128-4e53-84a8-fd13984e4525"
DEVICE="ens192"
ONBOOT="yes"
IPADDR="192.168.2.126"
GATEWAY="192.168.2.254"
BRIDGE=br0
EOF
重启网络
systemctl restart network
进入virt-manager 工具
四、新建虚拟机步骤
4.1 创建存储池并创建存储卷
双击QEMU/KVM
进入如下界面
4.1.1 创建存储池
选择如图存储
点击“+”
存储池命令“kvm”
存储池路径“/images/kvm”
创建完成
4.1.2 创建存储卷
"kvm"存储池下创建存储卷,选择“+”
命名“centos7.6-test”,分配大小30G
4.2 创建ISO存储池
命名镜像存储“ISO”
存储镜像路径“/images/ISO”
镜像上传到/images/iso/
刷新后我们可以在ISO存储池中看到上传的centOS7镜像
4.3 生成新的虚拟机
虚拟机管理器选择创建新的虚拟机
生成新虚拟机选择本地安装介质
选择镜像位置
选择ISO存储池的 centOS-7 镜像
镜像选择完成后,下一步
根据资源大小,选择合适的内存和CPU,下一步
自定义存储
选择kvm存储池中“centos7.6-test”存储卷
选择存储卷后下一步
自定义存储完成后选择完成
弹出界面如下
选择“Boot Options”,自动重启勾选
选择“IDE CDROM 1” 关联镜像
选择镜像路径
选择ISO存储池中 centos-7 镜像
镜像关联完成后,选择完成
选择开始安装
镜像操作系统安装界面
选择语言
配置时区、存储、网络
设置root 密码
安装完成后重启
登录后linux
在虚拟机的宿主机 ping 虚拟机IP:192.168.2.109可以 ping通,因为是桥接的远程通不了。
ping 192.168.2.109
生成的虚拟机IP
KVM 介绍及作用详解_Kvm_脚本之家