2.3.1 虚拟资源层 虚拟化软件|学习笔记
开发者学堂课程【高校精品课-长安大学 -基于混合式教学的云计算课程建设:2.3.1 虚拟资源层 虚拟化软件】学习笔记,与课程紧密联系,让用户快速学习知识。课程地址:https://developer.aliyun.com/learning/course/1073/detail/154562.3.1 虚拟资源层 虚拟化软件内容介绍:一、虚拟资源层二、虚拟化简介三、虚拟化流程和操作四、计算虚拟化软件(虚拟机管理程序)五、计算虚拟化软件(虚拟机管理程序)的类型六、存储虚拟化软件七、网络虚拟化软件一、虚拟资源层服务参考模型中的第二层虚拟资源层。在构建云基础架构时,会将虚拟资源层部署在物理层上,虚拟资源层由虚拟化的计算、存储和网络资源组成虚拟资源层,使得云基础架构得以具备两个关键的特征,资源池化和快速弹性,快速弹性虚拟层指定在该层上运行的实体虚拟化软件资源池和虚拟资源,该层的关键功能是对物理资源进行抽象化,并使他们以虚拟资源的形式呈现在计算系统、网络设备和存储设备上部署的虚拟化软件,会对他所部署到的物理资源进行抽象化,对物理资源进行抽象化和实现多数和环境,这会提高物理资源的利用率,而物理资源利用率的提高则会增加基础架构实体的投资回报率。虚拟化软件还负责对从中创建虚拟资源的物理资源进行实化。虚拟资源的设立包括虚拟机和虚拟网络,用来创建资源池和虚拟资源的请求,是由资源管控层生成的,虚拟层在收到来自管控层的请求以后。执行这些信息,那么除了创建资源池和虚拟资源外,虚拟化软件支持的功能,还可实现最佳的资源利用率,并进而提高投资回报,虚拟资源成本包括执行,由管控层生成的请求,以及将请求转发到物理层,以便让物理层执行他们,由管控层生成的请求,包括创建资源池和创建虚拟资源等。这里需要注意的一件事,在部署云基础架构的时候,组织可以选择不部署虚拟。在这样的环境中,管控层部署在物理层上可以直接请求物理层执行操作,而且还可以对基础架构的一部分进行循环,而对其余部分不进行循环。接下来,我们将分别学习虚拟化软件、资源池和虚拟相关的。二、虚拟化简介虚拟化是对物理资源进行逻辑抽象化,使单个硬件资源能够支持多个并发的系统使用,或使多个硬件资源能够支持单个系统使用。比如可以对单个磁盘驱动器进行分区,从而将其作为多个磁盘驱动器呈现给计算系统,那么同样也可以合并扩展多个磁盘驱动器,从而将它们作为单个磁盘驱动器呈现给计算器。通过虚拟化还可以使资源呈现出来的大小比实际大或比实际小,而且因虚拟化而对物理资源进行抽象化后可实现多租户环境,从而可以改进物理资源的领域。虚拟化部署后可以构建云基础架构,带来多方面的好处,通过虚拟化可对 IT 资源进行整合,从而帮助服务提供商优化其对基础架构资源的利用率。提高 ID 资产的利用率,有助于提高服务商降低和购置新硬件相关的成本。此外,虚拟化还可以降低与维护资源相关的空间和能耗程,而且管理这些资源所需的人员也更少,这又进一步降低了成本。与部署物理资源相比,使用软件创建虚拟资源将使服务提供商能够更快的部署技术架构。实施虚拟化后,可以根据业务需求来创建和回收逻辑资源,从而可提高灵活性。三、虚拟化流程和操作虚拟化的流程和操作,那么要使资源可以供使用者使用,那么需要执行以下三个关键部分,第一,部署虚拟化软件,第二,创建资源池,第三,创建虚拟资源虚拟化软件。对物理资源进行抽象化,它部署在计算系统、存储设备和网络设备上。虚拟化软件的关键功能是创建资源池和创建虚拟资源。资源池是计算资源的聚合,包括处理。内存、存储和网络代码,它向控制层提供这些资源的一个聚合视图。虚拟化软件通过与控制软件协同作用来对资源进行实化。例如,存储虚拟化软件会对多个存储设备进行实化,使这些存储设备。以单个大容量存储的形式呈现。同样,通过使用计算虚拟化软件,那么已迟化的物理计算系统的处理能力和内存容量可分别被视为所有处理器的处理能力之和和所有内存的内存容量之和。虚拟化软件通过与控制层的协同作用,创建虚拟资源,那么,这些虚拟资源是通过从资源池分配物理资源来创建,这些虚拟资源已经共享与池化的物理资源。四、计算虚拟化软件(虚拟机管理程序)虚拟化软件。它经过专门的设计和优化和并发运行多个虚拟而虚拟机管理器对硬件进行抽象化,使其呈现为具有以下组件的物理计算系统,处理器,内存,还有设备及其他。对于操作系统和应用程序运行必不可少的每个虚拟机,都会或分一个虚拟机管理器,那么虚拟机管理器会从物理计算系统获得成功,运行虚拟机所必须的一定份额的处理器、内存,还有设备和存储拟化软件,它包括计算虚拟化、存储虚拟化和网络虚拟化软件三个方面。用于计算虚拟化的软件称作虚拟机管理程序。它是一种软件,它安装在计算系统上,是多个操作系统。在一个物理计算系统上并发运行虚拟机管理程序与虚拟机管理程序,管理软件又成为管控软件。我们会在资源管控层中予以讨论,是用来部署软件定义的计算环境的基础组件。虚拟机管理程序对物理计算硬件进行抽象化,以创建多个虚拟机。这些虚拟机呈现给操作系统的外观和运行方式,与物理计算系统没有什么区别。那么虚拟机管理程序,向所有虚拟机提供标准化的硬件资源,包括处理器、内存、网络。虚拟机管理程序有两个关键的组件,内核和虚拟机管理器。虚拟机管理程序内核提供与任何其他操作系统的内核相同的功能,包括进程创建、文件系统管理和进程调度等。它经过专门的设计和优化和并发运行多个虚拟而虚拟机管理器对硬件进行抽象化,使其呈现为具有以下组件的物理计算系统,处理器,内存,还有设备及其他。对于操作系统和应用程序运行必不可少的每个虚拟机都会或分一个虚拟机管理器,那么虚拟机管理器会从物理计算系统获得成功,运行虚拟机所必须的一定份额的处理器、内存,还有设备和存储。五、计算虚拟化软件(虚拟机管理程序)的类型虚拟机管理程序可以分为两类,一种是裸机虚拟机管理程序,另一种是托管的虚拟机管理程序。裸机虚拟机管理程序直接安装在应用上,它可以直接访问计算系统,因此它可以托管的虚拟机管理程序效率更高。但是裸机虚拟机管理程序所内置的设备驱动程序可能十分有限,因此要运行这种类型的虚拟机管理程序,通常需要使用虚拟机管理程序供应商认证的。裸机虚拟机管理程序是面向企业数据中心和技术架构设计,它还支持资源管理、高可运行安全性等一些高级与裸机虚拟机管理程序。不同的是,托管的虚拟机管理程序,以应用程序的形式安装的操作系统,采用这种方法是,虚拟机管理程序无法直接访问所有的请求都必须经由物理计算系统上运行的操作系统、托管的虚拟机管理程序以及安装到的操作系统所支持的全部设备件。与裸机虚拟机管理程序相比,使用托管的虚拟机管理程序会增加开销,因为操作系统上运行着许多占用计算机系统资源的服务和形成,因此托管的虚拟机管理程序最适合开发,测试和培训。六、存储虚拟化软件存储虚拟化软件,存储虚拟化软件可以内置到存储设备操作环境中,安装在独立的计算系统上,或者作为虚拟机管理程序的功能。存储虚拟化软件对物理资源、存储资源对对物理存储资源进行抽象化。已创建虚拟资源,有虚拟键和虚拟键,内置到阵列操作环节。存储虚拟化软件,能够对多个物理存储设备进行实化和抽象化,从而将其呈现为一个逻辑存储设备。安装在独立计算系统上的存储虚拟化软件是用来物理软件代码的存储软件的计算。存储虚拟化软件,能够对现有的多个物理存储设备进行实化和抽象化,从而将其呈现为一个开放式的平台。在资源管控软件的帮助下,存储虚拟化软件除了可以创建虚拟界面之外,还可以执行创建虚拟券等任务。这种软件是可以控制整个存储技术架构的一个单一控制点,因而可实现基于策略的自动化存储。虚拟化还可以作为虚拟机管理程序的功能题,这样就可以创建以固定磁盘驱动器形式呈现给操作系统。七、网络虚拟化软件虚拟网络虚拟化软件。网络虚拟化软件可以内置到网络设备的操作环境中,安装在独立的计算系统上,或者作为虚拟机管理程序的功能。网络虚拟化软件对物理网络资源进行抽象化,以创建虚拟网络,比如虚拟的 life 和虚拟的三内置到网络设备的操作环境中的网络。虚拟化软件能够对物理网络进行抽象化,它能够将物理网络分成多个虚拟网络,安装在独立计算系统上的网络虚拟化软件。是用来部署软件定义的网络环境的基础途径。这种软件是可控制整个网络基础架构的单一控制,因而可实现基于策略的自动化。网络虚拟化还可以作为虚拟机管理程序的功能,用来模拟物理计算系统上不同虚拟机之间的网络连接。使用网络虚拟化软件可以创建虚拟交换机,那么,这些虚拟交换机以物理交换机的形式呈现给虚拟机。
虚拟化技术-虚拟化概述|学习笔记
开发者学堂课程【高校精品课-中国传媒大学 -云计算技术:虚拟化技术-虚拟化概述】学习笔记,与课程紧密联系,让用户快速学习知识课程地址:https://developer.aliyun.com/learning/course/8/detail/1258虚拟化技术-虚拟化概述内容介绍:一、虚拟化概述二、虚拟化中的几个重要概念 一、虚拟化概述在虚拟化技术里有有五种技术,分别是虚拟化概述、服务器虚拟化、存储虚拟化、网络虚拟化、桌面虚拟化。虚拟化技术已经成为构建云计算环境的一项关键技术。虚拟化技术的核心思想是利用软件和固件管理程序构成虚拟化层,把物理资源映射为虚拟资源。在虚拟资源上可以安装和部署多个虚拟机,实现多用户共享物理资源。随着云计算的发展,传统的数据中心逐渐过渡到虚拟化数据中心。√采用虚拟化技术将原来数据中心的物理资源进行抽象整合。√数据中心的虚拟化可以实现资源的动态分配和调度,提高现有资源的利用率和服务可靠性。√可以提供自动化的服务开通能力,降低运维成本。√具有有效的安全机制和可靠性机制,满足公众客户和企业客户的安全需求。√还方便系统升级、迁移和改造,这是虚拟化的数据中心。左边的图,个人的电脑或者是服务器,每台服务器的 IT 资源是独立的,在服务器最基础的底层就是硬件资源。硬件资源有四部分,是 CPU、内存、存储和网卡。在往上是操作系统和应用,有的应用会触发蓝屏,但每个操作系统上或个人的电脑上,都会装多个应用,有一个应用会触发蓝屏,就会影响别的应用,和其它应用做不到隔离性的问题,数据安全会受到影响。右边的图是虚拟化,服务器或者个人电脑 CPU 的利用率有多少,可以在任务管理器中查看。个人电脑如果没有一些很大的应用,CPU 利用率大概在30%、40%左右;如果对一些服务器来讲,服务器 CPU 利用率只有30%、40%会造成很大的资源浪费,达到70%是最好的利用。在虚拟化前,很大程度上会有资源的浪费;虚拟化之后看右边的图,最底层抽象成为共享资源池,上层操作系统与硬件是解藕的,池化之后每个虚拟机上面安装的操作系统,在往上可以安装应用,各个虚拟机之间可以隔离,可以把重要的应用安装在一个虚拟机上,如果有一个应用触发蓝屏,就不会影响其它应用。虚拟化之前每台服务器都有 CPU、内存、存储和网卡。 二、虚拟化中的几个重要概念上图有两个概念,一个是 Host Machine,就是物理机。比如说服务器、笔记本电脑、PC 机或者是个人电脑底层的硬件部分。Host OS 是运行在物理机之上的 OS,硬件也叫 Host Machine,host 是宿主机,右边是虚拟机。虚拟机最底层是 Host Machine,再上面 hypervisor 也叫 VMM,是虚拟出来的虚拟机,或者叫虚拟化软件层、虚拟机的监控层。再往上是 Guest Machine,虚拟出来的虚拟机,Guest OS 运行在虚拟机制上的 OS。最重要的虚拟机在 hypervisor 层,也叫做虚拟机监控层,软件来实现的虚拟化应用,不会触发蓝屏或者一些其他的问题。
虚拟化服务(服务器虚拟化、存储虚拟化)|学习笔记
开发者学堂课程【高校精品课-中国传媒大学 -云计算技术:虚拟化服务(服务器虚拟化、存储虚拟化)】学习笔记,与课程紧密联系,让用户快速学习知识课程地址:https://developer.aliyun.com/learning/course/8/detail/1259虚拟化服务(服务器虚拟化、存储虚拟化) 内容介绍:一、虚拟化的特点二、服务器虚拟化概念三、服务器虚拟化-底层实现四、服务器虚拟化-虚拟机迁移五、服务器虚拟化-隔离技术六、服务器虚拟化-案例分析 一、虚拟化的特点1、讲云计算概述的时候,讲过云计算的特点。下面讲虚拟化的特点,有分区、隔离、封装、独立。虚拟化分区是把虚拟化层能够给多个虚拟机划分服务器资源的能力,每个虚拟机都可以单独运行一个操作系统。同时运行的操作系统可以是相同的,也能是不同的。在一台服务器上运行多个应用程序,每个操作系统能看到的是虚拟化层给他自己的虚拟硬件,比如 CPU、内存。每个虚拟化层觉得自己运行在专用的服务器上,所以就实现了分区。分区可以解决两方面的问题,一方面是划分资源的配额,防止虚拟化超配额使用资源。每个分区都是给一定的资源配额,不会过量,也不会过少,根据需要分配。每个虚拟机会单独安装操作系统,彼此互不影响。2、隔离在讲虚拟化概述的时候讲虚拟化前和虚拟化后,虚拟化前是左边,虚拟化后是右边,起到了隔离的特征。主要通过分区建立多个虚拟机,采用逻辑隔离的措施,能够防止相互影响。假如一个服务器崩溃或者故障,不会影响到同一服务器上的其他虚拟机,在使用自己的笔记本时,可能会遇到操作系统故障,应用程序崩溃等,这会让整个机器或一台服务器崩溃,在它之上的所有应用程序都会受到影响。但是安装了虚拟机之后,一个虚拟机的崩溃或者是故障,不会影响到同一个服务器上的其他的虚拟机。一个虚拟机当中的病毒,和其他虚拟机相隔离,所以一个虚拟机上的病毒,也是不会影响到其它虚拟机上的病毒。3、封装比如说硬件配置、内存状态、磁盘状态、cpu 状态等,封装就是把它们储存在独立的物理硬件的一小组文件中。容器也是虚拟化的一个例子,容器类似于集装箱可以到处搬,因为它有封装的特征,这样只需要复制几个文件就可以随时随地复制、保存或者移动虚拟机。4、独立虚拟机相对硬件独立,在虚拟机迁移会体现的非常明显。虚拟机迁移的时候,只需要把虚拟机的一些设备文件或配置文件,或者是磁盘文件复制到另外一台主机上运行就可以了,不需要关心底层硬件类型是否兼容,这是相对硬件独立的特征。 二、服务器虚拟化概念1、概念将一个或多个物理服务器虚拟成多个逻辑上的服务器,集中管理,能跨越物理平台不受限制。2、服务器虚拟化发展史1964年, IBM 开始尝试在大型机上实现虚拟化。1972年,IBM 推出运行在大型机上的虚拟机。1999年,VMware 推出了 X86架构的虚拟化产品。X86 架构是计算机语言的指令集,是英特尔公司首先发布的。X86 架构是微处理器执行的语言的指令集。2002年,Xen被开源,VMware 是闭源的。2006年,KVM 诞生。2007年,惠普发布了针对惠普 UX 的 Integrated 虚拟机。2008年,微软在WINDOWS server 20082 当中加入了 hypervisor, hypervisor 是硬件的虚拟化技术。英特尔公司也推出了它的硬件虚拟化技术2008年,limits 容器 LXC 推出。2010年,KVM虚拟化机制。2011年,IBM、惠普和英特尔成立开放虚拟化测试联盟,加速KVM推广。2013年,Docker 推出。这是整个服务器虚拟化的发展史,主要是 CPU 内存、IO 的虚拟化。3、服务器虚拟化技术有两个方向一种是把一个物理的服务器虚拟成若干个独立的逻辑服务器,比如分区。本课程主要关注这种虚拟化技术。第二种是把若干分散的物理服务器虚拟为一个大的逻辑服务器,比如网格技术。 4、服务器虚拟化分类(1)根据虚拟化层实现方式的不同分为寄居虚拟化和裸机虚拟化两种。根据解决X86体系缺陷的不同方法,分为全虚拟化、半虚拟化和硬件虚拟化三类。第一种分类,根据虚拟化层实现的方式不同,寄居虚拟化和裸机虚拟化。①寄居虚拟化寄居虚拟化的虚拟化层称为虚拟机监控器,也可以称为虚拟机的模拟器(VMM)。VMM 安装在已有的主机操作系统上,最底层是物理机,是宿主操作系统,VMM 是安装在宿主机的操作系统上。通过宿主操作系统来管理和访问各类资源(如文件和各类IO设备)。②裸机虚拟化直接把 VMM 安装在服务器硬件设备上,没有宿主机操作系统。本质上 VMM 也可以认为是一个操作系统,一般称为 Hypervisor,这个操作系统是轻量级的操作系统。Hypervisor 实现从虚拟资源到物理资源的映射。直接安装在裸机上的虚拟化。③通过下图比较看它们的优缺点,操作系统虚拟化和混合虚拟化就不再仔细讲解。寄居虚拟化优点:简单、易于实现。因为有宿主操作系统。缺点:安装和运行应用程序依赖于主机操作系统对设备的支持。管理开销较大,性能损耗大。裸金属虚拟化优点:虚拟机不依赖于操作系统,支持多种操作系统,多种应用。但是 Hypervisor 层是一个轻量级的操作系统,所以虚拟层内核开发难度大,这就是它的缺点。寄居虚拟化有厂商 VMware workstation 和 Virtualbox,裸金属的虚拟化是 VMware ESXServer 和 Citrix XenServer。操作系统虚拟化是 Virtuozoo、Docker、LXC,Redhat KVM、华为 FusionSphere 使用的都是混合虚拟化。(2)还有一种分类方式是为了解决X86体积缺陷的方法分为全虚拟化,半虚拟化和硬件虚拟化。①全虚拟化在X86就架构里面,CPU 被分成四个环,分别是 Ring0、Ring1、Ring2、Ring3,其中 Ring0 的权限最高,一般运行的是特权指令,操作和管理关键资源的指令。比如开启摄像头这样的指令就是特权指令,只有在 Ring0 级别上才能运行的指令。Ring1 和 Ring2 上运行的指令很少。还有一种除了特权指令之外,主机操作系统发出的指令还有普通指令。普通指令在普通的权限级别上就能运行,在 Ring3 级别上就能运行。但是在虚拟化环境中,有一种特殊指令(特权指令)也被称为敏感指令,在虚拟化当中有两种机制,这就是全虚拟化方案,用软件实现的虚拟化。②两种机制a、一种是特权解除,看下图只有 host OS 在 Ring0 级别上,就是宿主机操作系统才能执行这个特权指令,VMM 和 Guest OS 应用都是运行在 Ring3 级别上的。在 Guest OS 中,执行系统内核的特权指令的时候,客户机的操作系统或者是称为虚拟机的操作系统,执行特权指令(敏感指令),一般都会触发异常。在触发了异常之后,这些异常就会被 VMM 捕获,再去找 Host OS,Host OS 再去找硬件执行。客户机的操作系统执行敏感指令之后,这些敏感指令会被 VMM 捕获,再由 VMM 将这些特权指令进行虚拟化成为指针对虚拟 CPU 起作用的虚拟特权指令。缺点是会存在一部分特权指令运行在 Ring1 的用户态上,而这些运行在 Ring1 上的特权指令并不会触发异常然后再被 VMM 捕获。b、所以出现了另外一种机制:陷入模拟(二进制翻译),就是 VMM 会对 GuestOS 中所有的二进制代码进行扫描,一旦发现 GuestOS 执行的二进制代码中包含有运行在用户态上的特权指令二进制代码时,就会将这些二进制代码翻译成虚拟特权指令二进制代码强制的触发异常。这就是陷入模拟,首先会对 GuestOS 当中所以的二进制代码进行扫描,发现异常,会把这些翻译成为特权指令的二进制代码触发异常,这就是二进制翻译。一般就这两种机制,特权解除和陷入模拟。VMware 使用二进制翻译的全虚拟化方案已经成为全虚拟化事实上的标准。③优点是不修改虚拟机操作系统,虚拟机的可移植性和兼容性较强,支持广泛的操作系统;缺点是运行时需要翻译 Guest OS 二进制代码,性能损耗较大,并且引入了新的复杂性,导致虚拟机监视器(VMM)开发难度较大。④半虚拟化a、Hypervisor 只模拟部分底层硬件,因此客户机操作系统不做修改是无法在虚拟机中运行的。半虚拟化通过修改客户机的操作系统内核,把不可虚拟化的指令替换为直接与虚拟化层交互的超级调用(hypercalls)。b、优点是通过虚拟机系统和 hypervisor 的交互,可改善性能和效率;缺点是只支持修改开源的操作系统,如果 Guest OS 是 WINDOWS 系统,windows 系统是闭源的,所以不能实现半虚拟化,只能修改开源操作系统,比如 Linux。此外,被修改过的虚拟机操作系统 Guest OS 可移植性较差。开源的 Xen 项目是半虚拟化的一个例子,它使用一个经过修改的 Linux 内核来虚拟化处理器。c、开源的 Xen 就是半虚拟化的例子,它使用一个经过修改的 Linux内核来虚拟化处理器。需要修改客户机的操作内核,其实修改的就是特权指令。因为 X86 系统有虚拟化漏洞,所以半虚拟化直接去 Guest OS 上把特权指令修改,让他不能访问 Ring0 级别的 CPU。⑤硬件辅助虚拟化WINDOWS 硬件辅助虚拟化叫 hypervisor,英特尔的硬件辅助虚拟化叫 VT-x,英特尔是生产处理器的公司,在处理器内部形成了新的 CPU 执行状态,一种是根模式(Root Mode),还有一种是非根模式(Non-Root Mode)。看下图Guest OS 运行在非根模式 Ring0 的核心态中,这表明 Guest OS 能够直接执行特权指令,而不再需要特权解除和陷入模拟机制。为什么有根模式和非根模式?Guest OS 一旦运行的是敏感指令,这个时候就会切换到根模式,由一个叫 VMCS 部件监控;当这个敏感指令执行完之后,再切换到非根模式执行普通的指令,这是英特尔的 VT-x硬件辅助虚拟化。(3)下图是由 X86 结构的缺陷形成的三种虚拟化技术,全虚拟化和半虚拟化一般都是软件虚拟化,用软件来实现。全虚拟化特点:VMM 向虚拟机模拟出和真实硬件完全相同的硬件环境;半虚拟化特点:VMM 需要修改 Guest OS 的特权指令;硬件虚拟化的 VMM 需要硬件的协助才能完成对硬件资源的虚拟。全虚拟化的优点不用修改 Guest OS 内核;半虚拟化性能高,能达到与原始系统相近的性能;虚拟化硬件也不需要修改 Guest OS 内核。全虚拟化缺点:虚拟化平台给处理器带来的开销;半虚拟化必须修改 Guest OS;硬件虚拟化需要硬件支持。全虚拟化代表产品有 VMware 和 Virtual PC;半虚拟化是 Xen 和 Denali;硬件虚拟化是 intel-VT 和 AMD-V。 三、服务器虚拟化-底层实现底层实现有 CPU 虚拟化、内存虚拟化、IO 设备虚拟化,这是服务器的虚拟化。1、CPU 虚拟化CPU 虚拟化技术是把物理的 CPU 抽象成虚拟的 CPU。一个物理的 CPU 只能运行一个虚拟的 CPU 指令,每个客户的操作系统是可以使用一个或多个虚拟 CPU 的,在各个操作系统之间,虚拟 CPU 运行是互相隔离,互不影响的。CPU 虚拟化有两个关键问题,虚拟 CPU 的正确运行是要保证虚拟机指令正确运行,现有的实现技术包括模拟执行和监控执行。监控 Guest OS 是否执行了敏感指令,如果执行了就要模拟执行。另外一个问题是调度问题,调度问题是指 VMM 决定当前哪个虚拟 CPU 在物理 CPU 上运行,要保证隔离性、公平性和性能。2、内存虚拟化内存虚拟化是把物理内存统一管理,包装成多个虚拟的物理内存提供给若干虚拟机使用,每个虚拟机拥有各自独立的内存空间。虚拟内存管理包括三种地址,物理地址就是物理机的地址,Host Machine的地址;虚拟地址是虚拟机上的地址,客户端看到的地址;它们两个中间有一个机器地址,保证公平和性能。3、IO 设备虚拟化IO 设备虚拟化技术把真实的设备统一管理起来,这几个虚拟化都是一样,内存是把物理内存统一管理,IO 设备是把真实的设备统一管理起来,包装成多个虚拟设备给若干个虚拟机使用,响应每个虚拟机的设备访问请求和 IO 请求。由 VMM 进行管理,IO 虚拟化也是由全虚拟化、半虚拟化和软件虚拟化三种思路。目前主流的 IO 设备虚拟化都是通过软件的方式来实现的,就是通过软件模拟来实现。 四、服务器虚拟化-虚拟机迁移1、虚拟机有一个特点是封装,封装便于虚拟机迁移。虚拟机迁移是将虚拟机实例从源宿主机迁移到目标宿主机,并且在目标宿主机上能够将虚拟机运行状态恢复到其在迁移之前相同的状态,以便能够继续完成应用程序的任务。从虚拟机迁移的源与目的地角度可分为物理机到虚拟机的迁移(P2V)、虚拟机到虚拟机的迁移(V2V)、虚拟机到物理机的迁移(V2P)。2、实时迁移(LiveMigration)就是保持虚拟机运行的同时,把他从一个计算机迁移到另一个计算机,并且在目的计算机恢复运行的技术。有两种情况下会用到实时迁移,一种是云计算中心的物理服务器负载经常处于动态变化中,当一台物理服务器负载过大时,若此刻不可能提供额外的物理服务器,管理员可以将其上面的虚拟机迁移到其他服务器,达到负载平衡。还有一种情况是云计算中心的物理服务器有时候需要定期进行升级维护,当升级维护服务器时,管理员可以将其上面的虚拟机迁移到其他服务器等升级维护完成之后,再把虚拟机迁移回来。3、下图是虚拟机迁移的示意图,虚拟机迁移的时候,它的状态和资源都是需要迁移的,需要把源宿主机迁移到目标宿主机,比如说磁盘、内存、CPU 状态、IO 的设备等都是需要传送过去的。而且内存的迁移难度是最高的,因为内存里面数据量比较大,而且信息非常重要;磁盘的迁移是最简单的,一般是通过共享的方式,不是真正的方式来迁移。4、虚拟机到虚拟机的迁移迁移有六个步骤,第一步预迁移(Pre-Migration),把源计算机称为主机a(host a),目的计算机记为主机b(host b),预迁移是主机a打算迁移其上的一个虚拟机 VM,首先要选择一个目的计算机作为迁移的对象,选好之后进入第二步,预订资源。预订资源(Reservation)是主机a向主机b发起迁移请求,确定b是否有这个资源,如果有就预订这些资源;如果没有继续在主机a当中运行,可以选择其它计算机作为目的计算机。第三步,预复制(InterativePre-Copy)。这个阶段 VM 仍然运行,主机a上的虚拟机仍然是运行的,主机a是以迭代的方式把 VM 的内存页复制到主机b上。在第一轮的迭代当中,所有的页都要从a传送到b;在第二轮之后,只复制前一轮传送当中被修改过的页面。第四步,停机复制(Stop-and-Copy)。停止主机a上的 VM,把它的网络连接到b,这个时候 CPU 状态和前一轮当中修改过页都会在这个步骤被传送过去。最后,主机a和主机b就会有一样的 VM 印象。第五步,提交(Commitment)。主机b会通知主机a已经成功收到了 VM 印象,主机a会对消息进行确认,确认之后就可以销毁或者是抛弃上面的 VM。第六步,启动(Activation)。起动迁移到b上的 VM,这是迁移的六个步骤。5、迁移的内容(1)内存的迁移(最困难的部分)①内存迁移分为三个阶段,第一阶段是 push 阶段。刚才讲解的六个步骤,适用于各个迁移。push 阶段在 VM 运行的同时,把它的内存页面通过网络复制到目的机器上,被修改的页是需要重传的。push 阶段是刚才讲的六个步骤中的预复制阶段,要把内存页通过网络复制到目的页,第一轮迭代,把所有的页从a传到b,之后的迭代只需要复制前一轮中迭代中被修改的页面,所以是预复制。②第二阶段是 Stop-and-Copy 阶段,这个阶段停止工作,把剩下的页面复制到目的计算机上,然后在目的机上启动新的 VM,对应的是步骤四,停机复制。步骤一到步骤六是整个虚拟机的迁移步骤,内存的迁移可以对应步骤三、步骤四。③第三阶段,pull 阶段。pull 阶段是新的虚拟机运行过程当中,如果访问到未被复制的页面,会发现页错误,会从原来的 VM 处把页复制过来。这个时候机器a上面的 VM 还是在工作着,所以才能把原来的 VM 把页复制过来。实际上,迁移内存没有必要同时包含上述三个阶段,目前大部分的迁移策略只包含其中一个或者两个阶段。(2)迁移方案①迁移方案有 Stop-and-Copy,静态迁移,需要 VM 停止工作,就是把机器a的 VM 暂停,然后把内存页复制给目的计算机,最后启动新的 VM。这种方法简单且总的迁移时间较短,但是停机时间是无法接受的。停机时间和 VM 物理内存大小是成正比的,如果 VM 内存很大,则它总的迁移时间会很长,所以这并不是一个特别理想的方案。②第二种迁移方案是 Stop-and-Copy 和 pull 两种方案相结合。首先是在 Stop-and-Copy 阶段把关键的、必要的复制到目的机器上,然后在目的机器上启动 VM,目的机器的页只有在需要的时候才复制过去。这种方案总的停机时间很短,Stop-and-Copy 阶段只是把关键的、必要的复制过去,大部分内存里面的东西还是没有复制过去,所以停机时间较短,但是总的迁移时间很长。因为剩下的页需要在使用的时候复制过去,而且在 pull 阶段复制会造成性能下降,因为有很多页都要在 pull 阶段复制,这样就会造成性能下降。③第三种迁移方案是 push 和 Stop-and-Copy 阶段结合,就是第一阶段和第二阶段相结合。Xen 采用的就是这种方案,首先采用预复制的方法,把内存页以迭代的方式复制到目的计算机上,第一轮复制所有的页,第二轮只复制在第一轮迭代当中修改过的页;第三轮只复制在第二轮当中修改过的页。迭代到一定次数,预复制阶段会结束,就会进入到 Stop-and-Copy 阶段,这个时候在停机,把剩下的没有复制过去的全复制过去,平衡了停机时间和总的迁移时间的矛盾,是一种理想的实时迁移内存的方法。但是需要有一种算法能够测定工作集,测算在 push 阶段什么时候迭代停止,需要有一种算法针对改动频繁的页,需要有一种算法能够测定工作集,以免反复重传,这种方法可能会占用大量的网络带宽,对其他服务造成影响,这是几种迁移方法的比较。(3)网络资源的迁移网络也是比较重要的一部分,VM 的所有网络设备、TCP 的连接状态和 IP 地址等都是需要一起迁移的。在局域网内,可以通过发送 ARP 的重定向包,将 VM 的 IP 地址与目的机器的 MAC 地址相绑定,之后的所有包就可以发送到目的机器上。(4)存储设备的迁移迁移存储设备的最大障碍在于需要占用大量时间和网络带宽,通常的解决办法是以共享的方式共享数据和文件系统,而非真正迁移。目前大多数集群使用 NAS(Network Attached Storage,网络连接存储)作为存储设备共享数据。NAS实际上是一个带有瘦服务器的存储设备,其作用类似于一个专用的文件服务器。在局域网环境下,NAS已经完全可以实现异构平台之间,如NT、UNIX等的数据级共享。基于以上的考虑,Xen并没有实现存储设备的迁移,实时迁移的对象必须共享文件系统。 五、服务器虚拟化-隔离技术1、虚拟机隔离是指虚拟机之间在没有授权许可的情况下,互相之间不可通信、不可联系的一种技术。可以从软件角度、硬件角度、网络角度来说明。软件角度是互相隔离的虚拟机之间保持独立,如同一个完整的计算机;硬件角度是被隔离的虚拟机相当于一台物理机,有自己的CPU、内存、硬盘、IO等,它与宿主机之间保持互相独立的状态;网络角度是被隔离的虚拟机如同物理机一样,既可以对外提供网络服务,也一样可以从外界接受网络服务。2、虚拟机隔离机制√网络隔离√构建虚拟机安全文件防护网√基于访问控制的逻辑隔离机制√通过硬件虚拟,让每个虚拟机无法突破虚拟机管理器给出的资源限制√硬件提供的内存和保护机制√进程地址空间的保护机制、IP地址隔离3、内存隔离(1)MMU 是 Memory Management Unit(内存管理单元),是 CPU 用来管理虚拟存储器、物理存储器的一个控制线路。MMU 的功能有四个,管理虚拟存储器的控制路线,管理物理存储器的控制路线,负责将虚拟地址映射为物理地址,提供硬件机制的内存访问授权。(2)内存虚拟化的时候讲了虚拟内存管理有三种地址,虚拟地址、物理地址、机器地址。内存隔离里面的机器内存就是刚才说的物理地址,虚拟内存就是虚拟地址。中间是伪物理内存,实际的地址是机器地址,虚拟机上的用户看到的是虚拟地址,中间是伪物理内存把虚拟内存和机器内存联系起来,使得用户看到的地址都可以是从零开始的,但实际上,机器内存上并不是这样的地址,这是它们之间的映射关系。虚拟内存映射给伪物理内存,伪物理内存映射给机器内存。(3)VMM 使用分段和分页机制对自身物理内存进行保护,X86 结构提供了支持分段机制的虚拟内存,这能够提供另一种形式的特权级分离。每个段包含基址、段限、属性位,基址和虚拟地址相加形成线性地址;段限决定了这个段中所能访问的线性空间的长度;属性位则标记了该段是否可读写、可执行,是代码段还是数据段等。4、网络隔离(1)网络隔离的目标是确保把有害的攻击隔离,在可信网络之外和保证可信网络内部信息不外泄的前提下,完成网问数据的安全交换。网络隔离的关键是在于系统对通信数据的控制,主要通过不可路由的协议来完成网问的数据交换。安全要素主要包括机密性、完整性、可用性、可控性、抗抵性,这些安全要素需要安全机制来实现,比如访问控、身份认证、加密签名。(2)通过不可路由的协议,彻底阻断了网络间的直接 TCP/IP 连接,能够对通信的双方内容、过程进行多种的安全保护机制,通过这种方式保障网间的数据交换安全、可控,杜绝了由于操作系统和网络协议自身漏洞带来的安全风险。网络隔离实现原理通过专用通信设备、专有安全协议、加密验证机制、应用层数据提取和鉴别认证技术来实现不同安全级别网络之间的数据交换,从而实现彻底的网络隔离。六、服务器虚拟化-案例分析1、VMware 公司推出了面向云计算的一系列产品和解决方案。VMware 提供了云的基础架构及管理、云应用平台、终端用户计算等,这些层次上的解决方案,主要给企业级组织机构的服务器虚拟化技术,使用它的服务器虚拟化技术可以实现传统的数据中心到云计算环境的转变。他的两种迁移工具较为主流,一个是虚拟机迁移工具(VMotion),还有一个是存储迁移工具(VMware Storage VMotion)。2、VMotionVMotion是VMware用于在数据中心的服务器之间进行虚拟机迁移的技术。虚拟机迁移过程中主要采用三项技术:①将虚拟机状信息压缩存储在共享存储器的文件中②将虚拟机的动态内存和执行状态通过高速网络在源ESX服务器和目标ESX服务器之间快速传输③虚拟化网络以确保在迁移后虚拟机的网络身份和连接能保备3、VMware Storage VMotionVMvere Storago VMotion用于实时迁移虚拟机磁盘文件,以便满足对虚拟机磁盘文件的升级、维护和备份。原理是存储之间的转移,核心技术是磁盘快照、REDO记录、父/子磁盘关系、快照整合这些技术。本节课主要讲了服务器虚拟化的概念、服务器虚拟化的底层实现、虚拟机迁移、隔离技术、案例分析。
《深入解析数据存储技术原理及发展演进—存储虚拟化及块存储技术》电子版地址
《深入解析数据存储技术原理及发展演进—存储虚拟化及块存储技术》深入解析数据存储技术原理及发展演进—存储虚拟化及块存储技术
电子版下载地址: https://developer.aliyun.com/ebook/3760
电子书:
</div>
传统IT数字化转型面临的挑战与机遇
最近,无意间看到一份IDC机构受Dell和Intel委托编写的商业价值白皮书,其实说明白了,这白皮书就是用来给Dell做宣传的材料。在本文,只是给大家截取几个有意思的地方,不涉及给某个公司打广告哈。看下研究的背景:在数字化浪潮中,传统IT也面临巨大的挑战,需要开启数字化转型,有些企业开始自建数据中心,有些企业开始上云,有些是租用或者共享数据中心,完成企业存储的架构升级。这个报告调查的范围,核心在美国地区,还包括了加拿大,意大利、瑞士、澳大利亚。也包括了教育、制造、医疗等多个行业。这个调查采访的对象,80%都来自于公司人数小于1000的公司,主要以中小型公司为主。所以从这点来看,这份报告的数据不一定适用中国地区的发展现状,大家仅作为参考即可。这份报告,第一个有参考意义的点:数字转型过程中的主要目标。从数据可以看出,大家最关心的是IT基础机构效率的提升,占比达到44.7%,其次是IT架构的敏捷性,第三个就是更好的远程办公。这点在近几年疫情的影响下,更加受到关注,特别是很多西方企业都支持在家办公。这点可能就不太适用于我们了。其他的关注点,也包含了混合云的战略,软件定义存储等。排在最后的,居然是IT的预算,这个还是有点意外的,在整体大环境背景下,在数字化转型中,降本增效现在也是大部分公司的核心诉求。这份报告,第二个有参考意义的点:数字转型过程中最希望获得的新技术。最受关注的技术,则是SDS,Software Defined Storage ,即软件定义存储技术。软件定义存储(SDS)是一种能将存储软件与硬件分隔开的存储架构。不同于传统的网络附加存储(NAS)或存储区域网络(SAN)系统,SDS 一般都在行业标准系统或 x86 系统上执行,从而消除了软件对于专有硬件的依赖性。SDS的存储空间并没有在软件和硬件中间区分开,SDS更像是一个具有特定功能的技术栈,把用于存储请求的组件给抽离出来,注意,不是存储内容,也就是在存储层和数据读写请求之间建立一个软件管理层,来给用户管理数据的存储位置和方式,最大的特性是SDS不会对硬件有特征性的要求,比如容量或者是否有用。下图就是SNIA给SDS的一个比较形象的定义,大家可以参考。SDS类似于存储虚拟化,但又不一样。存储虚拟化重点是把存储设备的容量完成池化。而SDS是要与SSD硬件完成隔离。SDS,似云而非云。具有云存储的特性,可以快速宽展,但是SDS仅仅是一个中间管理数据向云完成输送的软件层而已。SDS不是独立的,需要与网络连接,但不同于网络附加存储(NAS)。NAS管理共享的是文件,SDS则是对存储容量的控制。NAS可以部署于SDS之上。2017年,中国已经发布了第一版本的《软件定义存储白皮书》,目前各大厂商也在推广各家的SDS整体解决方案。除了SDS,大家关注的技术,还有基于云的数据保护功能。其实,大家关注云也是在意料之中,随着云计算技术持续的发展,也证明的云的灾备方案是可以信赖的。比如阿里云官网的灾备方案介绍,又快又省钱。这份报告其他的细节,如果大家感兴趣,可以在文章底部‘阅读原文’查看原始文档。
云计算基础:云计算越来越广泛,我们应该如何去学习云计算
随着时代的发展,云计算越来越普及,越大众化,使用的人越来越多,我们应该如何去学习这门技术呢?这篇文章我们就来介绍如何学习我们的云计算。云计算能做什么?学前介绍:学前介绍学习资料:HedEX Lite、产品文档、笔记、PPT、上课视频;IA:云计算概念、模式;学习虚拟化概念、特点、优势、传统方式区别;计算虚拟化(CPU虚拟化、内存虚拟机、IO虚拟化)、网络资源虚拟化、存储虚拟化;虚拟化的特性,包括迁移、HA、集群特性、磁盘特性、华为虚拟化产品的特性;云计算的发展趋势;实验;华为云计算考证需要学的内容:IP:学习虚拟化的解决方案、桌面云的解决方案;OpenStack;IE:OpenStack、容灾、备份、业务迁移、私有云、分布式存储;如何去学习云计算:上课、笔记、视频、产品;对概念、不能理解的东西,要提出来;重点在理解整个知识体系;实验;云计算的简介:第一章 云计算简介云计算:提前将资源准备好,通过特定的技术使得用户可以随时随地、去使用这些资源;云计算的模型;传统方式;硬件设备、空调、供电;需要不同的工程师去给你完成机房的搭建、后期还需要维护人员;云计算方式;以服务的方式来提供;不需要去维护这台主机; 从架构上的区别;云计算和我们所学习的IA课程中虚拟化技术的关联性;架构上;实现上:虚拟化解决的是什么问题:解决资源利用率的问题;功能上:云计算可以实现自动化,虚拟化-不行—只提供了虚拟硬件的功能;服务上:云计算能够提供诸如安全服务、计算服务、存储服务、人工智能服务;云计算的特点:按需的自助服务:可以根据你自己的需求去获取相应的资源;广泛的网络接入:不受时间、不受地点的限制;资源池化:将不同的资源整合,形成资源池;(分类),实现更小的颗粒度;弹性伸缩:根据需求对资源进行快速的增加或减少的调整;5、可计量的服务;可统计使用了多少资源;公有云可用于计费;计量服务需要对接计费服务;云计算能够为我们做哪些事情:实现自动化,软件驱动硬件干活;实现自助服务,自主选择平台上的各种产品;实现资源的融合,形成庞大的资源池,屏蔽了底层物理硬件的差异性;云计算的运营模式:公有云:由云服务提供商自己搭建,我们作为使用者去使用他们所提供的资源;私有云:通常是企业或单位内部自己搭建的一个数据中心混合云:核心数据放在私有云上, 其他业务放在公有云上;行业云:根据不同行业的特点来划分:政务云、医疗云、运输云;云计算的服务模式:基础设施即服务IAAS:以底层的硬件作为服务来提供给用户使用平台即服务PAAS:不仅仅提供基础设施,还包括了中间运行环境;软件即服务SAAS:直接提供应用程序,不再需要关系应用程序以下的所有步骤;
科普达人丨一文弄懂什么是云计算?
提到云计算,相信大家都不陌生,我们不仅能够在新闻媒体、网络报道中看到它,实际上云计算已经深入到我们生活的方方面面:网上购物、交通出行、视频直播、政务办公、线上学习等。可以这样说,身处当代这个信息化、数字化的社会中,只要有网络的地方就有云计算的身影。云计算与我们的关联如此紧密,但若问你“什么是云计算?”或者让你用简单的语言解释一下云计算,还不一定那么容易。小书生梳理了云计算的相关知识,并且加入了自己的理解,试图做一个技术科普帖,用尽可能通俗的语言来一次性把云计算阐述清楚。接下来,小书生会用几篇文章来讲述云计算的前世今生。今天是第一篇,关于云计算的定义、分类、发展历程及要解决的问题,让你能够对云计算先有一个整体的认知。01 云计算的定义对于云计算的定义,相信很多人都听过用自来水做的形象类比:云计算是一种提供资源的网络,使用者可以随时获取“云”上的资源,就像获取水、电一样,随取随用,按需获得。这是对于“云计算”的一种简单易懂的理解。而对于云计算的规范定义,比较流行的包括:美国国家标准与技术研究院(NIST)定义:云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问, 进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互。百度百科定义:云计算(cloud computing)是分布式计算的一种,指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,然后,通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户。现阶段所说的云服务已经不单单是一种分布式计算,而是分布式计算、效用计算、负载均衡、并行计算、网络存储、热备份冗杂和虚拟化等计算机技术混合演进并跃升的结果。从上面这两种对于“云计算”的定义来看,“云计算”这三个字,并不是单一的含义,它起码包括两重不同的解读,即“云计算技术”或者“云计算服务”,前者可以理解为一种技术术语,而后者则更像一种服务(可以被用来消费而产生实际价值,与商品类似)。NIST给出的定义,其实是把“云计算”和“云计算服务”(或云服务)这两者之间划上了等号;而百度百科的解释,一开始是把“云计算”看成是一种技术,而后面的解释,则提到了“云服务”的字样。由此可见,“云计算”三个字并不是一种精确的表述,与之相关的概念,更为准确的表述可以是“云计算技术”或者“云计算服务”。如果我们去不同的云厂商官网查看他们关于“云计算”的介绍,其实更像是在对“云计算服务”进行描述和定义。所以,当下“云计算”通常更倾向于被理解为“云计算服务”。在接下来的篇幅中,云计算、云计算服务和云服务,这三个词具有相同的含义。02 云计算的分类在新闻报道中,或者在了解、学习云计算知识的过程中,你一定听说过这些名词,比如公有云、私有云、混合云,或者政务云、金融云,以及IaaS/PaaS/SaaS等。这些都是不同维度下的云计算分类。云计算的分类一般包括下面几种:从部署形式上,可以分为公有云、私有云、混合云等。公有云:由第三方提供商提供的云服务,用户无需自己采购IT资源,只需为其使用的资源付费即可;弹性、按需付费是其特征。私有云:为一个企业单独使用而构建的云服务,由单个公司拥有和运营,或托管在第三方服务商;专属、私有是其特征。混合云:是公有云和私有云的混合。从应用行业上,可以分为政务云、金融云、医疗云、教育云等。从服务类型上,可以分为IaaS/PaaS/SaaS等三类,最近也有DaaS等最新定义的云计算服务形式。IaaS类:基础设施即服务,是云计算服务的基础形式之一,是指云厂商向个人或组织提供虚拟化计算资源的服务。PaaS类:平台即服务,为开发、测试和管理软件应用程序提供按需开发环境,为开发人员提供通过全球互联网构建应用程序和服务的平台。SaaS类:软件即服务,是云厂商提供的托管和管理软件应用程序,并允许其用户连接到应用程序并通过全球互联网访问应用程序。SaaS类的云计算服务,是距离普通用户最近的云计算服务,它能够帮助用户解决某个具体问题或者实现特定的功能。IaaS到SaaS这三种云计算服务,从服务的“颗粒精细度”来看,是逐渐升高的,即越来越精细。我们也可以用生活中的另外一种场景来类比,比如粮食小麦。小王是一个中粮大户,他为市场提供的是从田地里收割上来的小麦颗粒,属于未经过加工的原材料,那可以看做是一种IaaS形式的商品;小王的邻居小李,开了一家面粉厂,专门收购小麦加工成面粉并到市场中交易,面粉可以看做是一种PaaS形式的商品,它是经过一定加工的粮食产品(原材料),不能直接食用但可以用它来制作成更多可以供人类直接食用的面食商品;小李的同学小赵、小刘,分别经营着面条铺和馒头坊,他们买来面粉及其他的材料,加工成面条、馒头后再卖给成百上千的普通消费者,这就是SaaS类的商品。IaaS类的云计算服务,其提供者多为以阿里云为代表的各大云厂商,它对于云厂商的技术、资金、安全等方面要求很高,就像我们社会中的供水、供电系统都是由国有大型企业来实施完成一样;而SaaS类的云服务更加专业化、定制化,细分领域也更加完备,在IaaS和PaaS等基础和平台设施充分的条件下,更多的市场主体能够有能力、有机会为成千上万的消费者提供个性化、差异化的SaaS类的云服务,满足更多样化的市场需求。03 云计算的发展历程云计算虽然已经深入到各行各业,与我们的日常生活也变得息息相关,出行、团购、视频、游戏及电商购物等各种生活场景的背后,都离不开云计算。云计算悄无声息地融入并改变着我们的生活,但实际上云计算非常“年轻”,它在2006年诞生,到现在也只有16年的时间。云计算发展历程中的大事件包括: 2006.3.14亚马逊AWS发布了Amazon Simple Storage Service(Amazon S3),开始以 Web 服务的形式向企业提供 IT 基础设施服务(IaaS类型),开创了一种崭新的计算资源服务模式,彼时还没有“云计算”这个名称。 2006.8.9Google首席执行官埃里克·施密特在搜索引擎大会上首次提出“云计算”(Cloud Computing)的概念,这是云计算发展史上第一次正式地提出这一概念,意义非凡。 2008.4.7谷歌发布Google App Engine,允许用户本地使用Google基础设施构建Web应用,PaaS形式的云计算服务走到了用户面前。 2008.4微软发布了 Windows Server 2008 R2 及虚拟化产品 Hyper-V,至此,云计算早期的三大厂商都已入局部署。 2009.9阿里云成立,王坚博士担任总裁,国内云计算市场开始起步。 2010.5.10阿里云推出首个商业化的弹性计算产品,即ECS1.0,开始为中小企业站长提供服务。 2013.6阿里云突破5K测试,成为全球首个提供5K云公司。 2015阿里云进行第一次虚拟化架构升级,从Xen架构升级到全新的KVM架构,虚拟化损耗大幅降低。 2017阿里云发布软硬一体的神龙架构,并进行第二次虚拟化架构升级,虚拟化损耗降为零。同年,AWS发布了基于Nitro架构的C5实例规格,云计算开始进入全新的软硬相结合的虚拟化架构阶段。 2020阿里云发布一云多形态战略,推出智能全托管、云盒等新产品,将公有云不断向外延伸。 2021阿里云发布第四代神龙架构,同时升级至全新的eRDMA网络架构,网络延时低至5微秒,是业界首个大规模弹性RDMA加速能力。虚拟化技术是云计算的重要技术之一,是云计算发展的基石。云计算技术架构的迭代与虚拟化技术的演进关系密切,以亚马逊云发布S3服务为起点,云计算与虚拟化技术产生交叠,渊源也自此开始。我们还可以根据虚拟化架构的不同将云计算的发展分为几个阶段。Xen虚拟化架构(2006-2015年)2003年, Xen 在 SOSP 发表 Xen and the Art of Virtualization ,拉开了x86平台虚拟化技术的大幕。2006年 AWS 发布的EC2是基于 Xen 虚拟化技术,虚拟化技术赋予了EC2核心产品价值一弾性,同时虚拟化技术给网络虚拟化、存储虚拟化,和管控系统提供了业务部署点。2009年,在阿里云刚成立之时,在开源虚拟化技术领域中,Xen 已经是比较成熟的虚拟机监控器项目,所以阿里云采用开源的 Xen 作为第一个虚拟化底层架构。在这个时期,亚马逊 AWS 的虚拟化架构使用的也是 Xen ,这种选择也是当时业界的共识。KVM虚拟化架构(2015-2018年)KVM是基于CPU硬件虚拟化技术的全虚拟化技术,是业界多数公有云和专有云服务提供商使用最多的虚拟化技术之一。2005年、2006年, Intel 和 AMD 的x86 CPU 硬件分别开始支持硬件虚拟化( VT )技术,并在2006年诞生了 KVM 这个基于硬件虚拟化的开源虚拟化项目。红帽( RedHat )公司在2008年收购了开发 KVM 的以色列公司 Qumranet 后, KVM 更是得到了大力的发展。2014年左右, KVM 在功能完备性、稳定性、社区支持等各个方面都超过了 Xen ,这时国内的阿里云也开始研发基于 KVM 的云服务器,最终在2015年将虚拟化架构迁移到了 KVM 上。在2015-2018年,阿里云不仅使用 KVM 解决了工程化的问题,也做了 QEMU / KVM 的热升级等原创工作,自研了 vCPU 的调度器,支持性能突发型实例规格( TS )的产品,同时对热迁移等重要功能做了比较好的优化。软硬结合的虚拟化架构(2018年至今)在 KVM 虚拟化技术比较成熟的情况下,在下一代的虚拟化架构演进方向上,包括亚马逊 AWS 、阿里云等云服务提供商仿佛达成默契,都在软硬件结合的方向上投入研发。AWS 在2017年年底对外发布了基于 Nitro 架构的 C5实例规格,阿里云在2017年也发布了基于神龙架构的弹性裸金属服务器,并在2018年上线了基于神龙架构的虚拟机云服务器。神龙架构是阿里云自研的软硬件结合的虚拟化平台,其中的 MOC卡是神龙架构中的核心硬件,将存储、网络、管控的链路全部转移到 MOC上,同时对 KVM 虚拟化技术做进一步优化,以提升计算性能。04 云计算要解决的问题云计算与我们的生活关系密切,当前企业上云也是热火朝天;在国家层面,十四五规划纲要将云计算列为数字经济重点产业之一,以及2022年国家启动“东数西算”工程。那么,云计算到底解决了怎样的问题或者提供了怎样的价值,让它变得如此重要呢?要回答这个问题,就不得不提亚马逊的AWS,它提供了业界公认最早的云计算服务。我们都知道,亚马逊是做网上卖书起家的,后来拓展到更多品类的网上购物业务,形成了电子商务的商业形态。为了支撑数量庞大的用户访问和购物交易,亚马逊部署了大量的计算和存储等IT资源,尤其在像圣诞节等购物热点节日,必须为了应对网站、用户、订单等业务流量压力而储备服务器资源。但是过了大促节点,业务流量回归自然状态,已经部署的IT资源在绝大部分时间里都是空闲的。为了充分利用这些闲置IT资源,亚马逊开始对外提供效能计算和存储的租用服务,简单点说就是把自己当前不用的IT资源以较低的价格“租”给其他需要类似IT资源的用户或企业,这就是云计算服务最初的模样。最开始,云计算解决的是云厂商自身IT资源闲置问题,对于它的用户——云服务“租户”而言,云计算则帮助他们以更低的成本、更高弹性地获得了IT资源。在随后的发展过程中,云计算这一新的服务形态被成功验证是一种可持续获利的商业模式,各大云厂商都在有意识、有规划地进行数据中心建设、可用区扩展,以及服务器集群部署,来更好地为用户提供云服务和云产品。通过计算、存储、网络等IT资源的集聚及规模效应,云厂商能够通过“出租”服务的产品来让企业、个人等需要IT资源的用户更弹性、更低成本地获取到IT资源,提升社会中IT资源的利用率,同时降低了用户的IT采购成本。表面上看,云厂商是在集中IT资源,然后对外“出租”,好像他们提供的IT资源并不是闲置的,也不存在利用率低的问题。而实际上云厂商集中建设IT资源,然后提供IT资源的“出租”服务,就是在解决整个社会中“IT资源利用率低”的问题。道理也很简单,如果没有云厂商大规模地提供IT资源,就肯定会有企业或者个人遇到亚马逊最初的IT资源闲置、利用率低的问题。因此,通过IT资源的出租、共享,云计算始终如一地在解决IT资源利用率低的问题;云计算提高了IT资源的利用率,从而以更低的成本向社会提供了更多的计算能力。丨活动福利第二届阿里云ECS CloudBuild开发者大赛火热进行中,三大赛道、51万奖金、豪华的明星导师阵容,期待你的参与。扫描下方二维码或点击这里,了解赛事详情或者报名参赛。
linux篇-Linux逻辑卷详解总结
LVM是逻辑卷管理(Logical Volume Manager)的简称,它是建立在物理存储设备之上的一个抽象层,允许你生成逻辑存储卷,与直接使用物理存储在管理上相比,提供了更好灵活性。 LVM将存储虚拟化,使用逻辑卷,你不会受限于物理磁盘的大小,另外,与硬件相关的存储设置被其隐藏,你可以不用停止应用或卸载文件系统来调整卷大小或数据迁移.这样可以减少操作成本.LVM与直接使用物理存储相比,有以下优点:1. 灵活的容量.当使用逻辑卷时,文件系统可以扩展到多个磁盘上,你可以聚合多个磁盘或磁盘分区成单一的逻辑卷.2.可伸缩的存储池.你可以使用简单的命令来扩大或缩小逻辑卷大小,不用重新格式化或分区磁盘设备.3.在线的数据再分配.你可以在线移动数据,数据可以在磁盘在线的情况下重新分配.比如,你可以在线更换可热插拔的磁盘.4. 方便的设备命名逻辑卷可以按你觉得方便的方式来起任何名称.5.磁盘条块化.你可以生成一个逻辑盘,它的数据可以被条块化存储在2个或更多的磁盘上.这样可以明显提升数据吞吐量.6.镜像卷逻辑卷提供方便的方法来镜像你的数据.7.卷快照使用逻辑卷,你可以获得设备快照用来一致性备份或者测试数据更新效果而不影响真实数据.二、 LVM基本术语前面谈到,LVM是在物理存储上添加的一个逻辑层,来为文件系统屏蔽下面的硬件存储设备,提供了一个抽象的盘卷,在盘卷上建立文件系统。首先我们讨论以下几个LVM术语:* 物理存储介质(The Physical Media)这里指系统的存储设备,如:/dev/hda1、/dev/sda等等,是存储系统最低层的存储单元。* 物理卷(PV, Physical Volume)物理卷就是指磁盘,磁盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。当前LVM允许你在每个物理卷上保存这个物理卷的0至2份元数据拷贝.默认为1,保存在设备的开始处.为2时,在设备结束处保存第二份备份.* 卷组(VG, Volume Group)LVM卷组类似于非LVM系统中的物理硬盘,其由物理卷组成。可以在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。* 逻辑卷(LV, Logical Volume)LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上可以建立文件系统(比如/home或者/usr等)。*线性逻辑卷 (Linear Volumes)一个线性逻辑卷聚合多个物理卷成为一个逻辑卷.比如,如果你有两个60GB硬盘,你可以生成120GB的逻辑卷.*条块化的逻辑卷(Striped Logical Volumes)当你写数据到此逻辑卷中时,文件系统可以将数据放置到多个物理卷中.对于大量连接读写操作,它能改善数据I/O效率.*镜像的逻辑卷(Mirrored Logical Volumes)镜像在不同的设备上保存一致的数据.数据同时被写入原设备及镜像设备.它提供设备之间的容错。*快照卷(Snapshot Volumes)快照卷提供在特定瞬间的一个设备虚拟映像,当快照开始时,它复制一份对当前数据区域的改变,由于它优先执行这些改变,所以它可以重构当前设备的状态。* PE(physical extent)每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。* LE(logical extent)逻辑卷也被划分为被称为LE(Logical Extents) 的可被寻址的基本单位。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。和非LVM系统将包含分区信息的元数据保存在位于分区的起始位置的分区表中一样,逻辑卷以及卷组相关的元数据也是保存在位于物理卷起始处的VGDA(卷组描述符区域)中。VGDA包括以下内容: PV描述符、VG描述符、LV描述符、和一些PE描述符 。系统启动LVM时激活VG,并将VGDA加载至内存,来识别LV的实际物理存储位置。当系统进行I/O操作时,就会根据VGDA建立的映射机制来访问实际的物理位置。三、 安装LVM首先确定系统中是否安装了lvm工具:[root@test2 root]# rpm –qa|grep lvmlvm-x-x-x如果命令结果输入类似于上例,那么说明系统已经安装了LVM管理工具;如果命令没有输出则说明没有安装LVM管理工具,则需要从网络下载或者从光盘装LVM rpm工具包。安装了LVM的RPM软件包以后,要使用LVM还需要配置内核支持LVM。RedHat默认内核是支持LVM的,如果需要重新编译内核,则需要在配置内核时,进入Multi-device Support (RAID and LVM)子菜单,选中以选项:· Multiple devices driver support (RAID and LVM) Device mapper support Snapshot target (EXPERIMENTAL) Mirror target (EXPERIMENTAL) 然后重新编译内核,即可将LVM的支持添加到新内核中。为了使用LVM,要确保在系统启动时激活LVM,在RedHa的版本中,系统启动脚本已经具有对激活LVM的支持,在/etc/rc.d/rc.sysinit中有以下内容:if [ -x /sbin/lvm.static ]; then action $'Setting up Logical Volume Management:' /sbin/lvm.static vgchange -a y --ignorelockingfailurefivgchange -a y命令激活系统所有卷组。四、 创建和管理LVM要创建一个LVM系统,一般需要经过以下步骤:1、 创建分区使用分区工具(如:fdisk等)创建LVM分区,方法和创建其他一般分区的方式是一样的,区别仅仅是LVM的分区类型为8e。# fdisk -l /dev/sdb /dev/sdcDisk /dev/sdb: 18.2 GB, 18200739840 bytes255 heads, 63 sectors/track, 2212 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesDisk /dev/sdb doesn't contain a valid partition tableDisk /dev/sdc: 18.2 GB, 18200739840 bytes255 heads, 63 sectors/track, 2212 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesDevice Boot Start End Blocks Id System/dev/sdc1 1 200 1606468+ 8e Linux LVM如果要将使用整块盘,可以通过下面的命令来覆盖磁盘上的原有分区信息:#dd if=/dev/zero of=/dev/sdc bs=512 count=1partprobe命令你可以使用fdisk或者其他命令创建一个新的分区,然后使用partprobe命令重新读取分区表。这个命令执行完毕之后不会输出任何返回信息,你可以使用mke2fs命令在新的分区上创建文件系统。2、 创建物理卷创建物理卷的命令为pvcreate,利用该命令将希望添加到卷组的所有分区或者磁盘创建为物理卷。将整个磁盘创建为物理卷的命令为:# pvcreate /dev/sdbPhysical volume '/dev/sdb' successfully created将单个分区创建为物理卷的命令为:# pvcreate /dev/sdc1Physical volume '/dev/sdc1' successfully created也可以同时生成多个卷:#pvcreate /dev/sdb /dev/sdc13、扫描块设备通过lvmdiskscan可以看到那些设备成为了物理卷.#lvmdiskscan /dev/ramdisk [ 16.00 MB] /dev/sda [ 4.00 GB] /dev/root [ 2.88 GB] /dev/ram [ 16.00 MB] /dev/sda1 [ 101.94 MB] /dev/VolGroup00/LogVol01 [ 1.00 GB] /dev/ram2 [ 16.00 MB] /dev/sda2 [ 3.90 GB] LVM physical volume /dev/lvm_test/test [ 508.00 MB] /dev/ram3 [ 16.00 MB] /dev/ram4 [ 16.00 MB] /dev/ram5 [ 16.00 MB] /dev/ram6 [ 16.00 MB] /dev/ram7 [ 16.00 MB] /dev/ram8 [ 16.00 MB] /dev/ram9 [ 16.00 MB] /dev/ram10 [ 16.00 MB] /dev/ram11 [ 16.00 MB] /dev/ram12 [ 16.00 MB] /dev/ram13 [ 16.00 MB] /dev/ram14 [ 16.00 MB] /dev/ram15 [ 16.00 MB] /dev/sdb [ 512.00 MB] LVM physical volume /dev/sdc [ 512.00 MB] LVM physical volume 5 disks 16 partitions 2 LVM physical volume whole disks 1 LVM physical volume4、显示物理卷可以使用pvs,pvscan,pvdisplay来显示当前系统中的物理卷.#pvs PV VG Fmt Attr PSize PFree /dev/sda2 VolGroup00 lvm2 a- 3.88G 0 /dev/sdb lvm_test lvm2 a- 508.00M 0 /dev/sdc lvm2 -- 512.00M 512.00M#pvscan PV /dev/sdb VG lvm_test lvm2 [508.00 MB / 0 free] PV /dev/sda2 VG VolGroup00 lvm2 [3.88 GB / 0 free] PV /dev/sdc lvm2 [512.00 MB] Total: 3 [4.87 GB] / in use: 2 [4.37 GB] / in no VG: 1 [512.00 MB]#pvdisplay --- Physical volume --- PV Name /dev/sdb VG Name lvm_test PV Size 512.00 MB / not usable 4.00 MB Allocatable yes (but full) PE Size (KByte) 4096 Total PE 127 Free PE 0 Allocated PE 127 PV UUID Pkp5Cq-SD1w-ANw2-cDDe-BGtw-nmFS-jTxXFD --- NEW Physical volume --- PV Name /dev/sdc VG Name PV Size 512.00 MB Allocatable NO PE Size (KByte) 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID BNCVEE-YWlK-0mrV-LOcf-0tCY-WWNw-DeySk05、移除物理卷#pvremove /dev/sdcLabels on physical volume '/dev/sdc' successfully wiped6、 创建卷组创建卷组的命令为vgcreate,将使用pvcreate建立的物理卷创建为一个完整的卷组:# vgcreate lvm_test /dev/sdc1 /dev/sdbVolume group 'lvm_test' successfully createdvgcreate命令第一个参数是指定该卷组的逻辑名:lvm_test。后面参数是指定希望添加到该卷组的所有分区和磁盘。vgcreate在创建卷组 lvm_test 以外,还设置使用大小为4 MB的PE(默认为4MB),这表示卷组上创建的所有逻辑卷都以 4 MB 为增量单位来进行扩充或缩减。PE最小为1KB ,并且必须总是1KB的 2^n 的倍数(使用-s指定,具体请参考man vgcreate)。7、 激活卷组卷组在创建时默认激活,也可以使用vgchange来激活卷组:# vgchange -a y lvm_test8、 添加新的物理卷到卷组中当系统安装了新的磁盘或新建分区并创建了新的物理卷,而要将其添加到已有卷组时,就需要使用vgextend命令:#fdisk -l /dev/sdcDisk /dev/sdc: 18.2 GB, 18200739840 bytes255 heads, 63 sectors/track, 2212 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesDevice Boot Start End Blocks Id System/dev/sdc1 1 200 1606468+ 8e Linux LVM/dev/sdc2 201 400 1606500 8e Linux LVM#pvcreate /dev/sdc2Physical volume '/dev/sdc2' successfully created# vgextend lvm_test /dev/sdc2Volume group 'lvm_test' successfully extended这里/dev/sdc2是新的物理卷。9、显示卷组显示卷组可以使用vgs和vgdisplay.# vgs VG #PV #LV #SN Attr VSize VFree VolGroup00 1 2 0 wz--n- 3.88G 0 lvm_test 1 1 0 wz--n- 508.00M 0 # vgdisplay --- Volume group --- VG Name lvm_test System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 10 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 1 Act PV 1 VG Size 508.00 MB PE Size 4.00 MB Total PE 127 Alloc PE / Size 127 / 508.00 MB Free PE / Size 0 / 0 VG UUID uJx24t-WWdY-vffu-97Of-mgFB-FEov-eRwzAf10、扫描磁盘生成缓存文件#vgscan Reading all physical volumes. This may take a while... Found volume group 'lvm_test' using metadata type lvm2 Found volume group 'VolGroup00' using metadata type lvm211、 从卷组中删除一个物理卷要从一个卷组中删除一个物理卷,首先要确认要删除的物理卷没有被任何逻辑卷正在使用,就要使用pvdisplay命令察看一个该物理卷信息:#pvdisplay /dev/sdc2--- Physical volume ---PV Name /dev/sdc2VG Name lvm_testPV Size 1.53 GB / not usable 868.00 KBAllocatable yes PE Size (KByte) 4096Total PE 392Free PE 392Allocated PE 0 (表示未被使用)PV UUID jAiils-1vRz-Td9k-1AiD-kIJs-191z-YMz09H如果某个物理卷正在被逻辑卷所使用,就需要将该物理卷的数据备份到其他地方,然后再删除。删除物理卷的命令为vgreduce:# vgreduce lvm_test /dev/sdc2Removed '/dev/sdc2' from volume group 'lvm_test'12、 创建逻辑卷创建逻辑卷的命令为[size=+0]lvcreate:#[size=+0]lvcreate -L 1500 –n test lvm_testLogical volume 'test' created该命令就在卷组lvm_test上创建名字为test,大小为1500M的逻辑卷,并且设备入口为/dev/lvm_test/test (lvm_test为卷组名,test为逻辑卷名)。如果希望创建一个使用全部卷组的逻辑卷,则需要首先察看该卷组的PE数,然后在创建逻辑卷时指定:# vgdisplay lvm_test| grep 'Total PE'Total PE 4731# [size=+0]lvcreate -l 4731 lvm_test -n testLogical volume 'test' created13、创建条块化的逻辑卷# [size=+0]lvcreate -L 500M -i2 -n test lvm_test Using default stripesize 64.00 KB Rounding size (125 extents) up to stripe boundary size (126 extents) Logical volume 'test' created-i2指此逻辑卷在两个物理卷中条块化存放数据,默认一块大小为64KB.14、创建镜像的逻辑卷。#[size=+0]lvcreate -L 52M -m1 -n test lvm_test /dev/sdb1 /dev/sdc1 /dev/sdb2 Logical volume 'test' created-m1表示只生成一个单一镜像,镜像分别放在/dev/sdb1和/dev/sdc1上,镜像日志放在/dev/sdb2上.15、创建快照卷。#[size=+0]lvcreate --size 10 --snapshot --name snaptest /dev/lvm_test/test 16、 创建文件系统如使用ext3文件系统:#mkfs.ext3 /dev/lvm_test/testmke2fs 1.35 (28-Feb-2004)max_blocks 4294967295, rsv_groups = 0, rsv_gdb = 1024Filesystem label=OS type: LinuxBlock size=4096 (log=2)Fragment size=4096 (log=2)2424832 inodes, 4844544 blocks242227 blocks (5.00%) reserved for the super userFirst data block=0Maximum filesystem blocks=8388608148 block groups32768 blocks per group, 32768 fragments per group16384 inodes per groupSuperblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000Writing inode tables: done inode.i_blocks = 90120, i_size = 4243456Creating journal (8192 blocks): doneWriting superblocks and filesystem accounting information: doneThis filesystem will be automatically checked every 25 mounts or180 days, whichever comes first. Use tune2fs -c or -i to override.创建了文件系统以后,就可以加载并使用它:# mkdir /mnt/test# mount /dev/lvm_test/test /mnt/test如果希望系统启动时自动加载文件系统,则还需要在/etc/fstab中添加内容:/dev/lvm_test/test /mnt/test ext3 defaults 1 217、 删除一个逻辑卷删除逻辑卷以前首先需要将其卸载,然后删除:# umount /dev/lvm_test/test# lvremove /dev/lvm_test/testDo you really want to remove active logical volume 'test'? [y/n]: yLogical volume 'test' successfully removed18、 扩展逻辑卷大小LVM提供了方便调整逻辑卷大小的能力,扩展逻辑卷大小的命令是lvextend:# lvextend -L12G /dev/lvm_test/testExtending logical volume test to 12.00 GBLogical volume test successfully resized 上面的命令就实现将逻辑卷test的大小扩大为12G。# lvextend -L+1G /dev/lvm_test/testExtending logical volume test to 13.00 GBLogical volume test successfully resized上面的命令就实现将逻辑卷test的大小增加1G。增加了逻辑卷的容量以后,就需要修改文件系统大小以实现利用扩充的空间。对于希望调整被加载的文件系统大小,使用ext2online(ext2resize) 或 resize2fs.#df -h# ext2online /dev/lvm_test/testext2online /dev/lvm_test/testext2online v1.1.18 - 2001/03/18 for EXT2FS 0.5b#df -hFilesystem 容量 已用 可用 已用% 挂载点/dev/mapper/VolGroup00-LogVol01 16G 11G 3.6G 76% //dev/sda1 494M 18M 451M 4% /bootnone 506M 0 506M 0% /dev/shm/dev/mapper/lvm_test-test 13G 63M 13G 1% /mnt/test一般建议最好将文件系统卸载,调整大小,然后再加载:# umount /dev/lvm_test/test#resize2fs /dev/lvm_test/test# mount /dev/lvm_test/test /mnt/test19、 减少逻辑卷大小使用lvreduce即可实现对逻辑卷的容量,同样需要首先将文件系统卸载:# umount /mnt/test#e2fsck -f /dev/lvm_test/test# resize2fs /dev/lvm_test/test 11G# lvreduce -L -1.992G /dev/lvm_test/test (少2个PE的大小)# resize2fs /dev/lvm_test/test (通过此命令确认是否文件系统大小与收缩后的逻辑卷大小匹配)# mount /dev/lvm_test/test /mnt/test20、显示逻辑卷通过lvscan,lvs及lvdisplay可以察看当前系统中存在的逻辑卷。# lvdisplay --- Logical volume --- LV Name /dev/VolGroup00/LogVol00 VG Name VolGroup00 LV UUID sPmLMD-6xq4-wStB-uSAP-jlQc-YKTm-3bt8Pc LV Write Access read/write LV Status available # open 1 LV Size 2.88 GB Current LE 92 Segments 1 Allocation inherit Read ahead sectors 0 Block device 253:0#lvscan lvscan ACTIVE '/dev/VolGroup00/LogVol00' [2.88 GB] inherit ACTIVE '/dev/VolGroup00/LogVol01' [1.00 GB] inherit#lvs -o +devices LV VG Attr LSize Origin Snap% Move Log Copy% Devices LogVol00 VolGroup00 -wi-ao 2.88G /dev/sda2(0) LogVol01 VolGroup00 -wi-ao 1.00G /dev/sda2(92) 21、使用过滤控制LVM的设备扫描通过编辑/etc/lvm/lvm.conf 中的filter段,来定义过滤那些设备要扫描。filter =[ 'a|/dev/sd.*|', 'a|/dev/hd.*|', 'r|.*|' ] 上面对scsi及ide设备扫描,对其它设备均不扫描。22、在线数据迁移通过pvmove可以将一个PV上的数据迁移到新的PV上,也可以将PV上的某个LV迁移到另一个PV上。#lvs -o +devices LV VG Attr LSize Origin Snap% Move Log Copy% Devices LogVol00 VolGroup00 -wi-ao 2.88G /dev/sda2(0) LogVol01 VolGroup00 -wi-ao 1.00G /dev/sda2(92) test lvm_test -wi-ao 52.00M /dev/sdb1(0) #pvmove -n test /dev/sdb1 /dev/sdc1#lvs -o +devices LV VG Attr LSize Origin Snap% Move Log Copy% Devices LogVol00 VolGroup00 -wi-ao 2.88G /dev/sda2(0) LogVol01 VolGroup00 -wi-ao 1.00G /dev/sda2(92) test lvm_test -wi-ao 52.00M /dev/sdc1(0) 23、删除卷组按照顺序卸载文件系统,删除逻辑卷,然后删除卷组。#umount /mnt/test# lvremove /dev/lvm_test/testDo you really want to remove active logical volume 'test'? [y/n]: y Logical volume 'test' successfully removed#vgremove lvm_test Volume group 'lvm_test' successfully removed24、故障排查通过在命令后加 -v,-vv,-vvv或-vvvv来获得更详细的命令输出。通过在lvs,vgs后加-P可以更好的查看失败设备.#vgs -a -o +devices -P Partial mode. Incomplete volume groups will be activated read-only. VG #PV #LV #SN Attr VSize VFree Devices VolGroup00 1 2 0 wz--n- 3.88G 0 /dev/sda2(0) VolGroup00 1 2 0 wz--n- 3.88G 0 /dev/sda2(92) lvm_test 2 2 0 wz--n- 1016.00M 896.00M pvmove0(0) lvm_test 2 2 0 wz--n- 1016.00M 896.00M /dev/sdb(0),/dev/sdc(0)#lvs -a -o +devices -P Partial mode. Incomplete volume groups will be activated read-only. Failure parsing mirror status fraction: 1 core Failure parsing mirror status fraction: 1 core LV VG Attr LSize Origin Snap% Move Log Copy% Devices LogVol00 VolGroup00 -wi-ao 2.88G /dev/sda2(0) LogVol01 VolGroup00 -wi-ao 1.00G /dev/sda2(92) [pvmove0] lvm_test p-C-ao 60.00M /dev/sdb /dev/sdb(0),/dev/sdc(0) test lvm_test -wI-a- 60.00M pvmove0(0) 五、 总结根据上面的讨论可以看到,LVM具有很好的可伸缩性,使用起来非常方便。可以方便地对卷组、逻辑卷的大小进行调整,更进一步调整文件系统的大小,还能方便的进行数据迁移,数据完整性保护。如果希望了解更多信息,请参考LVM-HOWTO。ps:关于卷迁移的整理最近在学习HP UNIX,发现HP UNIX中卷的迁移过程和其它的如LINUX,AIX有些不同,所以抽空将三种操作系统的操作步骤做了个整理:###linux###在redhat Linux中LVM信息是同时保存在磁盘上和/etc/lvm.conf里,可以通过vgexport命令来实现vg的迁移。vgexport只是把/etc/lvm.conf中关于这个VG的信息删除,而不会更改磁盘上的任何数据。磁盘挂到新的机器上后,只需要修改/etc/lvmconf,这个可以通过vgimport完成。源端:1,将源端文件系统umountumount /test2,将lv和lv inactivelvchange -an /dev/vg_test/lv_testvgchange -an vg_test3,导出vgvgexport vg_test目标端:1,用kudzu检测新的盘2,导入vgvgimport vg_test3,激活vgvgchange -ay vg_test4,mount文件系统###HP UNIX###在HP UNIX上,vgexport只是在/etc/lvmtab里把相关vg的entry删除,重新vgimport就会重新生成,map文件除了能记录原来lv的名字之外没有任何用处,如果不用map,vgimport后所有lv会使用默认值如:lvol1,lvol2…但不会影响vg中的数据。源端:1,将源端文件系统umountumount /test2,将vg inactivevgchange –a n vg_test3,在源端产生map文件vgexport -p -s -m /tmp/vg_exp_bak/vg_test.map /dev/vg_test4,将map文件拷贝到目标端可以通过在源端export vg 前后通过 strings /etc/lvmtab观察发生的变化.目标端:1,用ioscan检测新的盘并识别ioscan -fnCdiskinsf -e2,建立vg的相关信息mkdir /dev/vg_testmknod /dev/vg_test/group c 64 0×1000003,import vgvgimport -s -m /tmp/vg_exp_bak/vg_test.map /dev/vg_test4,激活vgvgchange -a y /dev/vg_test5,挂载文件系统###AIX###在AIX中,exportvg就是在系统中把这个vg的定义从ODM中删除,在vg上的lv、fs、pv的定义也都从系统中删除了.这些信息都保存这个vg的VGDA中.importvg就是系统从这个vg的VGDA中读取这个vg的信息,把它们加入到系统当中,这样系统就可以正常使用这个vg了.两个命令都不对VG做操作的而是对ODM库的操作.源端:1,将vg inactivevaryoff testvg2,导出vg(从ODM中导出vg)exportvg testvg目标端:1,用cfgmgr检测新的盘并识别lspvlsdev –Cc diskcfgmgr2,导入vgimportvg testvg3,挂载文件系统最后记住,在确认目标端正常后,将源端将磁盘的信息清除掉。