华为云计算IE面试笔记-FusionSphere Openstack有哪些关键组件,各组件主要功能是什么?三种存储接入组件的差异有哪些?

2021-09-26

1. Nova:在OpenStack环境中提供计算服务,负责计算实例(VM,云主机)生命周期的管理,包括生成、调度和回收。Nova不负责计算实例的告警上报(FC管)。

2. Cinder:为计算实例提供块存储资源,对接后端的块存储资源(资源是来自存储资源池的,本质上是硬件存储设备:SAN、NAS、FusionStorage、Ceph)。

3. Neutron:为OpenStack中的计算实例提供网络服务,服务包括:二层交换(L2),三层路由(L3),防火墙,ACL(访问控制列表),VPN,VPC,路由器,EIP,DHCP。

4. Swift对象存储:负责存储非结构化数据,存储镜像。

5. Glance:负责管理镜像的存储,提供镜像检索服务。

6. Keystone:鉴权服务,鉴定计算实例是否有效,资源是否足够。鉴权成功后生成Token给各个组件。服务目录:一个记录各个大组件地图的目录。

7. Ceilometer:监控计量软件,对CPU、内存、时间进行计量和收费。在华为ops中还提供监控和告警服务。

8. Heat:编排服务,对计算实例的发放进行一些编排,可以根据定义的模板,通过调用OpenStack API来编排复杂的云应用。(可以理解为它就是一个模板,按照这个模板的顺序和方法来做事。)

 

与存储相关的三个组件:Cinder(块存储)Swift(对象存储)Glance(镜像管理组件)

功能区别:

Glance 提供镜像服务,它负责镜像的上传和管理,存放着镜像的元数据(地址 数据大小 名称 修改时间)。镜像是产生虚拟机系统盘的模板,Glance 并不保存镜像,它将镜像交给 Swift 保存。

Cinder 给虚拟机提供块级的持久化卷,通过Cinder可以实现卷的创建、挂载、快照等功能,Cinder本身不保存卷,但它可以通过Driver来接管各种存储,并通过这些存储给虚拟机提供空间。

Swift 是OpenStack提供的一种分布式、持续虚拟对象存储,它自身维持空间并对外提供对象存储服务。主要为Glance提供后端存储,用于存放镜像。

使用后端存储区别:

    Glance 并不保存镜像,它将数据交给后端存储保存:OBSSwift、S3、本地硬盘、Ceph、远端映射过来的lun,默认用Swift,华为的Swift只能存储镜像。

是数据资产管理服务,原生的Glance可以存放一些非镜像的东西。(原生的Glance可以对接的后端存储:Swift、OBS、S3、Ceph、本地硬盘等,默认对接本地硬盘)

Cinder调用 driver 对接存储:SAN(FC SAN、IP SAN)、FusionStorage、Ceph、本地磁盘、oceanstor、dorado、NAS(不建议答,因为Cinder未提供NAS的接口,只能通过底层去对接很麻烦)

Swift它自身维持空间并对外提供对象存储服务,底层是以文件的形式去承载的。通常使用本地存储+XFS文件系统。对接存储:S3、本地存储、远端映射过来的LUN、  FusionStorageCinder

Openstack各组件关系图

 

 

 

*Nova 的介绍 

OpenStack 计算设施,Nova 是 OpenStack 计算的弹性控制器。OpenStack 云实例生命期所需的各种动作都将由 Nova 进行处理和支撑,这就意味着 Nova 以管理平台的身份登场,负责管理整个云的计算资源、网络、授权及测度。虽然 Nova 本身并不提供任何虚拟能力,但是它将使用 libvirt API 与虚拟机的宿主机进行交互。Nova 通过 Web 服务 API 来对外提供处理接口,而且这些接口与 Amazon 的 Web 服务接口是兼容的。 

<提示: 实例(Instance):在 Openstack 中也称为 server,实际可以对应一台虚拟机,也可以是物理机 (需要调用 ironic) 

上文提及的 nova 负责管理整个云的计算资源、网络、授权及测度可以通过调用其它的服务实现的,例如 nova net-list 过程为“client → nova → neutron” >

*Nova组件介绍(考到)

nova api:提供对外接口,资源审核的功能

nova conductor:复杂流处理,帮助nova compute访问数据库(复杂流程包括了创建,删除虚拟机,虚拟机的迁移等功能)

nova scheduler:筛选主机,通过filter+权重+随机的方式进行筛选出一台合适的主机

