1.虚拟化分类
1.全虚拟化:virtualbox,vmware等。都是模拟出来的,性能比较低。
2.半虚拟化:xen,真正给虚拟机使用物理资源。
3.硬件辅助虚拟化:KVM,利用CPU的虚拟化功能。
2.KVM
kernel-base virtual machine:内核的一个模块。
内核模块对于用户空间,用户空间无法直接操作该模块,所以需要一个中间工具来操作。
工具包含:qemu,qemu-kvm等,但不是很好用。所以红帽开了一个libvirt接口。
然后使用virtsh,virt-manager等工具来操作libvirt,从而管理KVM。
Libvirt是由一个服务来管理的,叫Libvirtd。
3.安装KVM
1.打开CPU虚拟化功能。
windows下使用CPU-Z软件可以查看。
Linux是在/proc/cpuinfo中,查看flags行,查看是否存在以下字段:
#AMD CPU:svm
#Intel CPU:vmx
grep '(svm|vmx)' /proc/cpuinfo:查看是否开启虚拟化。
若没有开启:
物理机:去BISO中enable VT功能。
虚拟机:关闭虚拟机,开启CPU虚拟化功能。
再次检查:
2.安装KVM
yum groupinstall virtual*:安装kvm套件。(不建议单独安装包)
3.使用virt-manager
注意虚拟机的配置:
磁盘总线类型:
网卡设备型号:
显示协议:
4.KVM网络
桥接网络:
1.桥接之前,宿主机(物理机)的数据包是直接走eth1出去的(图中虚线)。做了桥接后,虚拟机的虚拟网卡桥接到br0上,物理机的eth1也桥接到br0上,虚拟机和物理机的数据包都通过br0来发送(图中实线)。
2.桥接后,eth1上的IP消失,IP会配置在br0上。
3.由于虚拟机和物理机处于同一二层网络,都可以通过Router上的DHCP服务器分配IP。
在Linux上创建一个桥:
使用图形化工具:
nm-connection-editor &:打开图形化界面。创建网络类型选择桥接。
设置完毕后,重启网络服务:systemctl restart network.service
/etc/sysconfig/network-scripts/ifcfg-br0中查看网桥配置:
/etc/sysconfig/network-scripts/ifcfg-br0-slave1中查看物理网卡桥接到网桥上的配置。
图中的HWADDR就是物理网卡eth0的MAC地址。
做好网桥br0并将物理网卡eth0桥接到br0上后,我们就可以将虚拟机的网卡桥接到br0上,实现通讯。
NAT网络:
在安装好KVM虚拟化环境后,宿主机系统中会自动生成一个网卡virbr0。该网卡是默认提供的NAT网络的网关,IP地址是192.168.xxx.1。我们可以在virt-manager中查看并配置: