初识KVM
一、安装KVM

实验环境如下:

虚拟机版本:VMware 12.5.7
虚拟机需要开启虚拟化,如下图:

centos 7 安装KVM_centos

系统版本:CentOS Linux release 7.5.1804 (Core)

[root@localhost ~]# cat /etc/redhat-release  # 查看系统版本

查看本机是否支持虚拟化:
linux系统中,可以通过检查/proc/cpuinfo文件中的CPU特性标志(flags)来查看CPU目前是否支持硬件虚拟化。在x86和x86_64平台中,Intel系列CPU支持虚拟化的标志位vmx。在AMD系列CPU的标志位svm。可以使用命令查看CPU的标志(flags)从而知道CPU是否支持虚拟化。

[root@localhost ~]# egrep 'vmx|svm' /proc/cpuinfo

如下图表示支持虚拟化:

centos 7 安装KVM_虚拟化_02

安装KVM

[root@localhost ~]# yum install qemu-kvm libvirt libvirt-python libguestfs-tools virt-install -y

启动KVM并设置开机自启动

[root@localhost ~]# systemctl enable libvirtd && systemctl start libvirtd

创建用于桥接的网卡br0:

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
BOOTPROTO=static
IPV6INIT=yes
IPV6_AUTOCONF=yes
ONBOOT=yes
TYPE=Bridge
DELAY=0
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.2
DNS1=192.168.1.2      

用本机enss33网卡与br0网卡进行桥接。

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
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=29376e6e-0b10-4327-b770-858bb444fb0b
DEVICE=ens33
ONBOOT=yes
#IPADDR=192.168.1.100
#NETMASK=255.255.255.0
#GATEWAY=192.168.1.2
#DNS1=192.168.1.2
BRIDGE=br0  # 桥接的网卡

配置完成后重启网络并查看:

[root@localhost ~]# systemctl restart network
[root@localhost ~]# ifconfig

centos 7 安装KVM_linux_03

创建镜像文件目录和虚拟机硬盘存放目录如下:

[root@localhost ~]# mkdir /opt/ISO/ /opt/kvm_image/

ISO目录由于存放:系统镜像文件。

Kvm_image用于存放虚拟机硬盘文件。

创建虚拟机

使用命令行的方式创建虚拟机

[root@localhost kvm_image]# virt-install --name=kvm_test --memory=512,maxmemory=1024 --vcpus=1,maxvcpus=2 --os-type=linux --os-variant=rhel7 --location=/opt/ISO/CentOS-7-x86_64-DVD-1804.iso --disk path=/opt/kvm_image/centos7.raw,size=10 --bridge=br0 --graphics=none --console=pty,target_type=serial  --extra-args="console=tty0 console=ttyS0"

查看物理机CPU的个数:

# 查看CPU的物理个数
cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc –l

# 查看CPU的逻辑个数
cat /proc/cpuinfo | grep "processor" | wc -l

如果一切顺利你会看到如下:

centos 7 安装KVM_centos_04

我们先输入1,设置语言环境。

centos 7 安装KVM_虚拟化_05

设置完成后如下:

centos 7 安装KVM_虚拟主机_06

输入2回车后这时,我们来到如下:

centos 7 安装KVM_创建虚拟机_07

接下来设置区域

centos 7 安装KVM_虚拟主机_08

选择好区域后,设置地区,我们这里选择上海。

centos 7 安装KVM_linux_09

设置完成后,我们会看到如下:

centos 7 安装KVM_虚拟化_10

格式化磁盘:

centos 7 安装KVM_虚拟主机_11

使用标准分区:

centos 7 安装KVM_虚拟主机_12

分区完成后,设置root密码:

centos 7 安装KVM_创建虚拟机_13

创建完成后如下所示:

centos 7 安装KVM_创建虚拟机_14

关于如何创建标准用户,就不演示了,比较简单,接下来直接输入b,开始安装系统。安装完成后,回车退出安装,进入系统。

centos 7 安装KVM_linux_15

重启后到达登录界面:

centos 7 安装KVM_虚拟化_16

登录成功后,查看下当前网络:

centos 7 安装KVM_虚拟主机_17

当前eth0网卡还没有地址执行如下命令:

centos 7 安装KVM_虚拟化_18

这样便获取到了IP地址,但不能每次都手动获取地址,编辑网卡配置文件:

[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
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=eth0
UUID=4c9fa0dc-6e40-4500-8fdc-191008439271
DEVICE=eth0
ONBOOT=yes  # 开机后自动获取地址

以上便是使用命令行的方式创建虚拟机。

使用VNC的方式创建虚拟机

安装VNC客户端

[root@localhost ~]# yum -y install tigervnc

创建虚拟机

[root@localhost ~]# virt-install --name=vnc_test --os-variant=rhel7 --memory=512 --vcpus=2 --cdrom=/opt/ISO/CentOS-7-x86_64-DVD-1804.iso --disk path=/opt/kvm_image/centos7_vnc.raw,size=10 --bridge=br0 --vnc --vnclisten=0.0.0.0 --vncport=6666 --noautoconsole

如果一切顺利你会看到如下:

centos 7 安装KVM_虚拟主机_19

查看端口:

centos 7 安装KVM_虚拟化_20

这时我们登录centos 7桌面环境,或者在Windows上安装VNC Viewer,用于安装虚拟机。

centos 7 安装KVM_linux_21

关于系统安装步骤这里就不演示了。

常用命令:

virsh list --all      # 列出所有虚拟主机

virsh list            # 列出正在运行的虚拟主机

virsh shutdown kvm-1  # 停止虚拟主机

virsh start kvm-1     # 开启虚拟机

virsh autostart kvm-1  # 设置虚拟机跟随系统一起启动

virsh autostart --disable kvm-1  # 禁止虚拟机跟随系统一起启动

virsh suspend kvm-1  # 挂起虚拟机

virsh resume kvm-1   # 恢复挂起的虚拟机

# 删除虚拟机执行如下:
virsh shutdown kvm-1   # 停止虚拟主机
virsh destory kvm-1    # 销毁虚拟主机
virsh undefine kvm-1   # 删除虚拟主机
虚拟机删除后,根据情况决定是否删除虚拟机的硬盘。