Centos7.6安装KVM
通过 yum安装 kvm 基础包和管理工具
KVM 是基于 x86 虚拟化扩展(Intel VT 或者 AMD-V) 技术的虚拟机软件,所以查看 CPU 是否支持 VT 技术,就可以判断是否支持KVM。有返回结果,如果结果中有vmx(Intel)或svm(AMD)字样,就说明CPU的支持的。
1 | cat /proc/cpuinfo | egrep 'vmx|svm' |
kvm相关安装包及其作用:
qemu-kvm
主要的KVM程序包python-virtinst
创建虚拟机所需要的命令行工具和程序库virt-manager
GUI虚拟机管理工具virt-top
虚拟机统计命令virt-viewer
GUI连接程序,连接到已配置好的虚拟机libvirt
C语言工具包,提供libvirt服务libvirt-client
为虚拟客户机提供的C语言工具包virt-install
基于libvirt服务的虚拟机创建命令bridge-utils
创建和管理桥接设备的工具
1 | # ------------------------ |
物理机网络配置
- KVM虚拟机默认是基于NAT进行网络配置的;
- 只有同一宿主机的虚拟机之间可以互相访问,但是跨宿主机是不能访问的;
- 虚拟机需要和宿主机配置成网桥模式后,虚拟机可以在局域网内可见。
NAT模式
NAT(Network Address Translation网络地址翻译),NAT方式是kvm安装后的默认方式。它支持主机与虚拟机的互访,同时也支持虚拟机访问互联网,但不支持外界访问虚拟机。
1 | [root@gvadmin ~]# virsh net-list |
nat模式:在nat模式中,KVM虚拟机之间需要配置与nat对应网段的信息,挂载到同一个设备下的kvm虚拟机完全可以通讯,KVM和虚拟机可以通讯,但是如果想要将kvm虚拟机的服务发布出去,则需要宿主机做DNAT端口映射到对应的虚拟机。`nat模式也是KVM默认的模式
我们可以看到NAT方式已经开启。而且default是宿主机安装VM支持模块的时候自动安装的。
我们也可以查看,系统中已经存在的网卡。使用ifconfig命令,如下:
其中virbr0是由宿主机虚拟机支持模块安装时产生的虚拟网络接口,也是一个switch和bridge,负责把内容分发到各虚拟机。几个虚拟机管理模块产生的接口关系如下图:
1 | [root@gvadmin ~]# ifconfig |
虚拟机配置
1 | [root@gvadmin ~]# ssh 192.168.122.101 |
自定义NAT网络
创建名为nat-br1的NAT网络
1 | cat /etc/libvirt/qemu/networks/nat-br1.xml |
启用新建的NAT网络
1 | virsh net-define /etc/libvirt/qemu/networks/nat-br1.xml |
验证
1 | [root@gvadmin ~]# brctl show |
bridge模式配置
Bridge方式即虚拟网桥的网络连接方式,是客户机和子网里面的机器能够互相通信。可以使虚拟机成为网络中具有独立IP的主机。桥接网络(也叫 物理设备共享)被用作把一个物理设备复制到一台虚拟机。网桥多用作高级设置,特别是主机多个网络接口的情况。
1 | [root@gvadmin ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens5f1 |
虚拟机配置
1 | ##此处配置的为unbutu系统 |
kvm虚拟机常用命令
1 | 常用参数说明 |