云计算与大数据-虚拟化与容器技术题库

2023-10-31

2章 虚拟化与容器技术习题

2.1 选择题

1、典型的虚拟化架构不包括(   D   )。

A.宿主机操作系统                        B.虚拟机

C.虚拟化层                            D.虚拟内存

2、虚拟化技术的研究目的包括(   D   )。

A.降低管理成本                           B.增强可移植性

C.提高软件开发效率                       D.以上都是

3、同一台物理主机上一个虚拟机的崩溃或故障不会影响其他虚拟机,这主要得益于虚拟化技术的(  A  )特征。

A.隔离            B.封装        C.硬件独立          D.分区

4、全虚拟化技术、半虚拟化技术和操作系统级虚拟化技术是从虚拟化的(   C   )角度来进行分类。

A.作用范围        B.成本        C.实现             D.使用对象

5、下列不属于半虚拟化技术的是(  A  )。

A.AMD-V          B.Hyper-V     C.Xen               D.PowerVM

6、Linux KVM中内存虚拟化技术不包括(  C  )。

A.内存气球       B.巨型页        C.vMotion            D.内核同页合并

7、存储虚拟化的实现方式包括(  D  )。

A.基于主机       B.基于存储设备  C.基于网络    D.以上都是

8、下列不属于桌面虚拟化优势的是(  B  )。

A.高效率           B.高性能        C.稳定性             D.安全性

9、下列不属于内存信息迁移方法的是(  C  )。

A.预复制迁移       B.后复制迁移    C.脏页面迁移         D.CR/TR-Motion

10、下列选项不属于典型虚拟化软件的是(  D  )。

A.Xen            B.vSphere        C.KVM                  D.Eureka

11、在同一台宿主机内,容器间可以相互访问,但跨主机的访问性能较差,解决方案不包括(  A  )。

A.NAT            B.Weave        C.覆盖网        D.Open vSwitch Network

12、与虚拟机相比,以下关于目前容器的叙述错误的是(  B  )。

A.容器一般是在操作系统级别进行的虚拟     

B.容器的安全性比虚拟机强       

C.容器的启动时间比较快    

D.容器弹性分配分配,可以在没有关闭容器的情况下添加资源

13、Docker可以回滚到当前镜像的前一个版本,可以避免因为完成部分组件的升级而导致对整个环境的破坏,这是Docker的(  B  )功能。

A.持续集成       B.版本控制      C.可移植性                 D.安全性

14、Docker中CGroup的主要功能不包括(  C  )。

A.限制资源使用      B.优先级控制       C.权限控制     D.计费

15、相较于Swarm,Kubernetes的优势包括(  D  )。

A.设计思想先进                           B.运维更加简单

C.部署工作更加便捷和自动化               D.以上都是

2.2 填空题

1、虚拟化层的核心是(   Hypervisor、虚拟机监视器或VMM   )。

2、服务器虚拟化的架构有(   宿主机虚拟化   )和(   裸金属虚拟化   )两种。

3、员工想要在家访问企业内部网络的资源,可以使用(   虚拟专用网络/VPN   )。

4、虚拟机迁移包括(   网络信息迁移   )、(   存储信息迁移   )和(   内存信息迁移   )。

5、与虚拟机相比,Docker取消了(   Hypervisor层   )和(   Guest OS层   ),使用(   Docker Engine   )进行调度和隔离。

6、Docker的核心组件主要包括(   容器或Container   )、(   镜像或Images   )和(   仓库或Repositories   )。

7、Docker中最大的公共仓库是(   Docker Hub   )。

8、Docker常用的调度工具有(   Swarm   )和(   Kubernetes或K8s   )。

2.3 简答题

1、请简述虚拟化技术的特征与优势。

