CN111198696B - 一种基于裸机服务器的OpenStack大规模部署方法和系统 - Google Patents

一种基于裸机服务器的OpenStack大规模部署方法和系统 Download PDF

Info

Publication number
CN111198696B
CN111198696B CN201911388983.XA CN201911388983A CN111198696B CN 111198696 B CN111198696 B CN 111198696B CN 201911388983 A CN201911388983 A CN 201911388983A CN 111198696 B CN111198696 B CN 111198696B
Authority
CN
China
Prior art keywords
openstack
network
servers
nodes
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911388983.XA
Other languages
English (en)
Other versions
CN111198696A (zh
Inventor
唐卓
蒋冰婷
李肯立
肖雄
朱锦涛
李文
阳王东
周旭
刘楚波
曹嵘晖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hunan University
Original Assignee
Hunan University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hunan University filed Critical Hunan University
Priority to CN201911388983.XA priority Critical patent/CN111198696B/zh
Publication of CN111198696A publication Critical patent/CN111198696A/zh
Application granted granted Critical
Publication of CN111198696B publication Critical patent/CN111198696B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于裸机服务器的OpenStack大规模部署方法,以帮助产品化OpenStack实现大规模快速部署,本发明具有三个主要功能:第一是裸机服务器的管理,即可以使用PXE自动化为服务器安装操作系统,并自动将服务器配置为可部署状态;第二,其可以将OpenStack组件打包为容器镜像,并开发专用的自动构建服务以自动将源代码打包到一键式安装包中;第三,其通过ansible脚本,该方法可以智能地部署和维护OpenStack组件。本发明构建了完整的云产品管理系统的总体结构和主要组件。最终目标是将单个节点部署为群集服务。通过裸机管理,可以将物理服务器配置为群集部署的最佳选择,显著的提升了部署效率与部署的成功率。

Description

一种基于裸机服务器的OpenStack大规模部署方法和系统
技术领域
本发明属于云计算技术领域,更具体地,涉及一种基于裸机服务器的OpenStack大规模部署方法和系统。
背景技术
OpenStack是一个免费的开源软件平台,用于云计算,主要部署为基础架构即服务(Infrastructure as a Service,简称IaaS),从而为客户提供虚拟服务器和其他资源。OpenStack是由相互关联的组件组成,这些组件可控制整个数据中心内计算、存储和网络资源的各种多供应商硬件池。用户可以通过基于Web的仪表板、命令行工具、或RESTful Web服务对这些硬件池进行管理。
OpenStack的使命是创建一个无处不在的开源云计算平台,该平台易于使用,易于实施,部署之间可互操作,适用于各种规模,并满足公共云和私有云的用户和运营商的需求。目前主流的OpenStack部署方法包括Devstack部署方法、以及OpenStack原始部署方法等。
DevStack是官方维护的一个部署脚本工具,利用它可以快速部署一个OpenStack的开发和测试环境,但其仅限于部署简单的云计算平台,无法适用于大规模分布式计算环境、或超级计算环境;OpenStack原始部署方法是按照OpenStack官方文档,一步步进行安装,但其存在一些不可忽略的缺陷,第一,其无法实现OpenStack大规模部署;第二,其时间成本高;第三,由于其部署难度高,容易出现部署出错的情况,因而该方法的部署成功率较低;第四,其部署后的OpenStack集群后期的操作和维护很困难,如果OpenStack集群中某个节点的硬件或软件发生故障,由于服务单独部署在节点上,因此很难清理这些故障节点并恢复相关服务。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种基于裸机服务器的OpenStack大规模部署方法和系统,其目的在于,解决现有OpenStack原始部署方法中存在的无法实现OpenStack大规模部署、时间成本高、部署成功率较低、以及一旦OpenStack集群中某个节点发生故障,很难清理这些故障节点并恢复相关服务的技术问题。
为实现上述目的,按照本发明的一个方面,提供了一种基于裸机服务器的OpenStack大规模部署方法,包括以下步骤:
(1)获取需要部署成OpenStack集群的N台裸机服务器及其硬件信息,获取用户对该OpenStack集群的需求,其中N表示裸机服务器的总数;
(2)根据步骤(1)收集的N台裸机服务器的硬件信息,从N台裸机服务器中选择物理性能最佳的裸机服务器作为中央服务器,在该中央服务器上安装操作系统,并在安装了操作系统的该中央服务器上构建OpenStack安装包;
(3)为N台裸机服务器中除了步骤(2)所选中的中央服务器以外的所有裸机服务器安装操作系统,对安装操作系统后的所有服务器进行系统配置,为系统配置后的所有服务器配置多个网络;
(4)中央服务器将步骤(2)构建的OpenStack安装包并行下发到其下一级的三个集群管理服务器,三个集群管理服务器分别根据步骤(1)获取的硬件信息和步骤(3)中配置的多个网络将该OpenStack安装包下发到其下一级节点,节点使用Ansible自动化运维工具运行OpenStack安装包,从而完成该节点的部署。
优选地,步骤(2)中在中央服务器上构建OpenStack安装包的过程具体包括如下步骤:
(2-1)获取Docker镜像,并通过该Docker镜像在中央服务器上创建Docker容器;
(2-2)获取OpenStack组件源码、及其与对应组件之间对应的依赖关系;
(2-3)根据步骤(2-2)获取的依赖关系文件在步骤(2-1)创建的Docker容器中安装OpenStack组件源码对应的OpenStack组件,并在安装OpenStack组件后的该Docker容器中添加该OpenStack组件的初始化脚本,从而得到更新后的Docker容器;
(2-4)使用Kolla工具将步骤(2-3)更新后的Docker容器上安装的OpenStack组件打包成容器镜像,并将该容器镜像打包成OpenStack安装包;
优选地,步骤(2-1)具体为,首先,通过在中央服务器上安装Docker运行环境,以创建本地镜像仓库;随后,从创建的本地镜像仓库中获取Docker镜像,并利用该Docker镜像创建Docker容器。
优选地,步骤(3)具体包括以下子步骤:
(3-1)使用预启动执行环境PXE为N台裸机服务器中除了中央服务器以外的其余裸机服务器安装操作系统;
(3-2)对步骤(3-1)安装好操作系统后的服务器进行系统配置操作;
(3-3)将中央服务器用作当前部署节点,将步骤(3-2)执行系统配置操作后的所有服务器用作当前集群节点,使用当前部署节点与所有当前集群节点建立部署网络;
(3-4)根据步骤(3-3)建立的部署网络中所有当前集群节点的硬件信息,从中选择物理性能仅次于中央服务器的三个当前集群节点作为该中央服务器下一级的管理服务器,根据步骤(1)所获得的用户对OpenStack集群的需求获取其中一个管理服务器下一级的计算节点数量Ncomputer,第二管理服务器下一级的存储节点数量Nstorage,以及第三管理服务器下一级的网络节点数量Nnetwork(如图3所示),并从剩余的所有当前集群节点中选取CPU与内存综合性能指标最高的前Ncomputer个作为计算节点,选取硬盘的综合性能最高的前Nstorage个作为存储节点,选取网卡综合性能最高的前Nnetwork个作为网络节点;
(3-5)使用中央服务器、管理服务器、计算节点、存储节点、以及网络节点构建管理网络,使用所有计算节点和存储节点构建存储网络,使用所有网络节点和计算节点分别构建内部网络和外部网络,其中内部网络是用于OpenStack集群待生成的虚拟机之间相互通信的局域网,外部网络是用于OpenStack集群待生成的虚拟机连接外部办公网络和Internet的虚拟局域网。
优选地,步骤(3-1)具体为,首先使用基板管理控制器BMC接口获取裸机服务器的硬件信息和电源状态,根据该电源状态控制裸机服务器开启工作;然后,通过PXE确定每台裸机服务器的引导顺序,并根据该引导顺序将裸机服务器先后引导至Live操作系统,从而为这些裸机服务器安装该Live操作系统;最后,在Live操作系统安装成功后清理裸机服务器上的磁盘数据。
优选地,步骤(4)具体包括以下子步骤:
(4-1)中央服务器通过步骤(3)构建的部署网络将OpenStack安装包并行下发到三个管理服务器;
(4-2)第一管理服务器分别根据步骤(1)获取的硬件信息和步骤(3)中配置的多个网络确定其下一级的所有计算节点中数据传输速率最快的1个计算节点,并分别将收到的OpenStack安装包下发到该计算节点;
(4-3)接收到OpenStack安装包的计算节点使用Ansible自动化运维工具运行OpenStack安装包,从而完成该计算节点的部署,并将其自身标记为CN_succeed(1);
(4-4)设置计数器i=1;
(4-5)判断2i是否大于所有计算节点的总数Ncomputer,如果是则进入步骤(4-8),否则转入步骤(4-6);
(4-6)第一管理服务器分别根据步骤(1)获取的硬件信息和步骤(3)中配置的多个网络确定其下一级的(Ncomputer-2i-1)个计算节点中除了计算节点CN_succeed(i)以外数据传输速率最快的节点,并分别将收到的OpenStack安装包下发到该计算节点,同时计算节点CN_succeed(i),CN_succeed(i+1),…,CN_succeed(2i-1)分别从(Ncomputer-2i-1-1)个计算节点中选择与其数据传输速率最快的计算节点,并将收到的OpenStack安装包下发到该计算节点;
(4-7)设置计数器i=i+1,并返回步骤(4-5);
(4-8)针对第二管理服务器而言,执行与上述步骤(4-2)至(4-7)相同的步骤,直到其下一级的所有存储节点都被部署完毕为止;
(4-9)针对第三管理服务器而言,执行与上述步骤(4-2)至(4-7)相同的步骤,直到其下一级的所有网络节点都被部署完毕为止,从而最终将所有节点部署成OpenStack集群。
按照本发明的另一方面,提供了一种基于裸机服务器的OpenStack大规模部署系统,包括:
第一模块,用于获取需要部署成OpenStack集群的N台裸机服务器及其硬件信息,获取用户对该OpenStack集群的需求,其中N表示裸机服务器的总数;
第二模块,用于根据第一模块收集的N台裸机服务器的硬件信息,从N台裸机服务器中选择物理性能最佳的裸机服务器作为中央服务器,在该中央服务器上安装操作系统,并在安装了操作系统的该中央服务器上构建OpenStack安装包;
第三模块,用于为N台裸机服务器中除了第二模块所选中的中央服务器以外的所有裸机服务器安装操作系统,对安装操作系统后的所有服务器进行系统配置,为系统配置后的所有服务器配置多个网络;
第四模块,用于中央服务器将第二模块构建的OpenStack安装包并行下发到其下一级的三个集群管理服务器,三个集群管理服务器分别根据第一模块获取的硬件信息和第三模块中配置的多个网络将该OpenStack安装包下发到其下一级节点,节点使用Ansible自动化运维工具运行OpenStack安装包,从而完成该节点的部署。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
(1)由于本发明最终能够实现OpenStack大规模部署,从而能够解决现有OpenStack大规模部署方法无法实现OpenStack大规模高效部署的技术问题;
(2)由于本发明采用了步骤(4)实现了分级部署的体系结构,可以很好提高OpenStack安装包下发的速度。因此,能够解决现有OpenStack大规模部署方法中存在由于节点太多导致的OpenStack组件下发拥塞缓慢的时间成本高的技术问题;
(3)由于本发明采用了步骤(2),其为OpenStack的安装提前准备好安装包,避免Openstack组件复杂导致部署出错的问题。因此,能够解决现有OpenStack大规模部署方法中存在的部署成功率较低的技术问题;
(4)由于本发明采用了步骤(3),各个裸机服务器被统一地进行了系统配置,方便后期统一的管理与维护。因此,能够解决现有OpenStack大规模部署方法中存在的一旦OpenStack集群中某个节点发生故障,很难清理这些故障节点并恢复相关服务的技术问题;
(5)本发明技术实现简单,应用范围广,可以很好的使用此发明部署同类型的集群,本发明也可以很好的扩展为更大规模的OpenStack集群部署,可扩展性强。
附图说明
图1是本发明基于裸机服务器的OpenStack大规模部署方法的流程图;
图2是本发明步骤(3-3)中建立的部署网络的示意图;
图3是本发明步骤(3-4)中建立的中央服务器、管理服务器、以及节点构成的分级体系结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明提供了一种基于裸机服务器的OpenStack大规模部署方法,其目的是将各个节点部署成集群服务,裸机管理的目标是为了将服务器配置成可用于集群部署的最佳状态,在逻辑上将节点划分成集群,然后将集群服务按照划分的架构进行部署,并且将集群服务的API或者使用门户暴露出来。
如图1所示,本发明提供了一种基于裸机服务器的OpenStack大规模部署方法,包括以下步骤:
(1)获取需要部署成OpenStack集群的N台裸机服务器及其硬件信息,获取用户对该OpenStack集群的需求,其中N表示裸机服务器的总数;
使用裸机服务器的目标是为了将其配置成可用于集群部署的最佳状态。
本步骤中用户对OpenStack集群的需求包括用户对OpenStack集群中计算资源、存储资源、以及网络资源的需求。
(2)根据步骤(1)收集的N台裸机服务器的硬件信息,从N台裸机服务器中选择物理性能最佳的裸机服务器作为中央服务器,在该中央服务器上安装操作系统,并在安装了操作系统的该中央服务器上构建OpenStack安装包;
具体而言,物理性能最佳的裸机服务器指的是N台裸机服务器中CPU、内存、硬盘、网卡等物理资源的综合指标最高的那一台裸机服务器。
本步骤中,在中央服务器上构建OpenStack安装包的过程具体包括如下步骤:
(2-1)获取Docker镜像,并通过该Docker镜像在中央服务器上创建Docker容器;
具体而言,本步骤中创建的Docker容器是一个开源的应用容器引擎,其让开发者能够以统一的方式打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何安装了Docker引擎的服务器上(包括当下流行的Linux机器、windows机器等),也可以实现虚拟化。
Docker容器是完全使用沙箱机制(Sandboxie),相互之间不会有任何接口(类似iPhone的app),几乎没有性能开销,并可以很容易地在机器和数据中心中运行。最重要的是,这些Docker容器不依赖于任何计算机语言、框架、乃至系统。
本步骤具体为,首先,通过在中央服务器上安装Docker运行环境,以创建本地镜像仓库;随后,从创建的本地镜像仓库中获取Docker镜像,并利用该Docker镜像创建Docker容器;
(2-2)获取OpenStack组件源码、及其与对应组件之间对应的依赖关系;
(2-3)根据步骤(2-2)获取的依赖关系文件在步骤(2-1)创建的Docker容器中安装OpenStack组件源码对应的OpenStack组件,并在安装OpenStack组件后的该Docker容器中添加该OpenStack组件的初始化脚本,从而得到更新后的Docker容器;
(2-4)使用Kolla工具将步骤(2-3)更新后的Docker容器上安装的OpenStack组件打包成容器镜像,并将该容器镜像打包成OpenStack安装包;
具体而言,该OpenStack安装包中包括安装了OpenStack组件的Docker镜像、依赖关系、以及OpenStack本身的信息;
本步骤的目的在于,解决OpenStack组件复杂导致的操作困难问题。
本步骤中的Kolla是OpenStack下的一个项目,项目的目标是提供可用于生产的容器化部署工具,以便使用社区最佳实践来运行可扩展、快速、可靠和可升级的OpenStack云。Kolla是开箱即用的,即使新手也可以很快的使用Kolla来快速部署OpenStack集群;此外,Kolla也能够根据实际的需求来定制化地部署OpenStack集群。
(3)为N台裸机服务器中除了步骤(2)所选中的中央服务器以外的所有裸机服务器安装操作系统,对安装操作系统后的所有服务器进行系统配置,为系统配置后的所有服务器配置多个网络;
本步骤具体包括以下子步骤:
(3-1)使用预启动执行环境(Preboot eXecution Environment,PXE)为N台裸机服务器中除了中央服务器以外的其余裸机服务器安装操作系统;
具体而言,本步骤首先是使用基板管理控制器(英文全称为BaseboardManagement Controller,简称BMC)接口获取裸机服务器的硬件信息和电源状态,然后根据该电源状态控制裸机服务器开启工作;然后,通过PXE确定每台裸机服务器的引导顺序,并根据该引导顺序将裸机服务器先后引导至Live操作系统,从而为这些裸机服务器安装该Live操作系统;最后,在Live操作系统安装成功后清理裸机服务器上的磁盘数据。
BMC接口是执行服务器远端管理的控制器,它可以在服务器未开机的状态下,对服务器执行固件升级、查看服务器设备等操作。
其中,使用BMC接口管理裸机服务器的优势在于:
A、不受裸机服务器电源状态的制约:在裸机服务器关闭了电源的情况下,仍可获取裸机服务器的CPU、内存等硬件信息,并且可以通过网络来打开裸机服务器的电源。
B、不受裸机服务器宿主系统的制约::不论裸机服务器是否开启了电源或者是否安装了操作系统,都可以通过BMC接口来控制裸机服务器的电源。
C、可以强制修改裸机服务器的引导顺序,并随时将裸机服务器重新引导到网络引导的live操作系统,从而对裸机服务器上的磁盘数据进行维护,或者清理裸机服务器上的数据。
(3-2)对步骤(3-1)安装好操作系统后的服务器进行系统配置操作;
具体而言,系统配置操作包括:(1)以sudo vim/etc/hostname命令,修改服务器的主机名,使服务器具有统一格式的主机名;(2)将服务器的SSH(即Secure Shell)密钥配置为免密,以方便后续的部署过程中可以免密登录;(3)安装OpenStack组件运行的环境,例如pip、python等;(4)对服务器中的硬盘进行分区(即指定一部分分区用于安装操作系统,另一部分分区用于部署OpenStack组件)。
(3-3)将中央服务器用作当前部署节点,将步骤(3-2)执行系统配置操作后的所有服务器用作当前集群节点,使用当前部署节点与所有当前集群节点建立部署网络;
如图2所示,该部署网络是用于发布和部署节点,节点启动以后使用此网络通信。该部署网络独占一张网卡,并且网卡的配置不允许进行修改,这样可以保证部署网络的带宽,并且尽量不干扰安装包的传输效率。
(3-4)根据步骤(3-3)建立的部署网络中所有当前集群节点的硬件信息,从中选择物理性能仅次于中央服务器的三个当前集群节点作为该中央服务器下一级的管理服务器(Management Server,简称MS),根据步骤(1)所获得的用户对OpenStack集群的需求获取其中一个管理服务器下一级的计算节点数量Ncomputer,第二管理服务器下一级的存储节点数量Nstorage,以及第三管理服务器下一级的网络节点数量Nnetwork(如图3所示),并从剩余的所有当前集群节点中选取CPU与内存综合性能指标最高的前Ncomputer个作为计算节点,选取硬盘的综合性能最高的前Nstorage个作为存储节点,选取网卡综合性能最高的前Nnetwork个作为网络节点;
可以理解的是,本步骤执行完毕后,部署网络中存在有中央服务器、管理服务器、计算节点、存储节点、网络节点五种节点类型,且有N=Ncomputer+Nstorage+Nnetwork+1+3。
(3-5)使用中央服务器、管理服务器、计算节点、存储节点、以及网络节点构建管理网络(Management network),使用所有计算节点和存储节点构建存储网络(Storagenetwork),使用所有网络节点和计算节点分别构建内部网络(Internal/overlay network)和外部网络(External network),其中内部网络是用于OpenStack集群待生成的虚拟机之间相互通信的局域网(Local area network,简称LAN),外部网络是用于OpenStack集群待生成的虚拟机连接外部办公网络和Internet的虚拟局域网(Virtual local areanetwork,简称VLAN);
具体而言,管理网络是用于OpenStack集群内部的各个节点之间进行通信;存储网络是用于Ceph集群的通信,最好独占一个网卡并使用高性能的网络设备。
需要注意的是,当本步骤中构建的两个或以上的网络使用同一张网卡时,应使用VLAN对该网卡做隔离处理,以避免网络配置之间冲突。例如,如果管理网络占用了某一个网卡的VLAN 1,其它网络如果想使用该网卡,则需要该网卡中其他可用的VLAN。
(4)中央服务器将步骤(2)构建的OpenStack安装包并行下发到其下一级的三个集群管理服务器,三个集群管理服务器分别根据步骤(1)获取的硬件信息和步骤(3)中配置的多个网络将该OpenStack安装包下发到其下一级节点,节点使用Ansible自动化运维工具运行OpenStack安装包,从而完成该节点的部署。
本步骤具体包括以下子步骤:
(4-1)中央服务器通过步骤(3)构建的部署网络将OpenStack安装包并行下发到三个管理服务器;
(4-2)第一管理服务器分别根据步骤(1)获取的硬件信息和步骤(3)中配置的多个网络确定其下一级的所有计算节点中数据传输速率最快的1个计算节点,并分别将收到的OpenStack安装包下发到该计算节点;
(4-3)接收到OpenStack安装包的计算节点使用Ansible自动化运维工具运行OpenStack安装包,从而完成该计算节点的部署,并将其自身标记为CN_succeed(1);
(4-4)设置计数器i=1;
(4-5)判断2i是否大于所有计算节点的总数Ncomputer,如果是则进入步骤(4-8),否则转入步骤(4-6);
(4-6)第一管理服务器分别根据步骤(1)获取的硬件信息和步骤(3)中配置的多个网络确定其下一级的(Ncomputer-2i-1)个计算节点中除了计算节点CN_succeed(i)以外数据传输速率最快的节点,并分别将收到的OpenStack安装包下发到该计算节点,同时计算节点CN_succeed(i),CN_succeed(i+1),…,CN_succeed(2i-1)分别从(Ncomputer-2i-1-1)个计算节点中选择与其数据传输速率最快的计算节点,并将收到的OpenStack安装包下发到该计算节点;
(4-7)设置计数器i=i+1,并返回步骤(4-5);
(4-8)针对第二管理服务器而言,执行与上述步骤(4-2)至(4-7)相同的步骤,直到其下一级的所有存储节点都被部署完毕为止;
需要注意的是,本步骤与第一管理服务器的处理过程唯一的区别,就在于第一管理服务器确定传输速率最快的节点时使用的网络是所有构建的网络,而第二管理服务器确定传输速率最快的节点时使用的网络不包括内部网络和外部网络(这是由于存储节点并不参与构建这两个网络)。
(4-9)针对第三管理服务器而言,执行与上述步骤(4-2)至(4-7)相同的步骤,直到其下一级的所有网络节点都被部署完毕为止,从而最终将所有节点部署成OpenStack集群。
需要注意的是,本步骤与第一管理服务器的处理过程唯一的区别,就在于第一管理服务器确定传输速率最快的节点时使用的网络是所有构建的网络,而第三管理服务器确定传输速率最快的节点时使用的网络不包括存储网络(这是由于网络节点并不参与构建该网络)。
通过上述步骤最终将各个节点成功并高效部署成集群服务。裸机服务器管理的目标是为了将服务器配置成可用于集群部署的最佳状态,在逻辑上将节点划分成不同的节点类型集群,然后将集群按照划分的架构进行部署,并且将集群服务的API或者使用门户暴露出来。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种基于裸机服务器的OpenStack大规模部署方法,其特征在于,包括以下步骤:
(1)获取需要部署成OpenStack集群的N台裸机服务器及其硬件信息,获取用户对该OpenStack集群的需求,其中N表示裸机服务器的总数;
(2)根据步骤(1)收集的N台裸机服务器的硬件信息,从N台裸机服务器中选择物理性能最佳的裸机服务器作为中央服务器,在该中央服务器上安装操作系统,并在安装了操作系统的该中央服务器上构建OpenStack安装包;
(3)为N台裸机服务器中除了步骤(2)所选中的中央服务器以外的所有裸机服务器安装操作系统,对安装操作系统后的所有服务器进行系统配置,为系统配置后的所有服务器配置多个网络;步骤(3)具体包括以下子步骤:
(3-1)使用预启动执行环境PXE为N台裸机服务器中除了中央服务器以外的其余裸机服务器安装操作系统;
(3-2)对步骤(3-1)安装好操作系统后的服务器进行系统配置操作;
(3-3)将中央服务器用作当前部署节点,将步骤(3-2)执行系统配置操作后的所有服务器用作当前集群节点,使用当前部署节点与所有当前集群节点建立部署网络;
(3-4)根据步骤(3-3)建立的部署网络中所有当前集群节点的硬件信息,从中选择物理性能仅次于中央服务器的三个当前集群节点作为该中央服务器下一级的管理服务器,根据步骤(1)所获得的用户对OpenStack集群的需求获取其中一个管理服务器下一级的计算节点数量Ncomputer,第二管理服务器下一级的存储节点数量Nstorage,以及第三管理服务器下一级的网络节点数量Nnetwork,并从剩余的所有当前集群节点中选取CPU与内存综合性能指标最高的前Ncomputer个作为计算节点,选取硬盘的综合性能最高的前Nstorage个作为存储节点,选取网卡综合性能最高的前Nnetwork个作为网络节点;
(3-5)使用中央服务器、管理服务器、计算节点、存储节点、以及网络节点构建管理网络,使用所有计算节点和存储节点构建存储网络,使用所有网络节点和计算节点分别构建内部网络和外部网络,其中内部网络是用于OpenStack集群待生成的虚拟机之间相互通信的局域网,外部网络是用于OpenStack集群待生成的虚拟机连接外部办公网络和Internet的虚拟局域网;
(4)中央服务器将步骤(2)构建的OpenStack安装包并行下发到其下一级的三个集群管理服务器,三个集群管理服务器分别根据步骤(1)获取的硬件信息和步骤(3)中配置的多个网络将该OpenStack安装包下发到其下一级节点,节点使用Ansible自动化运维工具运行OpenStack安装包,从而完成该节点的部署。
2.根据权利要求1所述的OpenStack大规模部署方法,其特征在于,步骤(2)中在中央服务器上构建OpenStack安装包的过程具体包括如下步骤:
(2-1)获取Docker镜像,并通过该Docker镜像在中央服务器上创建Docker容器;
(2-2)获取OpenStack组件源码、及其与对应组件之间对应的依赖关系;
(2-3)根据步骤(2-2)获取的依赖关系文件在步骤(2-1)创建的Docker容器中安装OpenStack组件源码对应的OpenStack组件,并在安装OpenStack组件后的该Docker容器中添加该OpenStack组件的初始化脚本,从而得到更新后的Docker容器;
(2-4)使用Kolla工具将步骤(2-3)更新后的Docker容器上安装的OpenStack组件打包成容器镜像,并将该容器镜像打包成OpenStack安装包。
3.根据权利要求2所述的OpenStack大规模部署方法,其特征在于,步骤(2-1)具体为,首先,通过在中央服务器上安装Docker运行环境,以创建本地镜像仓库;随后,从创建的本地镜像仓库中获取Docker镜像,并利用该Docker镜像创建Docker容器。
4.根据权利要求1所述的OpenStack大规模部署方法,其特征在于,步骤(3-1)具体为,首先使用基板管理控制器BMC接口获取裸机服务器的硬件信息和电源状态,根据该电源状态控制裸机服务器开启工作;然后,通过PXE确定每台裸机服务器的引导顺序,并根据该引导顺序将裸机服务器先后引导至Live操作系统,从而为这些裸机服务器安装该Live操作系统;最后,在Live操作系统安装成功后清理裸机服务器上的磁盘数据。
5.根据权利要求4所述的OpenStack大规模部署方法,其特征在于,步骤(4)具体包括以下子步骤:
(4-1)中央服务器通过步骤(3)构建的部署网络将OpenStack安装包并行下发到三个管理服务器;
(4-2)第一管理服务器分别根据步骤(1)获取的硬件信息和步骤(3)中配置的多个网络确定其下一级的所有计算节点中数据传输速率最快的1个计算节点,并分别将收到的OpenStack安装包下发到该计算节点;
(4-3)接收到OpenStack安装包的计算节点使用Ansible自动化运维工具运行OpenStack安装包,从而完成该计算节点的部署,并将其自身标记为CN_succeed(1);
(4-4)设置计数器i=1;
(4-5)判断2i是否大于所有计算节点的总数Ncomputer,如果是则进入步骤(4-8),否则转入步骤(4-6);
(4-6)第一管理服务器分别根据步骤(1)获取的硬件信息和步骤(3)中配置的多个网络确定其下一级的(Ncomputer-2i-1)个计算节点中除了计算节点CN_succeed(i)以外数据传输速率最快的节点,并分别将收到的OpenStack安装包下发到该计算节点,同时计算节点CN_succeed(i),CN_succeed(i+1),…,CN_succeed(2i-1)分别从(Ncomputer-2i-1-1)个计算节点中选择与其数据传输速率最快的计算节点,并将收到的OpenStack安装包下发到该计算节点;
(4-7)设置计数器i=i+1,并返回步骤(4-5);
(4-8)针对第二管理服务器而言,执行与上述步骤(4-2)至(4-7)相同的步骤,直到其下一级的所有存储节点都被部署完毕为止;
(4-9)针对第三管理服务器而言,执行与上述步骤(4-2)至(4-7)相同的步骤,直到其下一级的所有网络节点都被部署完毕为止,从而最终将所有节点部署成OpenStack集群。
6.一种基于裸机服务器的OpenStack大规模部署系统,其特征在于,包括:
第一模块,用于获取需要部署成OpenStack集群的N台裸机服务器及其硬件信息,获取用户对该OpenStack集群的需求,其中N表示裸机服务器的总数;
第二模块,用于根据第一模块收集的N台裸机服务器的硬件信息,从N台裸机服务器中选择物理性能最佳的裸机服务器作为中央服务器,在该中央服务器上安装操作系统,并在安装了操作系统的该中央服务器上构建OpenStack安装包;
第三模块,用于为N台裸机服务器中除了第二模块所选中的中央服务器以外的所有裸机服务器安装操作系统,对安装操作系统后的所有服务器进行系统配置,为系统配置后的所有服务器配置多个网络;第三模块具体包括:
第一子模块,用于使用预启动执行环境PXE为N台裸机服务器中除了中央服务器以外的其余裸机服务器安装操作系统;
第二子模块,用于对第一子模块安装好操作系统后的服务器进行系统配置操作;
第三子模块,用于将中央服务器用作当前部署节点,将第二子模块执行系统配置操作后的所有服务器用作当前集群节点,使用当前部署节点与所有当前集群节点建立部署网络;
第四子模块,用于根据第三子模块建立的部署网络中所有当前集群节点的硬件信息,从中选择物理性能仅次于中央服务器的三个当前集群节点作为该中央服务器下一级的管理服务器,根据第一模块所获得的用户对OpenStack集群的需求获取其中一个管理服务器下一级的计算节点数量Ncomputer,第二管理服务器下一级的存储节点数量Nstorage,以及第三管理服务器下一级的网络节点数量Nnetwork,并从剩余的所有当前集群节点中选取CPU与内存综合性能指标最高的前Ncomputer个作为计算节点,选取硬盘的综合性能最高的前Nstorage个作为存储节点,选取网卡综合性能最高的前Nnetwork个作为网络节点;
第五子模块,用于使用中央服务器、管理服务器、计算节点、存储节点、以及网络节点构建管理网络,使用所有计算节点和存储节点构建存储网络,使用所有网络节点和计算节点分别构建内部网络和外部网络,其中内部网络是用于OpenStack集群待生成的虚拟机之间相互通信的局域网,外部网络是用于OpenStack集群待生成的虚拟机连接外部办公网络和Internet的虚拟局域网;
第四模块,用于中央服务器将第二模块构建的OpenStack安装包并行下发到其下一级的三个集群管理服务器,三个集群管理服务器分别根据第一模块获取的硬件信息和第三模块中配置的多个网络将该OpenStack安装包下发到其下一级节点,节点使用Ansible自动化运维工具运行OpenStack安装包,从而完成该节点的部署。
CN201911388983.XA 2019-12-30 2019-12-30 一种基于裸机服务器的OpenStack大规模部署方法和系统 Active CN111198696B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911388983.XA CN111198696B (zh) 2019-12-30 2019-12-30 一种基于裸机服务器的OpenStack大规模部署方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911388983.XA CN111198696B (zh) 2019-12-30 2019-12-30 一种基于裸机服务器的OpenStack大规模部署方法和系统

Publications (2)

Publication Number Publication Date
CN111198696A CN111198696A (zh) 2020-05-26
CN111198696B true CN111198696B (zh) 2021-06-29

Family

ID=70744470

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911388983.XA Active CN111198696B (zh) 2019-12-30 2019-12-30 一种基于裸机服务器的OpenStack大规模部署方法和系统

Country Status (1)

Country Link
CN (1) CN111198696B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113760610A (zh) * 2020-06-01 2021-12-07 富泰华工业(深圳)有限公司 基于OpenStack的裸机高可用性的实现方法、装置及电子设备
CN112003908B (zh) * 2020-08-07 2022-06-21 苏州浪潮智能科技有限公司 一种配置bmc的方法、系统、设备以及介质
CN111988182B (zh) * 2020-08-28 2022-03-11 北京中电兴发科技有限公司 一种大规模服务器集群的部署方法
CN114363295B (zh) * 2020-09-28 2024-09-24 华为云计算技术有限公司 一种租户服务器的管理方法及装置
CN112860374A (zh) * 2021-01-30 2021-05-28 柏科数据技术(深圳)股份有限公司 快速部署Ceph方法、装置、服务器及存储介质
CN115328651B (zh) * 2022-08-12 2024-08-30 扬州万方科技股份有限公司 基于国产vpx服务器的轻量化微云系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105376182A (zh) * 2015-11-30 2016-03-02 国网吉林省电力有限公司信息通信公司 一种电网资源管理与分配方法及系统
CN106936636A (zh) * 2017-03-15 2017-07-07 无锡华云数据技术服务有限公司 一种快速部署容器化的云计算测试平台的实现方法
CN107172208A (zh) * 2017-06-30 2017-09-15 联想(北京)有限公司 服务器的部署方法及其系统
TW201732625A (zh) * 2016-03-14 2017-09-16 國立清華大學 基於Saltstack之OpenStack雲端運算平台自動化部署系統以及方法
CN110457197A (zh) * 2019-08-19 2019-11-15 中国工商银行股份有限公司 服务测试方法、装置、计算机设备和存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106878385B (zh) * 2016-12-30 2020-05-12 新华三技术有限公司 私有云部署方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105376182A (zh) * 2015-11-30 2016-03-02 国网吉林省电力有限公司信息通信公司 一种电网资源管理与分配方法及系统
TW201732625A (zh) * 2016-03-14 2017-09-16 國立清華大學 基於Saltstack之OpenStack雲端運算平台自動化部署系統以及方法
CN106936636A (zh) * 2017-03-15 2017-07-07 无锡华云数据技术服务有限公司 一种快速部署容器化的云计算测试平台的实现方法
CN107172208A (zh) * 2017-06-30 2017-09-15 联想(北京)有限公司 服务器的部署方法及其系统
CN110457197A (zh) * 2019-08-19 2019-11-15 中国工商银行股份有限公司 服务测试方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN111198696A (zh) 2020-05-26

Similar Documents

Publication Publication Date Title
CN111198696B (zh) 一种基于裸机服务器的OpenStack大规模部署方法和系统
CN108228209B (zh) 自动更新服务器系统的元件的固件的系统、方法和介质
US9348646B1 (en) Reboot-initiated virtual machine instance migration
US9250672B2 (en) Cloning target machines in a software provisioning environment
CN111782232A (zh) 集群的部署方法、装置、终端设备及存储介质
US9886260B2 (en) Managing software version upgrades in a multiple computer system environment
CN108089913B (zh) 一种超融合系统的虚拟机部署方法
US10686755B2 (en) Assigning IP addresses and configuration parameters in hyper-converged infrastructure
KR102524126B1 (ko) 5g 인프라 구축을 위한 분산 클라우드 시스템의 설계 및 설치를 제공하는 장치 및 방법
US11201785B1 (en) Cluster deployment and management system
US10951471B2 (en) Mechanism for hardware configuration and software deployment
CN105306225B (zh) 一种基于Openstack的物理机远程关机方法
US9491050B2 (en) Systems and methods for infrastructure template provisioning in modular chassis systems
US11941406B2 (en) Infrastructure (HCI) cluster using centralized workflows
US11343141B2 (en) Methods and apparatus to migrate physical server hosts between virtual standard switches and virtual distributed switches in a network
CN104394223A (zh) 大规模计算机集群系统节点的自动化快速部署方法
US11689415B2 (en) Creating a highly-available private cloud gateway based on a two-node hyperconverged infrastructure cluster with a self-hosted hypervisor management system
CN109600439B (zh) 基于微服务的PaaS平台的部署方法及PaaS平台
US7882232B2 (en) Rapid resource provisioning with automated throttling
CN109799998A (zh) OpenStack集群配置及批量部署方法及系统
CN108989123A (zh) 一种服务器配置方法及装置
US20220407836A1 (en) Network fabric deployment system
US20110179169A1 (en) Special Values In Oracle Clusterware Resource Profiles
US10171292B1 (en) Deploying a cloud infrastructure in a remote site
KR100439175B1 (ko) 리눅스 기반의 클러스터 시스템의 운영체제 원격 자동설치 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20200526

Assignee: Fangxin Technology Co.,Ltd.

Assignor: HUNAN University

Contract record no.: X2024980016827

Denomination of invention: A method and system for large-scale deployment of OpenStack based on bare metal servers

Granted publication date: 20210629

License type: Common License

Record date: 20240929