设为首页收藏本站language→→ 语言切换

鸿鹄论坛

 找回密码
 论坛注册

QQ登录

先注册再绑定QQ

查看: 659|回复: 1
收起左侧

YESLAB & 思科数据中心|走进虚拟化的世界

[复制链接]
发表于 2017-9-14 18:25:04 | 显示全部楼层 |阅读模式
本帖最后由 yeslab官方 于 2017-9-14 18:29 编辑

                              
640.webp (12).jpg
这个系列的内容覆盖很广,包括:虚拟化的介绍;思科 UCS 和 FI 系列实验;VMware的服务器虚拟化 VMware Workstation 和vSphere(包括 ESXi 和vCenter)的安装和部署;最后我们还会学习到虚拟化服务器上的网络管理利器 Cisco Nexus 1000V。可以说这个系列的实验所涉及到的知识很广,鲁大师继续用深入浅出的方式带各位小伙伴们进入虚拟化的世界。(吹~~~)
但是在系列实验开始之前,需要先做一些知识储备。今天我们不做实验,今天我们研究下啥是“虚拟化”。
高能预警,以下内容极其枯燥,可能会引起各种不适,如呕吐等,如感觉不适,请及时到 YESLAB 就诊!!!我们有专业的老师,温柔的 MM 为你提供最好的服务。
关于虚拟化,我们大概会从这么几个角度去了解:
·        什么是虚拟化?有哪些技术领域的虚拟化?
·        虚拟化的技术具体是怎么样的?
·        为什么要是用虚拟化的技术?
·        虚拟化的好处是什么?
什么是虚拟化?
虚拟化是一种很广义的概念,只要是将一个东西的分成几份给大家使用的,就可以看成是一种虚拟化了。先谈谈虚拟化的分类吧,从技术种类的角度看:
多数 YESLAB 的学员是从事的网络行业的,所以必须有网络虚拟化;
其实作为搞网络的小伙伴们,应该非常熟悉网络虚拟化的相关技术,举个栗子(话说刘二贡栗蛮好吃的,我正一边吃栗子一边写文档):VLAN,这个就不用解释了吧;N7K 上的 VDC 技术,这个前面的实验手册详细讲过;还有思科的 VSAN,也是一种用于存储网络虚拟化技术。总之,网络虚拟化技术非常多而且早就有,并且已经应用的非常普遍了。
所以鲁大师说:娘希匹的,搞这么神秘,啥虚拟化嘛,老子早就在用了噻。
也有学员是做系统相关工作的,所以必须有服务器虚拟化和桌面虚拟化;
根据百度百科的定义:服务器虚拟化是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。服务器虚拟化也被称为 Software Defined Computing(SDC)即软件定义计算,这个后面我们重点学习,这里暂略过。
桌面虚拟化就更好理解了,最最最常见的桌面虚拟化就是微软的远程桌面(RDP),大家应该都用过;除此之外还有一种叫 VDI(Virtual Desktop Infrastructure),如果接触过瘦终端的小伙伴们应该有所了解。
还有的学员是搞应用的,所以也有应用程序虚拟化。
还是举个栗子吧,很多软件价格都是很贵的(比如 Photoshop),为员工每人买一份用的话,老板要吐血的,可不可以只在某服务器上部署一份,然后大家一起用哪?大致的工作流程就是,本地的电脑提供数据,提交到服务器上的软件去计算,然后结果返回给本地的电脑。这样一份软件就可以给大家共享啦~再详细就没法说了,请大家自行脑补。
网络虚拟化、服务器虚拟化、程序虚拟化、桌面虚拟化其实就是从不同的技术角度去看虚拟化的,简单的理解虚拟化,就是把一个实实在在的东西,变成虚头八脑的若干份来使用。
我们熟悉的网络虚拟化没有列在下面的表格里,其他三类虚拟化技术外加云计算平台,我们简单列一下目前提供相应解决方案的厂家和相关解决方案:

640.webp.jpg
下面我们重点讨论服务器虚拟化也就是SDC,软件定义计算。
服务器虚拟化从构架上说有两种:寄居构架(Hosted Architecture)和裸金属构架(Bare MetalArchitecture)。
寄居构架中,虚拟机作为主机操作系统的一个进程来调度和管理,虚拟机的运行依赖于宿主机的操作系统对物理设备的支持和物理资源的管理;除了VMware Workstation Pro之外,还有Windows VirtualPC、Oracle Virtual Box、开源的 QEMU 也属于寄居构架;
裸金属构架中,一个称为Hypervisor 的内核直接运行在物理硬件之上,在Hypervisor 之上承载所有的虚拟机,甚至宿主机的操作系统也是作为一个虚拟机而存在。vSphere、XenServer、Hyper-V、KVM、FusionCompute 和XEN 均为裸金属构架。这些软件都是作为类操作系统的软件直接安装在服务器硬件上的。
根据百度百科的定义:Hypervisor是一种运行在物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享一套基础物理硬件,因此也可以看作是虚拟环境中的“元”操作系统,它可以协调访问服务器上的所有物理设备和虚拟机。
Hypervisor是所有虚拟化技术的核心。当服务器启动并执行 Hypervisor 时,它会给每一台虚拟机分配适量的内存、CPU、网络和磁盘,并加载所有虚拟机的客户操作系统。
裸金属构架通常有更好的性能和管理性,其实非常好区分相关使用场景如下:
1. 如果是一台个人的电脑上需要安装多系统,可以选择寄居构架的相关产品;
2. 如果是企业的生产环境,裸金属构架无疑是更好的选择。
思科的 Nexus 1000v 支持三种 Hypervisor 产品,分别是:
·        VMware ESXi(VMware vSphere)
·        Microsoft Hyper-V
·        Redhat KVM
所以接下来我们来介绍下相关的几个虚拟化方案,大家做个了解即可。
首先是 VMware vSphere,其核心的虚拟化组件是 ESXi,全虚拟化技术(也支持部分半虚拟化技术),属于裸金属构架,是 VMware 公司的企业级虚拟化产品。

640.webp (1).jpg
(本页以下文字内容来源于互联网)
ESXi 启动时,首先启动 Linux Kernel,通过这个操作系统加载虚拟化组件,最重要的是 ESXi的Hypervisor 组件,称之为VMkernel,VMkernel 会从 Linux Kernel 完全接管对硬件的控制权,而 Linux Kernel 作为 VMkernel 的首个虚拟机,用于承载ESXi 的 Service Console,实现本地的一些管理功能。
VMkernel 负责为虚拟机调度所有的硬件资源。虚拟机对于 CPU 和内存资源是通过VMkernel 直接访问,最大程度地减少了开销,CPU 的直接访问得益于 CPU 硬件辅助虚拟化 (Intel VT-x和AMD AMD-V,第一代虚拟化技术) ,内存的直接访问得益于 MMU(内存管理单元,属于CPU中的一项特征) ,硬件辅助虚拟化(Intel EPT和AMD RVI/NPT,第二代虚拟化技术)。
ESXi的物理驱动是内置在 Hypervisor 中,所有设备驱动均是由 VMware 预植入的。因此,ESXi 对硬件有严格的兼容性列表,不在列表中的硬件,ESXi 将拒绝在其上面安装。
虚拟机对于 I/O 设备的访问则有多种方式,以网卡为例,有两种方式可供选择:一是利用 I/O MMU 硬件辅助虚拟化(Intel VT-d和AMD-Vi)的 VM DirectPath I/O,使得虚拟机可以直接访问硬件设备,从而减少对 CPU 的开销;二是利用半虚拟化的设备 VMXNET x,网卡的物理驱动在 VMkernel 中,在虚拟机中装载网卡的虚拟驱动,通过这二者的配对来访问网卡,与仿真式网卡(Intel E1000)相比有着较高的效率。半虚拟化设备的安装是由虚拟机中 VMwaretool 来实现的,可以在Windows 虚拟机的右下角找到它。网卡的这两种方式,前者有着显著的先进性,但后者用得更为普遍,因为 VM DirectPath I/O与VMware虚拟化的一些核心功能不兼容,如:热迁移、快照、容错、内存过量使用等。   
Hyper-V简介,支持全虚拟化也支持半虚拟化,同样属于裸金属构架,是 Microsoft的解决方案。