答:

    虚拟化技术的特征包括:

  1. 分区。分区意味着虚拟化层为多个虚拟机划分物理主机的资源,每个虚拟机可以各自运行单独的操作系统,这些操作系统可以是相同的,也可以是不同的。用户能够在一台物理主机上运行多个应用程序,每个操作系统只能看到虚拟化层为其提供的虚拟硬件,并感觉自己运行在专用的物理主机上。
  2. 隔离。隔离指的是同一台物理主机上的虚拟机之间是相互隔离的,一个虚拟机的崩溃或故障不会影响同一台物理主机上的其他虚拟机;还可以对物理资源进行控制,以提供性能隔离,用户可以为每个虚拟机指定物理资源的最小和最大使用量,确保某个虚拟机不会占用所有的物理资源而使得同一系统中的其他虚拟机没有物理资源可用。
  3. 封装。封装意味着将整个虚拟机,包括它的内存状态、BIOS配置、CPU状态、I/O设备状态等都存储在文件系统中,用户只需要复制文件,就可以根据需要来复制、保存和移动虚拟机中的数据。
  4. 硬件独立。硬件独立指的是虚拟机和物理主机之间是相互独立的,虚拟机运行在虚拟化层之上,只能访问虚拟化层提供的虚拟硬件,不必考虑物理主机的差异等具体情况,从而可以打破操作系统和物理主机,以及应用程序和操作系统之间的约束。

虚拟化技术的优势包括:

  1. 有效地利用物理资源。利用虚拟化技术可以使云计算数据中心中一台物理主机运行多个虚拟机,实现物理资源的多租客共享,从而提高物理主机的利用率,减少硬件的总开销。
  2. 更好的容错能力。虚拟机可以从一个节点迁移到另一个节点,实现不间断运行。如果物理主机、操作系统或应用程序出现运行故障,虚拟机能够迁移到另一台物理主机上继续运行。
  3. 提高可用性。当Web服务、电子邮件服务、数据库服务程序运行于同一台物理主机时,会出现一个应用程序干扰另一个应用程序的可能性,甚至导致系统崩溃。利用不同的虚拟机承载不同的服务,就会减少应用程序之间的相互干扰,从而提高系统的可用性。
  4. 简化服务器的创建与管理。通过虚拟化技术创建虚拟服务器供用户使用仅需几分钟。相比之下,用户自行购买一台物理主机的成本显然高很多,安装操作系统和应用程序非常耗时。管理几十个虚拟服务器比管理十几台物理主机也更容易。
  5. 节约系统能源消耗。云计算系统基于虚拟化技术将云计算数据中心的各类资源整合为一个统一的虚拟资源池,又将一个个虚拟机部署在不同的物理主机上,实现大规模物理资源有效、统一的管理和利用。通过在物理主机上合理部署虚拟机,并采用虚拟机动态迁移技术,可将虚拟机聚集以便关闭空闲的数据节点,从而在最小化所需的物理主机数量的同时满足当前负载的要求,在降低云计算数据中心能耗的同时,保证QoS和服务等级协议(Service Level Agreement,SLA)。

2、请简述预复制内存信息迁移的过程。

答:

  1. 预迁移。选择一个目标宿主机作为迁移目标。
  2. 预定资源。向目标宿主机发送迁移请求,并确认目标宿主机中是否存在所需的资源。
  3. 预复制。将虚拟机的全部内存页面从源宿主机复制到目标宿主机。
  4. 迭代复制。将上一轮过程中被修改过、且到目前为止在本轮复制过程中没有被修改过的页面迭代复制到目标宿主机。
  5. 停机复制。将虚拟机剩余的少量没有同步的内存页面和虚拟机系统运行的信息复制到目标宿主机。
  6. 启动。在目标宿主机上启动被迁移的虚拟机。

3、vSphere虚拟化软件通过VMotion技术可以解决什么问题?

答:

vSphere虚拟化软件通过VMotion技术,可以在服务器需要维护升级时动态地将虚拟机迁移到其他服务器上,通过内存复制技术确保每个虚拟机对外的服务,实现了“停物理硬件,不停应用”。一旦服务器发生故障,可以及时快速地在其他服务器上重新启用虚拟机,从而保证虚拟机的稳定性。

4、请从原理、资源管理、启动时间、资源占、安全性、部署等角度简单对比容器与虚拟机技术。

答:

容    器

虚  拟  机

原理

和宿主机共享内核,所有容器都运行在容器引擎之上,容器并不具备独立的操作系统,所有容器共享操作系统,在进程级进行隔离

每个虚拟机都建立在虚拟的硬件之上,提供指令级的虚拟,每个虚拟机都具备独立的操作系统

