OpenStack-云计算,虚拟化技术,初步认识OpenStack,了解OpenStack的结构部署以及OpenStack核心项目

通用云平台部署-引
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
云计算的架构
IaaS Infrastructure as a Service(基础架构即服务),主要为企业提供基础设置服务,如计算,存储,网络,开源的解决方案有:Openstack,Cloustack,Eucalyptus,OpenNebula,商业(VMware vSphere);
PaaS Platform-as-a-Service(平台即服务),主要为企业应用提供开发运行环境,存在各类复杂的开发环境,目前常见的开源解决方案有:Docker,Cloudfondry,OpenShift等; 商业的解决方案如Google App Engine,Microsoft Azure等;
SaaS Software-as-a-Service(软件即服务),提供软件服务,目前这类云较少,典型的有Citrix XenApp,GoogleDocs,MicrosoftOfficeOnline;
在这里插入图片描述
举例说明OpenStack与虚拟化软件的关系:
在使用KVM作为OpenStack的虚拟化软件时,仍然由KVM完成将一台物理服务器虚拟为多台虚拟机的功能,而OpenStack负责记录与维护资源池的状态。
例如,系统中一共有多少台服务器,每台服务器的资源共有多少,其中已经向用户分配了多少,还有多少资源空闲。在此基础上,OpenStack负责根据用户的要求,向KVM下发各类控制命令,执行相应的虚拟机生命周期管理操作,如虚拟机的创建、删除、启动、关机等。
由此可见,两相对比, OpenStack更像是系统的控制中枢,是云操作系统的“大脑”;计算虚拟化软件则更像是系统的执行机构,是云操作系统的“肢体”。二者分工合作,共同完成对云计算系统中的计算资源池的管理,但绝不能认为OpenStack等同于计算虚拟化软件。

OpenStack已发布的历史版本:
在这里插入图片描述
在这里插入图片描述
项目结构:
在这里插入图片描述
OpenStack架构:
在这里插入图片描述
在这里插入图片描述
说明:
1. horizon以图形的方式管理所有的project,包括nova虚拟机的创建,neutron网络,cinder存储,glance镜像等;
2. keystone为所有的服务提供认证和授权服务,通过keystone能够找到各个服务的endpoint,如nova的地址,neutron的地址,glance的地址,cinder的地址等;
3. 创建虚拟机,需要提交请求给nova-api,nova通过nova-scheduler选择合适的compue,nova和底层的hypervisor交互,需要建立虚拟机最初工作;
4. 虚拟机的创建需要下载合适的镜像,此时会请求glance-api,glance通过glance-registry找到和下载到合适的镜像到compute启动;
5. glance的镜像可以存放在不同的地方,如本地的Filesystem,统一存储ceph或者是swift上;
6. instance运行时需要建立网络,将请求交给neutron-server,neutron-server会根据网络请求,为虚拟机分配地址,建立网桥,构建iptables安全组规则,此时一个普通的instance就基本可以建立完成了;
7. instance如果需要外挂存储的话,可以向cinder-api发起请求,通过cinder-scheduler选择到合适的cinder-volume之后,cinder-volume会向端的存储请求存储空间,之后交由instance;
8. 和image类似,cinder的备份或者快照文件,可以存储在分布式的对象存储swift上;

说明:
以上是openstack各组件之间的交互关系,当然这只是笼统的组件之间的交换关系,具体详细的交互流程非常复杂,设计到消息队列MQ与数据持久存储DB和各组件api之间的交互关系,具体instance创建的详细流程,可以查阅源代码获取更详细的流程。
在这里插入图片描述
核心项目:
在这里插入图片描述
在这里插入图片描述