Bootstrap

centos 查看cpu 是否支持虚拟化_Kvm --01 虚拟化基础概念

1. 虚拟化基础概念

01. 什么是虚拟化?

虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率虚拟化使用软件的方法重新定义划分IT资源,可以实现IT资源的动态分配、灵活调度、跨域共享,提高IT资源利用率,使IT资源能够真正成为社会基础设施,服务于各行各业中灵活多变的应用需求。

eca2cc56cdf49427f2c90026c88f9f65.png

02. 为什么要用虚拟化?

6b3fdf7f19f2a75ad3efd3915a908f7c.png

提高计算机资源的利用率和程序运行环境的安全隔离,还可以有效限制程序的资源占用

优势:

1.降低运营成本       服务器虚拟化降低了IT基础设施的运营成本,令系统管理员摆脱了繁重的物理服务器、OS、中间件及兼容性的管理工作,减少人工干预频率,使管理更加强大、便捷。  2.提高应用兼容性  服务器虚拟化提供的封装性和隔离性使大量应用独立运行于各种环境中,管理人员不需频繁根据底层环境调整应用,只需构建一个应用版本并将其发布到虚拟化后的不同类型平台上即可。  3.加速应用部署  采用服务器虚拟化技术只需输入激活配置参数、拷贝虚拟机、启动虚拟机、激活虚拟机即可完成部署,大大缩短了部署时间,免除人工干预,降低了部署成本。  4.提高服务可用性  用户可以方便地备份虚拟机,在进行虚拟机动态迁移后,可以方便的恢复备份,或者在其他物理机上运行备份,大大提高了服务的可用性。  5.提升资源利用率  通过服务器虚拟化的整合,提高了CPU、内存、存储、网络等设备的利用率,同时保证原有服务的可用性,使其安全性及性能不受影响。  6.动态调度资源  在服务器虚拟化技术中,数据中心从传统的单一服务器变成了统一的资源池,用户可以即时地调整虚拟机资源,同时数据中心管理程序和数据中心管理员可以灵活根据虚拟机内部资源使用情况灵活分配调整给虚拟机的资源。  7.降低能源消耗  通过减少运行的物理服务器数量,减少CPU以外各单元的耗电量,达到节能减排的目的。

03. 虚拟化在企业中的应用场景?

场景1:多版本操作系统共存,小公司经常会出现的一种比较尴尬的问题,只有一台服务器,非要同时运行windows和Linux,只有虚拟化才能完美解决.

场景2:机房迁移,没有虚拟化之前,迁移非常痛苦,物理机搬迁中途损伤,新机房很难复原旧环境,物理机老化可能再也开不了机,这些都是问题,有了虚拟化之后,搬迁变得简单,只需拷贝虚拟机的文件即可

场景3:相同业务部署,在没有虚拟化之前,部署业务,每次都是从安装系统开始,一步一步安装软件,效率非常低!有了虚拟化,只需克隆模板机即可

场景4:软件发布体验,有的软件安装特别繁琐,导致很多普通用户都无法安装成功,为了让这部分用户能体验到软件的功能,可以制作一个虚拟机模板,让用户直接使用体验,例如zabbix就有现成的虚拟机模板

04. 虚拟化软件介绍

Xen (纯软件模拟)  

Xen是一个开放源代码虚拟机监视器,由XenProject开发。它打算在单个计算机上运行多达128个有完全功能的操作系统。    

在旧(无虚拟硬件)的处理器上执行Xen,操作系统必须进行显式地修改("移植")以在Xen上运行(但是提供对用户应用的兼容性)。这使得Xen无需特殊硬件支持,就能达到高性能的虚拟化。   

 软件纯模拟全虚拟化软件,特别慢!

QEMU  (需要一个专门的内核)

QEMU是一套由法布里斯·贝拉(Fabrice Bellard)所编写的模拟处理器的自由软件。它与Bochs(Bochs是一个x86硬件平台的开源模拟器。它可以模拟各种硬件的配置。),PearPC(实现PC机上安装Mac OS)近似,但其具有某些后两者所不具备的特性,如高速度及跨平台的特性。经由KVM(早期为kqemu加速器,现在kqemu已被KVM取代)这个开源的加速器,QEMU能模拟至接近真实电脑的速度。

QEMU有两种主要运作模式:  

User mode模拟模式,亦即是用户模式。  

QEMU能引导那些为不同中央处理器编译的Linux程序。而Wine(运行 Windows 应用的兼容层。)及Dosemu(DOS模拟器)是其主要目标。  System mode模拟模式,亦即是系统模式。  

QEMU能模拟整个电脑系统,包括中央处理器及其他周边设备。它使得为系统源代码进行测试及除错工作变得容易。其亦能用来在一部主机上模拟数部不同虚拟电脑。    

性能特别好,但是需要使用专门修改之后的内核。  

05. Kvm介绍

1.KVM是开源软件,全称是kernel-based virtual machine(基于内核的虚拟机)。

