精华内容
下载资源
问答
  • ;目 录;第 1 课 vSphere High Availability 简介;使 VMware? vCenter Server? 及其依赖的组件高度可用 vCenter Server 依赖于下列组件: vCenter Server 数据库 为数据库创建集群查看有关数据库的文档 身份验证的身份...
  • Qos(服务质量)云用户和相关工作负载的快速增加成比例地下降。 强大的实时VM迁移策略只能用于提供更好的计算功能,管理大量云用户并减少云数据中心的时间和精力。 现代云计算系统主要取决于实时VM迁移。 本文...
  • 针对云资源管理者所面临的负载动态变化以及弹性资源需求等问题,提出一种虚拟机资源的自动配置管理技术,把强化学习技术引入云虚拟资源的管理,将虚拟机的配置管理过程建模为马尔可夫决策模型,根据系统的运行状态...
  • 面向云计算虚拟机动态迁移技术研究.pdf
  • 云计算是一种服务模式,这种模式并不是计算机行业所特有,也不是现代所特有,而是一种已经存在很久的服务模式。其思路就是把各种资源整合起来,然后租给有需要的用户。拿图书馆做比较,大家都很熟悉了,图书馆收集了...

    云计算是一种服务模式,这种模式并不是计算机行业所特有,也不是现代所特有,而是一种已经存在很久的服务模式。其思路就是把各种资源整合起来,然后租给有需要的用户。拿图书馆做比较,大家都很熟悉了,图书馆收集了很多书,如果你想看书,只需要到图书馆根据自己的需求去借就好了,图书馆会根据你借的数量以及时间收费,你看完了就还给图书馆,书重新放回到原来的书架,其他用户可以继续借,重复利用。

    肯定有人会想到把这种模式移植到传统IT行业,只是把租的对象由图书变为服务器资源罢了,因此云计算诞生了。为什么称为云计算,因为服务器的功能就是提供计算能力,把服务器租给你相当于卖给你服务器租赁期间的计算能力,因此称为云计算。

    怎么运作,很简单,你需要多少CPU、多少硬盘,自己去机房搬,云服务提供商会根据你的数量按天计费,当然你也可以包月包年。你如果愿意出更多的钱,也可以提供送货上门服务。服务器硬件给你了,只要在租赁期间,随便你处置,就和自己买的服务器一样,服务器搬到自己的机房后,发现自己人手不足,你要一个一个安装操作系统,招一个人专门做这个成本也高。于是云服务商提供了其它增值服务,比如上门给你安装操作系统、上门组建网络,甚至给你提供安装数据库、大数据Hadoop/Spark集群搭建服务等,把这种麻烦事交给别人了,显然大大节省了自己的运维成本。

    云计算的好处也出来了,你为什么要租服务器,而不是自己买,因为你可能只是想用一段时间,相对于你自己买服务器,成本太高了,租用更方便。另外,你自己买需要根据业务评估买多少,可能买回来发现不够用,于是重新采购,流程麻烦,买的太多了,又存在资源浪费。而租用就更弹性了,需要多少,租用多少,不需要了还给云服务商就好了。私有云同样,只不过是企业内部结算罢了。以上是IaaS的运营模式。你有可能有这种情况,你写了一个Web项目并打好了war包,但自己手头没有服务器来跑,你可以把你的war包交给云服务提供商,他们负责给你运行,你不用租整个服务器,也不用搭建运行环境,打好war包拷给他们就好,他们帮你部署运行。这就是我们说的PaaS服务。更高级的,你手头有很多照片,你想把照片中的人物提取出来,但你自己不会写代码实现,你可以把照片发给云服务商,他们通过自己的脸部识别技术处理后把结果发给你,这就类似于SaaS。

    以上就是云计算的非权威解读,它更确切地说云计算不是指特定的某种技术,而是一种服务模式,一种交付方式。问题来了,以上需要把服务器搬来搬去太麻烦了,而且用户还需要有自己的机房来放租来的服务器。有没有某种技术能够不需要移动服务器,也能解决前面提到的问题,把CPU、内存、磁盘等资源打包租给用户。相信都知道答案了,虚拟化技术就可以完美解决这个问题,而虚拟机是虚拟化实现之一,但绝不是唯一,还有可能是容器,甚至是真正的物理机(裸机)。提供虚拟机的hypervisor也不是只有vmware,还有比如kvm/qemu、xen等。除了虚拟机外,还有许多其它虚拟化技术,比如ovs虚拟网络等。通过虚拟技术,你再不用搬服务器,而完全自助。除此之外,利用虚拟化技术还能更方便的部署运维,比如不用一台一台安装操作系统,你安装完一台后,很方便地进行克隆,避免了大量的重复劳力工作。你也不用自己建机房,省去了很多工作,完全交给云服务提供商或者自己内部的云平台团队。

    之所以容易混淆虚拟机和云计算,是因为虚拟机确实在云计算中太普遍了,它是云计算中最活跃的主体,也是核心之一,很多服务都是围绕着虚拟机提供服务。在AWS或者其它公有云买云服务,最直接的方式就是申请一台虚拟机。你购买的云数据库,底层也有可能是虚拟机,原理大概是这样的,比如你买一个mysql云数据库,云平台会在后台给你首先起一个虚拟机,这个虚拟机镜像包含了mysql服务,当虚拟机起来,mysql服务就跑起来了。你不仅需要访问数据库,还有可能需要其它相关的功能,比如设置主从、查看日志、创建备份、设置账户权限等,由于虚拟机对用户是不可见的,并且不是所有的用户都会这些操作。因此云服务商还提供了非常方便的API接口,用户只需要调用API或者Web界面就可以完成以上所有操作,而不需要自己去学习和关心怎么弄。底层怎么实现,这个没有固定地方法,有可能是在虚拟机跑个agent程序,执行某个操作,比如创建一个数据库用户,agent就跑一个已经定义好的脚本,当然也有可能通过外部程序来完成数据库内部的配置管理,比如ssh/ansible/puppet等。

    总而言之,云计算高大上,近年也是抄的火热,但本质是思维的转变,而非技术的革新。你把计算能力给别人用-云计算,存储给别人用-云存储,数据库给别人用-云数据库(DBaaS),负载均衡给别人用-LBaaS,防火墙给别人用-FWaaS。但实现手段依然是传统的IT技术,比如分布式技术、虚拟化技术、网络技术、自动化运维技术、容灾技术等,并没有造出新技术,而只是通过这些技术组合把一些资源、功能产品或者软件等封装成API对外提供服务。

    云计算最权威标准可以参考AWS,IaaS开源实现方案可以参考OpenStack,目前也是云计算领域中最活跃的开源项目之一,目前除了提供IaaS的基础服务(计算、存储、网络)外,还实现了Trove数据库服务、Mistral工作流以及cloud cron服务、Sahara大数据库服务、Magnum容器编排服务等。

    展开全文
  • 云计算虚拟机资源自动配置技术的研究.pdf
  • 当然,如果将这种分配新颖的机器学习技术混合使用,将会提供出色的结果。 本文分析了数据中心最关注的预期有效机器学习技术,即将虚拟机分配给称为主机或物理机的具体设备。 这项研究的核心目的是探索一些特殊的...
  • 本标准规定了虚拟机的基本管理,以及虚拟机的生命周期、配置调度、监控告警、可用性和可靠性、安全性等管理通用技术要求。
  • 云计算虚拟化技术.ppt

    2020-06-29 15:17:10
    通过PPT的方式多方面介绍了云计算中的虚拟化技术。可以作为参考。 全称2020云计算课程研究报告——围绕虚拟化技术进行讲解 云计算 :是分布式处理、并行处理和网格计算的发展,或者说是这些计算机科学概念的商业...
  • 先看看维基百科对于云计算的解释: 云计算(英语:Cloud Computing),是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需求提供给计算机各种终端和其他设备。 用户不再需要了解“云”中...

    先看看维基百科对于云计算的解释:

    云计算(英语:Cloud Computing),是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需求提供给计算机各种终端和其他设备。 
    用户不再需要了解“云”中基础设施的细节,不必具有相应的专业知识,也无需直接进行控制。

    维基百科对于虚拟机的解释:

    虚拟机(英语:virtual machine),在计算机科学中的体系结构里,是指一种特殊的软件,可以在计算机平台和终端用户之间创建一种环境,而终端用户则是基于这个软件所创建的环境来操作软件。

    提取一下key word:

    云计算是一种基于互联网计算方法,可以共享,按需分配资源。
    虚拟机是一种软件,可以模拟出操作系统,而操作系统本身也是软件。
    其实简单来说,云计算是一种拥有很多实例化产品的集合,虚拟机是其中一种产品,除此之外还有虚拟储存,虚拟网络等等产品。

    然后vmware是什么,它是一个软件品牌,旗下有我们熟知的虚拟化软件(vmware player;vmware workstation等)来提供虚拟机的创建。这个品牌也有云计算的解决方案,即多个软件实现硬件、软件、网络的虚拟化和共享功能,这些软件有:Vcenter、esxi等。

    国内知名的几大云服务商的产品。阿里云和腾讯云基本都有以下一些产品:云服务器;云数据库;存储;CDN。用户可以根据需求进行购买使用,虚拟机只是其中一种产品。

    可以说,虚拟机是代表了一种虚拟化技术,意义就是共享;云计算代表的是被虚拟资产的管理技术,意义就是统筹管理。

    云计算和虚拟机(VMWare)有什么区别?—知乎

    展开全文
  • 在以节约能源和提高能源利用率为目的的绿色云计算背景下,提出一种基于层次分析法的虚拟机迁移评估模型。该模型通过基于属性聚类的协同过滤方法,针对虚拟机的属性空间进行评分,给出了最佳绿色虚拟机迁移策略的决策...
  • 根据云计算平台的特点,提出一种新型虚拟机动态迁移框架,并在Xen和KVM这2种典型的开源虚拟机监控器基础上,实现原型系统。测试结果表明,在不同类型计算资源的环境下,该动态迁移框架具有良好的性能,能够对动态...
  • 云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享池,(资源包括网络、服务器、存储、应用软件、服务),这些资源能够被快速提供,需要投入很少的管理工作,...

    云计算介绍
    云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享池,(资源包括网络、服务器、存储、应用软件、服务),这些资源能够被快速提供,需要投入很少的管理工作,或与服务供应商进行很少的交互。

    1)云计算之前的使用模式
    IDC 托管
    IDC 租用
    虚拟主机(买空间)
    VPS:虚拟专用主机
    2)传统数据中心面临的问题
    资源使用率低
    资源分配不均
    自动化能力差
    3)云计算的优势
    云计算是一种使用模式,不是一种技术
    云计算的使用方式:通过网络访问
    云计算的优势:弹性计算、按需计费
    4)云计算的特点
    资源池化
    无处不在的网络访问
    可随时调节的自助服务
    可测量的服务量
    快速的变化伸缩
    5)云计算的服务模式

    1--支撑服务
    由支撑网络来提供,云计算模式实现的使用的方式。
    2--IaaS基础设施即服务
    消费者通过支撑网络可以从完善的计算机基础设施获得服务。这类服务称为基础设施即服务,基于 Internet 的服务(如存储和数据库)是 IaaS的一部分。
    3--PaaS平台即服务
    PaaS(Platform-as-a-Service:平台即服务)是指将软件研发的平台作为一种服务,以SaaS的模式提交给用户。因此,PaaS也是SaaS模式的一种应用。
    4--SaaS
    它是一种通过Internet提供软件的模式,厂商将应用软件统一部署在自己的服务器上,客户可以根据自己实际需求,通过互联网向厂商定购所需的应用软件服务,按定购的服务多少和时间长短向厂商支付费用,并通过互联网获得厂商提供的服务。用户不用再购买软件,而改用向提供商租用基于Web的软件,来管理企业经营活动,且无需对软件进行维护,服务提供商会全权管理和维护软件,软件厂商在向客户提供互联网应用的同时,也提供软件的离线操作和本地数据存储,让用户随时随地都可以使用其定购的软件和服务。对于许多小型企业来说,SaaS是采用先进技术的最好途径,它消除了企业购买、构建和维护基础设施和应用程序的需要。
    6)云计算的类型
    1--公有云
    公有云通常指第三方提供商为用户提供的能够使用的云,公有云一般可通过 Internet 使用,可能是免费或成本低廉的,公有云的核心属性是共享资源服务。这种云有许多实例,可在当今整个开放的公有网络中提供服务。例如:阿里云、腾讯云、青云、百度云、盛大云、迅达云、等等。
    2--私有云
    私有云(Private Clouds)是为一个客户单独使用而构建的,因而提供对数据、安全性和服务质量的最有效控制。该公司拥有基础设施,并可以控制在此基础设施上部署应用程序的方式。私有云可部署在企业数据中心的防火墙内,也可以将它们部署在一个安全的主机托管场所,私有云的核心属性是专有资源。
    3--混合云
    混合云融合了公有云和私有云,是近年来云计算的主要模式和发展方向。我们已经知道私企业主要是面向企业用户,出于安全考虑,企业更愿意将数据存放在私有云中,但是同时又希望可以获得公有云的计算资源,在这种情况下混合云被越来越多的采用,它将公有云和私有云进行混合和匹配,以获得最佳的效果,这种个性化的解决方案,达到了既省钱又安全的目的。

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

    0)几种主要的虚拟化

    ?

    云计算介绍
    云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享池,(资源包括网络、服务器、存储、应用软件、服务),这些资源能够被快速提供,需要投入很少的管理工作,或与服务供应商进行很少的交互。

    1)云计算之前的使用模式
    IDC 托管
    IDC 租用
    虚拟主机(买空间)
    VPS:虚拟专用主机
    2)传统数据中心面临的问题
    资源使用率低
    资源分配不均
    自动化能力差
    3)云计算的优势
    云计算是一种使用模式,不是一种技术
    云计算的使用方式:通过网络访问
    云计算的优势:弹性计算、按需计费
    4)云计算的特点
    资源池化
    无处不在的网络访问
    可随时调节的自助服务
    可测量的服务量
    快速的变化伸缩
    5)云计算的服务模式

    1--支撑服务
    由支撑网络来提供,云计算模式实现的使用的方式。
    2--IaaS基础设施即服务
    消费者通过支撑网络可以从完善的计算机基础设施获得服务。这类服务称为基础设施即服务,基于 Internet 的服务(如存储和数据库)是 IaaS的一部分。
    3--PaaS平台即服务
    PaaS(Platform-as-a-Service:平台即服务)是指将软件研发的平台作为一种服务,以SaaS的模式提交给用户。因此,PaaS也是SaaS模式的一种应用。
    4--SaaS
    它是一种通过Internet提供软件的模式,厂商将应用软件统一部署在自己的服务器上,客户可以根据自己实际需求,通过互联网向厂商定购所需的应用软件服务,按定购的服务多少和时间长短向厂商支付费用,并通过互联网获得厂商提供的服务。用户不用再购买软件,而改用向提供商租用基于Web的软件,来管理企业经营活动,且无需对软件进行维护,服务提供商会全权管理和维护软件,软件厂商在向客户提供互联网应用的同时,也提供软件的离线操作和本地数据存储,让用户随时随地都可以使用其定购的软件和服务。对于许多小型企业来说,SaaS是采用先进技术的最好途径,它消除了企业购买、构建和维护基础设施和应用程序的需要。
    6)云计算的类型
    1--公有云
    公有云通常指第三方提供商为用户提供的能够使用的云,公有云一般可通过 Internet 使用,可能是免费或成本低廉的,公有云的核心属性是共享资源服务。这种云有许多实例,可在当今整个开放的公有网络中提供服务。例如:阿里云、腾讯云、青云、百度云、盛大云、迅达云、等等。
    2--私有云
    私有云(Private Clouds)是为一个客户单独使用而构建的,因而提供对数据、安全性和服务质量的最有效控制。该公司拥有基础设施,并可以控制在此基础设施上部署应用程序的方式。私有云可部署在企业数据中心的防火墙内,也可以将它们部署在一个安全的主机托管场所,私有云的核心属性是专有资源。
    3--混合云
    混合云融合了公有云和私有云,是近年来云计算的主要模式和发展方向。我们已经知道私企业主要是面向企业用户,出于安全考虑,企业更愿意将数据存放在私有云中,但是同时又希望可以获得公有云的计算资源,在这种情况下混合云被越来越多的采用,它将公有云和私有云进行混合和匹配,以获得最佳的效果,这种个性化的解决方案,达到了既省钱又安全的目的。

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

    0)几种主要的虚拟化

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    ESXi是VMware公司研发的虚拟机服务器,ESXi已经实现了与Virtual Appliance Marketplace的直接整合,使用户能够即刻下载并运行虚拟设备。这为

    即插即用型软件的交付与安装提供了一种全新和极其简化的方式。

    通过iso镜像(比如VMWare ESXi 5.5.iso)在服务器上安装ESXi虚拟化服务,接着在本地PC机(win10)上安装VMware vSphere Clent客户端工具去连

    接远程的ESXi服务器,然后在VMware vSphere Clent工具界面里进行虚拟机的创建和管理。

    ------------------------------------------------------------------------------------------------------------------------------------

    XenServer是思杰公司基于Xen的虚拟化服务器,Citrix XenServer是一种全面而易于管理的服务器虚拟化平台,基于强大的Xen Hypervisor程序之上。

    通过iso镜像(比如XenServer-7.1.1-install-cd.iso)在服务器上安装XenServer服务,接着在本地PC机(win10)上安装Citrix XenCenter客户端

    工具去连接远程的XenServer服务器,然后在Citrix XenCenter工具界面里进行虚拟机的创建和管理。

    ------------------------------------------------------------------------------------------------------------------------------------

    KVM(Kernel-based Virtual Machine)是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身

    的调度器进行管理,所以相对于Xen,其核心源码很少。KVM目前已成为学术界的主流VMM之一。KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术),

    是基于硬件的完全虚拟化。而Xen早期则是基于软件模拟的Para-Virtualization,新版本则是基于硬件支持的完全虚拟化。但Xen本身有自己的进程调度器,

    存储管理模块等,所以代码较为庞大。广为流传的商业系统虚拟化软件VMware ESX系列是基于软件模拟的Full-Virtualization。

    KVM虚拟化部署有以下几种方法:

    方法一:通过自身的virt-manager工具进行虚拟机的创建和管理

    方法二:通过WebVirtMgr工具进行虚拟机的创建和管理

    方法三:通过OpenStack工具进行虚拟机的创建和管理。

    以上三种方法的部署在博客中都会一一介绍。

    1)虚拟化的分类
    全虚拟化:直接使用底层的硬件 比如:KVM
    半虚拟化:通过一个中间件,来调用底层的硬件 比如:xen
    平台虚拟化
    硬件虚拟化(Inter vt-x/EPT) (AMD AMD-v /RVI)
    软件虚拟化
    桌面虚拟化
    应用虚拟化
    存储虚拟化
    网络虚拟化
    2)虚拟化的优势
    虚拟化可以虚拟出不同的虚拟操作系统。
    虚拟机之间是相互独立互不影响的。
    支持异构。
    支持快照、克隆、还原等操作
    云计算与虚拟化的区别与联系

    云计算与虚拟化的区别与联系
    1)虚拟化是一种技术,云计算是一种使用模式。
    2)虚拟化是指将物理的实体,通过软件模式,形成若干虚拟存在的系统,其实真是运作还是在实体上,只是划分了若干区域或者时域划分。
    3)云计算的基础是虚拟化,但虚拟化只是云计算的一部分,云计算其实就是在虚拟化出若干资源池以后的应用,但虚拟化并不是只对应云计算的。

    KVM虚拟化
    KVM是开源软件,全称是kernel-based virtual machine(基于内核的虚拟机)。
    KVM是x86架构且硬件支持虚拟化技术(如 intel VT 或 AMD-V)的Linux全虚拟化解决方案。
    它包含一个为处理器提供底层虚拟化 可加载的核心模块kvm.ko(kvm-intel.ko或kvm-AMD.ko)。
    KVM还需要一个经过修改的QEMU软件(qemu-kvm),作为虚拟机上层控制和界面。
    KVM能在不改变linux或windows镜像的情况下同时运行多个虚拟机,(它的意思是多个虚拟机使用同一镜像)并为每一个虚拟机配置个性化硬件环境(网卡、磁盘、图形适配器……)。
    1)KVM的优势
    嵌入到Linux的Kernel中 (提高兼容性)
    代码级资源调用(提高性能)
    虚拟机就是一个进程
    直接支持MUMA技术(NUMA(Non Uniform Memory Access Architecture)技术可以使众多服务器像单一系统那样运转,同时保留小系统便于编程和管理的优点。
    2)KVM安装前提
    CPU要支持虚拟化,服务器上默认一般是开启的,虚拟机要自己启动VT-EPT技术
    [root@oldboy-node1 ~]# grep -E "(vmx|svm)" /proc/cpuinfo
    Inter处理器对应:VMX
    AMD处理器对应:SVM
    3)KVM虚拟机安装
    查看系统版本
    [root@linux-node1~]# cat /etc/redhat-release
    CentOSLinux release 7.1.1503 (Core)

    安装KVM相关的组件
    [root@oldboy-node1 ~]# yum -y install qemu-kvm qemu-kvm-tools virt-manager libvirt virt-install
    kvm:linux内核中的一个模块,不需要安装只要加载就行,通过用户态进程来管理。
    qemu:虚拟化软件,支持多种架构,可扩展,可移植
    qemu-kvm:用户态管理KVM,网卡、声卡、PCI设备等的管理
    libvirt:是一个虚拟化 API 和虚拟机(VMs)管理后台,支持远程或本地访问,支持多种虚拟化后端 (QEMU/KVM, VirtualBox, Xen,等等) 。

    检查KVM是否加载
    [root@oldboy-node1 ~]# lsmod | grep kvm
    kvm_intel 148081 0
    kvm 461126 1 kvm_intel

    启动并设置开机启动libvirt
    [root@linux-node1~]# systemctl enable libvirtd.service
    [root@linux-node1~]# systemctl start libvirtd.service
    [root@oldboy-node1 ~]# systemctl status libvirtd.service

    创建虚拟机
    1--虚拟机的创建命令
    –virt-type:指定虚拟机类型(kvm、qemu、xen)
    –name:指定虚拟机的名称
    –raw:指定内存大小
    –cpu:指定cpu的核数(默认为1)
    –cdrom:指定镜像
    –disk:指定磁盘路径(即上文创建的虚拟磁盘)
    –network:指定网络类

    2--创建硬盘(创建虚拟磁盘,-f指定格式,路径/opt/CentOS-7.1-x86_64.raw,大小10G)
    [root@oldboy-node1 ~]# qemu-img create -f raw /opt/CentOS-7.1-x86_64.raw 10G
    Formatting '/opt/CentOS-7.1-x86_64.raw', fmt=raw size=10737418240
    3--镜像的拷贝
    [root@oldboy-node1 ~]# dd if=/dev/cdrom of=/opt/CentOS-7.1.iso
    4--虚拟机的创建
    [root@oldboy-node1 ~]# virt-install --name CentOS-7.1-x86_64 --virt-type kvm --ram 1024 --cdrom=/opt/CentOS-7.1.iso --disk path=/opt/CentOS-7.1-x86_64.raw --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
    5--使用VNC连接虚拟机
    使用VNC客户端连接虚拟机 物理机的地址:5900 默认是从5900开始,以此类推。也可以通过端口grep vnc查看。
    6--修改网卡的名称
    因为CentOS7以后,网卡的命名发生改变。可以在安装的时候就做出修改

    按下Tab键,然后在quiet后面添加 net.ifnames=0 biosdevname=0
    至此,一台KVM虚拟机安装成功。

    KVM的日常应用管理
    1--虚拟机的查看
    # 当前正在运行中的虚拟机
    [root@linux-node1 opt]# virsh list
    Id Name State
    —————————————————-
    1 CentOS-7-x86_64running
    # 当前物理机中的所有的虚拟机
    [root@linux-node1 opt]# virsh list --all
    也可以在物理机进程中查看,KVM虚拟机就是一个KVM进程在运行
    2--虚拟机的开关
    关闭虚拟机
    [root@oldboy-node1 ~]# virsh shudown CentOS-7.1-x86_64(主机名)
    [root@oldboy-node1 ~]# virsh destroy CentOS-7.1-x86_64(主机名)
    打开虚拟机
    [root@oldboy-node1 ~]# virsh start CentOS-7.1-x86_64
    删除虚拟机
    [root@oldboy-node1 ~]# virsh undefine CentOS-7.1-x86_64
    挂起
    [root@oldboy-node1 ~]# virsh suspended CentOS-7.1-x86_64
    恢复
    [root@oldboy-node1 ~]# virsh resume CentOS-7.1-x86_64
    3--虚拟机CPU的扩容
    编辑虚拟机
    virsh edit CentOS-7.1-x86_64
    # 为了实现CPU的热添加,就需要更改Cpu的最大值,当然热添加值不能超过最大值
    # 当前为1,自动扩容最大为4
    [root@linux-node1 opt]# virsh edit CentOS-7-x86_64
    <vcpu placement=’auto’ current=”1″>4</vcpu>
    # 热修改为2个cpu(不知减少),高版本自动激活
    [root@linux-node1 opt]# virsh setvcpus CentOS-7-x86_64 2 –live
    # 通过vnc登录KVM虚拟机查看是否扩容成功
    [root@KVM]# grep processor /proc/cpuinfo |wc -l
    # 在创建虚拟机时指定cpu
    [root@linux-node1 ~]# virt-install –help|grep vcpus
    –vcpus VCPUS
    """
    为虚拟机配置的 vcpus 数。
    例如:
    –vcpus 5
    –vcpus 5,maxcpus=10,cpuset=1-4,6,8
    –vcpus sockets=2,cores=4,threads=2,
    """
    4--内存热膨胀和压缩
    # 查看当前KVM内存大小
    [root@linux-node1 ~]# virsh qemu-monitor-command CentOS-7-x86_64 –hmp –cmd info balloon
    balloon: actual=1024
    # 热添加600M
    [root@linux-node1 ~]# virsh qemu-monitor-command CentOS-7.1-x86_64 –hmp –cmd balloon 600
    # 在配置文件中修改
    [root@linux-node1 network-scripts]# virsh edit CentOS-7.1-1-x86_64
    最大内存<memory unit='KiB'>4048576</memory>
    当前内存<currentMemory unit='KiB'>1048576</currentMemory>
    5--硬盘的模式
    生产中不建议对线上的服务器的硬盘进行更改,因此直接不对此赘述。
    硬盘格式:
    RAW:全镜像格式:设置多大就是多大,写入速度快,可以随便转换成其他的格式。性能最优。但是占用空间大。
    QCOW2:稀疏格式:支持写时拷贝(Cow,copy-on-write)压缩,快照,镜像,更小的存储空间。(用多少给多少)可选择基于Zlib的压缩方式,可以选择AES加密
    创建qcow2和raw文件
    [root@linux-node1 ~]# qemu-img create -f qcow2 test.qcow2 10G
    Formatting 'test.qcow2', fmt=qcow2 size=10737418240 encryption=off cluster_size=65536 lazy_refcounts=off
    [root@linux-node1 ~]# qemu-img create -f raw test.raw 10G
    Formatting 'test.raw', fmt=raw size=10737418240
    空间使用情况对比
    [root@linux-node1 ~]# ll -sh test.*
    200K -rw-r--r-- 1 qiaoliyong qiaoliyong 193K 5 月 6 10:29 test.qcow2
    0 -rw-r--r-- 1 qiaoliyong qiaoliyong 10G 5 月 6 10:28 test.raw
    [root@linux-node1 ~]# stat test.raw
    文件:"test.raw"
    大小:10737418240 块:0 IO 块:4096 普通文件
    [root@linux-node1 ~]# stat test.qcow2
    文件:"test.qcow2"
    大小:197120 块:400 IO 块:4096 普通文件

    6--网卡的配置
    # 先建立一个虚拟网卡,名称为br0(可以看做是一个逻辑网段,也可以看做是一个VLAN名称)
    [root@linux-node1~]# brctl addbr br0
    # 查看网卡信息
    [root@linux-node1 ~]# brctl show
    bridge
    name bridge id STP enabled interfaces
    br0 8000.000000000000 no
    virbr0 8000.5254009f0311 yes virbr0-nic
    # 把eth0加入网桥,使用桥接模式,给br0设置ip段,添加路由网关,关闭防火墙
    [root@linux-node1 ~]# brctl addif br0 eth0 && ip addr del dev eth0 192.168.56.111/24 && ifconfig br0 192.168.56.111/24 up && route add default gw192.168.56.2 && iptables -F
    # 查看网桥的IP
    [root@linux-node1~]# ifconfig br0
    br0:flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
    inet 192.168.56.111 netmask 255.255.255.0 broadcast 192.168.56.255
    inet6 fe80::20c:29ff:fe5d:cc27 prefixlen 64scopeid 0x20<link>
    ether 00:0c:29:5d:cc:27 txqueuelen 0(Ethernet)
    RX packets 4813 bytes 472527 (461.4 KiB)
    RX errors 0 dropped 0overruns 0 frame 0
    TX packets 2705 bytes 510369 (498.4 KiB)
    TX errors 0 dropped 0 overruns 0 carrier 0collisions 0
    # 编辑虚拟机的网络配置使用br0网桥模式
    [root@linux-node1 ~]# virsh edit CentOS-7-x86_64
    <interface type=’bridge’> #虚拟机网络连接方式
    <mac address=’52:54:00:22:04:0f’/> #为虚拟机分配MAC地址,务必唯一,如果是dhcp获得同样IP会引起冲突
    <source bridge=’br0’/> #当前主机网桥名称
    # 重启虚拟机
    # 关闭KVM虚拟机
    [root@linux-node1 opt]# virsh shutdown CentOS-7-x86_64
    Domain CentOS-7-x86_64 is being shutdown
    # 启动KVM虚拟机
    [root@linux-node1 opt]# virsh start CentOS-7-x86_64
    Domain CentOS-7-x86_64 started
    # 然后配置静态IP地址,重启网卡,即可以通过xshell连接上KVM虚拟机了。

    KVM性能优化
    1)CPU的优化
    Inter的cpu运行级别,按权限级别高低Ring3->Ring1->Ring0(Ring2和Ring1暂时不使用)Ring3为用户态;Ring0为内核态

    Ring3的用户态是没有权限管理硬件的,需要切换到内核态Ring0,这样的切换(系统调用)称为上下文切换,物理机到虚拟机多次的上下文切换,势必会导致性能出现问题。对于全虚拟化,inter实现了技术VT-x,在CPU硬件上实现了加速转换,CentOS7默认是不需要开启的。
    2)CPU缓存绑定
    [root@linux-node1 ~]# lscpu|grep cache
    L1d cache: 32K
    L1i cache: 32K
    L2 cache: 256K
    L3 cache: 3072K

    L1是静态缓存,造价高。
    L2,L3是动态缓存,通过脉冲的方式写入0和1,造价较低。
    cache解决了cpu处理快,内存处理慢的问题,类似于memcaced和数据库。
    如果cpu调度器把进程随便调度到其他cpu上,而不是当前L1,L2,L3的缓存cpu上,缓存就不生效了,就会产生miss,为了减少cache miss,需要把KVM进程绑定到固定的cpu上。
    可以使用taskset把某一个进程绑定(cpu亲和力绑定,可以提高20%的性能)在某一个cpu上,例如:taskset -cp 125718(1指的是cpu1,也可以绑定到多个cpu上,25718是指的pid).
    cpu绑定的优点:提高性能,20%以上
    cpu绑定的缺点:不方便迁移,灵活性差
    3)内存优化
    原本实现方式:
    虚拟机的虚拟内存===>虚拟机的物理内存
    宿主机的虚拟内存===>宿主机的物理内存

    现在实现方式:EPT(inter)
    虚拟机的虚拟内存=====EPT=====宿主机的物理内存
    VMM通过采用影子列表解决内存转换的问题,影子页表是一种比较成熟的纯软件的内存虚拟化方式,但影子页表固有的局限性,影响了VMM的性能,例如,客户机中有多个CPU,多个虚拟CPU之间同步页面数据将导致影子页表更新次数幅度增加,测试页表将带来异常严重的性能损失。如下图1-1为影子页表的原理图:

    在此之际,Inter在最新的Core I7系列处理器上集成了EPT技术(对应AMD的为RVI技术),以硬件辅助的方式完成客户物理内存到机器物理内存的转换,完成内存虚拟化,并以有效的方式弥补了影子页表的缺陷,该技术默认是开启的,如下图1-2为EPT技术的原理。

    KSM内存合并
    宿主机上默认会开启ksmd进程,该进程作为内核中的守护进程存在,它定期执行页面扫描,识别副本页面并合并副本,释放这些页面以供它用,CentOS7默认是开启状态
    [root@linux-node1 ~]# ps aux |grep ksmd
    root 280 0.0 0.0 0 0 ? SN 20:37 0:00 [ksmd]

    大页内存
    Linux默认的内存页面大小都是4K,HugePage进程会将默认的每个内存页面可以调整为2M,CentOS7默认开启的
    [root@linux-node1 ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
    [always] madvise never
    [root@linux-node1 ~]# ps aux|grep hugepage|grep -v grep
    root 2810.0 0.0 00 ? SN 04:220:03 [khugepaged]

    4)磁盘IO优化
    IO调度算法,也叫电梯算法,详情请看赵班长博客:http://www.unixhot.com/article/4
    1--Noop Scheduler:简单的FIFO队列,最简单的调度算法,由于会产生读IO的阻塞,一般使用在SSD硬盘,此时不需要调度,IO效果非常好
    2--Anticipatory IO Scheduler(as scheduler)适合大数据顺序顺序存储的文件服务器,如ftp server和web server,不适合数据库环境,DB服务器不要使用这种算法。
    3--Deadline Schedler:按照截止时间的调度算法,为了防止出现读取被饿死的现象,按照截止时间进行调整,默认的是读期限短于写期限,就不会产生饿死的状况,一般应用在数据库
    4--Complete Fair Queueing Schedule:完全公平的排队的IO调度算法,保证每个进程相对特别公平的使用IO
    # 查看本机Centos7默认所支持的调度算法
    [root@linux-node1 ~]# dmesg|grep -i “scheduler”
    [ 1.332147] io scheduler noop registered
    [ 1.332151] io scheduler deadline registered (default)
    [ 1.332190] io scheduler cfq registered
    # 临时更改某个磁盘的IO调度算法,将deadling模式改为cfq模式
    [root@linux-node1 ~]# cat /sys/block/sda/queue/scheduler
    noop [deadline] cfq
    [root@linux-node1 ~]# echo cfq >/sys/block/sda/queue/scheduler
    [root@linux-node1 ~]# cat /sys/block/sda/queue/scheduler
    noop deadline [cfq]
    # 使更改的IO调度算法永久生效,需要更改内核参数
    [root@linux-node1 ~]# vim /boot/grub/menu.lst
    kernel /boot/vmlinuz-3.10.0-229.el7 ro root=LABEL=/ elevator=deadline rhgb quiet

    ***************当你发现自己的才华撑不起野心时,就请安静下来学习吧***************

     

    1)虚拟化的分类
    全虚拟化:直接使用底层的硬件 比如:KVM
    半虚拟化:通过一个中间件,来调用底层的硬件 比如:xen
    平台虚拟化
    硬件虚拟化(Inter vt-x/EPT) (AMD AMD-v /RVI)
    软件虚拟化
    桌面虚拟化
    应用虚拟化
    存储虚拟化
    网络虚拟化
    2)虚拟化的优势
    虚拟化可以虚拟出不同的虚拟操作系统。
    虚拟机之间是相互独立互不影响的。
    支持异构。
    支持快照、克隆、还原等操作
    云计算与虚拟化的区别与联系

    云计算与虚拟化的区别与联系
    1)虚拟化是一种技术,云计算是一种使用模式。
    2)虚拟化是指将物理的实体,通过软件模式,形成若干虚拟存在的系统,其实真是运作还是在实体上,只是划分了若干区域或者时域划分。
    3)云计算的基础是虚拟化,但虚拟化只是云计算的一部分,云计算其实就是在虚拟化出若干资源池以后的应用,但虚拟化并不是只对应云计算的。

    KVM虚拟化
    KVM是开源软件,全称是kernel-based virtual machine(基于内核的虚拟机)。
    KVM是x86架构且硬件支持虚拟化技术(如 intel VT 或 AMD-V)的Linux全虚拟化解决方案。
    它包含一个为处理器提供底层虚拟化 可加载的核心模块kvm.ko(kvm-intel.ko或kvm-AMD.ko)。
    KVM还需要一个经过修改的QEMU软件(qemu-kvm),作为虚拟机上层控制和界面。
    KVM能在不改变linux或windows镜像的情况下同时运行多个虚拟机,(它的意思是多个虚拟机使用同一镜像)并为每一个虚拟机配置个性化硬件环境(网卡、磁盘、图形适配器……)。
    1)KVM的优势
    嵌入到Linux的Kernel中 (提高兼容性)
    代码级资源调用(提高性能)
    虚拟机就是一个进程
    直接支持MUMA技术(NUMA(Non Uniform Memory Access Architecture)技术可以使众多服务器像单一系统那样运转,同时保留小系统便于编程和管理的优点。
    2)KVM安装前提
    CPU要支持虚拟化,服务器上默认一般是开启的,虚拟机要自己启动VT-EPT技术
    [root@oldboy-node1 ~]# grep -E "(vmx|svm)" /proc/cpuinfo
    Inter处理器对应:VMX
    AMD处理器对应:SVM
    3)KVM虚拟机安装
    查看系统版本
    [root@linux-node1~]# cat /etc/redhat-release
    CentOSLinux release 7.1.1503 (Core)

    安装KVM相关的组件
    [root@oldboy-node1 ~]# yum -y install qemu-kvm qemu-kvm-tools virt-manager libvirt virt-install
    kvm:linux内核中的一个模块,不需要安装只要加载就行,通过用户态进程来管理。
    qemu:虚拟化软件,支持多种架构,可扩展,可移植
    qemu-kvm:用户态管理KVM,网卡、声卡、PCI设备等的管理
    libvirt:是一个虚拟化 API 和虚拟机(VMs)管理后台,支持远程或本地访问,支持多种虚拟化后端 (QEMU/KVM, VirtualBox, Xen,等等) 。

    检查KVM是否加载
    [root@oldboy-node1 ~]# lsmod | grep kvm
    kvm_intel 148081 0
    kvm 461126 1 kvm_intel

    启动并设置开机启动libvirt
    [root@linux-node1~]# systemctl enable libvirtd.service
    [root@linux-node1~]# systemctl start libvirtd.service
    [root@oldboy-node1 ~]# systemctl status libvirtd.service

    创建虚拟机
    1--虚拟机的创建命令
    –virt-type:指定虚拟机类型(kvm、qemu、xen)
    –name:指定虚拟机的名称
    –raw:指定内存大小
    –cpu:指定cpu的核数(默认为1)
    –cdrom:指定镜像
    –disk:指定磁盘路径(即上文创建的虚拟磁盘)
    –network:指定网络类

    2--创建硬盘(创建虚拟磁盘,-f指定格式,路径/opt/CentOS-7.1-x86_64.raw,大小10G)
    [root@oldboy-node1 ~]# qemu-img create -f raw /opt/CentOS-7.1-x86_64.raw 10G
    Formatting '/opt/CentOS-7.1-x86_64.raw', fmt=raw size=10737418240
    3--镜像的拷贝
    [root@oldboy-node1 ~]# dd if=/dev/cdrom of=/opt/CentOS-7.1.iso
    4--虚拟机的创建
    [root@oldboy-node1 ~]# virt-install --name CentOS-7.1-x86_64 --virt-type kvm --ram 1024 --cdrom=/opt/CentOS-7.1.iso --disk path=/opt/CentOS-7.1-x86_64.raw --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
    5--使用VNC连接虚拟机
    使用VNC客户端连接虚拟机 物理机的地址:5900 默认是从5900开始,以此类推。也可以通过端口grep vnc查看。
    6--修改网卡的名称
    因为CentOS7以后,网卡的命名发生改变。可以在安装的时候就做出修改

    按下Tab键,然后在quiet后面添加 net.ifnames=0 biosdevname=0
    至此,一台KVM虚拟机安装成功。

    KVM的日常应用管理
    1--虚拟机的查看
    # 当前正在运行中的虚拟机
    [root@linux-node1 opt]# virsh list
    Id Name State
    —————————————————-
    1 CentOS-7-x86_64running
    # 当前物理机中的所有的虚拟机
    [root@linux-node1 opt]# virsh list --all
    也可以在物理机进程中查看,KVM虚拟机就是一个KVM进程在运行
    2--虚拟机的开关
    关闭虚拟机
    [root@oldboy-node1 ~]# virsh shudown CentOS-7.1-x86_64(主机名)
    [root@oldboy-node1 ~]# virsh destroy CentOS-7.1-x86_64(主机名)
    打开虚拟机
    [root@oldboy-node1 ~]# virsh start CentOS-7.1-x86_64
    删除虚拟机
    [root@oldboy-node1 ~]# virsh undefine CentOS-7.1-x86_64
    挂起
    [root@oldboy-node1 ~]# virsh suspended CentOS-7.1-x86_64
    恢复
    [root@oldboy-node1 ~]# virsh resume CentOS-7.1-x86_64
    3--虚拟机CPU的扩容
    编辑虚拟机
    virsh edit CentOS-7.1-x86_64
    # 为了实现CPU的热添加,就需要更改Cpu的最大值,当然热添加值不能超过最大值
    # 当前为1,自动扩容最大为4
    [root@linux-node1 opt]# virsh edit CentOS-7-x86_64
    <vcpu placement=’auto’ current=”1″>4</vcpu>
    # 热修改为2个cpu(不知减少),高版本自动激活
    [root@linux-node1 opt]# virsh setvcpus CentOS-7-x86_64 2 –live
    # 通过vnc登录KVM虚拟机查看是否扩容成功
    [root@KVM]# grep processor /proc/cpuinfo |wc -l
    # 在创建虚拟机时指定cpu
    [root@linux-node1 ~]# virt-install –help|grep vcpus
    –vcpus VCPUS
    """
    为虚拟机配置的 vcpus 数。
    例如:
    –vcpus 5
    –vcpus 5,maxcpus=10,cpuset=1-4,6,8
    –vcpus sockets=2,cores=4,threads=2,
    """
    4--内存热膨胀和压缩
    # 查看当前KVM内存大小
    [root@linux-node1 ~]# virsh qemu-monitor-command CentOS-7-x86_64 –hmp –cmd info balloon
    balloon: actual=1024
    # 热添加600M
    [root@linux-node1 ~]# virsh qemu-monitor-command CentOS-7.1-x86_64 –hmp –cmd balloon 600
    # 在配置文件中修改
    [root@linux-node1 network-scripts]# virsh edit CentOS-7.1-1-x86_64
    最大内存<memory unit='KiB'>4048576</memory>
    当前内存<currentMemory unit='KiB'>1048576</currentMemory>
    5--硬盘的模式
    生产中不建议对线上的服务器的硬盘进行更改,因此直接不对此赘述。
    硬盘格式:
    RAW:全镜像格式:设置多大就是多大,写入速度快,可以随便转换成其他的格式。性能最优。但是占用空间大。
    QCOW2:稀疏格式:支持写时拷贝(Cow,copy-on-write)压缩,快照,镜像,更小的存储空间。(用多少给多少)可选择基于Zlib的压缩方式,可以选择AES加密
    创建qcow2和raw文件
    [root@linux-node1 ~]# qemu-img create -f qcow2 test.qcow2 10G
    Formatting 'test.qcow2', fmt=qcow2 size=10737418240 encryption=off cluster_size=65536 lazy_refcounts=off
    [root@linux-node1 ~]# qemu-img create -f raw test.raw 10G
    Formatting 'test.raw', fmt=raw size=10737418240
    空间使用情况对比
    [root@linux-node1 ~]# ll -sh test.*
    200K -rw-r--r-- 1 qiaoliyong qiaoliyong 193K 5 月 6 10:29 test.qcow2
    0 -rw-r--r-- 1 qiaoliyong qiaoliyong 10G 5 月 6 10:28 test.raw
    [root@linux-node1 ~]# stat test.raw
    文件:"test.raw"
    大小:10737418240 块:0 IO 块:4096 普通文件
    [root@linux-node1 ~]# stat test.qcow2
    文件:"test.qcow2"
    大小:197120 块:400 IO 块:4096 普通文件

    6--网卡的配置
    # 先建立一个虚拟网卡,名称为br0(可以看做是一个逻辑网段,也可以看做是一个VLAN名称)
    [root@linux-node1~]# brctl addbr br0
    # 查看网卡信息
    [root@linux-node1 ~]# brctl show
    bridge
    name bridge id STP enabled interfaces
    br0 8000.000000000000 no
    virbr0 8000.5254009f0311 yes virbr0-nic
    # 把eth0加入网桥,使用桥接模式,给br0设置ip段,添加路由网关,关闭防火墙
    [root@linux-node1 ~]# brctl addif br0 eth0 && ip addr del dev eth0 192.168.56.111/24 && ifconfig br0 192.168.56.111/24 up && route add default gw192.168.56.2 && iptables -F
    # 查看网桥的IP
    [root@linux-node1~]# ifconfig br0
    br0:flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
    inet 192.168.56.111 netmask 255.255.255.0 broadcast 192.168.56.255
    inet6 fe80::20c:29ff:fe5d:cc27 prefixlen 64scopeid 0x20<link>
    ether 00:0c:29:5d:cc:27 txqueuelen 0(Ethernet)
    RX packets 4813 bytes 472527 (461.4 KiB)
    RX errors 0 dropped 0overruns 0 frame 0
    TX packets 2705 bytes 510369 (498.4 KiB)
    TX errors 0 dropped 0 overruns 0 carrier 0collisions 0
    # 编辑虚拟机的网络配置使用br0网桥模式
    [root@linux-node1 ~]# virsh edit CentOS-7-x86_64
    <interface type=’bridge’> #虚拟机网络连接方式
    <mac address=’52:54:00:22:04:0f’/> #为虚拟机分配MAC地址,务必唯一,如果是dhcp获得同样IP会引起冲突
    <source bridge=’br0’/> #当前主机网桥名称
    # 重启虚拟机
    # 关闭KVM虚拟机
    [root@linux-node1 opt]# virsh shutdown CentOS-7-x86_64
    Domain CentOS-7-x86_64 is being shutdown
    # 启动KVM虚拟机
    [root@linux-node1 opt]# virsh start CentOS-7-x86_64
    Domain CentOS-7-x86_64 started
    # 然后配置静态IP地址,重启网卡,即可以通过xshell连接上KVM虚拟机了。

    KVM性能优化
    1)CPU的优化
    Inter的cpu运行级别,按权限级别高低Ring3->Ring1->Ring0(Ring2和Ring1暂时不使用)Ring3为用户态;Ring0为内核态

    Ring3的用户态是没有权限管理硬件的,需要切换到内核态Ring0,这样的切换(系统调用)称为上下文切换,物理机到虚拟机多次的上下文切换,势必会导致性能出现问题。对于全虚拟化,inter实现了技术VT-x,在CPU硬件上实现了加速转换,CentOS7默认是不需要开启的。
    2)CPU缓存绑定
    [root@linux-node1 ~]# lscpu|grep cache
    L1d cache: 32K
    L1i cache: 32K
    L2 cache: 256K
    L3 cache: 3072K

    L1是静态缓存,造价高。
    L2,L3是动态缓存,通过脉冲的方式写入0和1,造价较低。
    cache解决了cpu处理快,内存处理慢的问题,类似于memcaced和数据库。
    如果cpu调度器把进程随便调度到其他cpu上,而不是当前L1,L2,L3的缓存cpu上,缓存就不生效了,就会产生miss,为了减少cache miss,需要把KVM进程绑定到固定的cpu上。
    可以使用taskset把某一个进程绑定(cpu亲和力绑定,可以提高20%的性能)在某一个cpu上,例如:taskset -cp 125718(1指的是cpu1,也可以绑定到多个cpu上,25718是指的pid).
    cpu绑定的优点:提高性能,20%以上
    cpu绑定的缺点:不方便迁移,灵活性差
    3)内存优化
    原本实现方式:
    虚拟机的虚拟内存===>虚拟机的物理内存
    宿主机的虚拟内存===>宿主机的物理内存

    现在实现方式:EPT(inter)
    虚拟机的虚拟内存=====EPT=====宿主机的物理内存
    VMM通过采用影子列表解决内存转换的问题,影子页表是一种比较成熟的纯软件的内存虚拟化方式,但影子页表固有的局限性,影响了VMM的性能,例如,客户机中有多个CPU,多个虚拟CPU之间同步页面数据将导致影子页表更新次数幅度增加,测试页表将带来异常严重的性能损失。如下图1-1为影子页表的原理图:

    在此之际,Inter在最新的Core I7系列处理器上集成了EPT技术(对应AMD的为RVI技术),以硬件辅助的方式完成客户物理内存到机器物理内存的转换,完成内存虚拟化,并以有效的方式弥补了影子页表的缺陷,该技术默认是开启的,如下图1-2为EPT技术的原理。

    KSM内存合并
    宿主机上默认会开启ksmd进程,该进程作为内核中的守护进程存在,它定期执行页面扫描,识别副本页面并合并副本,释放这些页面以供它用,CentOS7默认是开启状态
    [root@linux-node1 ~]# ps aux |grep ksmd
    root 280 0.0 0.0 0 0 ? SN 20:37 0:00 [ksmd]

    大页内存
    Linux默认的内存页面大小都是4K,HugePage进程会将默认的每个内存页面可以调整为2M,CentOS7默认开启的
    [root@linux-node1 ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
    [always] madvise never
    [root@linux-node1 ~]# ps aux|grep hugepage|grep -v grep
    root 2810.0 0.0 00 ? SN 04:220:03 [khugepaged]

    4)磁盘IO优化
    IO调度算法,也叫电梯算法,详情请看赵班长博客:http://www.unixhot.com/article/4
    1--Noop Scheduler:简单的FIFO队列,最简单的调度算法,由于会产生读IO的阻塞,一般使用在SSD硬盘,此时不需要调度,IO效果非常好
    2--Anticipatory IO Scheduler(as scheduler)适合大数据顺序顺序存储的文件服务器,如ftp server和web server,不适合数据库环境,DB服务器不要使用这种算法。
    3--Deadline Schedler:按照截止时间的调度算法,为了防止出现读取被饿死的现象,按照截止时间进行调整,默认的是读期限短于写期限,就不会产生饿死的状况,一般应用在数据库
    4--Complete Fair Queueing Schedule:完全公平的排队的IO调度算法,保证每个进程相对特别公平的使用IO
    # 查看本机Centos7默认所支持的调度算法
    [root@linux-node1 ~]# dmesg|grep -i “scheduler”
    [ 1.332147] io scheduler noop registered
    [ 1.332151] io scheduler deadline registered (default)
    [ 1.332190] io scheduler cfq registered
    # 临时更改某个磁盘的IO调度算法,将deadling模式改为cfq模式
    [root@linux-node1 ~]# cat /sys/block/sda/queue/scheduler
    noop [deadline] cfq
    [root@linux-node1 ~]# echo cfq >/sys/block/sda/queue/scheduler
    [root@linux-node1 ~]# cat /sys/block/sda/queue/scheduler
    noop deadline [cfq]
    # 使更改的IO调度算法永久生效,需要更改内核参数
    [root@linux-node1 ~]# vim /boot/grub/menu.lst
    kernel /boot/vmlinuz-3.10.0-229.el7 ro root=LABEL=/ elevator=deadline rhgb quiet

    ***************当你发现自己的才华撑不起野心时,就请安静下来学习吧***************

    展开全文
  • 作者:int32bit链接:https://www.zhihu.com/question/61039231/answer/211518028来源:知乎云计算是一种服务模式,这种模式并不是计算机行业所特有,也不是现代所特有,而是一种已经存在很久的服务模式。...
    作者:int32bit
    链接:https://www.zhihu.com/question/61039231/answer/211518028
    来源:知乎

    云计算是一种服务模式,这种模式并不是计算机行业所特有,也不是现代所特有,而是一种已经存在很久的服务模式。其思路就是把各种资源整合起来,然后租给有需要的用户。拿图书馆做比较,大家都很熟悉了,图书馆收集了很多书,如果你想看书,只需要到图书馆根据自己的需求去借就好了,图书馆会根据你借的数量以及时间收费,你看完了就还给图书馆,书重新放回到原来的书架,其他用户可以继续借,重复利用。

    肯定有人会想到把这种模式移植到传统IT行业,只是把租的对象由图书变为服务器资源罢了,因此云计算诞生了。为什么称为云计算,因为服务器的功能就是提供计算能力,把服务器租给你相当于卖给你服务器租赁期间的计算能力,因此称为云计算。

    怎么运作,很简单,你需要多少CPU、多少硬盘,自己去机房搬,云服务提供商会根据你的数量按天计费,当然你也可以包月包年。你如果愿意出更多的钱,也可以提供送货上门服务。服务器硬件给你了,只要在租赁期间,随便你处置,就和自己买的服务器一样,服务器搬到自己的机房后,发现自己人手不足,你要一个一个安装操作系统,招一个人专门做这个成本也高。于是云服务商提供了其它增值服务,比如上门给你安装操作系统、上门组建网络,甚至给你提供安装数据库、大数据Hadoop/Spark集群搭建服务等,把这种麻烦事交给别人了,显然大大节省了自己的运维成本。

    云计算的好处也出来了,你为什么要租服务器,而不是自己买,因为你可能只是想用一段时间,相对于你自己买服务器,成本太高了,租用更方便。另外,你自己买需要根据业务评估买多少,可能买回来发现不够用,于是重新采购,流程麻烦,买的太多了,又存在资源浪费。而租用就更弹性了,需要多少,租用多少,不需要了还给云服务商就好了。私有云同样,只不过是企业内部结算罢了。以上是IaaS的运营模式。你有可能有这种情况,你写了一个Web项目并打好了war包,但自己手头没有服务器来跑,你可以把你的war包交给云服务提供商,他们负责给你运行,你不用租整个服务器,也不用搭建运行环境,打好war包拷给他们就好,他们帮你部署运行。这就是我们说的PaaS服务。更高级的,你手头有很多照片,你想把照片中的人物提取出来,但你自己不会写代码实现,你可以把照片发给云服务商,他们通过自己的脸部识别技术处理后把结果发给你,这就类似于SaaS。

    以上就是云计算的非权威解读,它更确切地说云计算不是指特定的某种技术,而是一种服务模式,一种交付方式。问题来了,以上需要把服务器搬来搬去太麻烦了,而且用户还需要有自己的机房来放租来的服务器。有没有某种技术能够不需要移动服务器,也能解决前面提到的问题,把CPU、内存、磁盘等资源打包租给用户。相信都知道答案了,虚拟化技术就可以完美解决这个问题,而虚拟机是虚拟化实现之一,但绝不是唯一,还有可能是容器,甚至是真正的物理机(裸机)。提供虚拟机的hypervisor也不是只有vmware,还有比如kvm/qemu、xen等。除了虚拟机外,还有许多其它虚拟化技术,比如ovs虚拟网络等。通过虚拟技术,你再不用搬服务器,而完全自助。除此之外,利用虚拟化技术还能更方便的部署运维,比如不用一台一台安装操作系统,你安装完一台后,很方便地进行克隆,避免了大量的重复劳力工作。你也不用自己建机房,省去了很多工作,完全交给云服务提供商或者自己内部的云平台团队。

    之所以容易混淆虚拟机和云计算,是因为虚拟机确实在云计算中太普遍了,它是云计算中最活跃的主体,也是核心之一,很多服务都是围绕着虚拟机提供服务。在AWS或者其它公有云买云服务,最直接的方式就是申请一台虚拟机。你购买的云数据库,底层也有可能是虚拟机,原理大概是这样的,比如你买一个mysql云数据库,云平台会在后台给你首先起一个虚拟机,这个虚拟机镜像包含了mysql服务,当虚拟机起来,mysql服务就跑起来了。你不仅需要访问数据库,还有可能需要其它相关的功能,比如设置主从、查看日志、创建备份、设置账户权限等,由于虚拟机对用户是不可见的,并且不是所有的用户都会这些操作。因此云服务商还提供了非常方便的API接口,用户只需要调用API或者Web界面就可以完成以上所有操作,而不需要自己去学习和关心怎么弄。底层怎么实现,这个没有固定地方法,有可能是在虚拟机跑个agent程序,执行某个操作,比如创建一个数据库用户,agent就跑一个已经定义好的脚本,当然也有可能通过外部程序来完成数据库内部的配置管理,比如ssh/ansible/puppet等。

    总而言之,云计算高大上,近年也是抄的火热,但本质是思维的转变,而非技术的革新。你把计算能力给别人用-云计算,存储给别人用-云存储,数据库给别人用-云数据库(DBaaS),负载均衡给别人用-LBaaS,防火墙给别人用-FWaaS。但实现手段依然是传统的IT技术,比如分布式技术、虚拟化技术、网络技术、自动化运维技术、容灾技术等,并没有造出新技术,而只是通过这些技术组合把一些资源、功能产品或者软件等封装成API对外提供服务。

    云计算最权威标准可以参考AWS,IaaS开源实现方案可以参考OpenStack,目前也是云计算领域中最活跃的开源项目之一,目前除了提供IaaS的基础服务(计算、存储、网络)外,还实现了Trove数据库服务、Mistral工作流以及cloud cron服务、Sahara大数据库服务、Magnum容器编排服务等。

    我偶尔也会在微博上分(tu)享(cao)云计算和OpenStack相关的东西,对云计算感兴趣的可以一起讨论学习:int32bit@weibo

    展开全文
  • 虚拟机动态迁移技术简介;虚拟机动态迁移的评估标准;主流动态迁移算法;Pre-copy算法及其改进;标准的Pre-Copy;标准Pre-copy续;Pre-copy算法的改进; 基于次数序列的Pre-Copy算法 ;基于增量压缩技术的Pre-copy;通过CPU...
  • 关于云计算环境中虚拟机快照技术的综述.pdf
  • 云计算安全防护技术 虚拟机防护.ppt
  • 在Xen和KVM之间自主发起虚拟机动态迁移,同时能够对迁移过程进行实时控制,保证虚拟机的SLA。
  • 随着大规模计算技术的发展,虚拟机技术已经成为云计算中的重要技术。为了提高云计算实验平台的运行效率,提出了一种虚拟机容错机制,并进行了研究,详细论述了实现的过程以及关键技术。通过实验表明,该容错技术能...
  • 云计算虚拟机实验2020

    2021-03-15 10:56:31
    云计算虚拟机实验 实验目的: 下载 Wmware软件,并在Wmware上配置四台Linux虚拟机Centos系统,使其能互通; 使Wmare上的Linux虚拟机连接Xshell; 在其中一台虚拟机上安装mysql。 实验过程: 一...
  • 国家标准《信息技术云计算虚拟机管理通用要求》即将报批.pdf
  • 虚拟机的迁移技术前言一、虚拟机的冷迁移二、虚拟机的热迁移 前言 本环境是基于 Centos 7.7 系统构建KVM环境 具体构建,请参考 KVM环境的部署 虚拟机的迁移: 虚拟机的冷迁移 虚拟机的热迁移 一、虚拟机的冷...
  • 云计算环境中虚拟机动态迁移技术研究.pdf
  • 一、云计算与虚拟化有何不同 二、云和虚拟化的好处是什么? 1) 虚拟化的好处 2) 云计算的好处 三、云计算还是虚拟化,哪种最适合你? “云”和“虚拟化”这两个术语常常让人产生困惑,常认为这两个词意味着相同的...
  • 云计算中XEN虚拟机安全隔离相关技术综述.pdf
  • 云计算是一种服务模式,这种模式并不是计算机行业所特有,也不是现代所特有,而是一种已经存在很久的服务模式。其思路就是把各种资源整合起来,然后租给有需要的用户。 拿图书馆做比较,大家都很熟悉了,图书...
  • 云计算之服务器虚拟化技术

    千次阅读 2019-06-17 21:32:28
    服务器虚拟化技术 1.历史发展 ...1965年8月,IBM推出System/360 Model 67和TSS分时共享系统,允 许多个远程用户共享同一高性能计算设备的使用时间,这是最原始的虚拟机技术 发展期–上世纪...
  • ****(云计算)EXSI虚拟机配置教程*** EXSI虚拟机配置教程 一、创建自己的虚拟主机 首先,我们先使用自己的vSphere Client 软件登陆自己的云平台 你会看到以下界面 然后我们在红圈处点击创建虚拟机 点击完成后会...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 31,649
精华内容 12,659
关键字:

云计算与虚拟机技术