一、环境介绍

1、查看系统版本

[root@kvmserver ~]# cat /etc/centos-release
CentOS Linux release 7.7.1908 (Core)
[root@kvmserver ~]# uname -r
3.10.0-1062.el7.x86_64

2、验证CPU是否支持虚拟化

输入有vmx或svm就支持,支持虚拟化则就支持KVM

cat /proc/cpuinfo | egrep 'vmx|svm'

KVM 部署在裸机上 kvm虚拟化部署_命令行


我们看到我的这台电脑支持的vmx ,intel的虚拟化

3、分区大小

在这里需要注意的是,安装系统的时候建议给var分区大一点,我这里给了根分区150G,所以等下要自定义存储池,不能使用默认的池。

[root@kvmserver ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 3.8G     0  3.8G    0% /dev
tmpfs                    3.9G     0  3.9G    0% /dev/shm
tmpfs                    3.9G   13M  3.8G    1% /run
tmpfs                    3.9G     0  3.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root  150G  4.0G  147G    3% /
/dev/sda1                497M  177M  321M   36% /boot
/dev/mapper/centos-var   3.5G  518M  3.0G   15% /var
/dev/mapper/centos-home   30G   39M   30G    1% /home
tmpfs                    781M  8.0K  781M    1% /run/user/42
tmpfs                    781M     0  781M    0% /run/user/0

二、安装KVM

yum install qemu-kvm qemu-img \
 virt-manager \
 libvirt libvirt-python libvirt-client  \
 virt-manager \
 virt-install \
 virt-viewer -y
  • qemu-kvm: KVM模块
  • libvirt: 虚拟管理模块
  • virt-manager: 图形界面管理虚拟机
  • virt-install: 虚拟机命令行安装工具

1、启动libvirt并设置开机自启

systemctl start libvirtd && systemctl enable libvirtd

2、查看KVM模块加载

lsmod | grep kvm
[root@kvmserver ~]# lsmod | grep kvm
kvm_intel             188644  0 
kvm                   621480  1 kvm_intel
irqbypass              13503  1 kvm

三、KVM安装虚拟机方法介绍

序号

安装方式

重要程度

难易程度及是否常用

01

图形方式安装

非常重要

非常简单

02

完全文本模式

现场配置虚拟机的规格

一般适用于不带图形界面的宿主机

03

命令行模式

重中之重

非常常用,模板镜像+配置文件

04

通过飞机驾驶舱安装和管理虚拟机

了解

飞机驾驶舱

我们先介绍一下这个飞机驾驶舱模式,其他几种我们在后面分章节重点讲解
首先需要安装cockpit

yum -y install cockpit
systemctl start cockpit

然后浏览器访问:
服务器地址+9090端口,然后输入kvm服务器的root和密码即可登陆。

127.0.0.1:9090

KVM 部署在裸机上 kvm虚拟化部署_centos_02

四、图形化安装虚拟机

因为我的服务器是分区是自定义分区,所以根目录空间最大。

[root@kvmserver ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 3.8G     0  3.8G    0% /dev
tmpfs                    3.9G     0  3.9G    0% /dev/shm
tmpfs                    3.9G   13M  3.8G    1% /run
tmpfs                    3.9G     0  3.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root  150G  9.1G  141G    7% /
/dev/sda1                497M  177M  321M   36% /boot
/dev/mapper/centos-var   3.5G  532M  3.0G   15% /var
/dev/mapper/centos-home   30G   40M   30G    1% /home
tmpfs                    781M     0  781M    0% /run/user/0
tmpfs                    781M   40K  781M    1% /run/user/1000
[root@kvmserver ~]#

所以我准备在根目录新建kvmdata目录用来做存储池。

[root@KVMserver ~]# mkdir /kvmdata

进入图形化

[root@KVMserver pokes]# virt-manager

KVM 部署在裸机上 kvm虚拟化部署_服务器_03


新建虚拟机

KVM 部署在裸机上 kvm虚拟化部署_服务器_04


KVM 部署在裸机上 kvm虚拟化部署_命令行_05


我们点击浏览选择镜像位置。但是在选择镜像之前还必须创建存储池。

1、创建存储池

名称可以随便起,但是最好和目录名一致。

KVM 部署在裸机上 kvm虚拟化部署_centos_06


上图中类型中,我们选择dir:文件系统,从下图中可以看到支持的种类很多:

KVM 部署在裸机上 kvm虚拟化部署_centos_07


这里我们就不一一介绍了,我们继续我们的实验。

2、选择存储池的路径

抱歉图中的字敲错了,应该是存储池的路径

KVM 部署在裸机上 kvm虚拟化部署_服务器_08


这样我们的存储池就创建完了。接下来我们找到镜像的位置。

KVM 部署在裸机上 kvm虚拟化部署_KVM 部署在裸机上_09

KVM 部署在裸机上 kvm虚拟化部署_服务器_10


KVM 部署在裸机上 kvm虚拟化部署_命令行_11

KVM 部署在裸机上 kvm虚拟化部署_centos_12


KVM 部署在裸机上 kvm虚拟化部署_centos_13

3、创建存储卷

KVM 部署在裸机上 kvm虚拟化部署_KVM 部署在裸机上_14


在下图中的格式中有三种选择可供选择,我们这里选择默认qcow2

KVM 部署在裸机上 kvm虚拟化部署_服务器_15


KVM 部署在裸机上 kvm虚拟化部署_centos_16


KVM 部署在裸机上 kvm虚拟化部署_命令行_17

注意:在这里容易出现报错

我在这里遇到了,引导失败:找不到DEFAULT或UI配置指令! 这个问题是你的iso镜像有问题,我重新在阿里云下载了镜像之后,问题就解决了。

KVM 部署在裸机上 kvm虚拟化部署_命令行_18

五、查看虚拟机

[root@kvmserver ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 2     centos7.0-01                   running

命令行安装

[root@openstack ~]# virt-install --name template --ram=10240 --vcpus=2 \
--cdrom=/home/iso/CentOS-7-x86_64-DVD-1708.iso \
--disk path=/home/images/template.qcow2,size=10 \
--network network=default --graphics vnc
  • –name:虚拟机的名字
  • –ram:虚拟机的内存
  • –vcpus:虚拟机的cpu个数
  • –cdrom:从本地安装
  • –disk:生成的磁盘文件的路径,可以自动生成,也可以提前创建
  • size:磁盘的大小
  • –network:指定网络模式,default为nat模式

安装完成后,查看

[root@KVMserver ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 3     centos7.0-2                    running
 4     centos7.0                      running