虚拟化概述

虚拟化(系统虚拟化):一个物理机上开很多虚拟机,实现互不干扰;虚拟硬件使用物理机硬件资源,每个虚拟机拥有独立的硬件资源。

名词:物理机或宿主机(Host,即真机)虚拟机里面系统(Guest OS)

虚拟机不能直接与物理机资源访问,必须通过VMM(虚拟机管理程序,即VDSM或称Hypervisor)才能访问物理机资源。

虚拟化类型

1、全虚拟化(本地虚拟化、硬件辅助全虚拟化):虚拟机中运行的软件与系统不需经过任何修改,就好比运行在真实硬件一样;但依然使用虚拟硬件设备,并且需要硬件支持,物理机需支持虚拟化功能(grep -E 'vmx|svm' /proc/cpuinfo,查询intel与AMD是否支持)

2、半虚拟化:另一种类似于全虚拟化的热门技术,它使用Hypervisor(虚拟机管理程序)分享存取底层的硬件, 但是它的客户操作系统集成了虚拟化方面的代码,该方法无需重新编译或引起陷阱,因为操作系统自身能够与虚拟进程进行很好的协作;但半虚拟化需要客户操作系统做一些修改(配合VDSM),这是一个不足之处,但是半虚拟化提供了与原始系统相近的性能,与全虚拟化一样,半虚拟化可以同时能支持多个不同的操作系统

虚拟机概述

虚拟机:运行在计算机上的一款软件程序,模拟计算机硬件的功能,为其他软件程序提供一个独立的计算机环境;使用资源为真机资源。 虚拟机的运行架构:

1、传统运行模式:一台计算机同时只能运行一个操作系统,在系统之上运行运用软件。

2、寄居架构:将虚拟机软件安装在操作系统之上,作为一个应用程序,在虚拟机软件创建出来的虚拟机上还可以安装操作系统软件。

3、原生架构(裸金属架构):虚拟机软件不需要依赖其他操作系统,直接安装在计算机硬件上,虚拟机软件本身就是一个操作系统。

KVM简介

KVM是Kernel Virtual Machine的简写,使用半虚拟化技术创建虚拟机的模块,目前Red Hat只支持在64位的RHEL 5.4及以上的系统运行KVM(其余发行版也可使用),同时硬件需要支持VT技术;KVM的前身是QEMU,2008年被Red Hat公司收购并获得一项hypervisor技术,不过Red Hat的KVM被认为是将成为未来Linux hypervisor的主流,准确来说,KVM仅仅是Linux内核的一个模块,管理和创建完整的KVM虚拟机,需要更多的辅助工具。 KVM自Linux 2.6.20版本后就直接整合到Linux内核,它依托CPU和虚拟化指令集(如Inter-VT、AMD-V)实现高性能的虚拟化支持;由于与Linux内核高度整合,因此在性能、安全性、兼容性、稳定性上都有很好的表现。 图上简单描述了KVM虚拟化架构,在KVM环境中运行的每个虚拟化操作系统都将表现为单个独立的系统进程。因此它可以很方便地与Linux系统中的安全模块进行整合(SElinux),可以灵活地实现资源的管理及分配。

实验环境:

系统:centos7-3.10.0-514.el7.x86_64

虚拟化:开启虚拟化支持选项(虚拟机需要在关机状态开启处理器里的虚拟化引擎) KVM软件版本:qemu-kvm-1.5.3-156.el7_5.2.x86_64

检查系统是否支持虚拟化: Intel CPU:cat /proc/cpuinfo |grep --color vmx AMD CPU:cat /proc/cpuinfo |grep --color smv 注:若以上操作有输出,就说明 CPU 支持虚拟化。如下截图 关闭防火墙 systemctl stop firewalld.service

禁止防火墙开机自启 systemctl disable firewalld.service

关闭selinux sed -i 's/SELINUX=enforcing /SELINUX=disabled/g' /etc/sysconfig/selinux

一、安装KVM

1、安装KVM和依赖包

yum -y install qemu-kvm qemu-img virt-manager libvirt libvirt-python python-virtinst libvirt-client virt-install virt-viewer

