云计算中的云不是天空中的云,在计算机的世界里,可以将它理解为一个群组,汇集在一起,只不过天上的云是雨水的群组,而云计算是计算机与互联网汇集起来的群组而已。这里的计算机是超级计算机,将一个又一个电脑与服务器连接在一起,形成一个云组,再通过云计算超级强大的运算能力获得信息。简单来说,云是互联网上提供计算服务的计算集群。
云计算可以理解为资源共享池。举个例子,我有很多东西,家里放不下了,放到一个特定的地方存着,随时提取,别人碰不了,保证质量。“东西”一般指数据,软件,服务等,而“特定的地方”就是云。
云计算在最基本的意义上,就是一个大型的存储服务,在计算机的概念上,就是系统计算,故称为“云”。
云计算是基于互联网的计算模型,通过将计算资源,如服务器,存储设备,数据库,软件等提供给用户,使其能够按需使用和管理资源。云计算主要是计算 【资源的提供和管理】,计算资源包括处理能力,存储能力,网络带宽,应用程序等。用户可以通过互联网远程访问这些资源,不需要自己维护自己得硬件设备和存储设备。
云计算是分布式计算的一种,指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,然后,通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户。
①公有云:由服务提供商建立和维护的云平台,向公众开放,多个用户共享计算资源和服务。
②私有云:基于云计算搭建的专属于单个组织或企业的云环境,用于满足特性的隐私性和安全性的要求。
③混合云:将私有云和公有云相结合,通过兼容的技术和工具实现数据和应用的灵活迁移和部署。
④IaaS(基础设施即服务):提供基础的计算资源,如虚拟机,存储空间和网络连接等,一般指的是硬件资源,用户申请硬件资源,在上面安装和操作以及应用程序。一般建立在虚拟化技术基础之上。IaaS主要解决的是如何自动管理这些物理主机虚拟出来的虚拟机,包括虚拟机的创建,迁移,关闭等。
⑤PaaS(平台即服务):除了提供基础的计算资源(硬件),还提供开发、运行、管理应用程序所需的平台环境,如操作系统,数据库和开发工具等。简单的说是有操作系统和软件的硬件资源。
⑥SaaS(软件即服务):云应用程序,为用户提供软件和应用程序的一种服务方式。软件安装在厂商和应用商,用户可以通过网络以租赁的方式来使用这些软件,比如阿里的mysql,租赁2个月,可以免费使用。
在OpenStack计算平台中,Nova是一个核心组件,它负责管理和调度计算资源,提供虚拟机实例的创建,调度,监控和终止等功能。Nova可以将物理服务器抽象为计算节点,并通过调度算法将虚拟机实例分配到计算节点上。Nova提供了一组API,使用户可以通过API调用创建,删除,启动,停止和监控虚拟机实例,还提供了资源调度器,以确定最佳的计算节点来运行虚拟机实例,以满足性能,可用性,和资源利用率等要求。除了虚拟机实例管理,Nova还提供了其他功能,如网络管理,卷管理,和身份验证等,以支持整个云计算平台的运行。与其他OpenStack组件(如Neutron、Cinder和Keystone)进行交互,实现完整的云计算解决方案。
OpenStack是一个开源的云计算平台,提供一系列的软件工具和组件,用于构建和管理公有云、私有云和混合云的云环境。OpenStack的目标是提供可扩展、灵活和可靠的基础设施服务,使用户能够轻松地创建和管理云计算资源。
①虚拟机实例:云计算平台可以提供虚拟机实例,让用户能够按需创建、启动、停止和管理虚拟机。这些虚拟机实例可以运行各种应用程序和服务。
②容器服务:云计算平台可以提供容器服务,如Docker容器,使用户能够轻松地创建、部署和管理容器化的应用程序。
③大规模计算:云计算平台可以提供大规模的计算能力,以支持处理大量数据、高性能计算和并行计算等任务。
④弹性伸缩:云计算平台可以根据用户的需求自动调整计算资源的规模,以满足不同工作负载的需求。这种弹性伸缩可以提高资源利用率和应用程序的性能。
⑤负载均衡:云计算平台可以提供负载均衡服务,将请求分发到多个计算节点上,以提高系统的可用性和性能。
两者都属于虚拟化技术,目的是将一套应用程序所需的执行环境打包,建立一个孤立的执行环境,方便在不同的硬件中移动。传统的虚拟化技术以操作系统为中心,目标是建立一个可以用来执行整套操作系统的沙盒环境,称为虚拟机。而容器技术是一种以应用程序,环境,配置文件为中心的虚拟化技术。
①虚拟机需要安装操作系统,容器不需要安装操作系统。
②容器可以理解为一个应用程序,依赖操作系统。
③容器不需要等待操作系统开机时间,依赖于操作系统,虚拟机依赖操作系统,开机较慢。
https://cloud.tencent.com/developer/article/1841605
Nova根据需求提供虚拟机的服务,比如创建虚拟机,对虚拟机做热迁移等。
①nova-api:Nova对外提供API服务的入口,这儿可以找到哪些API刚进来的逻辑。并接受并享用来自用户Computer API调用。
②nova-compute:是当一个功能执行到具体节点之后的逻辑。是每个物理机的服务进程,这个服务接收到请求后,执行一批与物理机相关的操作。
③nova-scheduler:用于接收创建虚拟机的请求,并决定哪台物理机启动该虚拟机的调度器。
④nova-conductor建立的初衷就是避免nova-compute直接访问nova-db,也就是说需要经过nova-conductor代为转交,nova-scheduler是直接可以访问nova-db的。nova-conductor是处理异步任务相关的,发送到合适的计算节点上。
⑤nova-db包含大量的数据库表,用于记录虚拟机的状态,虚拟机与物理机的对应关系,租户信息等。
⑥nova-console,nova-consoleauth用与Nova提供的控制台服务,允许用户通过代理服务器访问他们虚拟机的控制台。
允许存储和检索对象,通过RestApi管理大量的无结构数据。Swift是一个系统,可以上传和下载,里面一般存储的是不经常修改的内容,比如用于存储VM镜像,备份和归档以及较小的文件,例如照片和电子邮件信息。更倾向于系统的管理。Swift可以作为网盘,把一些不常用的内容存储在网盘中。
Swift由proxy-server、account-server、container-server和object-server等一系列进程或服务组成。
提供块存储服务。Cinder是块存储,用来给虚拟机挂扩展硬盘,好像我们电脑中的移动硬盘,Cinder创建出来的卷,挂到虚拟机里。其实是将Nova中部分持久性块存储功能【Nova-Volume】分离出来,独立为新的组件Cinder。比如创建虚拟机的时候的镜像,等等不经常修改的文件内容。Cinder可以理解为个人电脑的移动硬盘,可以随意格式化,随时存取。
主要组件包括:cinder-api,cinder-volume,cinder-db,volumeprovider和cinder-scheduler组成。
是openstack的镜像服务组件。Glance主要提供一个虚拟机镜像的存储、查询和检索服务,通过提供一个虚拟磁盘映像的目录和存储库,为Nova虚拟机提供镜像服务。
主要组件由glance-api,glance-registry,glance-db组成。
用于提供网络连接服务,允许用户创还能自己的虚拟网络并连接各种网络设备接口。以plugin的方式对众多网络设备提供商进行支持。
主要组件包括:neutron-server、neutron-agent、neutron-provider、neutron-plugin以及用于保存网络配置相关信息的neutron-db等
为所有的openstack服务提供身份验证和授权,跟踪用户以及他们的权限,提供一个可用服务以及API列表。
为openstack提供一个界面。
以创建虚拟机为例,用户首先收到的是界面【Horizon】,通过界面上的操作,创建虚拟机的请求被发送给系统后端。要启动一个虚拟机,首先确定虚拟机操作系统是什么类型,同时下载并启动镜像,提供虚拟机使用,这件事由【Glance】完成,此时【Glance】管理的对象可能存在【Swift】上,所以需要和【Swift】交互获取镜像文件。在创建虚拟机的时候,首先需要【Cinder】提供块服务和【Neutron】提供网络服务。以及虚拟机所需要的卷【volumn】可以使用,能被分配到IP地址与外界网络连接,之后虚拟机资源的访问要经过【Keystore】的认证之后才可以继续。
云计算的一个核心思想就是在服务器端提供集中的物理计算资源。计算资源可以被分解成更小的单位去独立的服务于不同的用户,也就是在共享物理资源的同时,为每个用户提供隔离、安全、可信的虚拟工作环境,主要依赖虚拟化技术。比如,公司有一台大型机器,系统管理员不希望各个部门独占资源,所以出现了虚拟服务器,能够让用户更好的实时分享物理机的资源。
云计算,特别是IaaS基础架构云计算,更关心的是硬件抽象层的虚拟化,只有把物理计算机系统虚拟化为多台虚拟计算机系统,通过网络将这些虚拟计算机系统互联互通m才能真正意义的实现基础架构,即服务云计算系统。