虚拟化概述
虚拟化(系统虚拟化):一个物理机上开很多虚拟机,实现互不干扰;虚拟硬件使用物理机硬件资源,每个虚拟机拥有独立的硬件资源。
名词:物理机或宿主机(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选择"存储选项卡",然后单击"+"按钮新建存储池;
点击Forward,指定store存储池里面内容的store存储目录(该处为之前新建的/kvm/store);
2)同样的操作创建iso的镜像存储池,单击"+"按钮新建存储池;
点击Forward,指定存储池里面内容的iso存储目录(该处为之前新建的/kvm/iso);
5、上传镜像到镜像池
1)上传镜像到镜像目录(我是用xsehll上传到这个目录下的)
6、新建存储卷
存储卷即安装系统时虚拟机所使用的磁盘文件,那么在vmware软件中是在新建虚拟机时可选择磁盘文件的位置和大小,而KVM可提前新建虚拟机所使用磁盘文件及大小(当然也可直接使用默认KVM创建的default存储池空间),相比更加灵活。
1)单击刚创建好的"store"存储池,单击对话框中间的"+"按钮建立一个存储卷;
设置新建存储卷卷名并指定卷最大容量与分配容量(Format选择"qcow2"不然不能快照);
7、新建虚拟机
指定从本地或光盘中选择镜像安装系统,然后点击Forward;
点击"Browse"浏览本地镜像并选择镜像,光盘安装就选择1,本地镜像安装就选择2,我选择2做实验,然后点击Choose Volume;
自动识别操作系统类型与版本,然后点击Forward,进行下一步;
这里选择之前新建存储卷"centos7x64"使用它的空间;
让"虚拟机"键盘布局和真机一样(一定选择,不然里面键盘输入有问题)
然后点击Apply,进行下一步;
注:你会发现你选择的选项变成了en-us,centos7系统默认的,所以不用管,继续创建即可。
点击左上角Begin Installtion,开始引导安装系统,之后就不再多说了,直接使用即可;
注:到这里就已经完成了Centos7上部署KVM,具体使用方式,后续会更新!