2.是x86架构且硬件支持虚拟化技术(如 intel VT 或 AMD-V)的Linux全虚拟化解决方案。

3.它包含一个为处理器提供底层虚拟化,可加载的核心模块kvm.ko(kvm-intel.ko或kvm-AMD.ko)。

4.KVM还需要一个经过修改的QEMU软件(qemu-kvm),作为虚拟机上层控制和界面。

5.KVM能在不改变linux或windows镜像的情况下同时运行多个虚拟机,(它的意思是多个虚拟机使用同一镜像)并为每一个虚拟机配置个性化硬件环境(网卡、磁盘、图形适配器……)同时KVM还能够使用ksm技术帮助宿主服务器节约内存。

6.在主流的Linux内核,如: 2.6.20以上的内核均已包含了KVM核心.

Kvm的优点:KVM是一种年轻的虚拟化技术,在出生的时候就吸收了其他虚拟化技术的优点,而且架构简单,没有历史兼容性的包袱,性能表现优异,使用越来越广!

2. 安装部署Kvm

01. 如果采用的是虚拟机安装,需要开启虚拟机的虚拟化技术

31f83fbdb422cead4417eeecf37674e5.png

02. Kvm虚拟化管理软件的安装

[root@gjy ~]# yum install libvirt virt-install qemu-kvm -y#安装软件说明内容:libvirt    #虚拟机管理,可管理kvm,xen,qemu,lxc....等软件。virt-insatall    #虚拟机安装克隆qemu-kvm    #管理虚拟机磁盘,底层#启动服务[root@gjy ~]# systemctl start libvirtd.service[root@gjy ~]# systemctl enable libvirtd.service

03. 安装VNC软件

VNC软件,用于VNC(Virtual Network Computing),为一种使用RFB协议的显示屏画面分享及远程操作软件。此软件借由网络,可发送键盘与鼠标的动作及即时的显示屏画面。

VNC与操作系统无关,因此可跨平台使用,例如可用Windows连接到某Linux的电脑,反之亦同。甚至在没有安装客户端程序的电脑中,只要有支持JAVA的浏览器,也可使用。

ca4862351811c929a2413eab90ec4066.png

04. 安装一台Kvm虚拟机我们将安装目录放在/opt/目录下,首先我们要上传一个CentOS-7.6的镜像在/opt/目录下.

[root@gjy /opt]# lltotal 4481024-rw-r--r-- 1 root root 4588568576 2019-07-22 17:58 CentOS-7-x86_64-DVD-1810.iso[root@gjy /opt]# virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /opt/centos7.raw,format=raw,size=10 --cdrom /opt/CentOS-7-x86_64-DVD-1810.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsoleStarting install...Allocating 'centos7.raw' | 10 GB 00:00:00Domain installation still in progress. You can reconnect tothe console to complete the installation process.

在启动的同时使用vnc连接,默认端口是5900,不用定义。

8cb173aa77949905bbd298de7d793af7.png

安装CentOS7系统,与正常安装一样。

187b80aac54a8f4917313cfcd70bc45f.png

安装完成后重启,重启之后TightVNC会自动退出。

bd29332e1f1a3cefe1689901d5eba529.png

重启之后,在命令行启动Kvm虚拟机

#开机[root@kvm01 opt]# virsh start  centos7

3. Kvm虚拟机管理

01. Kvm虚拟机的virsh日常管理和配置

cee52f0c3aba22c8864ed3d0f9774ba5.png

基础操作

#显示所有状态下的主机[root@kvm01 opt]# virsh list --all Id    Name                           State---------------------------------------------------- 2     centos7                        running#显示正在运行的主机[root@kvm01 opt]# virsh list  Id    Name                           State---------------------------------------------------- 2     centos7                        running#关机[root@kvm01 opt]# virsh shutdown centos7#拔电源关机[root@kvm01 opt]# virsh dectroy centos7#开机[root@kvm01 opt]# virsh start  centos7#查看主机配置信息[root@kvm01 opt]# virsh dominfo centos7Id:             2Name:           centos7UUID:           22d41c40-4b59-4cee-9203-47880c1069bbOS Type:        hvmState:          runningCPU(s):         1CPU time:       62.2sMax memory:     1048576 KiBUsed memory:    1048576 KiBPersistent:     yesAutostart:      disableManaged save:   noSecurity model: noneSecurity DOI:   0#磁盘[root@kvm01 opt]# lltotal 5952848-rw------- 1 qemu qemu 10737418240 Dec  3 01:22 centos7.raw-rw-r--r-- 1 qemu qemu  4588568576 Dec  3 00:19 CentOS-7-x86_64-DVD-1810.iso#配置文件[root@kvm01 opt]# ll /etc/libvirt/qemutotal 4-rw------- 1 root root 4071 Dec  3 00:41 centos7.xmldrwx------ 3 root root   42 Dec  3 00:28 networks#修改配置文件[root@kvm01 opt]# virsh edit centos7#查看运行状态下的主机连接端口[root@kvm01 /opt]# virsh vncdisplay centos7:0            ====》 5900#动态调整主机内存大小,只能调小。不能调大[root@kvm01 /opt]# virsh setmem centos7 524288#检查[root@kvm01 /opt]# virsh dominfo centos7 |grep memoryMax memory: 1048576 KiBUsed memory: 524288 KiB
c12edaacfec7fc998c59bc9fd4fca112.png
#将主机的内存调大[root@kvm01 /opt]# virsh shutdown centos7     #关闭主机Domain centos7 is being shutdown#编辑配置文件[root@kvm01 /opt]# virsh edit centos7centos7d36e89c3-4d09-4328-bdd2-085b90cbe19c2097152               #最大支持内存2097152        #当前内存2                        #cpu核心数#重启libvirt服务[root@kvm01 /opt]# systemctl restart libvirtd.service#检查结果[root@kvm01 /opt]# virsh dominfo centos7 |grep -E "memory|CPU"CPU(s): 2Max memory: 2097152 KiBUsed memory: 2097152 KiB
45eac5379a66ae9be53aff827c63d943.png

