OpenStack是什么? OpenStack是一个云操作系统,通过数据中心可控制大型的计算、存储、网络等资源池。所有的管理通过前端界面管理员就可以完成,同样也可以通过web接口让最终用户部署资源 —— 官方定义
最小系统
openstack的定位是个云操作系统,通过各种服务提供IaaS(Infrastructure-as-a-Service)能力。 既然是云操作系统,大致上还是符合冯·诺伊曼架构的,那就以冯·诺伊曼架构为指导,学习起来更有条理些。
冯·诺伊曼架构中包含cpu、内存、外存、输入设备、输出设备,这五大部分。openstack作为云操作系统,要虚拟出来很多冯·诺伊曼架构的虚拟机,所以它本身就需要提供虚机该有的能力,换句话说,openstack的能力是普通电脑的超集。
计算机的核心能力是运算,所以计算机的核心部件是CPU,其余的模块都是围绕CPU,进行能力扩展的模块,OpenStack的核心目的也是运算,是为了打破传统PC空间和容量上的限制,更好的使用硬件资源,所以oepnstack的核心能力也是运算。 所以,openstack的核心模块就是计算模块,其余的模块都是为了计算模块服务的。 就像普通的PC需要BIOS一样,openstack除了计算模块,也需要一个具有BIOS功能的模块,这就是控制模块,有这两个模块,openstack就能提供最基础的能力,就类似单片机的最小系统。
扩展能力
有了计算模块和控制模块、openstack这个云操作系统就算能跑起来了,但是要用得爽还需要其他的模块,比如:块存储模块、对象存储模块。加上这些模块就能进行运算和存储了。
对于网络,openstack提供两种模式的网络:公共网络和私有网络。这两种网络的区别在于openstack是否提供虚拟路由。公共网络使用网桥为openstack提供网络能力,建立虚拟网络和物理网络的二层连接,三层的路由能力等,由物理网络设备提供。私有网络提供了虚拟路由,为openstack内部的虚拟网络提供了三层的能力。