nova compute:管理虚拟机的生命周期,资源控制的功能,对接不同的虚拟化

*** Openstack中Nova创建虚拟机的流程?(虚拟机创建流程)(nova的具体交互流程)(考到)

版本一:

nova api接收到创建虚拟机请求,对资源进行审核,然后将请求发送给nova conductor

nova conductor分配虚拟机,比如说划分到哪个AZ,使用的CPU和网卡,并将请求给到nova scheduler

nova scheduler开始对需求进行筛选,通过filter +权重+随机的方式,选出一台合适的主机进行分配,然后返回消息给nova conductor

nova conductor将消息发送给nova compute,nova compute开始创建虚拟机

nova compute对资源进行锁定,并找neutron申请网络,找cinder申请磁盘,cinder找glance申请镜像并挂载,然后通过libvirt方式拉起虚拟机

 

版本二:

1. 用户在 SC 上创建虚拟机 

2. SC 将请求转变成 Rest 消息,向 Nova-api 提供的 RestAPI 发送创建虚拟机的请求 

3. Nova-api 收到后,会做如下动作: 

1) 对该请求携带的 token 进行鉴权 

2) 验证消息的合法性 

3) 检查用户的配额是否符合 

4) 将创建的虚拟机状态记录到 DB 中 

5) 向 nova-conductor 发起虚拟机创建请求 

4. nova-conductor 收到消息后,会向 nova-scheduler 请求选择合适的主机 

5. nova-scheduler 根据 filter 模块进行主机的筛选,之后做 weight 筛选,最后随机选择,并返回结果给 nova-conductor 

6. nova-conductor 向 FC-nova-compute 发起虚拟机的创建请求 

7. nova-compute 收到请求后,会做如下动作: 

1) 通过 RestAPI 向 Neutron-Server 申请网络资源 

2) 通过 RestAPI 向 Cinder-API 申请存储资源 

3) 当网络存储资源都准备完成之后,FC-nova-compute 调用 driver 通过 VRM 的 RestAPI 向 VRM 发起虚拟机的启动

 

 

 

*nova-scheduler筛选模式

Filter:对主机进行筛选

         过滤掉之前已经创建失败的主机

         过滤指定AZ主机

         过滤出内存、硬盘、CPU充足的主机

  权重:

         默认内存权重,可选CPU权重

  随机选择:

         随机选择其中一台

*Neutron 介绍 

Neutron为整个OpenStack环境提供网络支持,包括二层交换,三层路由,负载均衡,防火墙和VPN等。(每个服务由一个 plugin 维持逻辑状态,调用相应的 agent 完成具体的实施)

*Neutron的组件介绍:

版本一:

(1) API

Extension API (vLB vFW vrouter VPN):高级网络服务请求api

Core API (network port subnet):基本网络服务请求api

(2) Plugins

Core Plugin:提供基础的网络功能,使用不同的drivers调用不同的底层网络实现技术。

Service Plugin:处理Neutron server的请求,维护网络状态,并调用Agent处理请求。

(3) Agent:处理Plugin的请求,调用底层虚拟或物理网络设备实现各种网络功能。

neutron-ovs-agent:对接ovs的代理,部署在所有节点上(因为所有节点上都需要运行虚拟机,复责虚拟机间通信)

neutron-dhcp-agent:提供dhcp服务的代理

 

版本二:

neutron server: 提供对外接口

neutron common: 提供网络服务

         core api: 基本网络请求(IP,或者网段) (neutron三个基本资源对象)

network:对应逻辑二层网络

subnet:对应三层网络

port:用于连接逻辑二层网络的端口

         extention api: 高级网络请求(QOS、ACL、vLB、vFW、vrouter、VPN) 

1. 消息处理(鉴权、消息输入验证、消息输出的描述)

2. plugin interface,调用不同的plugin(插件接口)

neutron plugin: 1. 调用相应的agent提供服务 2. 访问数据库,记录对象

Core Plugin:提供基础的网络功能,使用不同的drivers调用不同的底层网络实现技术。

Service Plugin:处理Neutron server的请求,维护网络状态,并调用Agent处理请求。

Agent:处理Plugin的请求,调用底层虚拟或物理网络设备实现各种网络功能。

(1) neutron-ovs-agent:对接ovs的代理,部署在所有节点上(因为所有节点上都需要运行虚拟机,复责虚拟机间通信)

