实验环境准备
一台笔记本电脑作为本地PC、在电脑上安装VMware,搭建一台RedHat Linux7版本的虚拟机作为宿主机,在宿主机上安装KVM来搭建一台RedHat Linux7版本的虚拟机。
宿主机的配置为 8G内存,4CPU、8内核、IP为192.168.200.160、网卡选择为仅主机模式,勾选虚拟化Inter VT-x/EPT或AMD-V/RVI(V)
在宿主机上安装KVM
配置yum源,配置ip地址,关闭防火墙,
安装KVM [root@localhost yum.repos.d]# yum groupinstall Virtualization* -y
装完KVM虚拟化之后系统会生成一张网卡virbr0,相当于使用的VMware时产生的VMnet8
使用KVM
[root@localhost Desktop]# virt-manager
设置虚拟机名字,选择安装方式
Local install :本地镜像安装
Network install:网络源安装
Network boot(PXE):PXE批量安装
Import existing disk image :导入已存在的磁盘镜像(qcow2格式)
我这里使用第二种网络源,因为我配置了网络yum源,可以指向iso文件
接下来配置虚拟机内存、cpu
选择安装位置
这里可以选择默认的,选择默认的系统会在/var/lib/libvirt/images目录下生成一个8G的精简磁盘镜像文件,server1.qcow2,实际大小没有8G.
也可以自己选择,自己选择可以选择安装在裸设备上,或者安装在自己定义的文件上,安装在裸设备上性能较好,但不能迁移,安装在文件上性能没有那么好,但支持迁移,我选择自己安装在自定义的文件上。
添加一块磁盘,对磁盘分区格式化挂载,并将挂载信息写入/etc/fstab,进入挂载目录,生成一个qcow2格式的文件
qemu-img create -f qcow2 -o preallocation=metadata server1.qcow2 40G
查看文件实际大小,可以看到实际文件大小只有6,5M
选择自己创建的文件
这里选择网络,可以看到KVM本身不带有桥接网卡,但是为了通信,所以需要自己配置桥接网卡
在宿主机上配置Bridge
默认情况下装完KVM后系统存在bridge-utils包,没有这个包就做不了Bridge
将系统默认网卡复制一份为ifcfg-br0
[root@localhost network-scripts]# cp ifcfg-eno16777736 ifcfg-br0
配置这两张网卡
[root@localhost network-scripts]# vim ifcfg-br0
[root@localhost network-scripts]# vim ifcfg-eno16777736
重启网路 [root@localhost network-scripts]# systemctl restart network
发现出现一张新的网卡br0
这时再回来选择网络,可以看到Bridge
将物理机和虚拟机全部连接到Bridge上,Bridge相当于虚拟交换机,你的网卡相当于虚拟交换机的上行链路,这样内部虚拟机可以实现和外部PC的通信。
如果想要多条上行链路,可以做双网卡绑定band,将band做为上行链路
选择默认配置,开始安装虚拟机redhat7
安装完成后配置虚拟机redhat的IP地址为192.168.200.100
使用宿主机测试虚拟机网络连通性
使用本地PC测试虚拟机网络连通性
KVM的基础操作命令
[root@localhost ~]# virsh list 列出所有开机的虚拟机
列出所有虚拟机(我这里只有一台,如果有很多台,开机和关机状态的会全部列出)
[root@localhost ~]# virsh list --all
Id Name State
----------------------------------------------------
4 redhat7 running
关闭虚拟机 virsh shutdown id
[root@localhost ~]# virsh shutdown redhat7
Domain redhat7 is being shutdown
开启虚拟机 virsh start id
[root@localhost ~]# virsh start redhat7
Domain redhat7 started
重启虚拟机 virsh reboot id
[root@localhost ~]# virsh reboot redhat7
Domain redhat7 is being rebooted
强制关闭虚拟机 virsh destroy id
[root@localhost ~]# virsh destroy redhat7
Domain redhat7 destroyed