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.以上都是
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 )。
1、请简述虚拟化技术的特征与优势。
答:
虚拟化技术的特征包括:
虚拟化技术的优势包括:
2、请简述预复制内存信息迁移的过程。
答:
3、vSphere虚拟化软件通过VMotion技术可以解决什么问题?
答:
vSphere虚拟化软件通过VMotion技术,可以在服务器需要维护升级时动态地将虚拟机迁移到其他服务器上,通过内存复制技术确保每个虚拟机对外的服务,实现了“停物理硬件,不停应用”。一旦服务器发生故障,可以及时快速地在其他服务器上重新启用虚拟机,从而保证虚拟机的稳定性。
4、请从原理、资源管理、启动时间、资源占、安全性、部署等角度简单对比容器与虚拟机技术。
答:
|
| 容 器 | 虚 拟 机 |
| 原理 | 和宿主机共享内核,所有容器都运行在容器引擎之上,容器并不具备独立的操作系统,所有容器共享操作系统,在进程级进行隔离 | 每个虚拟机都建立在虚拟的硬件之上,提供指令级的虚拟,每个虚拟机都具备独立的操作系统 |
| 资源管理 | 弹性资源分配,可以在没有关闭容器的情况下添加资源,也无须重新分配数据卷大小 | 虚拟机需要重启,虚拟机的操作系统需要处理新加入的资源,如磁盘需要重新分区 |
| 启动时间 | 较快 | 较慢 |
| 资源占用 | 容器需要的资源更少。容器是在操作系统级别进行的虚拟,和内核交互,几乎没有性能损耗。容器更轻量,容器的架构允许其共用一个内核并共享应用程序库,所占内存极小。同样的硬件环境,容器运行的镜像数远多于虚拟机数量,系统的利用率非常高 | 虚拟机是在Hypervisor层与内核层进行的虚拟,等同于虚拟出一台计算机,占用的资源较多 |
| 安全性 | 容器的安全性更弱。容器的用户Root权限和宿主机Root权限等同,一旦容器内的用户从普通用户权限提升为Root权限,它就直接具备了宿主机的Root权限 | 虚拟机用户Root权限和宿主机的Root权限是分离的,并且虚拟机利用的是硬件隔离技术,这种隔离技术可以防止虚拟机突破宿主机的Root权限和彼此交互 |
| 部署 | 容器的创建是秒级的,它的快速迭代性决定了无论开发、测试还是部署都可以节约大量时间 | 虚拟机可以通过镜像实现环境交付的一致性,但镜像分发难以体系化 |
5、请简述Docker为用户应用的带来的好处。
答:
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创建容器。
这里是Ruby新手。完成一些练习后碰壁了。练习:计算一系列成绩的字母等级创建一个方法get_grade来接受测试分数数组。数组中的每个分数应介于0和100之间,其中100是最大分数。计算平均分并将字母等级作为字符串返回,即“A”、“B”、“C”、“D”、“E”或“F”。我一直返回错误:avg.rb:1:syntaxerror,unexpectedtLBRACK,expecting')'defget_grade([100,90,80])^avg.rb:1:syntaxerror,unexpected')',expecting$end这是我目前所拥有的。我想坚持使用下面的方法或.join,
项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU
ValidPalindromeGivenastring,determineifitisapalindrome,consideringonlyalphanumericcharactersandignoringcases. [#125]Example:"Aman,aplan,acanal:Panama"isapalindrome."raceacar"isnotapalindrome.Haveyouconsiderthatthestringmightbeempty?Thisisagoodquestiontoaskduringaninterview.Forthepurposeofthisproblem
我对如何计算通过{%assignvar=0%}赋值的变量加一完全感到困惑。这应该是最简单的任务。到目前为止,这是我尝试过的:{%assignamount=0%}{%forvariantinproduct.variants%}{%assignamount=amount+1%}{%endfor%}Amount:{{amount}}结果总是0。也许我忽略了一些明显的东西。也许有更好的方法。我想要存档的只是获取运行的迭代次数。 最佳答案 因为{{incrementamount}}将输出您的变量值并且不会影响{%assign%}定义的变量,我
给定一个nxmbool数组:[[true,true,false],[false,true,true],[false,true,true]]有什么简单的方法可以返回“该列中有多少个true?”结果应该是[1,3,2] 最佳答案 使用转置得到一个数组,其中每个子数组代表一列,然后将每一列映射到其中的true数:arr.transpose.map{|subarr|subarr.count(true)}这是一个带有inject的版本,应该在1.8.6上运行,没有任何依赖:arr.transpose.map{|subarr|subarr.in
给定两个大小相等的数组,如何找到不考虑位置的匹配元素的数量?例如:[0,0,5]和[0,5,5]将返回2的匹配项,因为有一个0和一个5共同;[1,0,0,3]和[0,0,1,4]将返回3的匹配项,因为0有两场,1有一场;[1,2,2,3]和[1,2,3,4]将返回3的匹配项。我尝试了很多想法,但它们都变得相当粗糙和令人费解。我猜想有一些不错的Ruby习惯用法,或者可能是一个正则表达式,可以很好地回答这个解决方案。 最佳答案 您可以使用count完成它:a.count{|e|index=b.index(e)andb.delete_at
Ruby中如何“一般地”计算以下格式(有根、无根)的JSON对象的数量?一般来说,我的意思是元素可能不同(例如“标题”被称为其他东西)。没有根:{[{"title":"Post1","body":"Hello!"},{"title":"Post2","body":"Goodbye!"}]}根包裹:{"posts":[{"title":"Post1","body":"Hello!"},{"title":"Post2","body":"Goodbye!"}]} 最佳答案 首先,withoutroot代码不是有效的json格式。它将没有包
目标我正在尝试计算自给定日期以来周的距离,而无需跳过任何步骤。我更喜欢用普通的Ruby来做,但ActiveSupport无疑是一个可以接受的选择。我的代码我写了以下内容,这似乎可行,但对我来说似乎还有很长的路要走。require'date'DAYS_IN_WEEK=7.0defweeks_sincedate_stringdate=Date.parsedate_stringdays=Date.today-dateweeks=days/DAYS_IN_WEEKweeks.round2endweeks_since'2015-06-15'#=>32.57ActiveSupport的#weeks
技术选型1,前端小程序原生MINA框架cssJavaScriptWxml2,管理后台云开发Cms内容管理系统web网页3,数据后台小程序云开发云函数云开发数据库(基于MongoDB)云存储4,人脸识别算法基于百度智能云实现人脸识别一,用户端效果图预览老规矩我们先来看效果图,如果效果图符合你的需求,就继续往下看,如果不符合你的需求,可以跳过。1-1,登录注册页可以看到登录页有注册入口,注册页如下我们的注册,需要管理员审核,审核通过后才可以正常登录使用小程序1-2,个人中心页登录成功以后,我们会进入个人中心页我们在个人中心页可以注册人脸,因为我们做人脸识别签到,需要先注册人脸才可以进行人脸比对,进
如何计算两个字符串之间的字符交集?例如(假设我们有一个名为String.intersection的方法):"abc".intersection("ab")=2"hello".intersection("hallo")=4好的,男孩女孩们,感谢你们的大量反馈。更多示例:"aaa".intersection("a")=1"foo".intersection("bar")=0"abc".intersection("bc")=2"abc".intersection("ac")=2"abba".intersection("aa")=2一些补充说明:维基百科定义intersection如下:Int