(2) neutron-dhcp-agent:提供dhcp服务的代理

*Cinder 的介绍 

OpenStack块存储服务(cinder)为虚拟机添加持久的存储,块存储提供一个基础设施为了管理卷,以及和OpenStack计算服务交互,为实例提供卷。此服务也会激活管理卷的快照和卷类型的功能。

*Cinder 可以接入哪些异构存储?

 

 

 

*Cinder主要包括三个组件:

cinder-api: 对外提供API接口,cinder的endpoint接收和处理rest请求,前端通过HAporxy进行负载均衡

cinder-scheduler: 调度、选择(filter/权重),前端通过rabbitMQ来进行负载均衡

cinder-volume: 1. 通过driver对接后端存储 2. 监控后端存储信息  通过rabbitMQ来进行负载均衡

*Cinder创建卷流程

1、用户发起创建卷,携带信息(卷名、卷大小、卷类型等等)

2、api接收请求,认证鉴权校验等等。转发给scheduler

3、scheduler筛选合适后端存储(filter\权重)

4、后端存储所对应cinder-volume接收,调用dirver进行创建。

5、后端存储进行相应的创建卷动作。

*Glance 的介绍 

OpenStack 镜像服务器,OpenStack 镜像服务器是一套虚拟机镜像发现、注册、检索系统,可以将镜像存储到以下任意一种存储中:

本地硬盘(本地文件系统)(社区版默认)

OpenStack对象存储:swift(华为商业版默认)。

OBS(华为公有云的对象存储)

S3直接存储

S3对象存储(作为S3访问的中间渠道)等等。

*Glance 安装在哪里的?

CPS 分为控制节点及计算节点。

Glance 安装在 CPS 节点中,一般部署在控制节点当中。

*Glance组件介绍:

Glance-api:接收 REST API请求,通过其他模块( glance-registry及 Image store)来完成诸如镜像的査找、获取、上传、删除等操作。(接收请求、处理请求、返回处理结果)

Glance-registry:用于与数据库交互,用于存储或获取镜像的元数据(metadata)

Database:开源:MYSQL,华为:GuassDB

Image store:是一个存储的接口层,通过这个接口, glance可以获取镜像

 

开源:openstack swift\亚马逊S3\ceph\sleepdog\cinder
华为:
1、openstack swift:可以本地硬盘、raid、远端的lun所组成的pg所划分出的vg,添加xfs
2、本地存储:Glance-api节点的/var/lib/glance/images
3、华为公有云OBS

*华为的OpenStack为什么Glance后端存储默认为Swift?

因为架构的设计,Glance默认对接 Swift。所以后端存储容易出现两个问题:

1. 性能、可靠性。

2. 因为是一个,所以容易出现瓶颈点,也容易出现单点故障。因此要保障整套系统高性能及高可靠的,Swift 以分布式对象存储的方式去设计,所以它具备分布式这两点特点:高性能、高可靠,所以 Glance 后端存储默认为 Swift。

*华为的CPS的Glance镜像,可以放在Cinder里么?

不可以。但是在开源 openstack 里 Glance 是可以存放在镜像在 Cinder 的。

*华为 Glance可以对接 Cinder 么?

不可以

首先,华为的 R5 版本在界面当中不支持对接 Cinder,华为 OpenStack 虽然是商业版本,但是他还保持着社区版的开放性,没有修改社区版的骨干部分,并且从 Glance 的架构当中可以了解到,所有相应的 Driver 及接入能力是同样可以使用 Cinder 做为后端存储的,即使界面当中没有,如果要实现的话,通过在底层当中做配置是可以做到的,但是,不建议在生产环境中去实施,因为毕竟商业版本没有推荐,不能保证稳定性。

*Swift 的介绍 

OpenStack 存储设施,Swift 为 OpenStack 提供一种分布式、持续虚拟对象存储,它类似于 Amazon Web Service 的 S3 简单存储服务。Swift 具有跨节点百级对象的存储能力。Swift 内建冗余和失效备援管理,也能够处理归档和媒体流,特别是对大数据(千兆字节)和大容量(多对象数量)的测度非常高效。 

<关键点: swift 以 REST API 的方式对外提供对象存储服务,通过 http 承载通讯,这点与其它 Openstack 服务一致

swift 组织数据包含三个层级:Account、Container、Object,每个层级都构成单独的 DHT 环, 可以想像成数据分别存放在三个 Fusionstorage 存储池中。

