版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
OpenStack入门介绍目录什么是云计算什么是openstackopenstack的架构OpenStack运行机制与流程部署方式什么是云计算?云计算(cloudcomputing)是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。美国国家标准与技术研究院(NIST)定义:云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互。云计算的特点超大规模虚拟化高可靠性通用性高可扩展性按需服务极其廉价潜在的危险性云计算的服务模式IaaS(Infrastructure-as-a-Service):基础设施即服务。消费者通过Internet可以从完善的计算机基础设施获得服务。例如:硬件服务器租用。PaaS(Platform-as-a-Service):平台即服务。PaaS实际上是指将软件研发的平台作为一种服务,以SaaS的模式提交给用户。因此,PaaS也是SaaS模式的一种应用。但是,PaaS的出现可以加快SaaS的发展,尤其是加快SaaS应用的开发速度。例如:软件的个性化定制开发。SaaS(Software-as-a-Service):软件即服务。它是一种通过Internet提供软件的模式,用户无需购买软件,而是向提供商租用基于Web的软件,来管理企业经营活动。例如:阳光云服务器。云的分类私有云:单一的服务组织,可以在线也可脱机处理。公有云:为多个组织公用,一般有专门的云服务商提供
。混合云。OpenStack的起源这是个用Python程式语言写成云端运算软体,使用Apache许可证方式授权。这东西可以用、很多缺陷、是个试用版,赶快来试试看吧。----JoshuaMcKenty使用Python程式语言写就的Nova,基本上是亚马逊弹性云端运算的仿制品。在Clark看过NASA的Nova程式码之后,对于Nova跟Rackspace本身正在进行的开放式平台间的高相似度感到相当震惊,久久无法自己。什么是OpenStack?OpenStack是一个美国国家航空航天局和Rackspace合作研发的,以Apache许可证授权,并且是一个自由软件和开放源代码项目。OpenStack是一个云平台管理的项目,它不是一个软件。这个项目由几个主要的组件组合起来完成一些具体的工作。OpenStack通过一个web界面提供资源管理,通过一个仪表板管理整个数据中心中的计算、存储等资源。厂商的支持有超过200家厂商加入OpenStack项目。包括:AMD,BrocadeCommunicationsSystems,Canonical
Cisco,Dell,EMC,Ericsson,GroupeBull,HP,IBM,Inktank,Intel,NEC,RackspaceHosting,RedHat,SUSELinux,VMware,andYahoo!OpenStack的发行版REDHATENTERPRISELINUXOPENSTACKPLATFORMUBUNTUOPENSTACKSUSECLOUDMIRANTISOPENSTACKORACLEOPENSTACKFORORACLELINUXRACKSPACEPRIVATECLOUDSOFTWAREIBMCLOUDMANAGERWITHOPENSTACKHPHELIONOPENSTACK®COMMUNITYEDITIONOpenStack历史OpenStack最新版本Mitaka(April2016)Newton(October2016)Ocata(February2017)Pike(August2017)12我们现在使用的版本OpenStack优势OpenStack为私有云和公有云提供可扩展的弹性的云计算服务,这种服务云必须是简单部署并且扩展性强。1模块松耦合2组件配置较为灵活3二次开发容易4已经成为云平台的一个标准OpenStack核心模块OpenStack可选模块OpenStack架构OpenStack概念架构Horizon(Dashboard)与其他主要模块的关联(包括Nova,Cinder,Glance,Swift,Neutron,keystone)通过Ceilometer(监控功能)可以监控的模块(包括Nova,Glance,Cinder,Neutron)Keystone(身份验证功能)模块可以对其他模块进行相应操作进行身份及权限验证(包括Nova,Glance,Cinder,Swift,Neutron,Ceilometer)Nova为VM提供计算资源Glance为VM提供镜像Cinder为VM提供块存储资源Neutron为VM提供网络资源及网络连接Cinder连接VM后所产生的数据可以备份到Swift对象存储中Glance提供镜像可以保存在Swift对象存储中ComputeStorageNetworkNovaSwift(Objects)Glance(Images)*-as-a-ServiceCapabilityOpenStackServiceNeutron/QuantumCinder(Block)identityKeystoneOpenStack项目组件名称组件功能AmazonAWS相似的服务运算组件Nova部署与管理虚拟机EC2对象存储组件Swift可扩展的分布式存储平台,以防止单点故障的情况产生,可存放非结构化的数据S3区块存储组件Cinder整合了运算套件,可让IT人员查看存储设备的容量使用状态,具有快照功能EBS网络组件Neutron可扩展、随插即用,通过API来管理的网络架构系统,以确保IT人员在部署云端服务时,网络服务不会出现瓶颈,或是成为无法部署的因素之一VPC身份认证组件Keystone具有中央目录,能查看哪位使用者可存取哪些服务,并且,提供了多种验证方式None镜像组件Glance硬盘或服务器的镜像文件寻找,注册以及服务交付等功能VMImport/Export前端界面组件Horizon图形化的网页接口,让IT人员可以观测云端服务目前的规模与状态,并能够统一存取、部署与管理所有云端服务所使用到的资源Console20南阳理工学院OpenStack运行机制与流程
AMQP消息处理与响应机制高级消息队列协议(AMQP)是一个异步消息传递所使用的应用层协议规范,它是一种能够统一提供服务的应用层标准协议。OpenStack的各个职能模块间的调度是依赖于每个模块的API接口,任何的组件调用都是通过AMQP进行消息传递,进而到达相关的模块,所以说,AMQP在OpenStack的工作中是一个通信链接枢纽,它承担着任何模块的调度消息投递和分发OpenStack中AMQP消息默认是采用RabbitMQ消息中间件实现,RabbitMQ就是AMQP消息中间件的适配程序。它的功能就是负责OpenStack中消息的投递与响应。21南阳理工学院AMQP消息处理与响应机制22南阳理工学院OpenStack运行机制与流程OpenStack工作流程OpenStack的上层用户是程序员、一般用户和Horizon界面模块。这三者都是采用OpenStack各个组件提供的API接口进行交互,而它们之间则是通过AMQP进行互相调用,它们共同利用底层的虚拟资源为上层用户和程序提供云计算服务23南阳理工学院24南阳理工学院OpenStack运行机制与流程OpenStack平台管理流程KVM内嵌在Linux操作系统内核之中,能够直接参与计算机硬件的调度QEMU是一个纯软的计算机硬件仿真器。通过它单独运行,用来模拟机器,具有非常灵活和可移植的特点。利用它能够达到使用软件取代硬件的效果。Libvirt是一个开源的、支持Linux下虚拟化工具的函数库。实质上它就是为构建虚拟化管理工具的API函数。使用Libvirt能够更方便地管理平台虚拟化技术而设计的开放源代码的应用程序接口,它不仅提供了对虚拟化客户机的管理,也提供了对虚拟化网络和存储的管理。25南阳理工学院在OpenStack中对虚拟机VM的管理主要由Nova负责从源码上讲,Nova中包含有对Libvirt的相关调度。OpenStack中Nova服务通过使用Libvirt提供的API,实现QEMU中VM的管理而QEMU则是通过内核中的KVM实现对硬件的直接使用。26南阳理工学院部署方式手动部署单节点多节点自动部署:使用fuel来进行多节点部署架构ControllerNode:控制节点是OpenStack平台的核心部分,它参与整个OpenStack的运行、管理、调度等工作。部署在它上的服务还包含OpenStack的消息队列、网络、数据库等服务程序ComputeNode:计算节点主要运行与虚拟机运行相关的服务程序,例如网络。计算节点通过KVMHypervisor与虚拟适配层中的KVM进行通信与调度,维护和管理计算节点上的虚拟计算机的运行,从而向用户提供计算服务。StorageNode:存储节点是对象存储模块,主要满足云计算中的数据存储,该节点主要是以大量的存储设备构成,由Nova-Volume(Cinder)服务程序支配和管理,为整个平台提供海量数据的存储。28南阳理工学院多节点部署架构29南阳理工学院30南阳理工学院31南阳理工学院谢谢keystone认证组件介绍什么是keystone?34南阳理工学院OpenStack是一种面向服务(SOA)的体系结构进行设计的,各个模块的实现按照提供的服务不同,而被划分成为若干相互独立的模块。但keystone在OpenStack中有着一定的特殊性。keystone是OpenStack的核心组件,主要用于为openstack家族中的其他组件成员提供统一的认证服务,包含身份验证、令牌的发放和校验、服务列表、用户权限定义等等。实际上OpenStack中任何组件均依赖于keystone提供的服务。可以作为OpenStack的统一认证的组件支持基于数据库的认证(SQLite3,MySQL以及PostgreSQL)支持基于Ldap认证,同样支持windowsActiveDirectory认证。未来会支持外部认证体系oAuth,SAML,OpenID35南阳理工学院Keystone职责keystone在整个OpenStack中主要负责两个工作:跟踪用户及监管用户权限为每个组件服务提供一个可用的服务目录和相应的API入口端点36南阳理工学院Keystone基本概念User
User即用户,他们代表可以通过keystone进行访问的人或程序。Users通过认证信息(credentials,如密码、APIKeys等)进行验证。Tenant(project)
Tenant即租户,它是各个服务中的一些可以访问的资源集合。例如,在Nova中一个tenant可以是一些机器,在Swift和Glance中一个tenant可以是一些镜像存储,在Neutron中一个tenant可以是一些网络资源。Users默认的总是绑定到某些tenant上。Role
Role即角色,Roles代表一组用户可以访问的资源权限,例如Nova中的虚拟机、Glance中的镜像。Users可以被添加到任意一个全局的或租户的角色中。在全局的role中,用户的role权限作用于所有的租户,即可以对所有的租户执行role规定的权限;在租户内的role中,用户仅能在当前租户内执行role规定的权限。Keystone基本概念Service
Service即服务,如Nova、Glance、Swift。根据前三个概念(User,Tenant和Role)一个服务可以确认当前用户是否具有访问其资源的权限。但是当一个user尝试着访问其租户内的service时,他必须知道这个service是否存在以及如何访问这个service,这里通常使用一些不同的名称表示不同的服务。CredentialsCredentials即凭证,用于确认用户身份的数据。例如:用户名和密码,用户名和APIkey,或由认证服务提供的身份验证令牌。Keystone基本概念Endpoint
Endpoint,翻译为“端点”,我们可以理解它是一个服务暴露出来的访问点,如果需要访问一个服务,则必须知道他的endpoint。因此,在keystone中包含一个endpoint模板,这个模板提供了所有存在的服务endpoints信息。一个endpointtemplate包含一个URLs列表,列表中的每个URL都对应一个服务实例的访问地址,并且具有public、private和admin这三种权限。publicurl可以被全局访问(如),privateurl只能被局域网访问(如http://compute.example.local),adminurl被从常规的访问中分离。TokenToken是访问资源的钥匙。它是通过Keystone验证后的返回值,在之后的与其他服务交互中只需要携带Token值即可。每个Token都有一个有效期,Token只在有效期内是有效的。40南阳理工学院各种概念之间关系解释1、租户下,管理着一堆用户(人,或程序)。2、每个用户都有自己的credentials(凭证)用户名+密码或者用户名+APIkey,或其他凭证。3、用户在访问其他资源(计算、存储)之前,需要用自己的credential去请求keystone服务,获得验证信息(主要是Token信息)和服务信息(服务目录和它们的endpoint)。4、用户拿着Token信息,就可以去访问特定的资源了。keystone的工作原理42南阳理工学院43南阳理工学院44南阳理工学院创建demo项目创建demo用户创建user角色
添加user角色到demo项目和用户:
#openstackroleadd--projectdemo--userdemouser使用demo用户,请求认证令牌使用demo用户,查看请求认证令牌Keystone相关配置文件/etc/keystone/keystone.confadmin_token选项:这个参数是用来访问Keystone服务的,相等于访问keyston这扇“门”的钥匙,客户端可以使用该Token访问Keystone服务、查看信息、创建其他服务等。在keystone的配置文件中默认值是ADMIN,读者可以修改这个token,只要在部署OpenStack其他组件时的keystone令牌需要保持一致。token_format选项:这一选项是一个关于认证令牌格式的选项,通常在较高版本的OpenStack中该选项的值为PKI格式,一般情况下将该选项设置成为UUID格式,这种格式可能使用起来比较方便。[sql]中connection:keystone的运行过程中需要数据库的辅助,在keystone的配置文件中,默认采用sqlite数据库,为了OpenStack部署和使用的方便,在配置keystone时将此项修改成mariaDB数据。51南阳理工学院Keystone的日志文件/var/log/keystone/keystone.log日志文件是Linux操作系统中比较常见的一种文件。Keystone的日志文件logging.conf同样也具有有助于你在遇到紧急情况时从容找出问题并加以解决。如果在安装keystone过程中出现错误时,读者可以根据日志文件中的内容,分析和查找错误原因52南阳理工学院谢谢glance镜像组件介绍目录什么是Image以及为什么要用Image?什么是Glance镜像服务Glance几个重要概念Glance的基本架构和三大核心模块Glance数据库设计Glance的配置文件Glance的日志文件要理解ImageService先得搞清楚什么是Image以及为什么要用Image?
在传统IT环境下,安装一个系统是要么从安装CD从头安装,要么用Ghost等克隆工具恢复。这两种方式有如下几个问题:如果要安装的系统多了效率就很低时间长,工作量大安装完还要进行手工配置,比如安装其他的软件,设置IP等备份和恢复系统不灵活南阳理工学院56云环境下更高效的解决方案?云环境下需要更高效的解决方案,这就是Image。Image是一个模板,里面包含了基本的操作系统和其他的软件。举例来说,有家公司需要为每位员工配置一套办公用的系统,一般需要一个Win7系统再加MSoffice软件。OpenStack是这样的:先手工安装好这么一个虚机;然后对虚机执行snapshot,这样就得到了一个image;当有新员工入职需要办公环境时,立马启动一个或多个该image的instance(虚机)就可以了南阳理工学院57在这个过程中,第1步跟传统方式类似,需要手工操作和一定时间。但第2、3步非常快,全自动化,一般都是秒级别。而且2、3步可以循环做。比如公司新上了一套OA系统,每个员工的PC上都得有客户端软件。那么可以在某个员工的虚机中手工安装好OA客户端,然后执行snapshot,得到新的image,以后就直接使用新image创建虚机就可以了。另外,snapshot还有备份的作用,能够非常方便的恢复系统。南阳理工学院58什么是Glance镜像服务Glance是OpenStack镜像服务,用来注册、登陆和检索虚拟机镜像。Glance服务提供了一个RESTAPI,使你能够查询虚拟机镜像元数据和检索的实际镜像。通过镜像服务提供的虚拟机镜像可以存储在不同的位置,从简单的文件系统对象存储到类似OpenStack对象存储系统。•默认情况下,上传的虚拟机镜像存储路径为/var/lib/glance/images/Glanceglance-api负责接受ImageAPI请求,处理image查询和存储等glance-registry负责存储,处理和检索image的元数据(大小,类型等)使用数据库来存储image文件的元数据支持不同的存储仓库来存储image文件,包括swift,本地磁盘,RADOS块设备,AmazonS3,HTTPGlance负责镜像文件的注册、查询和存储管理。Glance与其他模块的关系HorizonImage可视化Swift存储ImageKeystoneImage权限控制Nova调用ImageGlance模块(镜像功能)Glance几个重要概念(1)镜像标识(imageidentify)镜像使用URI作为唯一标识。URL符合以下格式:<Glaceserverlocation>/images/<ID>一般glance部署完毕,OpenStack默认的将用户上传的镜像文件保存在/var/lib/glance/images中,可以在这个文件路径下,查看glance管理的镜像文件。下面就是在配置glance以后该路径下的一个镜像文件。root@controller:/#cd/var/lib/glance/imagesroot@controller:/var/lib/glance/images#ls40056951-e712-47f2-b91b-a3c03cd37dbe62南阳理工学院Glance几个重要概念(2)镜像状态(imagestatus)镜像状态是glance管理镜像重要的一个内容,glance组件给整个OpenStack提供的镜像查询和检索,glance可以通过虚拟机镜像的状态感知某一镜像的可用状态。一般来讲,OpenStack中镜像的状态分成以下几种:Queued:Queued状态这是一种初始化镜像状态,在镜像文件刚刚被创建,在glance数据库中已经保存了镜像标示符,但还没有上传至glance中,此时的glance对镜像数据没有任何描述,其存储空间为0。Saving:Saving状态是镜像的原始数据在上传中的一种过度状态,它产生在镜像数据上传至glance的过程中,一般来讲,glance收到一个image请求后,才将镜像上传给glance。Active:Active状态是当镜像成功上传完毕以后的一种状态,它表明glance中可用的镜像。Killed:Killed状态出现在镜像上传失败或者镜像文件不可读的情况下,glance将镜像状态设置成Killed。Deleted:Deleted状态表明一个镜像文件马上会被删除,只是当前glance这种仍然保留该镜像文件的相关信息和原始镜像数据。Pending_delete:Pending_delete状态类似于deleted,虽然此时的镜像文件没有删除,但镜像文件不能恢复的。63南阳理工学院Glance几个重要概念图5-1描述的是glance中镜像文件的状态转换过程,正常情况一个镜像一般会经历Queued、Saving、Active和Deleted过程,其他几种状态则是只有镜像出现异常时特殊情况才会出现。64南阳理工学院图5-1镜像状态转换Glance几个重要概念(3)磁盘格式(DiskFormat)glance中的磁盘格式指的是虚拟机镜像的磁盘格式。在虚拟机的创建时,需要指定镜像的磁盘格式。下面是OpenStack支持的镜像文件磁盘格式。65南阳理工学院表5-1OpenStack磁盘格式格式类型格式描述Raw无结构的磁盘格式Vhd通用的虚拟机磁盘格式,该格式适用于VMWare,Xen,Microsoft,VirtualBox等虚拟机monitorVmdk另一种通用的虚拟机磁盘格式,和vhd基本一样的格式VdiVirtualBox和QEMU支持的一种磁盘格式Iso光盘数据格式qcow2Qemu支持的一种动态可扩展的磁盘格式,支持copyonwrite磁盘操作AkiAmazon的内核镜像文件格式AriAmazon的ramdisk镜像格式Glance几个重要概念(4)容器格式(ContainerFormat)从文件角度,glance中的容器格式是指虚拟镜像的文件格式,glance对镜像文件进行管理,往往把镜像元数据装载与一个“容器”(信封)中。在这个容器中包含了虚拟机的元数据(metadata)和其他相关信息等数据。在虚拟镜像文件创建的时候,需要管理员指定镜像的Containerformat。66南阳理工学院表5-2容器格式格式类型格式描述bare没有容器的一种镜像元数据格式ovf开放虚拟化格式(openvirtualizationformat)Ova开放虚拟化设备(openvirtualizationappliance)格式AkiAmazon的内核镜像文件格式AriAmazon的ramdisk镜像格式Glance基本架构和三大模块Glance基本架构图67它的设计模式采用C/S架构模式,Client通过Glance提供的RESTAPI与Glance的服务器(Server)程序进行通信,Glance的服务器程序通过网络端口监听,接收Client发送来的镜像操作请求,基本架构如图所示。Glance基本架构和三大模块Glance-api:接收REST
API的请求,然后通过其他模块(glance-registry及image
store)来完成诸如镜像的查找、获取、上传、删除等操作,默认监听端口9292。
Glance-registry:用于与MariaDB数据库交互,用于存储或获取镜像的元数据(metadata);通过glance-registry,可以向数据库中写入或获取镜像的各种数据,glance-registry监听端口9191。StoreAdapter:是一个存储的接口层,通过这个接口,glance可以获取镜像,imagestore支持的存储有Amazon的S3、OpenStack本身的Swift,本地文件存储和其他分布式存储。
68南阳理工学院Glance基本架构图69glance组件的工作过程Glance数据库70南阳理工学院71南阳理工学院Glance配置文件---glance-api.confGlance服务安装的日志和调试信息,例如:debug、日志文件路径log_file等参数Glance服务的API服务器的相关信息。例如:服务绑定的IP地址、端口bind_port等参数Registry服务的相关信息,例如:Registry服务的网络地址、监听的端口号、glance与Registry间通信的协议等系统消息相关参数,该部分主要配置glance与系统消息的收发。消息队列rabbitmq的IP地址、监听端口等参数镜像后端存储的相关配置,一般情况下,glance-api.config中包含普通文件存储、swift、S3、RBD等较为常见的存储设备的信息配置。glance-api-paste.ini文件Glance中keystone身份验证的相关配置,该部分主要设置OpenStack的keystone组件服务的IP地址、监听端口、租户名称、用户名称、口令等信息72南阳理工学院Glance配置文件---glance-registry.conf
Glance中registry服务器的网络信息:registry服务器绑定的IP地址和端口号Registry的日志文件配置:该部分主要指定registry的日志文件路径(log_file参数),便于glance配置过程中信息的查看。Glance数据库的相关参数,例如:glance数据库连接和连接时间等参数glance-registry-paste.iniGlance中keystone身份验证的相关配置,该部分主要设置OpenStack的keystone组件服务的IP地址、监听端口、租户名称、用户名称、口令等信息南阳理工学院73glance的日志文件/var/log/glance/glance.log74南阳理工学院glance的搭建安装glance包初始化数据库配置glance数据库keystone认证服务启动glance服务谢谢Nova计算组件的介绍南阳理工学院77目录介绍NovaNova架构介绍Nova主要组件nova创建虚拟机流程1、介绍NovaNova是OpenStack最复杂的部分,涵盖的内容最多,它涵盖了虚拟化、网络、存储、调度和云计算控制等专业领域知识。Nova是OpenStack云中的计算组织控制器。OpenStack云中实例(instances)生命周期的所有活动都由Nova处理。这样使得Nova成为一个负责管理计算资源、网络、认证的可扩展性的平台。但是,Nova自身并没有提供任何虚拟化能力,它使用LibvirtAPI来与被支持的Hypervisors交互。Nova通过一个与AmazonWebServices(AWS)EC2API兼容的webservicesAPI来对外提供服务。79功能和特点实例生命周期管理管理计算资源网络和认证管理REST风格的API异步的一致性通信Hypervisor透明:支持Xen,XenServer/XCP,KVM,UML,VMwarevSphereandHyper-V802.Nova架构介绍简单架构简单架构单点服务无负载均衡无高可靠复杂架构????????2.Nova架构介绍复杂架构复杂架构负载均衡高可靠简单架构单点服务无负载均衡无高可靠3、Nova主要组件APIServer(nova-api)MessageQueue(rabbit-mqserver)Scheduler(nova-scheduler)Conductor(nova-conductor)ComputeWorkers(nova-compute)NetworkController(nova-network)Placement(nova-placement-api)Cell(nova-cell)nova-consoleauth负责验证consoleproxy提供的用户tokennova-novncproxy,nova-xvpnvncporxy,提供proxy访问instancevnc端口nova-cert管理x509证书833.1Nova-api整个Nova组件的门户,所有对Nova的请求都首先由nova-api处理。Nova-api向外界暴露若干HTTPRESTAPI接口。APIServer对外提供一个与云基础设施交互的接口,也是外部可用于管理基础设施的唯一组件。APIServer通过消息队列(MessageQueue)轮流与云基础设施的相关组件通信。问题:nova-api接收哪些请求?简单的说,只要是跟虚拟机生命周期相关的操作,nova-api都可以响应。大部分操作都可以在Dashboard上找到。84查看nova-api的进程号:psaux|grepnova-api查看nova-api占用哪些端口netstat-anp|greppid其中pid指的是nova-api的进程号一般来说,服务监听的端口号为8773,8774,8775。如果服务异常,可以查看这个端口号是否被其他服务占用。8586873.2MessageQueueOpenStack节点之间通过消息队列使用AMQP(AdvancedMessageQueueProtocol)完成通信。Nova通过异步调用请求响应,使用回调函数在收到响应时触发。因为使用了异步通信,用户的操作不会长时间处于等待状态。这是有效的,因为许多API调用预期的行为都非常耗时,例如启动一个实例,或者上传一个镜像,用户总希望它在很短的时间内完成。88893.3nova-scheduler
–调度器虚拟机调度,即创建虚拟机时,根据物理机的资源使用情况,虚拟机应该被分配到哪台物理机上运行。能够在OpenStack集群中选择最合适的计算节点放置实例,实现负载均衡。调度器作为一个名为nova-scheduler的守护进程运行,通过恰当的调度算法从可用资源池中收集计算服务,网络服务,卷服务的相关信息,根据诸如负载、内存、可用域的物理距离、CPU构架等作出调度决定。接受一个消息队列的虚拟实例请求,通过算法决定该请求应该在哪台主机上运行,同时,也可以人为的为该请求指定在哪台主机上运行,即起到调度器(Scheduler)的作用。即解决如何选择在哪个计算节点上启动instance的问题。即创建Instance时,用户会提出资源需求,例如CPU、内存、磁盘各需要多少。Nova允许使用第三方scheduler,配置scheduler_driver即可,体现了OpenStack的开放性90OpenStack的Flavor
将这些需求定义在flavor中,用户只需要指定用哪个flavor就可以了。Flavor主要定义了VCPU,RAM,DISK和Metadata这四类。nova-scheduler会按照flavor去选择合适的计算节点。919293调度器会根据计算节点的负载情况,内存使用情况,CPU架构等作出调度决策,实现可插入式的灵活调度方式,nova-scheduler实现的基本的调度算法有:随机算法:计算主机在所有可用域内随机选择。可用域算法:跟随机算法相仿,但是计算主机在指定的可用域内随机选择。简单算法:这种方法选择负载最小的主机运行实例。负载信息可通过负载均衡器获得。94过滤算法选择,yesorno?符合条件的host进入下一轮权重算法排序符合条件的host进行优先级排序nova-scheduler服务–调度器调度算法,即选出最佳物理机的算法,主要包括过滤算法和权重算法两个阶段Nova-scheduler
过滤(filter)算法
目前支持的过滤算法(23种左右),默认加载以下算法:RetryFilterAvailabilityZoneFilterRamFilterComputeFilterComputeCapabilitiesFilterImagePropertiesFilterCoreFilter Nova-scheduler
过滤(filter)算法
过滤(filter)算法RetryFilter如果虚拟机调度失败,是否重新调度的次数
scheduler_max_attempts=3AvailabilityZoneFilter是否支持虚拟机选择availabilityzoneRamFilter选择能够满足虚拟机内存要求的物理机,如果不指定默认,不判断内存资源指定内存超分比率,ram_allocation_ratio=1.5ComputeCapabilitiesFilter选择具有某些特定属性的物理机以namespace:key的格式来执行属性,比如AZ1:node1Nova-scheduler
过滤(filter)算法
过滤(filter)算法ImagePropertiesFilter根据镜像中指定的某一属性(properties)来过滤物理机以这个镜像创建虚拟机,只能选择体系结构式arm,hypervisor是qemu的主机CoreFilter选择哪些能够满足虚拟机cpu要求的那些物理机如果不设置,单个虚拟机的和数可以超过物理机的和数可以指定cpu超分比率,
cpu_allocation_ratio=16.0glanceimage-updateimg-uuid--propertyarchitecture=arm--propertyhypervisor_type=qemu
Nova-scheduler权重(weight)算法Nova-scheduler权重(weight)算法权重(weight)算法–权重是如何计算出来的?ram_weight_multiplier(内存权重系数)正数,选出内存最大的物理机
虚拟机在所有物理机上平铺(spreading)负数,选出内存最小的物理机
虚拟机在部分物理机上堆叠(stacking)scheduler_host_subset_size(最佳机器的子集大小)如果有N个机器的优先级相同,则随机选择scheduler_host_subset_size个scheduler_host_subset_size=1(默认)scheduler_weight_classes(权重计算算法选择类)RamWeigher,内存权重排序算法,默认算法MetricsWeigher,自定义的权重排序算法3.4Nova-conductor数据库访问代理服务介于database和nova-compute之间,排除了compute服务对于数据库的直接访问计算节点相对不可信、高风险的负载均衡,可扩展性好不能与nova-compute部署在同一节点上如果不想使用nova-conductor,在nova.conf中增加配置项:use_local=True3.5
Nova-computenova-compute是一个非常重要的守护进程,是所有的计算节点都要运行的服务。职责是基于各种虚拟化技术Hyperivisor实现创建和终止虚拟机,即管理着虚拟机实例的生命周期。该模块内部非常复杂,基本原理是简单的,nova-compute有两个工作:接受消息队列中的执行指令,并执行相关指令,如部署虚拟机。维护数据库相关模型的状态数据。nova-compute在计算节点上运行,负责管理节点上的instance。OpenStack对instance的操作,最后都是交给nova-compute来完成的。nova-compute与Hypervisor一起实现OpenStack对instance生命周期的管理。102nova-compute整合了计算资源CPU,存储,网络三类资源部署管理虚拟机,实现计算能力的交付。包括如下内容:运行虚拟机终止虚拟机重启虚拟机挂起虚拟机挂载云硬盘卸载云硬盘控制台输出103Nova-compute主要工作流程nova-compute首先会根据指定的flavor依次为instance分配内存、磁盘空间和vCPU。资源准备好之后,nova-compute会为instance获取镜像文件。首先将该image下载到计算节点,然后将其作为backingfile创建instance的镜像文件。从Glance下载image,nova-compute首先会检查image是否已经下载。如果没有,就从Glance下载image到本地。创建instance的XML定义文件创建虚拟网络并启动instance104nova-compute105除此之外,还可以通过nova-manageservicelist来查看当前环境中的所有的nova服务。1063.6
nova-network该守护进程跟nova-compute模块的功能是相似的。接受来自消息队列的任务,然后执行相应的任务对网络进行操作(比如:安装网桥接口和改变iptable规则)nova-network处理主机的网络配置。它包括IP地址分配、为项目配置VLAN、实现安全组、配置计算节点网络。通过nova-network可以管理OpenStack的固定ip(fixedip),浮动ip(floatingip),DHCP服务,网桥和虚拟子网等网络服务。nova-network从OpenStack的F版本之后,从nova中逐渐分离,已经成为OpenStack独立的组件Neutron存在。1073.7
NovaCellOpenStack在控制平台上的性能瓶颈主要在MessageQueue和Database。尤其是MessageQueue,随着计算节点的增加,性能变的越来越差。为了应对这种情况,Nova很早之前提出来nova-cell(以下以cellv1代替)的解决方案。目的是在把大的OpenStack集群分成小的单元,每个单元有自己的MessageQueue和Database,以此来解决规模增加时引起的性能问题,而且不会向Region那样,把各个集群独立运行。在cell里面,Keystone、Neutron、Cinder、Glance等资源还是共享的。通过nova-cell服务来在各个cell间传递消息。架构复杂案例:CERN(欧洲原子能研究中心)cellv1被标记为实验性质。相关测试很少。功能已经冻结,不会加入新的功能。不严重的Bug根本不会去修复。NovaCellV1简介NovaCellV2简介
cellv2自Newton版本引入,Ocata版本变为必要组件。默认部署都会初始化一个单cell的架构。cellv2的架构图如下:api和cell有了明显的边界,全局数据和cell数据有一条清晰的界线。api层面只需要数据库,不需要MessageQueue。nova-api现在依赖nova_api和nova_cell0两个数据库。nova-scheduler服务只需要在api层面上安装cell不需要参数调度。通过placement服务,实现了一次调度就可以确定到具体在哪个cell的哪台机器上启动。cell里面只需要安装nova-compute和nova-conductor服务,和其依赖的DB和MQ。在cell的数据库里没有冗余数据,所有共享数据都在nova-api中。所有的cell变成一个扁平架构。比之前的多层父子架构要简化很多。数据库和消息队列作为nova的一等公民。NovaCellV2特点NovaCellV2计算节点自动发现nova-compute服务上线后,不会自动加到nova-api的host_mappings里面,也不会加到nova-scheduler的调度中,当添加新的计算节点到集群时,必须在管理节点运行nova-managecell_v2discover_hosts命令,以注册新的计算节点。#su-s/bin/sh-c"nova-managecell_v2discover_hosts--verbose"nova在小型一些的环境上,推荐打开自动发现功能。在/etc/nova/nova.conf文件中设置自动发现时间间隔:[scheduler]discover_hosts_in_cells_interval=300NovaCellV2流程当想要获取一个机器的详细信息时:nova-api先从instance_mappings表拿到instance的cell_id再从cell_mappings表拿到所在cell的DBconnection直接连接cell的DB拿到机器的详细信息4、nova创建虚拟机流程首先由nova-api受理请求,将创建虚拟机的请求放置在消息队列中,同时生成一个uuid,并将这个uuid存储在数据库中。调度器Nova-Scheduler从消息队列获取消息后,根据命令参数中的flavor配置信息,寻找一个可用的计算节点,如果此时没有合适部署的计算节点,则虚拟机的状态显示为error。一旦确定可用的计算节点,nova-compute向neutron发出消息,申请虚拟机的网络配置,此时虚拟机状态为scheduling。neutron从fixedIP表中给虚拟机指派IP地址。另外,网络组件还可以根据OpenStack中浮动IP的设置,给虚拟机绑定一个floatingIP,使得虚拟机能够访问外部网络。网络设置成功后,neutron通知计算节点上的nova-compute服务,nova-compute服务接受到消息后,从glance获取镜像,创建虚拟机,完成后虚拟机状态显示为active状态。114虚拟机创建流程分析虚拟机创建流程分析虚拟机创建流程分析虚拟机创建流程分析虚拟机创建流程分析虚拟机创建流程分析虚拟机创建流程分析虚拟机创建流程分析虚拟机创建流程分析虚拟机创建流程分析虚拟机创建流程分析虚拟机创建流程分析虚拟机创建流程分析Nova支持的虚拟化平台Openstack支持的虚拟化技术KVMLXCQEMUUMLvSphereXen常见错误排查401认证错误检查用户名密码以及tanant是否正确检查认证配置是否正确409错误nova服务是否正常运行novalidhost查看是否没有可用的资源网络不通查dhcp,路由,openvswitch谢谢Neutron网络组件的介绍南阳理工学院131目录1.Neutron基本概念2.Neutron网络的一种典型结构3.Neutron架构和核心组件4.Neutron网络类型5.Horizon上操作网络5.1管理员创建外网5.2工程demo创建工程网络1、什么是Neutron?
Neutron是OpenStack核心项目之一,提供云计算环境下的虚拟网络功能。在早期版本的OpenStack中没有单独列出,随着OpenStack不断升级和发展,OpenStack的网络组件名称上已经从Nova-network演变成为Quantum。因为商标侵权的原因,Openstack在Havana版本上将Quantum更名为Neutron,所以Neutron并不是新的东西。在Havana版里,Neutron也只增加和增强了少数功能。Neutron提供一个可插拔的体系架构,它能支持很多流行的网络供应商和技术,现在在Horizon面板中已经集成该模块。133网络在普通人的眼里,网络就是网线和供网线插入的端口,一个盒子会提供这些端口。对于网络工程师来说,网络的盒子指的是交换机和路由器。所以在物理世界中,网络可以简单地被认为包括网线,交换机和路由器。当然,除了物理设备,我们还有软的物件:IP地址,交换机和路由器的配置和管理软件以及各种网络协议。要管理好一个物理网络需要非常深的网络专业知识和经验。134Neutron中的一些关键概念
端口在物理网络环境中,端口是用于连接设备进入网络的地方。Neutron中的端口起着类似的功能,它是路由器和虚拟机挂接网络的着附点。一个端口代表了在逻辑网络交换机上的虚拟交互端口,虚拟机的虚拟接口(可以理解成网卡)连接到这些端口上,端口上有相应的MAC和IP地址。当给端口分配IP地址,需要将端口关联到子网中,从子网的地址池取出IP地址。135路由器和物理环境下的路由器类似,Neutron中的路由器也是一个路由选择和转发部件。只不过在Neutron中,它是可以创建和销毁的软部件。子网简单地说,子网是由一组IP地址组成的地址池。不同子网间的通信需要路由器的支持,这个Neutron和物理网络下是一致的。Neutron中子网隶属于网络。136DHCP为项目网络提供DHCP服务,即IP地址动态分配,另外还会提供metadata请求服务。DHCPagent
负责处理dhcp请求,为网络分配IPDHCPagentscheduler
负责DHCPagent与network的调度OpenvSwitchOpenvSwitch(OVS)是一个虚拟交换软件,主要用于虚拟机VM环境,作为一个虚拟交换机,还支持多种linux虚拟化技术137linuxbridge主要用于安全组增强。安全组通过iptables实现,iptables只能用于linuxbridge而非OVSbridge。Vethpairs在openstack网络中大量使用。Vethpairs是一个简单的虚拟网线,所以一般成对出现。通常Vethpairs的一端连接到bridge,另一端连接到另一个bridge或者留下在作为一个网口使用。138139基本命令网络(network)
neutronnet-create--tenant-id$tenantnet1\
--provider:network_typevlan\--provider:physical_networkphysnet1\--provider:segmentation_id100子网(subnet)
neutronsubnet-create--tenant-id$tenant\ --namenet1_subnet1net1/24
port一般都是自动创建的,很少用户手动创建2、Neutron网络的一种典型结构Neutron网络目的是为OpenStack云更灵活地划分物理网络,在多工程环境下提供给每个工程独立的网络环境。另外,Neutron提供API来实现这种目标。Neutron中用户可以创建自己的网络对象,如果要和物理环境下的概念映射的话,这个网络对象相当于一个巨大的交换机,可以拥有无限多个动态可创建和销毁的虚拟端口。Neutron典型的网络结构如下图所示:141142Neutron典型的网络结构如下图所示:在这个图中,我们有一个和互联网(互联网可以由其它网络代替,比如办公网络)连接的外部网络。这个外部网络是工程虚拟机访问互联网或者互联网访问虚拟机的途径。外部网络有一个子网,它是一组在互联网上可寻址的IP地址。一般情况下,外部网络只有一个(neutron是支持多个外部网络的),且由管理员创建。工程网络可由工程任意创建。当一个工程的网络上的虚拟机需要和外部网络以及互联网通信时,这个工程就需要一个路由器。路由器有两种臂,一种是gateway网关臂,另一种是interfaces接口臂。网关臂只有一个,连接外部网。接口臂可以有多个,连接工程网络的子网。经过这样的网络规划,我们有下面的步骤来实施:首先管理员拿到一组可以在互联网上寻址的IP地址,并且创建一个外部网络和子网工程创建一个网络和子网工程创建一个路由器并且连接工程子网和外部网络工程创建虚拟机1433、Neutron网络架构Neutron是由一个Neutron-server和若干agent构成,按照OpenStack的设计原则,Neutron项目对外提供了一系列的接口,使得OpenStack其他的组件可以与Neutron进行交互,同时Neutron的各种代理(agent)也可以使用Neutron-api与Neutron-server通信。如果对应到具体的部署节点上,则是控制节点(或者网络节点)和计算节点的关系。1443、Neutron核心组件145模块功能说明neutron-serverAPI服务neutron-*(l2)-agent网桥、安全组等每网络/计算结点一个neutron-dhcp-agentDhcp服务可多个neutron-l3-agentRouter/防火墙可多个neutron-vpn-agentRouter/防火墙/vpn可多个neutron-lbaas-agent负载均衡可多个neutron-metadata-agentMetadata代理服务4、OpenStack网络类型一个标准的OpenStack网络设置有4个不同的物理数据中心网络:146管理网络:用于OpenStack各组件之间的内部通信。数据网络:用于云部署中虚拟数据之间的通信。API网络:暴露所有的OpenStackAPIs,包括OpenStack网络API给租户们。外部网络:公共网络,外部或internet可以访问的网络。OpenStack网络类型1474、网络管理模式OpenStack网络组件中经常采用的三种网络管理模式:Flat模式FlatDHCP模式VLAN模式。1484、Flat模式Flat模式是最简单的一种网络管理模式,这种模式将所有实例(虚拟机)桥接到同一个虚拟网络,但这种模式下需要手动设置网桥(包括配置网桥和外部的DHCP设备)。这种模式的由来是在OpenStack网络组件没有独立出来之前的nova-network网络模型,这种模式的网络拓扑是一种扁平的结构,虚拟机之间的网络连接关系也不复杂,基本上属于同一个网段。1494、FlatDHCP模式FlatDHCP模式是在Flat模式的基础上进行一些优化和改进,就上图中虚线部分用一个具有dhcp功能的进程代替,并将这个进程合并至计算节点,并在计算节点上创建对应的网桥,此时的计算节点网卡可以不需要IP地址,因为网桥把虚拟机与nove-network主机连接在一个逻辑网络内。1504、VLAN模式VLAN是一种将局域网设备从逻辑上划分成一个个网段,这是一种常见的网络划分技术。在OpenStack中的任务均是基于工程的,在高版本的OpenStack中,工程可以拥有自己的子网,并对这些子网具有相应的管理权限。默认的是使用VLAN模式。网络控制器为所有instance做NAT转换解决了二层隔离的问题,但是VLAN4096的限制,导致单个集群只能最多4096个用户使用,符合企业私有云使用,但是不适合公有云。
1514、VLAN模式VS
Flat模式VLAN模式是一种先固定一个IP地址段(fixed_range),例如使用以下命令:nova-managenetworkcreate--fixed_range_v4=/24--vlan=102--project_id="tenantID"然后,当在一个工程中创建虚拟机时,该工程就能够按照事先配置好的固定IP段中的某一个地址分配给这台虚拟机。从系统实现上是将网络与工程关联和为网络分配一个VLAN号。Flat模式,首先使用nova-manage命令为所有的工程创建一个IP资源池,例如:nova-managenetworkcreate--fixed_range_v4=/16–label=public该命令相当于将所有的IP地址放在一个池中,当创建虚拟机以后,虚拟机就能够从该池中得到一个IP地址,也就是说,在Flat模式下的虚拟机构成的网络没有子网的概念,所有的虚拟机是存在于同一个局域网中的。VLAN模式功能丰富,很适合提供给企业内部部署使用,属于同一个VLAN中的虚拟机是桥接在一个单独的网桥上,并且这些虚拟机的创建是基于工程的,这种方式很容易实现工程有隔离。但是,需要支持VLAN的switches来连接,而且实际部署时比较复杂,VLAN的个数为4096个,也就是最多4096个子网工程,这一点不适用于公有云,一般在小范围实验中常采用FlatDHCP模式。152我们先通过如下一个简单的流程来了解客户机如何连接到网络上。-工程创建了一个网络,比方说mynet-工程为此网络分配一个子网,比如/24-工程启动一个客户机,并指明一个网口连接到mynet-Nova通知Neutron并在mynet上创建一个端口,如port1-Neutron选择并分配一个IP给port1-客户机通过port1就连接到了mynet上1535、Horizon上操作网络我们说过外网要由管理员创建。假设我们拿到的外部网络的IP地址是/24,可用的地址段是0-0,网关是。我们现在就以管理员的身份在horizon上创建一个外网:154(1).以管理员身份登录后,选择管理员面板,点击’Networks’项后显示当前网络列表:1555.1管理员创建外网(2).在上图中点击“CreateNetwork”按钮弹出“CreateNetwork”窗口在上面的弹出窗口中,填入网络名:ExternalNet,而且勾选ExternalNetwork然后点击“CreateNetwork”。1565.1管理员创建外网(3).下面是我们刚才创建好的网络:1575.1管理员创建外网(4).现在我们点击“ExternalNet”查看这个网络的详细情况:1585.1管理员创建外网(5).在网络详细情况页面中,我们点击“CreateSubnet”弹出窗口创建外部网络的子网:1595.1管理员创建外网这是一个多标签页面,在上面的“Subnet”页面中填入子网名,子网CIDR(NetworkAddress)。在下面的“SubnetDetail”页中填入地址范围:注意:因为外部网络不挂接虚拟机,可以不选泽“EnableDHCP“。最后点击子网创建窗口上的“Create”完成子网的创建1605.1管理员创建外网5.2用普通项目demo身份创建项目网络
我们现在以普通项目身份登录horizon,并点击“Networks”项:161点击上图的“CreateNetwork”弹出项目网络创建窗口:1625.2用普通项目demo身份创建项目网络显然,这是一个多Tab的界面,和我们先前管理员创建网络的界面不一样。在这个界面里,我们可以一气完成网络和子网的创建。我们在“Network”页中填入网络名,在“Subnet”页中填入CIDR(NetworkAddress):163“SubnetDatail”页面可以让我们填入IP地址池,缺省情况是Neutron使用整个CIDR规定的地址范围。所以我们不关心“SubnetDatail”页面。我们点击“Create”按钮完成工程子网的创建。5.2用普通项目demo身份创建项目网络164问题:
用普通项目demo身份创建路由器
用普通项目demo身份创建虚拟机
用普通项目demo身份查看网络拓扑
谢谢Horizon前端界面组件
的介绍南阳理工学院166目录1.Horizon基本概念2.Horizon的主要功能3.Horizon架构4.Horizon工作流程Horizon的基本概念Horizon是OpenStack各个组件服务的一种标准的显示模式。它通过一个Web网页将OpenStack中每个组件的运行状态、资源使用情况的信息呈现给OpenStack云平台的用户或管理员。用户通过Horizon这个仪表盘可以看到OpenStack后台的所有虚拟硬件资源、虚拟机实例、网络结构、存储设备、用户信息等内容。168OpenStack中的Horizon组件1692.Horizon的主要功能从Horizon的功能上讲,其功能主要表现在前台Web页面和后台OpenStack组件API调用两个方面:1、前台Web页面Web前台的主要功能是实现OpenStack组件的可视化。OpenStack组件之间通过REST接口实现相互通信,而Horizon则是提供的一种GUI,用户通过这个GUI界面可以了解到后台各种组件的工作状态和云平台中的资源。2、后台组件API调用Horizon的Web功能的实现借助于对各种组件提供的API接口进行调用,它彼此通过HTTP协议网络请求,实现Horizon对OpenStack组件的访问,从而实现组件的Web前台可视化。1703.Horizon架构Horizon是一个基于Django架构的Web应用模块。整个页面的功能界面按照角色的划分分成管理员(administrator)和终端用户(terminaluser)。整个Horizon都是通过管理员进行管理与控制,管理可以通过Web界面管理整个OpenStack平台下的资源数量、运行情况,创建用户、虚拟机、向用户指派虚拟机、管理用户的存储资源等内容;当管理员将用户指派到不同的项目中以后,用户就可以通过Horizon提供的服务进入OpenStack中,使用管理员分配的各种资源(虚拟机、存储器、网络等)。1713.Horizon架构172Horizon组件的页面布局整体上分成三个“Dashboard:项目的Dashboard、管理员Dashboard和身份验证Dashboard。4.Horizon工作流程
173谢谢存储组件swift的介绍南阳理工学院175目录
常见的存储组件Swift架构及组件介绍Swift背后的原理Swift的部署模式
Swift的特性
Swift的应用场景常见的存储组件Swift—提供对象存储(ObjectStorage),在概念上类似于AmazonS3服务,不过swift具有很强的扩展性、冗余和持久性,也兼容S3API。对象存储支持多种应用,比如复制和存档数据、图像或视频服务,存储次级静态数据,开发数据存储整合的新应用,存储容量难以估计的数据,为Web应用创建基于云的弹性存储。Glance—提供虚机镜像(Image)存储和管理。Cinder—提供块存储(Bloc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2027北京协和医院应届毕业生招聘(护理类)考试备考试题及答案解析
- 2026湖北武汉七一中学招聘初中数学教师1人笔试参考题库及答案解析
- 北京小汤山医院派遣制康复治疗师招聘3人考试备考题库及答案解析
- 油田井架底座施工方案(3篇)
- 昆明年庆活动策划方案(3篇)
- 义工旅行全年活动方案策划(3篇)
- 丙肝职业暴露应急预案(3篇)
- 施工方案标准目录手册(3篇)
- 祥云县人民医院2026年公开招聘编制外合同制人员(2人)考试模拟试题及答案解析
- 失联人员应急预案(3篇)
- 2026国企招聘考试(法务)历年参考题库含答案详解
- T∕CECS 277-2021 建筑给水排水薄壁不锈钢管连接技术规程(团体标准)
- 2026年天然气分公司人员招聘笔试模拟试题及详细答案解析
- 2026年注册安全工程师考试(中级)安全生产管理试题与参考答案
- 雨课堂学堂在线学堂云《人工智能时代的创新思维(北京理工)》单元测试考核答案
- (已压缩)广东省工程勘察设计服务成本取费导则(2024版)
- T/CECS 10214-2022钢面镁质复合风管
- 秸秆粉碎合同协议书
- 中级个人理财-2025中级银行从业资格考试《个人理财》预测试卷6
- 建筑安装工程设备与材料的划分
- 仓库安全培训考试题及答案
评论
0/150
提交评论