640.webp (2).jpg
(本页以下内容来自于互联网)
一台没有开启 Hyper-V 功能的 Windows Server 2008 或者 2012 直接操作硬件设备,一旦在其中开启了 Hyper-V,会要求重启,重启之后的架构与之前完全不同了。在这次重启动过程中,Hyper-V的 Hypervisor 接管了硬件设备的控制权,先前的Windows Server 2008 或 2012 成为Hyper-V 的首个虚拟机,称之为父分区,负责其他虚拟机(称为子分区)以及 I/O 设备的管理。
其实 Hypervisor 仅实现了 CPU 的调度和内存的分配,而父分区控制着 I/O 设备,它通过物理驱动直接访问网卡、存储等。子分区要访问 I/O 设备需要通过子分区操作系统内的 VSC(虚拟化服务客户端),对 VSC 的请求由 VMBUS(虚拟机总线)传递到父分区操作系统内的 VSP(虚拟化服务提供者),再由 VSP 重定向到父分区内的物理驱动,每种 I/O 设备均有各自的 VSC 和VSP 配对,如存储、网络、视频和输入设备等,整个 I/O 设备访问过程对于子分区的操作系统是透明的。其实在子分区操作系统内,VSC 和 VMBUS 就是作为 I/O设备的虚拟驱动,它是子分区操作系统首次启动时由 Hyper-V 提供的集成服务包安装,这也算是一种半虚拟化的设备,使得虚拟机与物理 I/O 设备无关。
如果子分区的操作系统没有安装Hyper-V 集成服务包或者不支持 Hyper-V 集成服务包(对于这种操作系统,微软称之为 Unenlightened OS,如未经认证支持的 Linux 版本和旧的 Windows 版本),则这个子分区只能运行在仿真状态。
Hyper-V 的 Hypervisor 是一个非常精简的软件层,不包含任何物理驱动,物理服务器的设备驱动均是驻留在父分区的 Windows Server 2008 或 2012 中,驱动程序的安装和加载方式与传统 Windows 系统没有任何区别。因此,只要是 Windows 支持的硬件,也都能被 Hyper-V 所兼容。
KVM简介,全虚拟化技术(打补丁后也支持半虚拟化),裸金属构架,全称是Kernel-basedVirtual Machine(字面意思是基于内核虚拟机),来自于红帽公司的虚拟化方案。
640.webp (3).jpg

(本页以下内容来自于互联网)
KVM 作为 Linux 内核中的一个模块,与 Linux 内核一起发布。与 XEN 类似,KVM支持广泛的 CPU架构,除了 X86/X86_64CPU 架构之外,还将会支持大型机(S/390)、小型机 (PowerPC、IA64) 及 ARM 等。KVM 充分利用了 CPU 的硬件辅助虚拟化能力,并重用了Linux内核的诸多功能,使得 KVM 本身是非常瘦小的,因为从严格意义来说,KVM 本身并不是 Hypervisor,它仅是 Linux 内核中的一个可装载模块,其功能是将 Linux 内核转换成一个裸金属的 Hypervisor,这相对于其它裸金属架构来说,它是非常特别的,有些类似于宿主架构, KVM 在 Linux 内核的用户(User) 模式和内核 (Kernel) 模式基础上 增加了客户 (Guest) 模式。Linux 本身运行于内核模式,主机进程运行于用户模式,虚拟机则运行于客户模式,使得转变后的Linux 内核可以将主机进程和虚拟机进行统一的管理和调度,这也是 KVM 名称的由来。KVM 利用修改的 QEMU 提供BIOS、显卡、网络、磁盘控制器等的仿真,但对于 I/O 设备(主要指网卡和磁盘控制器)来说,则必然带来性能低下的问题。因此,KVM 也引入了半虚拟化的设备驱动,通过虚拟机操作系统中的虚拟驱动与主机Linux 内核中的物理驱动相配合,提供近似原生设备的性能。从此可以看出,KVM 支持的物理设备也即是 Linux 所支持的物理设备。
XEN简介,最典型的半虚拟化技术(也支持全虚拟化),因此往往工作效率最高。属于开源产品,一度被Redhat所支持的虚拟化方案,近些年因为 Guest OS 需要代码修改而造成维护的不便,逐渐被放弃。
640.webp (4).jpg