构成 Swift 的硬盘可以是服务器自带本地盘,也可以是第三方存储提供给服务器的硬盘。 >

*Swift组件介绍(考到)

Proxy Server:对外提供对象服务 API,由于采用无状态的 REST 请求协议,可以进行横向扩展来均衡负载。

Account Server:提供账户元数据和统计信息,并维护所含容器列表的服务,每个账户的信息被存储在一个 SQLite 数据库中。

Container Server:提供容器元数据和统计信息,并维护所含对象列表的服务,每个容器的信息也存储在一个 SQLite 数据库中。

Object Server:提供对象元数据和内容服务,每个对象的内容会以文件的形式存储在文件系统中,元数据会作为文件属性来存储,建议采用支持扩展属性的 XFS 文件系统。

*Swift 在 FusionSphere Openstack 中哪个位置会被用到?

Swift 是为 Glance 提供后端存储的。

*Swift 支持的存储类型有哪些?

Swift 后端支持的存储有很多,亚马逊 S3,ceph(开源的分布式存储软件),LVM(逻辑卷),fs的object等,华为 OpenStack 的glance 只支持OBS、Swift、S3、本地硬盘、ceph、远端映射过来的lun。

*Swift是干嘛的?可以用存储空间吗 怎么对接?支持S3吗?

Swift 自身是支持 S3 接口的,可以对接 S3 的存储,glance 只能对接OBS、Swift、S3、本地硬盘、ceph、远端映射过来的lun(别把 swift 和 glance 组件搞混了,swift 只是一个逻辑上的对象存储,底层还可以对接底层的具体硬件)。

*Swift如何对接后端存储?

在FusionSphere Openstack中,并不需要配置Swift 对接后端存储,只需要创建 swift的逻辑 磁盘即可。底层会通过LVM(Logical Volume Manager逻辑卷管理)创建出LV,并格式化成 XFS文件系统作为 swift的后端存储。

*介绍Ceilometer并说明其工作原理(考到)

Ceilometer是提供数据收集服务,并将标准化后的数据提供给其它的组件使用。

 

 

 

工作原理:

ceilometer-api:提供 RestAPI接口,并接收请求路由到其它组件或返回查询数据

ceilometer-collector:用于将各agent收集的数据集中后,存入数据库

ceilometer-agent-compute:用于主动在每个计算节点上轮询资源利用率统计信息

ceilometer-agent-central:用于主动查询与实例或计算节点无关的资源利用率统计信息

ceilometer-agent-notification:从消息队列中接收各服务组件的构建事件、计量数据消息

<提示:

当前,ceilometer并无计费功能,只有计量功能。它可以将数据收集后,提供给计费组件使用。

ceilometer可分用几块去理解组件:1.提供查询的ceilometer-api; 2.集中agent的收集数据并存入数据库的ceilometer-collector;3.收集数据的ceilometer-agent

在最新本中,ceilometer 并没有ceilometer-api、ceilometer-collector,而是 ceilometer agent-notification直接将数据集中标准化后发布到定义的目标。

*Fusionsphere Openstack 的组件问题?与存储相关的组件?

 

 

 

1. nova:计算服务(云实例的生命周期都由 nova 进行处理,创建,删除,重启..)

2. swift:对象存储服务(华为 OpenStack 中主要给 glance 提供镜像存储空间)(glance架构需要高性能,高可靠的 swift)

3. glance:镜像服务(虚拟机镜像的发现,注册,检索系统,可以把镜像存在后端存储中,也可以配置本地磁盘来存放,社区版则默认使用本地磁盘存放)快速部署,业务快速上线,避免重复安装。

4. keystone:认证鉴权服务,目录服务(提供去各个组件的 URL)

5. Neutron:网络服务(为整个 OpenStack 提供网络支持,包括二层交换,三层路由,负载均衡等。可以经过 agent 对接华为 AC 控制器实现 SDN)

6. Cinder:块存储服务(为虚拟机添加持久的块存储,有管理卷和快照的功能)

7. Ceilometer:监控计量服务,收集整个 OpenStack 系统各种信息,资源的使用情况(给相关软件计费使用) mangoDB(收集非结构化数据)

8. Heat:业务编排服务,用户可以预先定义一个格式的任务模板,模板定义了一连串相关任务,(开几台 vm,其中安装什么服务,设定数据库属性),将模板交给 Heat 执行,就会按照一定顺序执行一连串定义的任务