资源管理

弹性资源分配,可以在没有关闭容器的情况下添加资源,也无须重新分配数据卷大小

虚拟机需要重启,虚拟机的操作系统需要处理新加入的资源,如磁盘需要重新分区

启动时间

较快

较慢

资源占用

容器需要的资源更少。容器是在操作系统级别进行的虚拟,和内核交互,几乎没有性能损耗。容器更轻量,容器的架构允许其共用一个内核并共享应用程序库,所占内存极小。同样的硬件环境,容器运行的镜像数远多于虚拟机数量,系统的利用率非常高

虚拟机是在Hypervisor层与内核层进行的虚拟,等同于虚拟出一台计算机,占用的资源较多

安全性

容器的安全性更弱。容器的用户Root权限和宿主机Root权限等同,一旦容器内的用户从普通用户权限提升为Root权限,它就直接具备了宿主机的Root权限

虚拟机用户Root权限和宿主机的Root权限是分离的,并且虚拟机利用的是硬件隔离技术,这种隔离技术可以防止虚拟机突破宿主机的Root权限和彼此交互

部署

容器的创建是秒级的,它的快速迭代性决定了无论开发、测试还是部署都可以节约大量时间

虚拟机可以通过镜像实现环境交付的一致性,但镜像分发难以体系化

5、请简述Docker为用户应用的带来的好处。

答:

  1. 简化配置。Docker简化了运行部署配置,同样的配置可以应用于不同的环境,降低了对硬件的要求,以及应用环境间的耦合度。
  2. 代码流水线管理。代码从开发者的设备到最终在生产环境上的部署,需要经过很多有差异的中间环境,Docker给应用程序提供了一个从开发到上线一致的环境,让代码实现了流水线管理。
  3. 整合服务器资源。Docker可以有效整合服务器的资源,使多个容器实例能够有效共享闲置的资源,比虚拟机有更好的资源整合性能。
  4. 多用户支持。Docker可以为每一个用户的多个应用层实例创建隔离的环境,并利用Docker的轻量化来支持服务器上的多个用户容器的共享资源和并发运行。
  5. 快速部署。在虚拟机之前,引入新的硬件资源需要消耗几天的时间,虚拟化技术将这个时间缩短到了分钟级别;Docker通过为进程创建一个容器,无须启动操作系统,再次将这个时间缩短到了秒级。

2.4 解答题

1、请分析CPU虚拟化和CPU硬件辅助虚拟化的过程。

答:

在X86体系的CPU指令集中,提供了4个CPU权限级别(Ring0、Ring1、Ring2、Ring3),其中Ring0是最高级别,Ring3是最低级别。操作系统要直接访问硬件和内存,它的代码需要运行在最高级别Ring0上,而应用程序的代码运行在最低级别Ring3上。如果要访问硬件和内存,实现设备访问、文件读写等操作,就要执行相关的系统调用,将CPU的运行级别从Ring3切换到Ring0,完成操作后再切换回去。VMM本质上是一个Host OS,运行在Ring0上,客户操作系统运行在Ring1上,其他上层应用程序运行在Ring2和Ring3上。

为了提高CPU虚拟化的性能,CPU硬件辅助虚拟化在Ring模式的基础上引入了一种新的模式,即虚拟机扩展(Virtual Machine Extension,VMX)模式。VMX模式包括根操作(VMX Root Operation)模式和非根操作(VMX Non-Root Operation)模式,由于这两种模式中都存在Ring0到Ring3的特权级,所以在描述某个应用程序时,除了描述它属于哪个特权级,还要指明它处于根操作模式还是非根操作模式。引入VMX模式的优势在于客户操作系统运行在Ring0上,意味着它的核心指令可以直接下达到硬件层去执行;而特权指令等敏感指令的执行则是由硬件辅助直接切换到VMM执行,由于是自动执行,应用程序无法感知,性能也就得到了提高。

2、某视频服务网站基于虚拟化云计算平台提供视频服务。假设某用户在观看视频时,此时提供该视频服务的服务器发生故障,但对于用户而言,没有影响,服务不会中断,用户继续流畅的观看视频,请分析可能是什么原因。

答:

如上图所示,用户通过网络在服务器1中的虚拟机1上观看流媒体视频,此时服务器1或者虚拟机1出现问题,就需要进行虚拟机迁移,将虚拟机转化为虚拟化镜像文件。按照迁移策略,选定服务器2作为目标宿主机迁移虚拟机,将虚拟化镜像文件进行拷贝复制,在迁移过程中用户察觉不到服务中断。

3、用户A在Docker中先后执行了docker pull、docker run、docker build和docker push四条命令行,下载的镜像中自带了老版本的Mysql数据库软件;之后用户B想使用和用户A相同的开发环境,请描述命令行的执行过程、过程中Docker相关组件的协作流程和用户B应该执行的命令。

答:

docker pull:从远端仓库(如Docker Hub)中将指定镜像文件下载到本地服务器;

docker run:运行从仓库下载的镜像文件,创建对应的容器;

docker build:在创建的容器中,更新Mysql数据库软件,并打包成新的镜像;

docker push:将创建的镜像上传到仓库。

用户B执行docker pull下载用户A上传的镜像文件,执行docker run创建容器。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

云计算与大数据-虚拟化与容器技术题库 的相关文章

  • 未找到 MessageSource 的 ResourceBundle [消息]:找不到基本名称消息的包

    在 applicationContext xml 中 我定义了 MessageSource 如下所示
  • 如果在睡眠线程上调用interrupt()会发生什么?

    我有一个线程 然后run I call sleep 如果我中断这个线程会发生什么 MyThread extends Thread public void run try sleep 1000000 catch InterruptedExce
  • 在 HTTP 标头中发送 UTF-8 值会导致 Mojibake

    我想使用 servlet 发送阿拉伯语数据HTTPServletResponse给客户 我正在尝试这个 response setCharacterEncoding UTF 8 response setHeader Info arabicWo
  • 无法在 Spring Boot 测试中模拟 persistenceContext

    我正在使用带有 Mockito 框架的 spring boot 测试来测试我的应用程序 存储库类 EntityManager 之一作为参考 我的班级如下所示 Repository Transactional Slf4j public cla
  • 记录骆驼路线

    我的项目中有几个 Camel 上下文 如果可能的话 我想以逆向工程方式记录路线 因为我们希望保持与上下文相关的文档最新 最好的方法是什么 我们倾向于预先实际设计路线 并使用来自EIP book http www eaipatterns co
  • 如何从 Retrofit2 获取字符串响应?

    我正在做 android 正在寻找一种方法来执行超级基本的 http GET POST 请求 我不断收到错误 java lang IllegalArgumentException Unable to create converter for
  • 具有共享依赖项的多模块项目的 Gradle 配置

    使用 gradle 制作第一个项目 所以我研究了 spring gradle hibernate 项目如何组织 gradle 文件 并开始制作自己的项目 但是 找不到错误 为什么我的配置不起作用 子项目无法解决依赖关系 所以项目树 Root
  • Java:正则表达式排除空值

    在问题中here https stackoverflow com questions 51359056 java regexp for a separated group of digits 我得到了正则表达式来匹配 1 到 99 之间的一
  • 将表值参数与 SQL Server JDBC 结合使用

    任何人都可以提供一些有关如何将表值参数 TVP 与 SQL Server JDBC 一起使用的指导吗 我使用的是微软提供的6 0版本的SQL Server驱动程序 我已经查看了官方文档 https msdn microsoft com en
  • Git 无法识别重命名和修改的包文件

    我有一个名为的java文件package old myfile java 我已经通过 git 提交了这个文件 然后我将我的包重命名为new所以我的文件在package new myfile java 我现在想将此文件重命名 和内容更改 提交
  • 无法加载或查找主类,可以在命令行中使用,但不能在 IDE 中使用[重复]

    这个问题在这里已经有答案了 在将其标记为重复之前 请先听我说完 我正在尝试使用 gradle 导入一个 java 项目 功能齐全 适用于所有其他笔记本电脑 没有问题 我的项目 100 正常运行 适用于所有其他笔记本电脑 当我的笔记本电脑被重
  • 如何将 Jfreechart(饼图)添加到 netbeans 的面板中

    我正在使用 netbeans gui 编辑器 并且正在尝试添加一个本身位于内部框架中的 Jfreechart 并且这个内部框架我想将其添加到面板中 正如您在此图中看到的那样 抱歉 我无法直接发布图像 因为我新手 http www flick
  • 获取给定类文件的目录路径

    我遇到的代码尝试从类本身的 class 文件所在的同一目录中读取一些配置文件 File configFiles new File this getClass getResource getPath listFiles new Filenam
  • Java 收集返回顶级项目的映射的嵌套流

    我有以下模型 class Item String name List
  • Android Studio 将音乐文件读取为文本文件,如何恢复它?

    gameAlert mp3是我的声音文件 运行应用程序时 它询问我该文件不与任何文件类型关联 请定义关联 我选择TextFile错误地 现在我的音乐文件被读取为文本文件 我如何将其转换回music file protected void o
  • 解析输入,除了 System.in.read() 之外不使用任何东西

    我很难找到具体的细节System in read 有效 也许有人可以帮助我 似乎扫描仪会更好 但我不允许使用它 我被分配了一个任务 我应该以 Boolean Operator Boolean 的形式读取控制台用户输入 例如T F 或 T T
  • 为什么java中的for-each循环中需要声明变量

    for 每个循环的通常形式是这样的 for Foo bar bars bar doThings 但如果我想保留 bar 直到循环结束 我可以not使用 foreach 循环 Foo bar null Syntax error on toke
  • 将图像添加到自定义 AlertDialog

    我制作了一个 AlertDialog 让用户可以从我显示的 4 个选项中选择一个 前 3 个让他们在单击号码时直接拨打号码 第 4 个显示不同的视图 现在看起来是这样的 由于第四个选项的目的是不同的任务 我想让它看起来不同 因为用户可能会感
  • Android - 9 补丁

    我正在尝试使用 9 块图片创建一个新的微调器背景 我尝试了很多方法来获得完美的图像 但都失败了 s Here is my 9 patch 当我用Draw 9 patch模拟时 内容看起来不错 但是带有箭头的部分没有显示 或者当它显示时 这部
  • Hibernate 和可序列化实体

    有谁知道是否有一个框架能够从实体类中剥离 Hibernate 集合以使它们可序列化 我查看了 BeanLib 但它似乎只进行实体的深层复制 而不允许我为实体类中的集合类型指定实现映射 BeanLib 目前不适用于 Hibernate 3 5