2、查看kvm是否安装

lsmod | grep kvm 注:以上截图证明KVM安装成功!

3、启用libvirtd服务

systemctl start libvirtd

4、设置开机启动

systemctl enable libvirtd

二、配置网卡

1、查看网卡信息 ip a

2、拷贝网卡并命名为br0

cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-br0

3、配置第一块ens33网卡信息

vi /etc/sysconfig/network-scripts/ifcfg-ens33

4、配置第二块br0网卡信息

vi /etc/sysconfig/network-scripts/ifcfg-br0

5、重启网卡服务

systemctl restart network

三、KVM安装虚拟机

1、递归创建存储池

mkdir -pv /kvm/{store,iso} 注:在安装虚拟机之前,为了方便管理虚拟机的磁盘及镜像文件,一般建议单独新建存储池(即磁盘文件和镜像存储位置指定)

运行虚拟机管理软件有两种方式: 方式一:给系统安装桌面,在桌面运行命令virt-manager调用管理软件。 方式二:双击打开第三方插件xhell里的工具Xmanager-Passive然后从shell

运行命令virt-manager调用管理软件。 注:我这里使用的是安装桌面方式!

2、安装桌面GNOME环境

yum -y install gnome-classic-session gnome-terminal nautilus-open-terminal control-center liberation-mono-fonts

3、安装交互环境

yum -y groupinstall "X Window System"

4、运行虚拟机管理软件

virt-manager 在桌面系统运行virt-manager,然后就能看到如下截图;

1)双击QEMU/KVM选择"存储选项卡",然后单击"+"按钮新建存储池;

根据提示输入存储池的名称,如store;

点击Forward,指定store存储池里面内容的store存储目录(该处为之前新建的/kvm/store);

然后点击Finish,然后能看见刚添加的store存储池;

2)同样的操作创建iso的镜像存储池,单击"+"按钮新建存储池;

根据提示输入iso存储池的名称,如iso;

点击Forward,指定存储池里面内容的iso存储目录(该处为之前新建的/kvm/iso);

然后点击Finish,然后能看见刚添加的iso存储池;

5、上传镜像到镜像池

1)上传镜像到镜像目录(我是用xsehll上传到这个目录下的)

2)在图形界面点击iso目录,然后点击刷新就能看到镜像文件

6、新建存储卷

存储卷即安装系统时虚拟机所使用的磁盘文件,那么在vmware软件中是在新建虚拟机时可选择磁盘文件的位置和大小,而KVM可提前新建虚拟机所使用磁盘文件及大小(当然也可直接使用默认KVM创建的default存储池空间),相比更加灵活。

1)单击刚创建好的"store"存储池,单击对话框中间的"+"按钮建立一个存储卷;

设置新建存储卷卷名并指定卷最大容量与分配容量(Format选择"qcow2"不然不能快照);

点击Finish完成即可

7、新建虚拟机

回到首页虚拟系统管理器后,选择"第一个电脑图标"选项;

指定从本地或光盘中选择镜像安装系统,然后点击Forward;

点击"Browse"浏览本地镜像并选择镜像,光盘安装就选择1,本地镜像安装就选择2,我选择2做实验,然后点击Choose Volume;

自动识别操作系统类型与版本,然后点击Forward,进行下一步;

指定新建虚拟机采用的内存及CPU核心数;

继续点击Forward,进行下一步;

点击Manage选择虚拟机产生文件存储位置;

这里选择之前新建存储卷"centos7x64"使用它的空间;

然后点击Choose Volume;

继续点击Forward,进行下一步;

指定虚拟机名称,然后将Storage选项下方的方格勾选上;

然后点击Finish完成即可

让"虚拟机"键盘布局和真机一样(一定选择,不然里面键盘输入有问题)

然后点击Apply,进行下一步; 注:你会发现你选择的选项变成了en-us,centos7系统默认的,所以不用管,继续创建即可。

点击左上角Begin Installtion,开始引导安装系统,之后就不再多说了,直接使用即可; 注:到这里就已经完成了Centos7上部署KVM,具体使用方式,后续会更新!