9. Ironic:裸金属服务,一个计算服务,当用户使用 OpenStack 架构时,通过 nova 筛选调用裸金属设备主机,nova-api→conductor→schedular→ironic-api→Ironic conductor(通过 driver 调用不同功能)

10. Mongodb:nosql 非关系型数据库,为 ceilometer 提供后端数据库,原生态默认推荐mongodb

11. Rabbitmq:消息队列服务,为服务内组件之间的通信提供消息通道

12. Fusionnetwork:对 OpenStack 和 vm 的网络信息收集, 提供网络操作和维护服务及物理网络信息 

13. CPS:云供给服务,可以在 cps 的 web 界面配置接入计算资源等操作。

14. CBS:云启动服务,首台第一台 CPS 的服务器配置完之后,可以通过第一台服务器配置PXE 安装部署)

*华为的 OpenStack 的 image 与 image-cache 的区别?

image 空间用于存放 KVM 的虚拟机的磁盘

image-cache:glance,计算节点(nova-compute),cinder

当云主机的启动盘为本地磁盘的时候,nova-compute 会以 Rest-api 的方式,通过Internal_base 向 glance-api 下载 image 到本地目录中,并创建磁盘。

*Heat 是干嘛的?怎么编排?

heat 是 Openstack 中用于提供应用编排服务的项目。其价值体现在进一步抽像计算、存储、网络等资源,统一接口后提供以业务模型为主导的服务,用户通过使用应用模板,无需关注内部具体工作细节,就可快速、轻易、直接的获得应用环境。

 

 

 

工作原理:

heat-api: 提供 Openstack RestAPI 的接口,并将请求路由到 heat-engine 

heat-api-cfn: 提供 AWS 兼容的 API 的接口,并将请求路由到 heat-engine 

heat-engine: 协调并装载模板,并将模板解析成事件请求分别发送到其它服务的 API 

用户通过发送应用创建请求到 heat-api 或 heat-api-cfn,其中包括模板内容,heat-api 或 heat-api-cfn 将请求解析后发送到 heat-engine,heat-engine 会装载模板并解析成事件请求到其它服务的 API。

<提示:在谈及工作原理时,画出架构并描述应用创建流程。>

*Keystone 的介绍

OpenStack 认证服务,Keystone 为所有的 OpenStack 组件提供认证和访问策略服务,它依赖自身REST(基于 Identity API)系统进行工作,主要对(但不限于)Swift、Glance、Nova 等进行认证与授权。另外,Keystone 提供服务目录服务。 

<关键点:

keystone提供两类服务:

1、认证(用户提供凭据:用户名+密码、token等)鉴权(判断用户的角色)

2、服务目录(访问每个服务的入口,称为endpoint,可分为三种类型:internal、admin、 public)

注意,keystone并不记录用户在某个服务中能做什么、不能做什么,keystone 只提供用户的角色,由服务根据角色参考policy.json 文件(每个服务单独拥有)判断是否具备该动作权限

*多套 OpenStack 可以共用一套 KeyStone 么?

可以 ,并不是必须。

级联/并联架构的多套 OpenStack 必须要共用一套 KeyStone。

Glance、Cinder、Swift的区别?

存储空间区别:

Glance并不保存镜像,它将数据交给后端存储保存:Swift、本地存储(本地目录)、OBS(对象存储S3)(cinder、ceph、http、ceph、VMware ESX 也支持,但在CPS WEBUI不提供配置)

Cinder本身也不保存卷,但它可以通过Driver来接管各种存储,并通过这些存储给虚拟机提供空间。可以接管:VRM datastore、VMware DataStore、FusionStorage、OceanStorV3、 LVM等。

Swift它自身维持空间并对外提供对象存储服务。通常使用本地存储+xfs文件系统

RabbitMQ使用区别(慎答):

Cinder有使用,Glance、Swift不使用

Openstack三大存储组件有哪些?并说明区别

提供块存储服务:Cinder

提供文件存储服务:Manila

提供对象存储服务:Swift

<提示: 考试时,区别应该问的是块、文件、对象。该问已在文档后部分书写。 >

(疑问)XFS,VIMS,NTFS有什么区别?

linux的XFS,FC的VIMS和Windows的NTFS有什么区别?

是不同的文件系统,NTFS Windows用,VIMS IPsan用,XFS应该是Swift用

Swift的后端存储是XFS文件系统。

