KVM系列教程(一)安装KVM
本实验环境采用VMware WorkStation 15及RHEL 7.3镜像部署安装。
一、环境要求
利用上述资源安装一台 内存为4G,存储为50G,NAT网络模式且开启虚拟化的虚拟机
开启虚拟化教程
1、在装机时或关机状态下,设置虚拟机配置,在处理器处打开 **虚拟机Intel VT-x/EPT 或 AMD-V/RVI(V) **选项
2、开机后。使用以下命令查看是否成功开启虚拟化(检索/proc/cpuinfo文件是否含有vmx或svm字符串)
egrep -o 'vmx|svm' /proc/cpuinfo
3、如命令有显示结果(vmx或svm),即为开启状态,反之请按步骤一操作后再次查看(此次实验采用intel物理主机,故显示为vmx)
二、基础配置
1、检查并配置网络
1)检查网卡配置,命令如下,网卡ens33无IP
ifconfig
2)修改配置文件并重启查看网络服务
#1、修改配置文件(不同版本文件可能为其他名称) vim /etc/sysconfig/network-scripts/ifcfg-ens33 #2、将配置文件ONBOOT=no 改为 ONBOOT=yes #3、将DHCP模式改为static或none模式并增加IP、子网掩码、网关等配置(配置文件内容如下图) #4、重启网络配置 systemctl restart network
此时,网卡ens33的IP 为192.168.81.134
2、关闭防火墙
#关闭防火墙服务 systemctl stop firewalld #将防火墙服务从开机启动列表移除 systemctl disable firewalld
3、关闭selinux
方法1:
#1、查看selinux状态(此时执行结果为enforcing) getenforce #2、临时关闭selinux(此时状态为permissive) setenforce 0 #3、永久关闭selinux(重启生效) vim /etc/selinux/config #将SELINUX=ENFORCING改为 SELINUX=disabed #4、重启虚拟机 reboot
方法2:
#1、查看selinux状态(此时执行结果为enforcing) getenforce #2、临时关闭selinux(此时状态为permissive) setenforce 0 #3、利用sed工具将第一个SELINUX= 后的文字更换为disabled sed -ri 's/^(SELINUX=).*/\1disabled/g' /etc/selinux/config #4、重启虚拟机 reboot
4、配置yum源
此处使用网易163镜像源(镜像源可参考ASFOR开源镜像站)
#使用curl工具下载repo文件 curl -o /etc/yum.repos.d/CentOS7-Base-163.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo sed -i 's/\$releasever/7/g' /etc/yum.repos.d/CentOS7-Base-163.repo sed -i 's/^enabled=.*/enabled=1/g' /etc/yum.repos.d/CentOS7-Base-163.repo #查看软件包数量 yum repolist
三、安装KVM
1、安装所需工具
yum -y install epel-release vim wget net-tools unzip zip gcc gcc-c++
2、安装KVM
yum -y install qemu-kvm qemu-kvm-tools qemu-img virt-manager libvirt libvirt-python libvirt-client virt-install virt-viewer bridge-utils libguestfs-tools
3、配置KVM服务器网络
#1、进入网卡配置文件目录 cd /etc/sysconfig/network-scripts/ #2、查看当前目录文件 ls #3、复制ens33配置文件,并粘贴至本目录,更名为ifcfg-br0 cp ifcfg-ens33 ifcfg-br0 #4、在ifcfg-ens33配置文件中增加如下内容(vim ifcfg-ens33) NM_CONTROLLED=no BRIDGE=br0 #此时,该文件内容如下图(ens33配置文件内容) #5、将ifcfg-br0中替换成如下内容(vim ifcfg-br0) TYPE=Bridge DEVICE=br0 NM_CONTROLLED=no BOOTPROTO=static NAME=br0 ONBOOT=yes IPADDR=192.168.81.134 //此处IP为ens33的IP地址 NETMASK=255.255.255.0 GATEWAY=192.168.81.2 //此处网关为nat当前网段的网关 DNS1=114.114.114.114 DNS2=8.8.8.8 #此时,该文件内容如下图(br0配置文件内容) #6、重启网络服务 systemctl restart network #7、查看当前网卡数量及相关配置 ip addr list
4、开启并检查KVM
1)、启动服务并将之加入开机启动列表
systemctl start libvirtd systemctl enable libvirtd
2)、验证安装结果
lsmod|grep kvm
3)、查看文件信息
ll /usr/lib/modules/3.10.0-514.el7.x86_64/kernel/arch/x86/kvm/
(如所查文件为xz压缩文件,请使用xz命令解压,此处为ko文件,故不解压)
4)、测试并验证安装结果
virsh -c qemu:///system list virsh –version virt-install --version
5)、创建连接并查看是否成功
ln -s /usr/libexec/qemu-kvm /usr/bin/qemu-kvm ll /usr/bin/qemu-kvm
6)、查看网桥信息
brctl show
7)、创建虚拟机
创建名为/root/test1.qcow2的镜像文件(名称及配置信息、镜像文件等请配置为符合需求的参数)
virt-install --virt-type=kvm --name=test1 --vcpus=2 --memory=2048 --location=/root/rhel-server-7.4-x86_64-dvd.iso --disk path=/root/test1.qcow2,size=10,format=qcow2 --network bridge=virbr0 --graphics none --extra-args='console=ttyS0' --force
参数说明:
--name 指定虚拟机的名称
--memory 指定分配给虚拟机的内存大小
maxmemory 指定可调节的最大内存大小,(KVM支持热调整虚拟机的资源)
--vcpus 指定分配给虚拟机的CPU核心数量
maxvcpus 指定可调节的最大CPU核心数量
--os-type 指定虚拟机安装的操作系统类型
--os-variant 指定系统的发行版本
--location 指定ISO镜像文件所在的路径,支持使用本地或网络资源路径
--disk path 指定虚拟硬盘所存放的路径及名称,size 则是指定该硬盘的可用大小,单位G
--bridge 指定使用某张桥接网卡
--graphics 指定是否开启图形
--console 定义终端的属性
target_type 定义终端的类型
--extra-args 定义终端额外的参数
KVM自动化安装脚本
内含检查虚拟化开启状态、配置YUM、安装KVM、关闭防火墙和SElinux、设置桥接网络、安装虚拟机(待测)、查看和连接虚拟机功能。
执行如下命令即可使用脚本:
wget https://www.asfor.cn/download/sh/kvm_install.sh && bash kvm_install.sh
备用脚本:
wget https://www.asfor.cn/download/sh/kvm_ins.sh && bash kvm_ins.sh
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义