集团站切换校区

验证码已发送,请查收短信

复制成功
微信号:togogoi
添加微信好友, 详细了解课程
已复制成功,如果自动跳转微信失败,请前往微信添加好友
打开微信
图标

业界新闻

当前位置:首页 > >业界新闻 > >

openstack+kvm架构

发布时间: 2022-05-18 10:16:14

openstack+kvm架构,云计算中的核心技术是虚拟化,可以说虚拟化是云计算区别于传统计算模式的重要特点。正是由于虚拟化技术的成熟和广泛应用,云计算中的计算、存储、应用和服务都变成了资源,这些资源可以被动态扩展和配置,云计算最终才能在逻辑上以单一整体的形式呈现。

KVM是一个集成到Linux内核的Hypervisor,很明显,宿主操作系统必须是Linux,支持的客户机操作系统包括Linux、Windows、Solaris和BSD,运行在支持虚拟化扩展的x86和x86_64硬件架构上,这意味着KVM不能运行在老式CPU上,新CPU如果不支持虚拟化扩展也不能运行(如英特尔的Atom处理器)。

在大多数情况下,对于数据中心来说,这些限制都不是问题,因为每隔几年硬件都会升级换代。KVM作为一个轻量级的虚拟化管理程序模块,利用Linux做大量Hypervisor能做的事情,如任务调度、内存管理与硬件设备交互等。

KVM具有高性能、高扩展与高安全性特点,适合运行Linux或Windows的环境,在异构环境也能很好地进行管理,而在虚拟化桌面方面,可以提供可靠的可扩展的镜像服务器。

KVM有以下特点。

(1)KVM和Linux内核高度集成,可以在内核内部进行部署,这样可以容易控制虚拟化进程。

(2)KVM更加灵活:由操作系统直接和整合到Linux内核中的虚拟化管理程序交互,所以在任何情况下虚拟机都是直接与底层的硬件进行交互,不用修改虚拟机的系统,这是KVM在虚拟机运行方面的优势。

(3)KVM逐渐得到更广泛的支持:如之前支持Xen的厂商也在改变风向,业内知名Linux厂商红帽在Red Hat Enterprise Linux 5(RHEL 5)时还采用的是XenHypervisor,在RHEL 6中就移除了所有Xen相关组件,只用KVM,并且提供Xen到KVM虚拟机迁移工具。另一家Linux厂商Ubuntu则明确表示选择KVM作为其Hypervisor。

由于以上特点,使用KVM作为虚拟化软件,并且结合OpenStack部署,不需要特别配置,可以降低云平台部署的难度。

由图1可知,该私有云平台的构建可以分为三层,分别为基础设施层、云中间件层和云门户层。其中云门户层分为用户访问界面和用户访问接口,用户访问界面以Web界面的形式展示给用户,让普通用户可以方便进行私有云平台的使用,用户访问接口则是调用 API 来完成相关操作,一般用于功能扩展或高级用户操作。

云中间件层包括资源监测、资源预测、虚拟资源自适应、安全管理、用户管理和云存储这几个模块,通过云中间件的开发,用户可以使用 OpenStack 云平台未提供的功能,满足当前业务需求。最底层是基础设施层,主要包括物理资源和虚拟资源,通过KVM和OpenStack在物理资源上的部署,为上层提供虚拟化的服务器、网络等虚拟资源。



图1 OpenStack+KVM云平台架构图

使用KVM作为虚拟化软件,构建基于OpenStack的云平台,云平台的体系结构如图2所示。

其中,最底层是资源层,主要包括服务器、存储、网络等物理资源。虚拟化层主要包括KVM 虚拟化技术和OpenStack 云平台,KVM 虚拟化技术将资源层的物理资源进行虚拟化,并利用 OpenStack 构建出云平台,通过将下层的物理资源虚拟化并整合,向上层提供虚拟机服务。

管理层主要包括虚拟机监控、虚拟资源自适应、身份认证和镜像管理,通过对虚拟化层提供的虚拟机进行监控,并结合虚拟资源自适应模型进行调度,为上层用户提供可以进行自适应伸缩的虚拟群集,开层部署等服务。

服务层主要包括部署服务、计算服务、存储服务和认证服务,用户在使用中用到的服务不止这些,此处仅列举出常用的几个服务。

最上层是用户层,用户层分Dashboard用户和OpenStack APIs用户,Dashboard用户是指通过Dashboard提供的Web-based用户界面进行启动实例、分配IP地址等操作,OpenStack APIs用户则是通过OpenStack的API直接对云平台进行相关的操作。



图2 云平台体系结构图

OpenStack可以有多种部署方式,根据节点数的不同,有以下几种部署架构。

单节点:网络控制器(运行nova-network)与计算(运行nova-compute,或者更确切地说,运行虚拟机实例)部署在一个主机。这样就不需要控制节点与计算节点之间的通信,也就少了很多网络概念,这也是入门者常用的方式。

双节点:一个cloud controller节点运行除nova-compute外的所有nova-service,compute节点运行nova-compute。这种配置主要用于概念和开发环境的证明。

多节点:在两节点的基础上,添加更多的compute节点,也可以将cloudcontroller节点中的network controller和volume controller分离出来,分别增加一个volume controller和一个network controller作为额外的节点。对于运行多个需要大量处理能力的虚拟机实例,至少是4个节点是最好的。

由于网络控制器与计算节点分别在不同主机,普通部署方式下(不是multi_host),只有 nova-network控制网络,而它仅仅在控制节点运行。因此,所有计算节点的实例都需要通过控制节点来与外网通信。

根据网卡数的不同,可以分为单网卡和双网卡,双网卡时,一个网卡作为 public网络的接口使用,另一个作为flat网络的接口使用。单网卡时,这一个网卡需要作为public网络的接口使用,同时也需要作为flat网络的接口,因此需要处于混杂模式。不过建立的网络与双网卡类似,都分为flat网络和public网络。

使用单网卡,需要在nova.conf中使public_interface和flat_interface都为eth0。使用单块网卡,不只是可以降低成本,而且还可以减少系统的复杂性,布线等。比如Facebook机房的机器,都是单块网卡,这是比较值得思考和借鉴的地方。

实验案例可以采用单网卡多节点的方式部署,控制节点安装部署除nova-compute以外的所有OpenStack组件,所有计算节点都安装nova-compute组件。当需要添加新的计算节点到云平台时,将之前安装好计算节点上的 nova.conf 文件拷贝到新增的节点上即可。OpenStack+KVM云平台的部署架构设计如图3所示。



图3 OpenStack+KVM部署架构图

上一篇: Docker的核心底层技术有哪些

下一篇: 虚拟化分为哪几类

在线咨询 ×

您好,请问有什么可以帮您?我们将竭诚提供最优质服务!