Cinder 使用存储的三种方式?

对接的后端存储:本地。SAN。FusionStorage

1. 提供块存储服务

2. 给控制节点(cps)做存储扩容---(在 cps 里面对接外部存储)

3. cinder-volume 对接 VRM

Glance如何对接后端存储?

1. 登陆CPS

2. 在左侧“配置”菜单下点击“Openstack”

3. 选择Glance,并指定一个后端存储类型:Swift、本地存储、OBS 服务

Cinder能否对接Swift?

目前的设计中并没有,因为 Cinder对外提供块存储服务,Swift并不是块存储系统,它只能提供对象存储服务,因此Cinder无法配置 Swift直接给主机提供块设备,只能通过 Cinder-volume 接入后,利用对象存储作为自身的后端存储对主机提供块设备,这不是一个效率高的方式。

OpenStack 中的数据库?

Mongodb 是提供给Ceilometer监控使用的,社区测试,mongodb 最健壮,因为监控数据是非结构化数据,需要 no sql 存储数据,mongodb 是一主两备部署的。

Guassdb 提供给 keystone 鉴权数据库。

华为的 Openstack 采用了哪些数据库软件? 

Ceilometer 采用 MongoDB,Swift 采用 Sqlite3,其它采用 GaussDB(社区版采用 Mysql) 

<关键点:如 nova、cinder、keystone、neutron 等数据都使用 GaussDB>

MongoDB、GaussDB 有何区别?

1. 节点部署方式 。MongoDB 是多 Active 模式,GaussDB 为主备部署。

2. 性能区别。MongoDB 性能优于 GaussDB。

3. 数据存放方式。热数据存放于内存。

4. 数据处理方式。MongoDB 处理非结构化数据;GaussDB 为结构化(关系型数据)。

FusionSphere OpenStack,有哪些组件不是开源的?

1. CPS CBS guassDB cinder-vrm FC-nova-compute

2. 各种存储驱动

3. 对接 V3,FusionStorage,OBS 的插件都是自研的

什么叫集中式路由?分布式路由?

集中式路由 vrouter 在网络节点,分布式路由在各个计算节点

华为 CPS 支持对接哪些虚拟化平台?

FusionCompute、VMware(vCenter/ESXi)、KVM

华为 FusionPhere Openstack 中有哪些华为自研的服务(非组件)?

1. CPS(云供给服务,可以在 cps 的 web 界面配置接入计算资源等操作)

2. CBS(云启动服务,首台第一台 CPS 的服务器配置完之后,可以通过第一台服务器配置PXE 安装部署)

3. FusionNetwork

4. FusionStorage(不要主动提)

5. 对接 FusionCompute 的组件

6. 数据库 GaussDB

FusionSphereOpenstack相对于社区版,增加了什么组件?

CBS:云启动服务,能够为基础设施安装和启动主机操作系统

CPS:云部署服务,能够将 OpenStack服务的各个组件部署到不同的主机上,提供基础设施云化能力。

OM:主要负责资源管理和运维。资源管理将整个云系统中对用户可见的资源统一管理,为用户提供一体化的资源管理体验。运维系统提供报表、权限、用户管理、维护、故障管理等管理功能。

FusionNetwork: 提供网络操作和维护服务及物理网络信息

backup: 提供FusionSphereOpenstack系统的备份功能

<说明: 后两个谨答。 >

华为 OPS 中 CPS、CBS 区别?

CBS:云启动服务;启动顺序,包括 Openstack 的基础安装;

CPS:云供给服务;部署供给,配置资源对接。进行 OPS 组件配置

在 OpenStack 环境中,哪些有 Scheduler?

Nova、Cinder。

在 OpenStack 中,为什么 Nova 有 Scheduler,Glance 没有?

对于 Nova 组件而言,是对接多个主机的,并且是多种类的主机,所以当 VM 运行的时候会有选择运行主机的问题,所以 OpenStack 在设计的时候让 Scheduler 去选择运行的主机,而在Glance 当中,因为这个架构本身在对接的时候只能对接一个后端存储(如swift、OBS、本地硬盘等),所以不存在选择的问题,因此没有 Scheduler 这个功能。

Nova:需要根据不同的类型去选主机,根据标签、内存、CPU先过滤后筛选。

在 Nova 内部通信中,为什么使用 RabbitMQ?

使用消息队列进行异步消息传送。

