kvm
brctl show
brctl delif ena eth1; 格式:brctl delif 桥接名 接口
ifconfig ena down;
brctl delbr ena;
检查cpu虚拟化支持
1 | grep -E vmx /proc/cpuinfo |
依赖包功能介绍:
1 2 3 4 5 6 7 8 9 10 11 | qemu-kvm #该软件包主要包含KVM内核模块和基于KVM重构后的QEMU模拟器。<br>#-- KVM模块 作为整个虚拟化环境的核心,工作在系统空间,负责CPU和内存的调度。<br>#-- QEMU作为模拟器 工作在用户空间,负责虚拟机I/O模拟。 qemu-img #主要用来QEMU磁盘镜像的管理,如新建一块磁盘镜像给虚拟机。 libvirt #提供Hypervisor和虚拟机管理的API。 libvirt-client #KVM客户端命令行管理工具virsh,负责虚拟机的启动、停止和管理等。 libvirt-daemon #libvirtd守护进程,作为客户端管理工具跟Hypervisor和虚拟机之间的桥梁。 libvirt-daemon-driver-xxx #从名字来看属于libvirtd服务的驱动文件,作为libvirtd服务跟Hypervisor不同对象(如qemu模拟器,网络,存储等)间的接口。 bridge-utils #网桥管理工具包,负责桥接网络的创建、配置和管理等工作。 virt- install #创建和克隆虚拟机的命令行工具包。 virt-manager #图形界面的KVM管理工具。 |
安装kvm:
1 2 3 4 5 6 7 8 | vi /etc/yum .repos.d /CentOS-aliyun .repo [aliyun] name=CentOS-$releasever-aliyun baseurl=http: //mirrors .aliyun.com /centos/ $releasever /os/ $basearch/ enabled=1 gpgcheck=1 gpgkey= file : ///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 |
1 2 3 4 5 6 7 | vim /etc/resolv .conf #配置dns nameserver 114.114.114.114 yum -y install qemu-kvm libvirt virt- install bridge-utils #安装相关rpm包 systemctl enable libvirtd #启动libvirtd服务 systemctl start libvirtd |
5、配置bridge网络
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | [root@vfeelit network-scripts] # cat ifcfg-br0 DEVICE=br0 TYPE=Bridge BOOTPROTO=static IPV6INIT=no ONBOOT= yes IPADDR=192.168.1.66 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 DELAY=0 [root@vfeelit network-scripts] # cat ifcfg-eth0 DEVICE=eth0 TYPE=Ethernet BRIDGE=br0 BOOTPROTO=none IPV6INIT=no ONBOOT= yes |
附加说明:这里配置成桥接方式,实际上本机的数据包发送是通过br0发送的,br0的TYPE是Bridge,其它的信息跟配置一个物理网卡一样,本机的eth0通过桥接到br0(通过BRIDGE指定)进行通信,它根本不需要配置IP信息,实际上数据发送还是通过本机的物理网卡
重启网络
1 | service network restart |
查看桥接网络
1 2 3 4 | [root@vfeelit ~] # brctl show bridge name bridge id STP enabled interfaces br0 8000.0021cc6b6f2c no eth0 virbr0 8000.525400ac7ebe yes virbr0-nic |
6、创建虚拟机
1 2 3 4 5 6 7 8 9 | virt- install --name=centos1 -- ram =4096 --vcpus=2 \ --cdrom= /mnt/centos/CentOS-7-x86_64-Minimal-1511 .iso \ --os- type =linux --network bridge=br0 \ --disk path= /home/centos/centos1 .img,size=20 \ --vnc --vnclisten=0.0.0.0 --vncport=5920 |
查看img文件
1 2 3 4 5 | [root@vfeelit] # qemu-img info centos.img image: centos.img file format : raw virtual size: 10G (10737418240 bytes) disk size: 1.4G |
7、
1 2 3 4 5 6 7 | virsh list #显示正在运行的虚拟机 virsh list --all #显示所有虚拟机 virsh start vm6 #启动名字为vm6的虚拟机 virsh shutdown vm6 #关闭名字为vm6的虚拟机 virsh destroy vm6 #强制关闭名字为vm6的虚拟机 virsh undefine vm6 #移除名字为vm6的虚拟机 virsh autostart vm6 #设置vm6虚拟机开机启动 |
8、重命名虚拟机
1 2 3 4 | 导出虚拟机的配置文件 virsh dumpxml vm5 > /etc/libvirt/qemu/reg .xml 编辑配置文件更改名字 vi /etc/libvirt/qemu/reg .xml ==> <name>reg< /name > 移除原有虚拟机 virsh undefine vm5 加载新的虚拟机 virsh define reg.xml |
9、虚拟机创建快照
1 2 3 4 5 6 | virsh shutdown vm5 && qemu-img convert -f raw -O qcow2 vm5.img vm5qcow2.img #转换磁盘镜像文件格式为qcow2 virsh snapshot-create-as vm5 ok #创建快照 virsh snapshot-list vm5 #查看快照 virsh snapshot-revert vm5 ok #恢复快照 virsh snapshot-delete vm5 ok #删除快照 virsh help snapshot #获取帮助 |
验证内核模块
1 2 3 | # lsmod |grep kvm kvm kvm_intel |
以上输出说明内核模块加载成功,其中:
kvm作为核心模块,协同QEMU实现整个虚拟化环境的正常运行。
kvm_intel作为平台(Intel)独立模块,激活KVM环境的CPU硬件虚拟化支持。
开启路由转发功能:
1 2 | echo "net.ipv4.ip_forward = 1" >> /etc/sysctl .conf sysctl -p /etc/sysctl .conf |
支持vnc
1 2 | vi /etc/libvirt/qemu .conf vnc_listen = "0.0.0.0" |
创建虚拟机时,加上--vnc --vnclisten=0.0.0.0 --vncport=5920
1 2 3 4 5 | virsh- install --name=centos6.5 -- ram =4096 --vcpus=2 \ --cdrom= /mnt/centos/CentOS-6 .5-x86_64-bin-DVD1.iso --os- type =linux \ --network bridge=br0 \ --disk path= /home/centos/centos6 .5.img,size=20 \ --vnc --vnclisten=0.0.0.0 --vncport=5920 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现