随机推荐

  • 23 个非常有用的 NodeJs 库

    1 Express 地址 https www npmjs com package express 快速 无约束 极简的node web框架 2 Socket io 地址 https www npmjs com package socket
  • html文件上传美化

    html上传按钮美化 效果图 描述 通过定位覆盖原来的按钮 代码 div class layui form item div
  • 排序算法-----计数排序

    目录 前言 计数排序 1 算法描述 2 基本思想 3 实现逻辑 4 示例剖析 5 动图演示 代码实现 1 C C 代码 2 Python代码 算法分析 时间复杂度 空间复杂度 稳定性 局限性 前言 有没有一种排序时间复杂度为直线正比的排序算
  • hyper-v虚拟机的创建时间总是是1601的问题。

    解决办法 1 在虚拟机正在运行时 点击停止服务 虚拟机不会关闭 2 同意强制关闭后 在重新启动服务即可 3 虚拟机的创建时间将正确显示
  • 2015中国各地区最佳大学排行榜 报考首选前五强

    艾瑞深中国校友会网最新发布2015中国各地区最佳大学排行榜 2015中国各地区最佳独立学院排行榜和2015中国各地区最佳民办大学排行榜等榜单 旨在让两岸四地高考考生及家长了解中国各地区高校的办学水平和办学实力 2015中国各地区最佳大学排行
  • 数据库常见知识点

    数据库 Mysql的金额用什么数据类型表示 在mysql中 金额用 DECIMAL 类型 DECIMAL类型是专门为财务相关问题而设计的数据类型 能够解决数据的范围和精度的问题 常用于货币数据 如价格 工资 帐户余额等 它实际上是以字符串的
  • 经典分类算法——感知机算法

    文章目录 经典分类算法 感知机算法 1 感知机算法思想 错误修正 2 感知机算法 原始形式 形式化表示 3 感知机算法 对偶形式 形式化表示 4 感知机算法 随机梯度下降 SGD 5 感知机算法 一种变形 6 感知器算法 示例 7 感知器算
  • 代码审计及工具

    代码审计 是对应用程序源代码进行系统性检查的工作 它的目的是为了找到并且修复应用程序在开发阶段存在的一些漏洞或者程序逻辑错误 避免程序漏洞被非法利用给企业带来不必要的风险 代码审计不是简单的检查代码 审计代码的原因是确保代码能安全的做到对信
  • python之多线程并发

    前言 今天呢笔者想和大家来聊聊python多线程的并发 废话就不多说了咱们直接进入主题哟 一 线程执行 python的内置模块提供了两个内置模块 thread和threading thread是源生模块 threading是扩展模块 在th
  • boost::python::converter::as_to_python_function相关的测试程序

    boost python converter as to python function相关的测试程序 boost python是一个用于将C 代码集成到Python中的强大工具库 其中的converter模块提供了将C 对象转换为Pyth
  • java-IDEA常用插件

    1 JRebel 热部署插件 1 IDEA 中搜索并安装插件 JRebel 重启 2 获取UUID https www guidgen com 3 按下图填写信息 https jrebel qekang com UUID 把UUID替换成上
  • 基于深度学习的商品推荐系统(Web)

    基于深度学习的商品推荐系统 ECRS Web 项目简介 技术栈 项目用到的技术如下 语言 Python3 Java Web端 Layui Flask Nginx Gevent Flask Cache 模型训练 PaddleRec Paddl
  • js反爬中如何如何处理无限debugger

    有时候在爬取网站时 遇到无限debugger的情况 一种是constructor中的debugger 还有一种是eval中的debugger 可以通过hook的方式绕过无限debugger 处理eval中无限debugger var eva
  • 26. selenium:浏览器自动测试模块——一款方便且能装X的爬虫工具(附多个实例)

    目录 前言 什么是selenium 配置selenium 安装selenium库 安装浏览器驱动 以Chrome为例 使用selenium库 例1 实现打开网页拿取网页标题 运行效果 例2 实现抓取某招聘网站Python岗位的职位信息 运行
  • setImageResource和setImageDrawable区别

    ImageView设置图片的方式有很多钟 可以在xml里面写android src drawable xxx 也可以在java代码里面设置 在java里面的设置方式也有多种 方法包括 setImageResource setImageDra
  • Xilinx ISE系列教程(3):关联第三方编辑器Notepad++/VS Code/UltraEdit/Sublime Text/Emacs/Vim

    文章目录 toc 1 ISE关联Notepad 编辑器 2 ISE关联VS Code编辑器 3 ISE关联UltraEdit编辑器 4 ISE关联Sublime Text3编辑器 5 ISE关联Emacs编辑器 6 ISE关联Vim编辑器
  • VMware中Centos Linux 8虚拟机安装过程

    VMware Workstation的安装过程已经有博文分享 本文是VMware安装成功后虚拟机安装的过程 在安装前需要下载CentOS镜像文件 阿里云地址为 https mirrors aliyun com centos 我下载的是8 即
  • 下载百度网盘资源不限速的两种方法

    下载百度网盘资源不限速的两种方法 方法1 适合文件大小4g以下的下载 由于直接用proxpee down下载资源文件时出现 error code 31090 error msg package is too large request id
  • 神仙文献管理软件Mendeley 保姆级教程

    神仙文献管理软件Mendeley 保姆级教程 英国文文的文章 知乎 https zhuanlan zhihu com p 65992720 Mendeley是一款Elsevier公司旗下的免费文献管理软件 集文献的搜集 管理 搜索 阅读 标
  • 云计算与大数据-虚拟化与容器技术题库

    第2章 虚拟化与容器技术习题 2 1 选择题 1 典型的虚拟化架构不包括 D A 宿主机操作系统 B 虚拟机 C 虚拟化层 D 虚拟内存 2 虚拟化技术的研究目的包括 D A 降低管理成本 B 增强可移植性 C 提高软件开发效率 D 以上都