实验前,我们关闭防火墙。
systemctl stop firewalld
systemctl enable firewalld
如果我们之前安装过KVM或者有残余,可以先执行以下命令来清除一下。
yum remove `rpm -qa | egrep 'qemu|virt|KVM'` -y
rm -rf /var/1ib/libvirt /etc/1ibvirt/
yum clean all && yum makecache
清楚后我们在这一个干净环境下来安装KVM。
如果执行下面这条命令什么都没显示
lsmod | grep kvm #查看是否加载了kvm模块
#grep -E '(vmx|svm)' /proc/cpuinfo
#这条命令也可以查看,显示有vmx或svm就表明支持虚拟化
可以看下虚拟化开启了没有,如果是物理机上的,可以进BIOS界面查看。
开启后再执行如下图所示:
执行下面命令来安装我们的KVM的一些依赖(KVM属于内核态,不需要安装。但是需要一些类似于依赖的)
yum install libvirt virt-install qemu-kvm -y
如果觉得下载慢,我们可以更换阿里源来安装,更换如下:
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
安装好后,我们可以查看它的当前状态
systemctl status libvirtd | grep Active #查看KVM的状态
systemctl start libvirtd #开启KVM
virsh list --all #查看KVM上创建的所有虚拟机
ps -ef|grep dns
#libvirtd启动了一个dnsmasqp进程用来dhcp连接的,它作用在给虚拟机分配 IP 地址
可以看到,我们刚安装完,状态是active,还没有创建虚拟机,所有列表是空的。
现在我们上传要安装的镜像文件。
mkdir /kvm && mkdir /kvm/qemu #创建一个存放kvm镜像的目录和存放虚拟机磁盘文件的目录
mv CentOS-7-x86_64-DVD-2009_2.iso /kvm/CentOS-7-x86_64.iso #把上传的镜像文件移动到kvm目录下
KVM上创建虚拟机
默认NAT模式下创建虚拟机
执行下面命令创建一台虚拟机:
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /kvm/qemu/centos7.qcow2,format=qcow2,size=5 --cdrom /kvm/CentOS-7-x86_64.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
创建第一台使用vnc安装时,默认端口为5900开始,之后我们在宿主机上使用VNC Viewer进行后台安装
下载 VNC 查看器 |VNC® 连接 (realvnc.com)
安装完成后重启就可以登陆使用了
我们再使用命令virsh list --all查看,可以看到centos7名称的虚拟机正在运行中。
配置桥接模式创建虚拟机
我们编辑本地网卡ens33,在最后加上BRIDGE="br0"
vi /etc/sysconfig/network-scripts/ifcfg-ens33
#ifcfg-ens33配置文件内容:
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="2abd07e4-4b80-1bfc-9b21-c472d165a888"
DEVICE="ens33"
ONBOOT="yes"
BRIDGE="br0" #在配置文件最后加上
然后创建桥接网卡br0配置文件,内容如下:
vi /etc/sysconfig/network-scripts/ifcfg-br0
#ifcfg-br0配置文件内容:
DEVICE=br0
TYPE=Bridge
BOOTPROTO=dhcp
ONBOOT=yes
然后我们重启网络
systemctl restart network
可以看到我们多了一张网卡br0,地址为192.168.10.133
然后创建虚拟机选择网络模式为桥接:
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7-bridge --memory 1024 --vcpus 1 --disk /kvm/qemu/centos7-bridge.qcow2,format=qcow2,size=5 --cdrom /kvm/CentOS-7-x86_64.iso --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
我们查看一下centos7-bridge的vnc端口号:
virsh vncdisplay centos7-bridge
创建的虚机用VNC连接时从默认端口 5900 开始,即虚拟机一:192.168.10.133:5900 虚拟机二:192.168.10.133:5901。这里查看显示:0代表是5900端口。端口依次+1,
例如是:5那么代表是5905端口。
注意:如果查看 5900 端口开启,但是 VNC 无法连接 KVM 虚拟机时,看下防火墙是否开启。
用vnc连接进行安装,可以看到我们的网络是桥接br0的网络。
接下来就是系统的正常安装步骤,这里就不再作过多的详述了。