00:00
欢迎大家继续收看上硅谷的Linux云计算视频。大家好,我是汪洋老师。这节课呢,我们就去开始去学习我们的虚拟化相关的一些技术了。那比如我们的VI对吧,比如刀客,比如open,比如。我们都会在这章去进行学习。那在学习之前呢,我们先。掌握一下虚拟化的一些简单的原理,包括它的一些理论性的东西,对吧,包括它的分类。在这张里,我们就先解决这些问题。在我们的本章片段里呢,我们会分为这么几个两。两个小章节给大家去讲解。第一个我们。先说一下我们的引入虚拟化的必要性。对吧,为什么要采用虚拟化技术。我们都知道技术的引用。引用的越复杂,我们在出现问题的时候就会越难去恢复。我们一定要有对应的目标,对吧,引入以后一定要能给我们带来某种需求,或者是解决某种痛点,我们才会去引入。
01:02
那在这里先给大家讲这个问题对吧,那第二个呢,我们再去看我们的虚拟化技术的一个简单的分类。那我们先看第一个引入虚拟化的必要性。首先呢。有一个建议让大家先看一下,美国环境保护总署做过一项报告。服务器和数据中心的能源效率。实际上服务器5%时间工作,其他时间处于休眠。那这是一个官方的报表,官方的报表并不是我们去寻找的,对吧?那就意味着当我们整个服务器中心没有采用虚拟化之前呢。他只有5%的消耗是在我们真正的服务性能上消耗,其他都属于自己的。不用消耗。那意味着我100块钱只有五块钱正在干干事情对吧,解决我的问题,其他的95块钱都是打水漂了,可以这样理解对吧。那所以呢。我们怎么去把这个所谓的使用效率提高,这就是我们要解决的问题。
02:05
那或者说这就是虚拟化解决的问题。那很多人在提到虚拟化的时候,肯定会有一点感觉,就是哇,虚拟化是不是好陌生好高端的这么一种事情啊。在N年前确实是这样,或者是在十几年前确实是这样。但随着我们的虚拟化技术的普遍普及,以及我们的硬件厂商的跟进。其实虚拟化在现在很多一些甚至是民用领域已经大规模应用了。那举个例子,我们可以干什么?买一台电脑,我们去装个虚拟化,装完虚拟化以后买两块显卡,两个GPU对吧,两块显卡。一个CPU就够了。内存呢,看着买对吧,我们可以装两台虚拟机。把这两个显卡直通给这两台对应的虚拟机,把CPU劈两半,一人一边。
03:00
我们都知道,现在我们一些游戏啊,或者是一些生活中的用的一些软件,基本上大部分都是依赖于比如游戏对吧,大分都依赖于GPU,那么把GPU直通给他CPU去共享,因为现在。大部分的CPU都是属于一个闲的状态,对吧。那这样的话。两个人就可以玩这两台虚拟机了。这是现在我们的。虚拟化能够在家庭里面做到的事情非常简单。那除此以外呢?其实我们的虚拟化。比较接近于咱们了,对吧,尤其是咱们现在的学生。啊,从一开始的我们的Linux服务器的构建,到我们的网络服务的学习,到我们的到我们的集群化,其实都离不开虚拟化。因为咱们没有真正的服务器,对吧。那我们可以看到这么一张图。底层的有一堆的硬件。上面安装了一个我们的什么内核,以及我们的系统环境。
04:01
那这也就是我们的整个的操作系统。操作系统上面运行了不同的应用程序,可能是QQ,可能。是微信对吧,可能。展示一些什么所谓的其他的软件,比如PPT word等等。那并且有一个软件叫vm be。里面运行了三台不同的虚拟机。分别是圣罗S。Open to that head。那在虚拟机上面又运行了不同的应用程序?这其实就是我们当前用到的这么一种虚拟化。只不过它是以一个软件体的形式存在。像这种虚拟化,我们在生产环境中一般用的来说比较少,原因是什么?哪怕虚拟化做的再稳定,底层的操作系统一旦崩溃,一旦崩溃,那上传的所有服务是不是都是GG的?因为它是属于一个底线服。依赖于这个底层服务的。这样说的话应该大家比较好理解对吧,但是这是我们现在能够接触到的。最靠近咱们的这么一种虚拟化技术了。
05:05
接下来呢,我们去为虚拟化。做一个我们的。对比。也就是我们的采用虚拟化和不采用虚拟化它们之间的区别。采用虚拟化之前呢,每台操作系统都是一台啊,每台主机都是一个独立的操作系统。那如果我想为一台主机里面安装一个完整的lamp环境的话。那这就会带来一个问题,对吧,阿帕奇买他们的资源是共享的。这就会带来另一个问题,安全性的问题。如果我对安全性的故障。安全性的隔离要求比较高的话,阿帕奇的页面和MYSQL数据库的目录他们之间一定是不能互相界面的。如果有一天阿帕奇爆发漏洞以后,别人可以通过进程阿帕奇的进程方式访问到我们的外下的B下的MYQ目录。
06:00
从而获取到MYSQL里面的数据,这是非常危险的。那做内核级别的隔离,这是我们最想见到的一件事情。就拿两个不同的操作系统,把他们给单独封起来。一台操作系统装霸气,一台操作装满蛇口。在虚拟化之前,我们是肯定做不到的。或者在原来的虚拟化的时候,我们是肯定做不到的,因为现在还有容器,对吧,我们后面再讲。当容器也是一种虚拟化技术,只不过它叫什么?只不过它是一种容器虚拟化技术,对吧。那接下来呢,我们再去看第二个软件硬件紧密结合,这个又怎么理解呢?我们经常会因为一些比如一些驱动打不上而放弃某个操作系统。这种情况在我们呢,嗯,怎么说呢,用Linux的时候更为普遍,很多人可能会去想,哎,我拿我机器装个Linux玩吧,我装个red,我装一个什么所谓的乌班兔。
07:07
那你会发现有些硬件它的驱动驱不上,对吧,或者是没有对应的驱动去被它。补充。那这种情况下的话。那很多的一些硬件的功能,我们的我们在。操作系统里面都用不了。这个我们应该很多人都见过了,如果装的话对吧,意念或者做驱动是我们在Linux里面装个人机的时候最难解决的一个问题。那就软件和硬件他们是互相紧密结合的,如果我采用虚拟化以后。我们的。系统与硬件之间是有一层软,是有一层我们的虚拟化层去驱动的,如果虚拟化层能够对下面的硬件识别的话,那上层的软件就可以对它识别。会相互隔离。那下一个同一个主机上运行多个应用程序,通常会。
08:00
这个更好理解了。如果我想在一台机器上运行一个阿帕奇,运行一个nnu,他们都要开启端口八零的话。你怎么办?阿帕奇恩尼克斯,对吧?他们都需要使用八零端口,你怎么办?你唯一的方法如果不采用虚拟化在一台机器的话,你只能拿nnux做反向代理下负载的方式,对吧,通过nux反向代理出去,那这样的话。是不是阿阿帕提才能被八零去共享出去?能理解我意思吗?他使用8080。里面。反向代理pro pass的方式对吧,加虚拟主机的方式代理八零端口,那这样的话是不是就是两个都能被外网访问。但是如果这两个应用程序里面,它的网页目录下面都会有一些非常重要的数据。这个重要数据如果同时都被泄密数据的话,那。带来的后果。不敢想象,这种情况下你肯定做不了了,对吧,那采用虚拟化之后呢,我可以装两个不同的操作系统。
09:03
在两个操作系统里分别去构建相互隔离。下一个。系统的资源利用率低。这更好解释了,对吧。我一个CPU原来就一个应用程序用,我现在七八个应用程序用,七八个操作系统在用。你说他的利用率高不高?肯定是非常之高的。甚至我们还可以这样想。比如有些应用程序。它需要使用的资源是CPU。那我当前主机的内存和一些磁盘的IO是不是就闲置了?我拿剩余的内存做个缓存行不行?我拿剩余的磁盘,我装一个我们的分布式存储行不行?这是不是都是可以在虚拟化以后去做到的事情?最后一个,硬件成本高昂且不够灵活。大家知道为什么现在我们的云服务器这么普遍吗?普及吗?动不动就是什么云服务,对吧,云服务,哎,我们上云吧,上百度云吧,上阿里云吧,上IWS吧。
10:01
原因就是这一点,硬件成本高。因为有些一些初创型公司,他根本都不知道能不能熬过这个冬天。你就让他花个几十万去购买大量的服务器以及。机房。去构建他们对应的平台,这肯定是不太合理的。但是我们上了云服务以后呢。我是不是每个月只需要掏几千块钱的方式?就可以使用到对应的一些硬件服务。那你说我们现在不讲了虚拟化吗?为什么又扯到云服务了?云,它的底层技术就是虚拟化。你可以把它理解为是一个联合性虚拟化,或者叫做。呃,怎么说呢。接续型虚拟化。可以这样去理解,暂时。那这个呢,是我们对虚拟化的一个虚拟化使用前和虚拟化使用后的这么一个说明。大家也可以看到了,对吧,虚拟化到底有多么重要。那接下来我们继续往后看,我们看最后一个定义。
11:04
虚拟化是指我们通过虚拟化技术,将一台虚拟。将一台计算机虚拟为多台逻辑计算机,这里的逻辑非常重要,对吧?它并不是真正存在一个我们的完整的操作系,完整的计算机系统。它只是一个逻辑性的计算机系统,他们都是依赖于这台我们的物理计算机的,需要大家注意一下,甚至还有很多人异想天开,对吧?虽然我现在有一个什么I5的CPU,我能不能虚拟化一个I7的机器?那你觉得呢,对吧,这个问题比较尴尬,你觉得呢。明明我只有十块钱。虚拟化完了以后可以通过,可以当100块钱用,这肯定是不现实的。但是我现在有十块钱,正常用的话,我只能用出去两块钱。十块钱我都花完了,但是得到的结果只有两块钱。我们。我们在使用虚拟化技术以后,可以可以让他十块钱花完以后,能得到9.8块钱的效果。
12:01
你可以这样去理解。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可以运行不同的操作系统,这也是个非常重要的一个概念,对吧,好。并且应用程序可以在相互独立的空间内互相运行,互不干扰,这句话非常重要。因为他们是基于不同的操作系统的内核去隔离的。从而显著提高计算机的工作效率。当然,这中间还发生了一件大事。就在九零年代末端,我们的虚拟化运动对吧,那包括英特尔imd他们都加入了这么一个运动,风巢,让他加入了硬件级虚拟化的支持,这才使我们的虚拟化的效率大大提升。笑。效率提升以后呢,从此我们的虚拟化才在整个我们的。怎么说呢?科研圈里才大规模的运用,或者叫做发展。那这节课呢,我们就先讲到这里,下节课我们再见。
我来说两句