016.OpenStack及云计算(面试)常见问题
- 什么是云计算?
- 云计算的基本特征?
- 自主服务:可按需的获取云端的相应资源(主要指公有云);
- 网路访问:可随时随地使用任何联网终端设备接入云端从而使用相应资源。
- 资源池化:
- 快速弹性:可方便、快捷地按需获取和释放计算资源。
- 按量计费:
- 云计算常见几种部署模式?
- 私有云:云平台资源只给某个单位、或某部分用户内部使用。
- 公有云:云平台资源开放给社会公众服务。
- 社区云:云平台资源给几个固定的单位内使用。
- 混合云:两个或两个以上不同类型的云平台。
- 云计算的三种服务模式?
- IaaS:基础设施即服务,云服务商将IT系统的基础设施(如计算资源、存储资源、网络资源)池化后作为服务进行售卖;
- PaaS:平台即服务,云服务商将IT系统的平台软件层(数据库、OS、中间件、运行库)作为服务进行售卖;
- SaaS:软件即服务,云服务商将IT系统的应用软件层作为服务进行售卖。
- 常见云平台架构组成?
- 云服务消费者:租赁云服务产品的个人或者单位组织;
- 云服务提供商:提供云服务产品的个人或者单位组织;
- 云服务代理商:向消费者销售云服务并获取一定佣金的个人或者单位组织;
- 云计算审计员:针对云计算安全性、云计算性能等进行独立评估的第三方个人或者单位组织;
- 云服务承运商:在云服务提供商和消费者之间提供连接媒介,以便把云计算服务产品从云服务提供商转移到云服务消费者手中,如中国电信。
- 常见的虚拟化厂商及其相应的产品?
- 云计算与虚拟化的区别?
- 常见的IaaS管理工具?
- 私有云相对于公有云有哪些优势?
- 数据安全性更高;
- 可节省上云迁移过程中的大量成本;
- 业务快速部署,缩短业务周期;
- 降低企业成本,自主可控。
- 在OpenStack高可用架构中,controller节点为什么通常至少有3个节点?
- 简单描述SDN?
- 转发与控制分离。SDN具有转发与控制分离的特点,采用SDN控制器实现网络拓扑的收集、路由的计算、流表的生成及下发、网络的管理与控制等功能;而网络层设备仅负责流量的转发及策略的执行。通过这种方式可使得网络系统的转发面和控制面独立发展,转发面向通用化、简单化发展,成本可逐步降低;控制面可向集中化、统一化发展,具有更强的性能和容量。
- 控制逻辑集中。转发与控制分离之后,使得控制面向集中化发展。控制面的集中化,使得SDN控制器拥有网络的全局静态拓扑,全网的动态转发表信息,全网络的资源利用率,故障状态等。因此,SDN控制器可实现基于网络级别的统一管理、控制和优化,更可依托全局的拓扑的动态转发信息帮助实现快速的故障定位和排除,提高运营效率。
- 网络能力开放化。SDN还有一个重要特征是支持网络能力开放化。通过集中的SDN控制器实现网络资源的统一管理、整合以及虚拟化后,采用规范化的北向接口为上层应用提供按需分配的网络资源及服务,进而实现网络能力开放。这样的方式打破了现有网络对业务封闭的问题,是一种突破性的创新。
- 什么是OpenStack?
- 资源抽象:OpenStack将各类硬件资源,通过虚拟化与软件定义的形式,抽象成虚拟的资源池;
- 资源调度:OpenStack根据管理员/用户的需求,将资源池中的资源分配给不同的用户,承载不同的应用;
- 应用生命周期管理:OpenStack可以提供初步的应用部署/撤销、自动规模调整等功能;
- 系统运维:OpenStack可以提供一定的系统监控能力;
- 人机交互:OpenStack提供人机接口,外界可通过API、CLI或图形界面的方式与OpenStack进行交互。
- OpenStack常见组件及其功能?
- Horzon组件:提供一个Web前端控制台,从而实现通过web管理云平台,建云主机,分配网络,配安全组等。
- Nova组件:负责响应虚拟机创建请求、调度、销毁云主机。
- Neutron组件:提供云计算的网络虚拟化技术,为OpenStack其他服务提供网络连接服务。为用户提供接口,可以定义Network、Subnet、Router,配置DHCP、DNS、负载均衡、L3服务,网络支持GRE、VLAN。插件架构支持许多主流的网络厂家和技术,如OpenvSwitch。以上为三大核心组件。
- Swift组件:用于在大规模可扩展系统中通过内置冗余及高容错机制实现对象存储的系统,允许进行存储或者检索文件。可为Glance提供镜像存储,为Cinder提供卷备份服务。
- Cinder组件:为运行实例提供稳定持久化的数据块存储服务,如创建卷、删除卷,在实例上挂载和卸载卷。
- Keystone组件:为OpenStack其他服务提供身份验证、服务规则和服务令牌的功能,管理Domains、Projects、Users、Groups、Roles。
- Glance组件:为云主机提供不同系统镜像,支持多种虚拟机镜像格式(AKI、AMI、ARI、ISO、QCOW2、Raw、VDI、VHD、VMDK),有创建上传镜像、删除镜像、编辑镜像基本信息的功能。
- Ceilometer组件:能把OpenStack内部发生的几乎所有的事件都收集起来,然后为计费和监控以及其它服务提供数据支撑。
- Heat组件:提供了一种通过模板定义的协同部署方式,实现云基础设施软件运行环境(计算、存储和网络资源)的自动化部署。
- OpenStack中什么服务通常运行在控制节点?
- 以下服务通常运行在控制节点:
- 认证服务(Keystone)
- 镜像服务(Glance)
- Nova服务,如Nova API、Nova Scheduler和Nova DB
- 块存储和对象存储服务(Cinder、Swift)
- Ceilometer服务
- MariaDB/MySQL和RabbitMQ服务
- 网络(Neutron)和网络代理的管理服务
- 编排服务(Heat)
- OpenStack中什么服务通常运行在计算节点?
- Nova计算
- 网络服务,比如OVS
- OpenStack中的Domain,project,user,role,token 的概念和关系?
- OpenStack中计算节点上虚拟机默认保存路径在哪?
- OpenStack中Glance镜像的默认保存路径在哪?
- OpenStack创建虚拟机的命令是什么?
- OpenStack虚拟机启动过程?
- 界面或命令行通过RESTful API向keystone获取认证信息。
- keystone通过用户请求认证信息,并生成auth-token返回给对应的认证请求。
- 界面或命令行通过RESTful API向nova-api发送一个boot instance的请求(携带auth-token)。
- nova-api接受请求后向keystone发送认证请求,查看token是否为有效用户和token。
- keystone验证token是否有效,如有效则返回有效的认证和对应的角色(注:有些操作需要有角色权限才能操作)。
- 通过认证后nova-api和数据库通讯。
- 初始化新建虚拟机的数据库记录。
- nova-api通过rpc.call向nova-scheduler请求是否有创建虚拟机的资源(Host ID)。
- nova-scheduler进程侦听消息队列,获取nova-api的请求。
- nova-scheduler通过查询nova数据库中计算资源的情况,并通过调度算法计算符合虚拟机创建需要的主机。
- 对于有符合虚拟机创建的主机,nova-scheduler更新数据库中虚拟机对应的物理主机信息。
- nova-scheduler通过rpc.cast向nova-compute发送对应的创建虚拟机请求的消息。
- nova-compute会从对应的消息队列中获取创建虚拟机请求的消息。
- nova-compute通过rpc.call向nova-conductor请求获取虚拟机消息。(Flavor)
- nova-conductor从消息队队列中拿到nova-compute请求消息。
- nova-conductor根据消息查询虚拟机对应的信息。
- nova-conductor从数据库中获得虚拟机对应信息。
- nova-conductor把虚拟机信息通过消息的方式发送到消息队列中。
- nova-compute从对应的消息队列中获取虚拟机信息消息。
- nova-compute通过keystone的RESTfull API拿到认证的token,并通过HTTP请求glance-api获取创建虚拟机所需要镜像。
- glance-api向keystone认证token是否有效,并返回验证结果。
- token验证通过,nova-compute获得虚拟机镜像信息(URL)。
- nova-compute通过keystone的RESTfull API拿到认证k的token,并通过HTTP请求neutron-server获取创建虚拟机所需要的网络信息。
- neutron-server向keystone认证token是否有效,并返回验证结果。
- token验证通过,nova-compute获得虚拟机网络信息。
- nova-compute通过keystone的RESTfull API拿到认证的token,并通过HTTP请求cinder-api获取创建虚拟机所需要的持久化存储信息。
- cinder-api向keystone认证token是否有效,并返回验证结果。
- token验证通过,nova-compute获得虚拟机持久化存储信息。
- nova-compute根据instance的信息调用配置的虚拟化驱动来创建虚拟机。
- OpenStack中如何显示用户的网络命名空间列表?
- OpenStack中如何执行网络命名空间内的命令?
- OpenStack中Glance服务如何使用命令上传和下载镜像?
- OpenStack中如何将虚拟机从异常状态置为活动状态?
- OpenStack中如何获取浮动IP列表?
- OpenStack中如何在特定可用区特定计算节点创建虚拟机?
- OpenStack中如何获取特定计算节点虚拟机列表?
- OpenStack中如何查看虚拟机的控制台日志?
- OpenStack中如何获取控制台的URL?
- OpenStack中如何创建Cinder/Block存储卷?
- OpenStack中如何列出所有创建的项目或用户?
- OpenStack中如何显示服务端点(endpoint)列表?
- 公共端点
- 内部端点
- 管理端点
- OpenStack控制节点按什么步骤重启nova服务?
- OpenStack中已存在的安全组SG,如何添加规则?
- OpenStack中如何查看控制节点和计算节点的OVS桥配置?
- OpenStack中计算节点的集成桥(br-int)的作用是什么?
- OpenStack中计算节点的隧道桥(br-tun)的作用是什么?
- OpenStack中外部OVS桥(br-ex)的作用是什么?
- OpenStack中的各组件之间通信机制?
- RESTful API:
- REST定义的原则
- 所有事物都定义了ID。openstack中每个资源都有唯一的UUID
- 所有事物都链接在一起。在openstack中将资源的ID放在URL中。
- 使用标准的方法。比如说GET是查询资源,POST是添加资源,PUT是更新资源等等。
- 使用RESTful API架构,实现的目标
- 客户端与服务端的独立性: 在公共接口不变的情况下,客户端和服务端的代码可以独立开发。
- 无状态性: 用户的状态保存在客户端,服务端不再保存用户的状态。客户端向服务端发送请求时,必须发送所有的数据,包括用户状态。
- 统一的接口: RESTful API的URL格式需要遵守统一的规范。可以降低客户端服务器的耦合度,使得编码更加简单。
- 缺点
- 消息仅限于文本
- 客户端与服务端采取同步机制,当发送http请求时客户端需要等待服务器的响应
- 客户端与服务器虽然可以独立开发,但也存在耦合。客户端必须要知道服务器的地址才可以正常工作。
- REST是面向资源的,资源通过URL暴露
- REST本身可以利用HTTP的一些特征,如HTTP动词、状态码、HTTP报头等
- RPC
- 特点:二进制的应用层通信协议,进城之间对称的异步通信协议,消息格式,一系列标准化的但可拓展的消息能力(订阅者和发布者,两个节点无需知道对方是什么节点,也不用管对方节点怎么去处理发送的消息,拥有过滤器可以修改订阅者的接收内容)
- 组成:发布者,中间件(消息的存储、交换和路由),订阅者
- 流程:发布者将消息发送到中间件,中间件将消息存储到消息队列中,最后订阅者从消息队列中获取消息。
- nova中使用rabbitmq实现RPC调用
- 客户端(发布者)无需知道服务器(订阅者)的位置
- 客户端与服务器无需同步运行。客户端可以先发RPC调用,然后存储在消息队列中。
- 远程调用的随机均衡性,当客户端发起RPC调用时,可以随机选择一个服务器来处理消息
- OpenStack中根据权限不同网络可分为几种?
- OpenStack中根据网络类型不同网络可分为几种?
- OpenStack网络中OpenFlow规则的作用是什么?
- OpenStack网络中OpenFlow交换机的信息(比如端口、表编号、缓存编号等)如何查看?
- OpenStack网络中如何显示交换机的所有Flow入口?
- OpenStack中Neutron代理是什么?如何显示所有Neutron代理?
- OpenStack中CPU Pinning指什么?
- 它确保虚拟机只能在专用核心上运行;
- 它还确保公共主机进程不在这些核心上运行。
- 常见的OpenStack环境中的网络部署有哪些?
- 外部网络(External network):数据中心 Intranet,从这里分配浮动IP地址。
- OpenStack 内部网络:
- 管理网络(management network):提供 OpenStack 各个组件之间的内部通信,以及 API 访问端点(Endpoint)。为安全考虑,该网络必须限制在数据中心之内。
- API 网络:其实这不是一个单独的网络,而是包含在外部和内部网络中。API 的 Endpoint 包括 publicurl 和 internalurl,其中,publicurl 包含的是 externa network 的 IP 地址,internal network 包含的是 management network IP 地址。为了简单起见,提供给内外网络访问的API的 publicurl 和 internalurl 相同,而只给内部网络访问的 API 只使用 internalurl。
- 数据网络(data network):除管理网络以外的其它网络,往往还可以细分为下面几种。它们可以合为一种,也可以从性能方面考虑分离出一种或几种作为单独的网络。
- 租户网络(Tenant network):提供虚机在计算节点之间,以及计算节点和网络节点之间的通信。同样这也是数据中心的内部网络。
- 存储访问网络(storage access network):访问存储的网络。
- 存储后端网络(storage backend network):比如 Ceph 和 Swift 集群用于后端数据复制的网络。
- IPMI、PXE网络等
- Neutron实现了哪些层次的网络隔离?
- 租户的网络隔离:
- 外部网络的隔离:
- 相同组租户的的虚拟机位于不同宿主机之间的通讯?
- OpenStack常见部署方式?
- 简述块存储、文件存储及对象存储的区别及各自特点?
|
块存储 | 文件存储 | 对象存储 |
使用方式
|
块存储主要是将裸磁盘空间整个映射给主机使用的。
|
文件存储可直接提供给主机使用,从而实现文件的上传和下载,且无需对文件存储再进行格式化。
|
基于网络的数据存取服务,可通过网络随时存储和调用包括文本、图片、音频和视频等在内的各种非结构化数据文件。
|
典型设备
|
RAID、DISK、DAS、SAN
|
HDFS、RGFS
|
SWIFT、OSS
|
优点
|
1. 通过RAID与LVM等手段,对数据提供了保护;
2. 可将多块廉价的硬盘组合为一个大容量的逻辑盘对外提供服务,提高了容量;
3. 多块磁盘进行组合,能实现并行写入,提升了读写效率;
4. 当块存储采用SAN架构组网时,传输速度以及封装协议的原因,使得传输速度和读写效率得到提升。
|
1. 成本低廉,普通以太网即可实现,无需其他专用设备;
2. 方便文件共享。
|
1. 兼具块存储和文件存储的优点。
|
缺点
|
1. 当块存储采用SAN架构组网时,需要额外光纤通道卡及光纤交换机,增加成本;
2. 在非集群环境中,块存储裸盘映射给主机,其他节点无法使用,从而无法实现主机之间数据的共享;
3. 当块存储作为某主机裸设备格式化之后,不利于不同操作系统主机(不同文件格式)间的数据共享。
|
1. 基于以太网,读写速率低,传输速率慢。
|
1. 不兼容现有模式,应用形态需要重新开发。
|
接口
|
Driver
|
POSIX
|
Restful API
|
- 通常高可用(High Availability)可通过哪两个维度衡量,各自含义是什么?
- 高可用(High Availability)根据服务节点角色分为哪两类?
- 衡量容灾系统的重要指标是什么,且容灾可分为几个级别?
级别 | 定义 | RTO | RPO |
数据级
|
指通过建立异地容灾中心,对数据进行远程备份,在灾难发生之后要确保原有的数据不会丢失或者遭到破坏。但在数据级容灾这个级别,发生灾难时应用是会中断的。
在数据级容灾方式下,所建立的异地容灾中心相当于一个远程的数据备份中心。
数据级容灾的恢复时间比较长,但是相比其他容灾级别来讲它的费用比较低,且构建实施相对简单。
|
RTO最长(若干天),因为灾难发生时,需要重新部署机器,利用备份数据恢复业务。
|
最低
|
应用级
|
在数据级容灾的基础之上,在备份站点同样构建一套相同的应用系统,通过同步或异步复制方式,可保证关键应用在允许的时间范围内恢复运行,尽可能减少灾难带来的损失,让用户基本感受不到灾难的发生,从而使系统所提供的服务是完整的、可靠的和安全的。
|
RTO中等(若干小时)
|
中等。异地可搭建一样的系统,或者精简系统。
|
业务级
|
全业务的灾备,除了必要的IT相关技术,还要求具备全部的基础设施。其大部分内容是非IT系统(如电话、办公地点等),当大灾难发生后,原有的办公场所都会受到破坏,除了数据和应用的恢复,更需要一个备份的工作场所能够正常的开展业务。
|
RTO最小(若干分钟或者秒)
|
最高
|
- RabbitMQ的核心组件及其通信机制?
- 消息的生产者(Producer)与rabbitmq server建立连接,并创建通道(channel);
- 消息的生产者(Producer)生产消息,发送给服务器端的Exchange;
- Exchange收到消息,根据ROUTINKEY,将消息转发给匹配的Queue;
- Queue收到消息,将消息发送给消费者(Consumer);
- 消费者(Consumer)收到消息,发送ACK给队列确认收到消息;
- Queue收到ACK,删除队列中缓存的此条消息。
016.OpenStack及云计算(面试)常见问题的更多相关文章
- 仿OpenStack开发云计算管理软件
仿OpenStack开发云计算管理软件 使用Python语言开发一套类似OpenStack的云计算管理平台LouCloud,具备基本的用户,服务器,镜像与 虚拟机管理功能,学习IaaS,虚拟化,Lib ...
- linux云计算面试知识汇总,文件共享--vsftpd秘籍
随着天气的升温快要步入夏天,紧随着面试季来喽,想知道Linux运维面试时都会被问到哪些问题吗?特整理出这些资料给大家参考学习,据说知道全部答案的人,月薪能过万,还不快快码下,以备后用! 今天小编将继续 ...
- Java后台面试 常见问题
Java后台面试 常见问题 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米.百度.阿里.京东.新浪.CVTE.乐视家的研发岗offer.我找的是java后台开发,把常见的问题分享 ...
- 使用openstack部署云计算服务环境
环境: 系统 硬盘 IP hostname redhat 7 sda 20G 192.168.0.70 openstack.com 64位 sdb 20G 配置网卡 [root@opens ...
- 2019最新最全Java开发面试常见问题答案总结
2019最新最全Java开发面试常见问题答案总结 马上准备9月份出去面试Java开发,自己学习丢西瓜捡芝麻,学了的都忘了,所以有机会自己做个学习笔记,摘录自各个博文以及总结. 1.JAVA面向对象的特 ...
- 《Linux就该这么学》自学笔记_ch22_使用openstack部署云计算服务环境
<Linux就该这么学>自学笔记_ch22_使用openstackb部署云计算服务环境 文章主要内容: 了解云计算 Openstack项目 服务模块组件详解 安装Openstack软件 使 ...
- C++面试常见问题——01预处理与宏定义
C++面试常见问题--------01预编译和宏的使用 C++预处理器 预处理器是一些指令,它将指示编译器在实际编译之前需要完成的预处理.预处理必须要在对程序进行词法与语义分析.代码生成与优化等通常的 ...
- MySQL索引知识点&面试常见问题
来源:BiggerBoy 作者:北哥 原文链接:https://mp.weixin.qq.com/s/fucHvdRK5wRrDfBOo6IBGw 大家好我是北哥,今天整理了MySQL索引相关的知识点 ...
- 云计算OpenStack:云计算介绍及组件安装(一)--技术流ken
云计算介绍 当用户能够通过互联网方便的获取到计算.存储等服务时,我们比喻自己使用到了“云计算”,云计算并不能被称为是一种计算技术,而更像是一种服务模式.每个运维人员心里都有一个对云计算的理解,而最普遍 ...
随机推荐
- 限制 Confluence 6 WebDAV 客户端的写入权限
在早期的 WebDAV 插件中分离了 WebDAV 客户端的写入权限(不能使用,创建/修改,编辑和删除操作)是分开配置的.但是在新版版本的插件中,我们将这些权限合并到了一起. WebDAV 客户端现在 ...
- 【es】创建索引和映射
参考:http://www.cnblogs.com/sheeva/p/4837881.html 创建索引: curl -XPUT 'http://localhost:9200/some_index' ...
- HighCharts基本使用
一.简叙 HighCharts是一个非常强大的画图插件,在以后的工作汇报,数字展示,它将是一把利器.既然是插件,那么就有它的使用规则,我们只需要遵循它的使用规则,就可以画出我们想要的展示效果了.期待吗 ...
- laravel 更新
public function update(Request $request, ResponseFactoryContract $response) { $user = $request->u ...
- 常用的web服务器软件整理
(1)ApacheApache是世界使用排名第一的Web服务器软件.它可以运行在几乎所有广泛使用的计算机平台上.Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软 ...
- java反射机制实例
1.通过数据库字段反射给对象实例赋值 convertClass.java /** * 通过反射构造对象 * @param obj * @param rs * @return */ public Obj ...
- Vue router拦截 如果用户并未登录直接跳转到登录界面(最简单的cookie演示)
router.beforeEach(function(to,from,next){ console.log('路由拦截') console.log(to.name) console.log(from. ...
- 爬虫(猫眼电影+校花网+github+今日头条+拉钩)
Requests+正则表达式爬取猫眼TOP100榜电影信息 MARK:将信息写入文件解决乱码方法,开启进程池秒爬. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...
- java基础应用循环的应用
1.1 [经典面试题]: &&(短路与)与&(非短路与)的区别: 表达式1 && 表达式2 表达式1如果为false,表达式2不执行,整个表达式结果为false ...
- MyBatis - 2.全局文件配置
1.properties 属性 <!--properties 引入外部配置文件 properties 的内容 resource: 引入类路径资源 url: 引入网络资源 --> <p ...