(本页以下内容来自于互联网)
相对于 ESXi 和 Hyper-V 来说,XEN 支持更广泛的CPU架构,前两者只支持 CISC 的X86/X86_64CPU 架构,XEN 除此之外还支持 RISC CPU 架构,如 IA64、ARM等。
XEN 的 Hypervisor 是服务器经过 BIOS 启动之后载入的首个程序,然后启动一个具有特定权限的虚拟机,称之为Domain 0(简称Dom0) 。Dom0的操作系统可以是Linux 或 Unix,Domain 0 实现对 Hypervisor 控制和管理功能。在所承载的虚拟机中,Dom0 是唯一可以直接访问物理硬件(如存储和网卡)的虚拟机,它通过本身加载的物理驱动,为其它虚拟机 (Domain U,简称DomU) 提供访问存储和网卡的桥梁。   
XEN 支持两种类型的虚拟机,一类是半虚拟化 (PV,Para Virtualization) ,另一类是全虚拟化 (XEN称其为 HVM,HardwareVirtual Machine) 。半虚拟化需要特定内核的操作系统,如基于Linuxparavirt_ops(Linux内核的一套编译选项) 框架的Linux 内核,而 Windows 操作系统由于其封闭性则不能被 XEN 的半虚拟化所支持,XEN 的半虚拟化有个特别之处就是不要求 CPU 具备硬件辅助虚拟化,这非常适用于 2007 年之前的旧服务器虚拟化改造。全虚拟化支持原生的操作系统,特别是针对 Windows 这类操作系统,XEN 的全虚拟化要求CPU具备硬件辅助虚拟化,它修改的 QEMU 仿真所有硬件,包括:BIOS、IDE 控制器、 VGA 显示卡、USB 控制器和网卡等。为了提升 I/O 性能,全虚拟化特别针对磁盘和网卡采用半虚拟化设备来代替仿真设备,这些设备驱动称之为 PV on HVM,为了使 PV on HVM 有最佳性能。CPU 应具备 MMU 硬件辅助虚拟化。
XEN 的 Hypervisor 层非常薄,少于 15 万行的代码量,不包含任何物理设备驱动,这一点与 Hyper-V 是非常类似的,物理设备的驱动均是驻留在 Dom 0 中,可以重用现有的 Linux 设备驱动程序。因此,XEN 对硬件兼容性也是非常广泛的,Linux 支持的,它就支持。
前面的内容要多枯燥有多枯燥,
前面的内容要多枯燥有多枯燥,
前面的内容要多枯燥有多枯燥。
所以鲁大师说:简单的讲,服务器虚拟化就是指:本来一台电脑跑一个操作系统,现在一台电脑跑 N 个操作系统。有两种做法:
第一种,设想这么一种场景:新买的一台电脑运行最新的 Windows10 系统,但是还有一些软件只能运行在老的 Windows7 系统上,怎么办?电脑上装个VMware Workstation Pro(以下简称Workstation)再装个 Windows7 的虚拟机呗。那画面真是美如画啊,大概是这样的:

640.webp (5).jpg
在正常的操作系统中,运行着一个神奇的软件,这个软件可以帮助我们运行更多的操作系统,这就是寄居构架(Hosted Architecture)的服务器虚拟化。此时电脑的工作方式改变如下图:
640.webp (6).jpg