02. Kvm虚拟主机的相关文件

#主机的镜像文件[root@qiudao /opt]# ll-rw------- 1 root root 10737418240 2019-07-22 20:19 centos7.raw     #主机的配置文件[root@qiudao /opt]# ll /etc/libvirt/qemu/centos7.xml-rw------- 1 root root 4078 2019-07-22 21:01 /etc/libvirt/qemu/centos7.xml修改虚拟主机配置文件的方法,使用下面命令修改可以对文件进行语法校验[root@qiudao /opt]# virsh edit centos7#配置管理操作[root@kvm01 /opt]# virsh list --all        #运行状态Id Name State----------------------------------------------------1 centos7 running#导出主机配置信息[root@kvm01 /opt]# virsh dumpxml centos7 > centos7-bak.xml[root@kvm01 /opt]# lltotal 13544120-rw-r--r-- 1 root root 5243 Dec 1 16:10 centos7-bak.xml:q#关机状态[root@kvm01 /opt]# virsh shutdown centos7Domain centos7 is being shutdown#导出主机配置信息,关机状态下的要比开机状态下的省资源[root@kvm01 /opt]# virsh dumpxml centos7 > centos7-back.xml[root@kvm01 /opt]# lltotal 13544124-rw-r--r-- 1 root root 3951 Dec 1 16:12 centos7-back.xml-rw-r--r-- 1 root root 5243 Dec 1 16:10 centos7-bak.xml#删除主机信息,只有关机状态下才能关机[root@kvm01 /opt]# virsh undefine centos7Domain centos7 has been undefined#发现主机的配置文件已经不存在了[root@kvm01 /opt]# ll /etc/libvirt/qemutotal 0drwx------ 3 root root 42 Dec 1 14:10 networks#检查列表也是没有[root@kvm01 /opt]# virsh list --allId Name State----------------------------------------------------#导入主机配置信息[root@kvm01 /opt]# virsh define centos7-bak.xmlDomain centos7 defined from centos7-bak.xml#配置文件已经回来了[root@kvm01 /opt]# ll /etc/libvirt/qemutotal 8-rw------- 1 root root 4513 Dec 1 16:24 centos7.xml#检查列表[root@kvm01 /opt]# virsh list --allId Name State----------------------------------------------------- centos7 shut off#主机重命名,只能修改关机状态下的主机[root@kvm01 /opt]# virsh domrename centos7 gjyDomain successfully renamed[root@kvm01 /opt]# virsh list --allId Name State----------------------------------------------------- gjy shut off#配置文件名称已经发生改变[root@kvm01 /opt]# ll /etc/libvirt/qemutotal 8drwx------ 3 root root 42 Dec 1 14:10 networks-rw------- 1 root root 4505 Dec 1 16:26 gjy.xml#磁盘名称没有改变,可以通过修改配置文件实现[root@kvm01 /opt]# lltotal 13544124-rw-r--r-- 1 root root 3951 Dec 1 16:12 centos7-back.xml-rw-r--r-- 1 root root 5243 Dec 1 16:10 centos7-bak.xml-rw------- 1 qemu qemu 10737418240 Dec 1 16:23 centos7.raw#挂起与恢复[root@kvm01 ~]# virsh suspend centos7    #挂起,挂起之后主机无法进行任何操作Domain centos7 suspended[root@kvm01 ~]# virsh resume centos7         #恢复Domain centos7 resumed

挂起与恢复

#挂起与恢复[root@kvm01 ~]# virsh suspend centos7    #挂起,挂起之后主机无法进行任何操作Domain centos7 suspended[root@kvm01 ~]# virsh resume centos7         #恢复Domain centos7 resumed#或者可以里面操作:[root@kvm01 opt]# virsh#恢复virsh # resume centos6Domain centos6 resumedvirsh # list --all Id    Name                           State---------------------------------------------------- 1     centos6                        running 5     centos7                        running -     w                              shut off

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;