1. 异步传输:多任务进行处理,提高整体性能,不会因为某一节点的瓶颈而引起全局的瓶颈;

2. 实现组件之间的解耦。比如 Nova-API 与 Nova-Conductor 通信情况下,因为某些原因需要替换掉 Nova-Conductor,此时不需要修改 Nova-API 的接口,因为 Nova-API 与RabbitMQ 进行连接。

3. 可以避免同步通信因某节点瓶颈造成整体性能瓶颈

4. 解耦组件间的关系,有利于对各组件之间扩展和增减

5. 每个组件可以独立运行一些修订而不影响其他组件间的工作

Neutron中,Network有哪几种类型?

local 网络类型, 宿主机内的网络平面。

flat: 发出去到物理网络但是不带 tag  

vlan:发出去的网络, 到物理网络带上 tag

Vxlan:到达物理网络封装 Vxlan

 

local:只存在于主机内的逻辑二层网络,只允许同主机内的 VM二层互通

flat:多主机共享的网络,允许不同主机间的 VM 二层互通,该网络的流量在物理网络上不会进行任何处理、标记、隔离。(internal_base 属于该网络类型)

vlan: 多主机共享的网络,允许不同主机间的VM 二层互通,该网络的流量在物理网络上通过 vlan进行处理、标记、隔离。

vxlan:多主机共享的网络,允许不同主机间的 VM二层互通,该网络的流量在物理网络上通过 vxlan进行处理、标记、隔离。

gre:多主机共享的网络,允许不同主机间的 VM 二层互通,该网络的流量在物理网络上通过 gre进行处理、标记、隔离。

。Cinder如何对接后端存储?

1. 登陆CPS

2. 在左侧“配置”菜单下点击”磁盘”

3. 点击“创建远端存储配置”

4. 填写相应信息,如存储类型为SAN,设备类型为V3,协议类型为ISCSI,存储资源池名称、REST URL、存储IP地址、用户名、密码。

。heat支持的模板类型有哪些?

Openstack 应用模板:Heat Orchestration Template(HOT)

AWS 应用模板:AWS CloudFormation

。neutron如何实现DHCP流程?

neutron server收到DHCP创建请求后,找到neutron plugin

neutron plugin调用DHCP agent配置DHCP服务,

DHCP agent调用dirver配置DHCP服务

DHCP driver请求neutron server创建一个port,

neutron server创建一个port并返回给DHCP driver

DHCP driver根据CIDR号配置DNSmasq,配制出DHCP server出来。

考试追问:

*为什么swift需要文件系统?

swift本身维持存储空间是object server提供的,他是通过本地磁盘或者远端存储映射的某条lun。

因为openstack通过swift去对接后端存储是不需要去配置后端存储的,只需要swift创建一个逻辑磁盘,然后底层就会通过LVM创建一个volume,然后格式化成XFS格式提供给swift

swift与共享文件系统存储的区别?

Swift:是通过driver的方式去访问底层存储,然后通过LVM创建一个volume,然后格式化成xfs的方式提供给上层应用服务,而这个volume,我们把它当成一个块来提供。

共享文件存储:自身提供文件系统,元数据和文件系统在一起。文件是通过IO下发到文件系统,然后文件系统帮助写入数据,数据与元数据分离。

neutron里高级网络功能qos谁实现的

Neutron的 plugin实现的,去控制下面的相应的agent实现。

块存储和对象存储对接的存储用的什么接口?用的存储什么接口?

块存储用的scsi或iscsi接口,对象接口是由url提供

glance用的本地磁盘和swift用的本地磁盘有什么区别?为什么glance用本地磁盘还能去对接swift?swift用本地磁盘格式化成XFS文件系统为什么对外提供对象存储服务?Linux的文件系统、FC的文件系统和windows的文件系统之间有什么区别?

Glance用本地磁盘主要是存储热点镜像,swift主要是存储别的镜像。

Glance对接swift需要存放其他镜像在swift里

对象存储的本质是文件系统,底层一定以文件系统实现。

VIMS是san存储用,linux用ext4多一些,windows用ntfs。

swift除了给glance用来存储镜像外还有什么功能?

华为里不能提供别的功能。

ceilometer如何进行认证鉴权?

keystone鉴权

keystone是不是管理员和用户创建虚拟机都要去keystone鉴权认证?

是的                                                                                                                                                                   

obs和swift有什么区别?

都是对象存储

Obs是云端的一个服务

Swift是ops里的一个组件