VMware Workstation Pro 是运行在宿主机操作系统 Windows10 之上的一个软件。整台虚拟设备称为虚拟机(VM,Virtual Machine),虚拟机操作系统Windows7称为 Guest OS,这台电脑因为寄生了虚拟机,而成为宿主机 Host。
此时,Workstation 的运行依赖于宿主机的操作系统 Windows10,如果Windows10 挂了,Workstation 也就挂了,上面的虚拟机也就都挂了。
寄居构架的好处很多,
1. 不影响现有宿主机的操作系统就可以安装更多的操作系统,Windows、Linux等系统都被支持;
2. 虚拟机的操作系统不用经过任何修改就可以安装;
3. 创建、管理、删除虚拟机都很方便,安装好的虚拟机就是一个有好多文件的目录,所以甚至可以在不同电脑上随意移动,同样可以用做备份;
4. 因为虚拟机支持快照功能,特别适合用来做很多测试,可以很方便的来去切换不同时间保存的快照;
我们来看看虚拟机实际工作的一些情况,下图是虚拟系统Windows7的硬件信息,而下下图则是笔记本真正的硬件信息,有没有发现,两者的硬件其实是有有些不一样的。
640.webp (7).jpg
640.webp (8).jpg


电脑上明明没有这些硬件,虚拟机里的VMware XXX 系列硬件是从哪里来的?
答案是 Workstation 虚拟出来的,也就是说虚拟机使用的并不是真实硬件资源。
操作系统运行在 Workstation之上,比起操作系统直接运行在硬件之上,性能必然有所损失,前面提到的 Virtual PC、Virtual Box、QEUM 都一样。当然也有好处,就是兼容性好。
PS:这种虚拟机的操作系统不感知底层硬件(换句话说,不知道自己运行在虚拟化环境中,故操作系统不需要做修改)的虚拟化技术,一般也叫做全虚拟化。相对应的,虚拟机感知底层硬件(知道自己运行在虚拟化环境中),故操作系统需要做代码修改的,叫做半虚拟化。
第二种办法,就是使用裸金属构架(也就是ESXi、Hyper-V 或者 KVM)在企业里部署虚拟机,裸金属构架的服务器工作变化如下图:

640.webp (9).jpg
Hypervisor 只是一个内核(比起类似 Workstation 这样的软件来说,就是代码少,小巧,工作效率极高),并且优先级别非常高,即使宿主机系统挂了,只要Hypervisor 这个内核还活着,虚拟机就还活着。
目前的主流虚拟化技术都支持硬件辅助虚拟化,即虚拟机还可以绕过 Hypervisor 直接调用硬件,运行效率可以接近于 Guest OS 直接安装运行在硬件上。
那么为啥需要使用服务器虚拟化的技术呢?
这个世界本来挺好的,网络、系统、应用程序各司其职,为啥要虚拟化技术???当然是因为愚蠢的人类那贪得无厌的欲望啦。
用大家最熟悉的 VLAN 去类比,就非常清楚了。如果没有 VLAN 会怎么样?会只有一个 IP 网段,会不能隔离不同的用户… 哎呀,这网络没法儿用了。
如果需要一个网段就要增加一台交换机的话,哎呀,这日子也没法过了。
所以又想要划分很多网段,又不想购买多台设备,所以需要 VLAN 即网络虚拟化。其他虚拟化技术也是一样的啦,又想啥都要,又想减少支出。
佛说:色即是空,空即是色。
对于企业来说,原来需要购买更多台服务器的环境,现在可以用比较少的几台服务器通过虚拟化虚拟出更多的服务器来部署应用,这样做的好处是:
1. 更充分的利用硬件资源,节约成本;
(据统计,传统部署模式下,服务器的CPU 和内存占用率非常低)
2. 更快速的部署,原先需要硬件安装的,现在只需要创建虚拟机;
3. 虚拟机的维护比物理机要更加便捷,比如说备份,用过虚拟机快照功能的都说好。
只是抛砖引玉的说几点好处,更多的好处就等大家实际使用的时候去感受啦。可以这么说,虚拟化的部署服务器是现在很多企业的主流选择。
最后补充一下关于虚拟化实现技术的知识点,从虚拟化的实现方式不同,又分为:
1.全虚拟化(Full Virtualization)
简介:全虚拟化中,Hypervisor以纯软件的形式翻译执行虚拟机执行的指令,该过程不需要Guest OS感知,使客户操作系统无需修改就能运行,速度会根据不同的实现而不同,但大致能满足用户的需求。这种方式是业界现今最成熟和最常见的,寄居构架和裸金属构架的都有,前面提到的知名的产品有寄居构架的VMware Workstation Pro,Virtual Box,裸金属构架的VMware vSphere,KVM,和XEN(也支持全虚拟化)。
优点:Guest OS 无需修改,速度和功能都非常不错,使用非常简单。
缺点:基于 Hosted 模式的全虚拟产品性能方面不是特别优异,特别是 I/O 方面。
2.半虚拟化(Para Virtualization)
它与完全虚拟化有一些类似,它也利用Hypervisor 来实现对底层硬件的共享访问,但是由于在 Hypervisor 上面运行的 Guest OS 已经集成与半虚拟化有关的代码,使得 Guest OS 能够非常好地配合 Hypervisor 来实现虚拟化。通过这种方法将无需重新编译或捕获特权指令,其最经典的产品就是 XEN,而且因为微软的 Hyper-V 所采用技术和 XEN 类似,所以也可以把 Hyper-V 归属于半虚拟化。
这种虚拟技术以 XEN 为代表,其特点是修改操作系统的内核,加入一个XEN Hypervisor 层。它允许安装在同一硬件设备上的多个系统可以同时启动,由XenHypervisor 来进行资源调配。在这种虚拟环境下,依然需要模拟硬件设备,安装Guest操作系统,并且还需要修改操作系统的内核。XEN 相对于传统的 Virtual Machine Monitor,性能稍有提高,但并不十分显著。为了进一步提高性能,Intel和 AMD 分别开发了 VT 和 Pacifica 虚拟技术,将虚拟指令加入到了 CPU 中。使用了 CPU 支持的硬件虚拟技术,将不再需要修改操作系统内核,而是由 CPU 指令集进行相应的转换操作。
优点:这种模式和全虚拟化相比,架构更精简,而且在整体速度上有一定的优势。
缺点:需要对 Guest OS 进行修改,所以在用户体验方面比较麻烦。
在完全虚拟化模式中,Hypervisor必须模拟设备硬件,它是在会话的最低级别进行模拟的(例如:网络驱动程序,磁盘,显卡等等).尽管在该抽象中模拟很干净,但它同时也是最低效,最复杂的.在半虚拟化中,Guest OS 和Hypervisor 能够共同合作,让模拟更加高效.缺点是操作系统知道它被虚拟化,并且需要修改才能工作。
3.硬件辅助虚拟化(Hardware Assisted Virtualization)
Intel/AMD 等硬件厂商通过对部分全虚拟化和半虚拟化使用到的软件技术进行硬件化来提高性能。硬件辅助虚拟化技术常用于优化全虚拟化和半虚拟化产品,而不是独创一派,最出名的例子莫过于 VMware Workstation,它虽然属于全虚拟化,但是在它的 6.0 版本中引入了硬件辅助虚拟化技术,比如 Inte l的 VT-x 和 AMD 的 AMD-V。现在市面上的主流全虚拟化和半虚拟化产品都支持硬件辅助虚拟化,包括寄居构架的Virtual Box,裸金属构架的 VMware vSphere,Hyper-V,KVM 和XEN。
优点:通过引入硬件技术,将使虚拟化技术更接近物理机的速度。
640.webp (10).jpg

全虚拟化因为其部署维护比较简便是目前应用的主流。
最后的最后,有一张图,大家看看就好,
640.webp (11).jpg

论坛.png

发表于 2017-9-14 21:42:46 | 显示全部楼层
感谢楼主分享!
沙发 2017-9-14 21:42:46 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2024-4-19 11:59 , Processed in 0.063812 second(s), 10 queries , Redis On.  

  Powered by Discuz!

  © 2001-2024 HH010.COM

快速回复 返回顶部 返回列表