CN117544641A - 云主机镜像上传方法和装置 - Google Patents
云主机镜像上传方法和装置 Download PDFInfo
- Publication number
- CN117544641A CN117544641A CN202311785173.4A CN202311785173A CN117544641A CN 117544641 A CN117544641 A CN 117544641A CN 202311785173 A CN202311785173 A CN 202311785173A CN 117544641 A CN117544641 A CN 117544641A
- Authority
- CN
- China
- Prior art keywords
- image
- storage
- uploaded
- back end
- uploading
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 67
- 230000008676 import Effects 0.000 claims description 9
- 238000007726 management method Methods 0.000 description 11
- 239000003818 cinder Substances 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本公开提供一种云主机镜像上传方法和装置,所述方法包括:基于镜像服务组件创建空镜像;对当前的存储后端进行识别;在识别出的存储后端包含存储驱动的情况下,基于存储驱动将待上传镜像导入到存储后端;将空镜像的地址参数赋值为存储后端中待上传镜像的路径链接,以完成对待上传镜像的上传。可以缓解大镜像上传慢的问题,减少对管理网络带宽的占用,兼容镜像服务组件对多存储后端的使用的同时,具有良好的扩展性。
Description
技术领域
本公开涉及云计算领域,具体涉及一种云主机镜像上传方法、装置、电子设备、存储介质和系统。
背景技术
随着云计算技术的日益成熟,各行各业越来越广泛地使用云环境取代传统的服务器。OpenStack作为当前私有云领域的事实标准,被广泛部署于各行各业。云主机镜像上传是OpenStack使用中的基础环节,OpenStack中的Glance组件负责镜像管理。Glance支持多种云主机镜像存储后端,如:本地文件系统、http、Cinder、Ceph等。
当使用非本地文件系统的存储后端时,在OpenStack平台上传虚拟机镜像,需首先通过HTTP/HTTPS连接将镜像上传到Glance组件,然后Glance再根据存储后端配置,使用对应方法将镜像上传至存储后端。这一过程对于镜像体积较大的场景,会造成上传缓慢且占用管理网络带宽的问题。
发明内容
本公开示例性实施例提供的云主机镜像上传方法、装置、电子设备、存储介质和系统,可以至少解决上述技术问题和上文未提及的其它技术问题。
根据本公开的一个方面,提供一种云主机镜像上传方法,所述方法包括:基于镜像服务组件创建空镜像;对当前的存储后端进行识别;在识别出的所述存储后端包含存储驱动的情况下,基于所述存储驱动将待上传镜像导入到所述存储后端;将所述空镜像的地址参数赋值为所述存储后端中所述待上传镜像的路径链接,以完成对所述待上传镜像的上传。
可选的,所述基于所述存储驱动将待上传镜像导入到所述存储后端,包括:基于所述存储驱动中的文件上传工具,将待上传镜像导入到所述存储后端。
可选的,所述基于镜像服务组件创建空镜像,包括:基于镜像服务组件创建与预定名称对应的所述空镜像,其中,所述空镜像包含身份标识信息。
可选的,所述将所述空镜像的地址参数赋值为所述存储后端中所述待上传镜像的路径链接,包括:将所述存储后端中所述待上传镜像的名称赋值为所述身份标识信息;将所述存储后端中所述待上传镜像的文件路径赋值为所述待上传镜像在所述存储后端中的路径连链接;基于所述身份标识信息,获取与所述空镜像对应的所述待上传镜像的路径连链接;基于获取到的所述待上传镜像的路径链接对所述空镜像的地址参数进行赋值。
可选的,所述对当前的存储后端进行识别,包括:基于所述存储后端的配置信息对所述存储后端进行识别,其中,所述配置信息包括:与default.enabled_backends和/或glance_store.default_backend配置相关的信息。
可选的,所述方法还包括:通过所述存储后端的预定属性信息来判断所述存储后端是否包含存储驱动。
可选的,所述方法还包括:在识别出的所述存储后端不包含所述存储驱动的情况下,返回报错提示。
可选的,所述方法还包括:在识别出的所述存储后端为本地的情况下,基于所述镜像服务组件对所述待上传镜像进行上传。
根据本公开的另一方面,还提供一种云主机镜像上传装置,所述装置包括:创建单元,被配置为:基于镜像服务组件创建空镜像;识别单元,被配置为:对当前的存储后端进行识别;导入单元,被配置为:在识别出的所述存储后端包含存储驱动的情况下,基于所述存储驱动将待上传镜像导入到所述存储后端;赋值单元,被配置为:将所述空镜像的地址参数赋值为所述存储后端中所述待上传镜像的路径链接,以完成对所述待上传镜像的上传。
根据本公开实施例的另一方面,还提供一种电子设备,包括:至少一个处理器;至少一个存储计算机可执行指令的存储器,其中,所述计算机可执行指令在被所述至少一个处理器运行时,促使所述至少一个处理器执行如上任一所述的云主机镜像上传方法。
根据本公开实施例的另一方面,还提供一种存储指令的计算机可读存储介质,当所述指令被至少一个处理器运行时,促使所述至少一个处理器执行如上任一所述的云主机镜像上传方法。
根据本公开实施例的另一方面,还提供一种包括至少一个计算装置和至少一个存储指令的存储装置的系统,其中,所述指令在被所述至少一个计算装置运行时,促使所述至少一个计算装置执行如上任一所述的云主机镜像上传方法。
本公开实施例提供的技术方案至少带来以下有益效果:
根据本公开的云主机镜像上传方法、装置、电子设备、存储介质和系统,可以通过识别存储后端并将待上传镜像导入到存储后端的调度方法这一中间层,对镜像上传的接口进行优化,使得可以不先经过HTTP/HTTPS将镜像传输到镜像服务组件Glance,而是直接将镜像上传至存储后端,再填充Glance中的记录。可以避免原有镜像服务组件Glance和HTTP/HTTPS之间的耦合关系带来的大镜像上传缓慢且占用管理网络带宽的问题,实现直接对接存储后端上传镜像,在兼容镜像服务组件对多存储后端的使用所带来的良好扩展性的同时,可以缓解大镜像上传慢的问题,减少对管理网络带宽的占用。并且,本公开可以作为热补丁进行应用,在保障操作一致性的同时,不会对已经存在的镜像产生任何影响,可以提升用户的交互体验。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1示出本公开示例性实施例的云主机镜像上传方法的流程图;
图2示出本公开示例性实施例的云主机镜像上传方法的概览流程图;
图3示出本公开示例性实施例的云主机镜像上传装置的框图;
图4示出本公开示例性实施例的电子设备的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在此需要说明的是,在本公开中出现的“若干项之中的至少一项”均表示包含“该若干项中的任意一项”、“该若干项中的任意多项的组合”、“该若干项的全体”这三类并列的情况。例如“包括A和B之中的至少一个”即包括如下三种并列的情况:(1)包括A;(2)包括B;(3)包括A和B。又例如“执行步骤一和步骤二之中的至少一个”,即表示如下三种并列的情况:(1)执行步骤一;(2)执行步骤二;(3)执行步骤一和步骤二。
OpenStack是一个开源的云计算基础设施项目,可用于构建和管理私有云和公有云,提供虚拟机、裸机和容器资源给用户使用。是当前世界上部署最广泛的开源云软件。OpenStack不是单一软件,它被分解为多个组件,允许根据需求自由组合、即插即用。
API(Application programming interface,应用程序编程接口),可以定义多个软件中介之间的交互,以及可以进行的调用(call)或请求(request)的种类,如何进行调用或发出请求,应使用的数据格式,应遵循的惯例等。
Glance是OpenStack的镜像服务组件,提供对虚拟机镜像的管理,包括镜像的发现、获取、保存等功能。
“镜像”(images)可以代表预装好操作系统和可能包含预配置应用的磁盘映像,用户可以基于这些镜像来创建和启动新的云主机(instances)。上传镜像到Glance是为了能够在OpenStack中启动和运行虚拟机,Glance服务会帮助分发和管理这些镜像,以便它们可以被实例化为运行中的云主机。
Cinder是OpenStack的块存储组件,提供对块存储设备的管理,包括块存储设备的创建、删除、快照、备份等功能。
Ceph是一个针对高性能、高可靠性及可扩展性设计的开源分布式存储系统,提供构建在通用分布式集群基础上的对象存储、块存储和文件存储。Ceph提供完全分布式操作,不受单点故障影响,可扩展至EB级别(1EB=1024PB)。
通过HTTP/HTTPS连接将镜像上传到Glance组件,然后Glance再根据存储后端配置,使用对应方法将镜像上传至存储后端这一过程,可以使Glance对镜像进行格式转换等处理,但对于镜像体积较大的场景,第一阶段通过Glance API使用HTTP/HTTPS协议传输镜像到Glance的过程中,会存在上传缓慢且占用管理网络带宽的问题。
为了解决上述问题,本公开提供了一种云主机镜像上传方法、装置、电子设备、存储介质和系统,可以通过识别存储后端并将待上传镜像导入到存储后端的调度方法这一中间层,对镜像上传的接口进行优化,使得可以不先经过HTTP/HTTPS将镜像传输到镜像服务组件Glance,而是直接将镜像上传至存储后端,再填充Glance中的记录。可以避免原有镜像服务组件Glance和HTTP/HTTPS之间的耦合关系带来的大镜像上传缓慢且占用管理网络带宽的问题,实现直接对接存储后端上传镜像,在兼容镜像服务组件对多存储后端的使用所带来的良好扩展性的同时,可以缓解大镜像上传慢的问题,减少对管理网络带宽的占用。并且,本公开可以作为热补丁进行应用,在保障操作一致性的同时,不会对已经存在的镜像产生任何影响,可以提升用户的交互体验。
下面,将参照图1至图4具体描述本公开的云主机镜像上传方法、装置、电子设备、存储介质和系统。
图1示出本公开示例性实施例的云主机镜像上传方法的流程图。
参照图1,在步骤101,可以基于镜像服务组件创建空镜像。
根据本公开示例性的实施例,在OpenStack中,原始镜像创建接口被定义在OpenStack Image service(镜像服务组件,Glance)中。可以基于OpenStack中的原始镜像创建接口,http(s)://***/v2/images,来创建空镜像,并且暂不在空镜像中填充数据,在这个示例中,***为OpenStack环境的地址。
根据本公开示例性的实施例,基于镜像服务组件创建空镜像,可以包括但不限于如下步骤:可以基于镜像服务组件创建与预定名称对应的空镜像,其中,空镜像可以包含身份标识信息。
根据本公开示例性的实施例,基于镜像服务组件创建空镜像的过程中,可以首先定义此空镜像的预定名称,那么可以将空镜像的预定名称作为入参,通过将入参传入镜像服务组件的镜像创建接口的方式,可以得到包含身份标识信息的空镜像这一出参。在一个例子中,空镜像的预定名称可以为image01,那么入参可以表示为:
{
“name”:“image01”
}
出参可以表示为:
上述出参中的“id”所对应的值即可作为空镜像的身份标识信息。可以理解的是,上述空镜像的身份标识信息的实际取值用于作为唯一标识符与空镜像的预定名称一一对应。
在步骤102,可以对当前的存储后端进行识别。
根据本公开示例性的实施例,可以通过当前的存储后端的配置信息或标识信息等对当前的存储后端进行识别,存储后端的配置信息或标识信息等可以是提前预设的,以通过此存储后端的配置信息或标识信息表明当前使用的存储后端的类型。
根据本公开示例性的实施例,对当前的存储后端进行识别,可以包括但不限于如下步骤:可以基于存储后端的配置信息对存储后端进行识别,其中,配置信息可以包括但不限于:与default.enabled_backends和/或glance_store.default_backend配置相关的信息。
根据本公开示例性的实施例,要识别当前使用的存储后端,可以查看OpenStack配置文件中的相关配置章节。OpenStack的各个服务都有自己的配置文件,用于详细说明服务运行时使用的各种配置选项。对于Cinder和Glance这两个服务,可以分别通过查看配置文件“cinder.conf”和“glance-api.conf”来识别当前使用的存储后端。
对于Cinder(块存储服务),可以通过检查“cinder.conf”配置文件中的与default.enabled_backends配置相关的信息来确定已启用哪些存储后端。
例如:
```ini
#在cinder.conf文件中
[DEFAULT]
enabled_backends=lvm,ceph
```
这里显示,有两个后端被命名为“lvm”和“ceph”,并且都已启用;“lvm”可以表示本地文件系统,“ceph”可以表示Ceph存储系统,Ceph存储系统可以使用RBD(RADOS BlockDevice)这一存储方式,RBD可以允许镜像存储在远程分布式存储中,提供高性能和高可靠性。
对于Glance,可以在“glance-api.conf”配置文件中检查与glance_store.default_backend配置相关的信息,以识别目前使用哪个后端。例如:
```ini
#在glance-api.conf文件中
[glance_store]
default_backend=minio
```
上述内容可以表明目前使用的是minio这一存储后端。
可以理解的是,步骤101和102之间没有执行的先后顺序。
根据本公开示例性的实施例,在识别出的存储后端为本地的情况下,可以基于镜像服务组件对待上传镜像进行上传。
根据本公开示例性的实施例,在OpenStack中,当镜像服务(Glance)的存储后端配置为使用本地文件系统LVM时,可以使用`openstack image create`命令对待上传镜像这一新镜像进行上传,例如:
```bash
openstack image create"MyImage"--file/path/to/your/image--disk-formatqcow2--container-format bare--public
```
其中“/path/to/your/image”可以表示镜像文件的路径,“qcow2”可以表示磁盘格式(可能是raw或其他格式),bare可以表示容器格式没有任何元数据封装。
在步骤103,可以在识别出的存储后端包含存储驱动的情况下,基于存储驱动将待上传镜像导入到存储后端。
根据本公开示例性的实施例,可以通过存储后端的预定属性信息来判断存储后端是否包含存储驱动。
根据本公开示例性的实施例,可以通过在存储后端中预先定义相关的属性信息来表明当前的存储后端是否支持快速上传功能,例如,可以预先定义包括但不限于SUPPORTS_FAST_UPLOAD属性等信息;SUPPORTS_FAST_UPLOAD属性可以作为存储后端中包含预定属性信息的一个布尔标志(flag),用于表明存储后端是否支持快速上传功能。在判断存储后端是否包含存储驱动(driver)的过程中,可以根据SUPPORTS_FAST_UPLOAD的值推断该存储后端是否使用了特定的存储驱动或技术以支持快速上传。
例如,在一个存储后端中,可以通过Python定义如下内容:
在上述代码示例中,SUPPORTS_FAST_UPLOAD可以被直接定义在backend类中,可以通过检查该属性的布尔值来确定后端是否支持快速上传。上述SUPPORTS_FAST_UPLOAD的布尔值为True,则可以表明当前的存储后端包含支持快速上传的存储驱动,若上述SUPPORTS_FAST_UPLOAD的布尔值为False,则可以表明当前的存储后端不包含支持快速上传的存储驱动。
根据本公开示例性的实施例,基于存储驱动将待上传镜像导入到存储后端,可以包括但不限于以下步骤:可以基于存储驱动中的文件上传工具,将待上传镜像导入到存储后端。
根据本公开示例性的实施例,可以预先定义一个用于镜像上传的方法,来调用不同存储后端中的文件上传工具以实现将待上传镜像导入到存储后端,例如,可以预先定义一个类似于如下upload的方法,来调用不同存储后端中的文件上传工具以实现将待上传镜像导入到存储后端:
if backend.SUPPORTS_FAST_UPLOAD:
backend.upload(context,image_name)
context可以表示当前的请求上下文,在OpenStack中可以用于传递用户和租户的信息;image_name可以表示想要创建或已经创建的镜像的名称或标识符。可以通过backend.upload来调用每个存储后端对应的upload方法,以具体实现与该存储后端交互所需的逻辑。例如,在当前的存储后端为Ceph的情况下,可以进行如下的调用实现:
```
backend=ceph_backend#假设使用的是Ceph
backend.upload(context,image_id)
```
具体的,当存储后端为Ceph时,upload方法可以调用Ceph接口这一文件上传工具将待上传镜像导入到Ceph存储后端;当存储后端为HTTP时,upload方法可以调用HTTP这一文件上传工具将待上传镜像导入到HTTP存储后端;当存储后端为Cinder时,upload方法可以调用Cinder API这一文件上传工具将待上传镜像导入到Cinder存储后端。
如果在Glance的配置文件中指定了使用Ceph作为存储后端,则backend=self.image_backend可以初始化为一个对应的实现了Ceph存储逻辑的Python对象,可以负责管理后端存储的交互,例如上传镜像、获取镜像、删除镜像等,此对象可以遵循Glance中定义的存储后端接口,实现所有必要的方法来与Ceph进行交互。当调用backend.upload()函数时,实际上是在调用self.image_backend所对应的后端对象的upload()方法。这个方法会根据其实现细节,交互相应的存储后端来完成上传任务。其他存储后端也类似地适用backend=self.image_backend。
可以理解的是,实际的OpenStack Glance或者其他OpenStack组件可能更复杂,它们可能会涉及认证、错误处理、多后端的支持等更多的功能。
根据本公开示例性的实施例,在识别出的存储后端不包含存储驱动的情况下,可以返回报错提示。
根据本公开示例性的实施例,在识别出的存储后端不包含存储驱动的情况下,可以返回上述不限于“存储后端不包含支持快速上传的存储驱动”的报错提示。
在步骤104,可以将空镜像的地址参数赋值为存储后端中待上传镜像的路径链接,以完成对待上传镜像的上传。
根据本公开示例性的实施例,将空镜像的地址参数赋值为存储后端中待上传镜像的路径链接,可以包括以下步骤:可以将存储后端中待上传镜像的名称赋值为身份标识信息;可以将存储后端中待上传镜像的文件路径赋值为待上传镜像在存储后端中的路径连链接;基于身份标识信息,可以获取与空镜像对应的待上传镜像的路径连链接;可以基于获取到的待上传镜像的路径链接对空镜像的地址参数进行赋值。
根据本公开示例性的实施例,可以定义存储后端中待上传镜像的名称为“image_name”,并可以将存储后端中待上传镜像的名称赋值为身份标识信息,以将待上传镜像与空镜像进行关联,实现待上传镜像与空镜像之间的一一对应,例如,可以将存储后端中待上传镜像的名称赋值为空镜像的id的值:
image_name=“b2173dd3-7ad6-4362-baa6-a68bce3565cb”
可以定义存储后端中待上传镜像的文件路径“image_file”,并可以将存储后端中待上传镜像的文件路径赋值为待上传镜像在存储后端中的路径连链接“image.img”,例如:
image_file=“image.img”
基于身份标识信息,就可以通过待上传镜像与空镜像之间的一一对应关系,来获取与空镜像对应的待上传镜像的路径连链接“image.img”,接着可以基于获取到的待上传镜像的路径链接“image.img”对空镜像的地址参数located url进行赋值,以将空镜像的地址链接到存储后端中待上传镜像的地址,以完成将存储后端中的待上传镜像通过创建的空镜像上传到镜像服务组件(Glance)中。
具体的,在当前使用的存储后端为Ceph时,在Ceph集群中,可以通过librbd库获取fsid,得到rbd url,<fsid>是集群的文件系统标识符(Filesystem ID),这个ID是集群级的唯一标识,url=backend.get_url(image_name)可以返回与待上传镜像名称image_name对应的访问url链接,然后通过镜像接口,设置空镜像的location为url。
图2示出本公开示例性实施例的云主机镜像上传方法的概览流程图。
参照图2,根据本公开示例性的实施例,以OpenStack为例,在OpenStack集群中,可以通过OpenStack的原生接口创建一个空虚拟机镜像,接着可以对当前使用的存储后端进行识别,如果当前使用的存储后端中包含支持快速上传的存储驱动,则可以调度当前使用的存储后端对应的存储驱动(driver)将待上传镜像上传(导入)到当前使用的存储后端中,最后可以将空镜像的地址参数(location)设置为存储后端中待上传镜像的链接(url),以实现将待上传镜像通过创建的空镜像上传到镜像服务组件(Glance)中;如果当前使用的存储后端中不包含支持快速上传的存储驱动,则可以返回报错提示。
根据本公开示例性的实施例,可以通过增加中间层,识别存储后端并对不同存储后端实现对应的存储驱动,将不同存储后端对待上传镜像的导入操作抽象为统一接口;可以跳过原有的通过Glance API传输镜像的过程,仅创建空镜像;可以直接在存储后端导入镜像,并将空镜像的地址参数(location)设置为存储后端中对应待上传镜像的链接(url),以实现将待上传镜像通过创建的空镜像上传到镜像服务组件(Glance)中。可以有效缓解大镜像上传慢问题,以及有效解决占用管理网络带宽的问题。通过存储驱动机制实现对不同存储后端的支持,可以保障原有镜像服务组件对多存储后端的功能兼容及良好的未来扩展空间。
图3示出本公开示例性实施例的云主机镜像上传装置的框图。
参照图3,本公开示例性实施例还提供一种云主机镜像上传装置300,可以包括但不限于创建单元301,识别单元302,导入单元303,赋值单元304。
创建单元301可以基于镜像服务组件创建空镜像。
识别单元302可以对当前的存储后端进行识别。
导入单元303可以在识别出的存储后端包含存储驱动的情况下,基于存储驱动将待上传镜像导入到存储后端。
赋值单元304可以将空镜像的地址参数赋值为存储后端中待上传镜像的路径链接,以完成对待上传镜像的上传。
可以理解的是,上述云主机镜像上传装置300的示例性实施例中,具体的实现过程与上述云主机镜像上传方法的示例性实施例大致相同,在此不做赘述。云主机镜像上传装置300可被分别配置为执行特定功能的软件、硬件、固件或上述项的任意组合。例如,这些装置可对应于专用的集成电路,也可对应于纯粹的软件代码,还可对应于软件与硬件相结合的模块。此外,这些装置所实现的一个或多个功能也可由物理实体设备(例如,处理器、客户端或服务器等)中的组件来统一执行。
图4示出本公开示例性实施例的电子设备的框图。
参照图4,电子设备400包括至少一个存储器401和至少一个处理器402,所述至少一个存储器401中存储有计算机可执行指令集合,当计算机可执行指令集合被至少一个处理器402执行时,执行根据本公开的示例性实施例的云主机镜像上传方法。
作为示例,电子设备400可以是PC计算机、平板装置、个人数字助理、智能手机、或其他能够执行上述指令集合的装置。这里,电子设备400并非必须是单个的电子设备,还可以是任何能够单独或联合执行上述指令(或指令集)的装置或电路的集合体。电子设备400还可以是集成控制系统或系统管理器的一部分,或者可被配置为与本地或远程(例如,经由无线传输)以接口互联的便携式电子设备。
在电子设备400中,处理器402可包括中央处理器(CPU)、图形处理器(GPU)、可编程逻辑装置、专用处理器系统、微控制器或微处理器。作为示例而非限制,处理器还可包括模拟处理器、数字处理器、微处理器、多核处理器、处理器阵列、网络处理器等。
处理器402可运行存储在存储器401中的指令或代码,其中,存储器401还可以存储数据。指令和数据还可经由网络接口装置而通过网络被发送和接收,其中,网络接口装置可采用任何已知的传输协议。
存储器401可与处理器402集成为一体,例如,将RAM或闪存布置在集成电路微处理器等之内。此外,存储器401可包括独立的装置,诸如,外部盘驱动、存储阵列或任何数据库系统可使用的其他存储装置。存储器401和处理器402可在操作上进行耦合,或者可例如通过I/O端口、网络连接等互相通信,使得处理器402能够读取存储在存储器中的文件。
此外,电子设备400还可包括视频显示器(诸如,液晶显示器)和用户交互接口(诸如,键盘、鼠标、触摸输入装置等)。电子设备400的所有组件可经由总线和/或网络而彼此连接。
根据本公开的示例性实施例,还可提供一种存储指令的计算机可读存储介质,其中,当指令被至少一个计算装置运行时,促使至少一个计算装置执行上述的云主机镜像上传方法。
这里的计算机可读存储介质的示例包括:只读存储器(ROM)、随机存取可编程只读存储器(PROM)、电可擦除可编程只读存储器(EEPROM)、随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、非易失性存储器、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R、BD-R LTH、BD-RE、蓝光或光盘存储器、硬盘驱动器(HDD)、固态硬盘(SSD)、卡式存储器(诸如,多媒体卡、安全数字(SD)卡或极速数字(XD)卡)、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘以及任何其他装置,所述任何其他装置被配置为以非暂时性方式存储计算机程序以及任何相关联的数据、数据文件和数据结构并将所述计算机程序以及任何相关联的数据、数据文件和数据结构提供给处理器或计算机使得处理器或计算机能执行所述计算机程序。上述计算机可读存储介质中的计算机程序可在诸如客户端、主机、代理装置、服务器等计算机设备中部署的环境中运行,此外,在一个示例中,计算机程序以及任何相关联的数据、数据文件和数据结构分布在联网的计算机系统上,使得计算机程序以及任何相关联的数据、数据文件和数据结构通过一个或多个处理器或计算机以分布式方式存储、访问和执行。应注意,所述指令还可用于执行除了上述步骤以外的附加步骤或者在执行上述步骤时执行更为具体的处理,这些附加步骤和进一步处理的内容已经在进行相关方法的描述过程中提及,因此这里为了避免重复将不再进行赘述。
本公开另一实施方式涉及一种包括至少一个计算装置和至少一个存储指令的存储装置的系统,其中,指令在被至少一个计算装置运行时,促使至少一个计算装置执行上述的云主机镜像上传方法。
应注意,根据本公开示例性实施例的系统可完全依赖计算机程序或指令的运行来实现相应的功能,即,各个单元在计算机程序的功能架构中与各步骤相应,使得整个系统通过专门的软件包(例如,lib库)而被调用,以实现相应的功能。
另一方面,当上述系统以软件、固件、中间件或微代码实现时,用于执行相应操作的程序代码或者代码段可以存储在诸如存储介质的计算机可读介质中,使得至少一个处理器或至少一个计算装置可通过读取并运行相应的程序代码或者代码段来执行相应的操作。
根据本公开示例性的实施例,存储装置可与计算装置集成为一体,例如,将RAM或闪存布置在集成电路微处理器等之内。此外,存储装置可包括独立的装置,诸如,外部盘驱动、存储阵列或任何数据库系统可使用的其他存储装置。存储装置和计算装置可在操作上进行耦合,或者可例如通过I/O端口、网络连接等互相通信,使得计算装置能够读取存储在存储装置中的指令。
根据本公开提供的云主机镜像上传方法、装置、电子设备、存储介质和系统,可以通过识别存储后端并将待上传镜像导入到存储后端的调度方法这一中间层,对镜像上传的接口进行优化,使得可以不先经过HTTP/HTTPS将镜像传输到镜像服务组件Glance,而是直接将镜像上传至存储后端,再填充Glance中的记录。可以避免原有镜像服务组件Glance和HTTP/HTTPS之间的耦合关系带来的大镜像上传缓慢且占用管理网络带宽的问题,实现直接对接存储后端上传镜像,在兼容镜像服务组件对多存储后端的使用所带来的良好扩展性的同时,可以缓解大镜像上传慢的问题,减少对管理网络带宽的占用。并且,本公开可以作为热补丁进行应用,在保障操作一致性的同时,不会对已经存在的镜像产生任何影响,可以提升用户的交互体验。
以上描述了本公开的各示例性实施例,应理解,上述描述仅是示例性的,并非穷尽性的,本公开不限于所披露的各示例性实施例。在不偏离本公开的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。因此,本公开的保护范围应该以权利要求的范围为准。
Claims (12)
1.一种云主机镜像上传方法,其特征在于,所述方法包括:
基于镜像服务组件创建空镜像;
对当前的存储后端进行识别;
在识别出的所述存储后端包含存储驱动的情况下,基于所述存储驱动将待上传镜像导入到所述存储后端;
将所述空镜像的地址参数赋值为所述存储后端中所述待上传镜像的路径链接,以完成对所述待上传镜像的上传。
2.如权利要求1所述的上传方法,其特征在于,所述基于所述存储驱动将待上传镜像导入到所述存储后端,包括:
基于所述存储驱动中的文件上传工具,将待上传镜像导入到所述存储后端。
3.如权利要求1所述的上传方法,其特征在于,所述基于镜像服务组件创建空镜像,包括:
基于镜像服务组件创建与预定名称对应的所述空镜像,其中,所述空镜像包含身份标识信息。
4.如权利要求3所述的上传方法,其特征在于,所述将所述空镜像的地址参数赋值为所述存储后端中所述待上传镜像的路径链接,包括:
将所述存储后端中所述待上传镜像的名称赋值为所述身份标识信息;
将所述存储后端中所述待上传镜像的文件路径赋值为所述待上传镜像在所述存储后端中的路径连链接;
基于所述身份标识信息,获取与所述空镜像对应的所述待上传镜像的路径连链接;
基于获取到的所述待上传镜像的路径链接对所述空镜像的地址参数进行赋值。
5.如权利要求1所述的上传方法,其特征在于,所述对当前的存储后端进行识别,包括:
基于所述存储后端的配置信息对所述存储后端进行识别,其中,所述配置信息包括:与default.enabled_backends和/或glance_store.default_backend配置相关的信息。
6.如权利要求1所述的上传方法,其特征在于,所述方法还包括:
通过所述存储后端的预定属性信息来判断所述存储后端是否包含存储驱动。
7.如权利要求1所述的上传方法,其特征在于,所述方法还包括:
在识别出的所述存储后端不包含所述存储驱动的情况下,返回报错提示。
8.如权利要求1所述的上传方法,其特征在于,所述方法还包括:
在识别出的所述存储后端为本地的情况下,基于所述镜像服务组件对所述待上传镜像进行上传。
9.一种云主机镜像上传装置,其特征在于,所述装置包括:
创建单元,被配置为:基于镜像服务组件创建空镜像;
识别单元,被配置为:对当前的存储后端进行识别;
导入单元,被配置为:在识别出的所述存储后端包含存储驱动的情况下,基于所述存储驱动将待上传镜像导入到所述存储后端;
赋值单元,被配置为:将所述空镜像的地址参数赋值为所述存储后端中所述待上传镜像的路径链接,以完成对所述待上传镜像的上传。
10.一种电子设备,其特征在于,包括:
至少一个处理器;
至少一个存储计算机可执行指令的存储器,
其中,所述计算机可执行指令在被所述至少一个处理器运行时,促使所述至少一个处理器执行如权利要求1到8中任一项所述的云主机镜像上传方法。
11.一种存储指令的计算机可读存储介质,其特征在于,当所述指令被至少一个处理器运行时,促使所述至少一个处理器执行如权利要求1-8中任一项所述的云主机镜像上传方法。
12.一种包括至少一个计算装置和至少一个存储指令的存储装置的系统,其中,所述指令在被所述至少一个计算装置运行时,促使所述至少一个计算装置执行如权利要求1-8中任意一项所述的云主机镜像上传方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311785173.4A CN117544641A (zh) | 2023-12-22 | 2023-12-22 | 云主机镜像上传方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311785173.4A CN117544641A (zh) | 2023-12-22 | 2023-12-22 | 云主机镜像上传方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117544641A true CN117544641A (zh) | 2024-02-09 |
Family
ID=89784389
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311785173.4A Pending CN117544641A (zh) | 2023-12-22 | 2023-12-22 | 云主机镜像上传方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117544641A (zh) |
-
2023
- 2023-12-22 CN CN202311785173.4A patent/CN117544641A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10558649B2 (en) | Database server system monitoring | |
US9898354B2 (en) | Operating system layering | |
US20220043676A1 (en) | Event proxies for functions-as-a-service (faas) infrastructures | |
US20160092119A1 (en) | Data migration between different types of storage systems | |
US9614931B2 (en) | Identifying a resource set require for a requested application and launching the resource set in a container for execution in a host operating system | |
CN111090498B (zh) | 虚拟机启动方法、装置、计算机可读存储介质及电子设备 | |
US10594557B2 (en) | Filesystem share auto-detect | |
US10705763B2 (en) | Scale and performance for persistent containers using SCSI second level addressing to map storage volume to host of container environment, wherein said storage volume is scanned at said SCSI second level addressing without rescanning at OS level virtualization | |
US10698622B2 (en) | Maintaining container to storage volume relations | |
US11172024B2 (en) | Co-location of storage buckets with containerized applications | |
US11726953B2 (en) | Synchronizing storage policies of objects migrated to cloud storage | |
US20180144026A1 (en) | Selectively retrieving data from remote share nothing computer clusters | |
US20200412788A1 (en) | Asynchronous workflow and task api for cloud based processing | |
US20230266958A1 (en) | Method for creating private image in public cloud and related device | |
US10684895B1 (en) | Systems and methods for managing containerized applications in a flexible appliance platform | |
US9298487B2 (en) | Managing virtual machine images in a distributed computing environment | |
US20230086195A1 (en) | Efficient and extensive function groups with multi-instance function support for cloud based processing | |
CN115469807A (zh) | 磁盘功能配置方法、装置、设备及存储介质 | |
CN115774742A (zh) | 私有云的数据存储新增方法、装置、设备、介质及产品 | |
CN117544641A (zh) | 云主机镜像上传方法和装置 | |
US11782971B2 (en) | Static and dynamic NBMP function image retrieval and scale ranking | |
US11438398B2 (en) | 3rd generation partnership project (3gpp) framework for live uplink streaming (flus) sink capabilities determination | |
US20210141562A1 (en) | Output management in command line interface | |
CN117009308B (zh) | 基于兼容层的可执行文件加载方法及系统 | |
US20230409628A1 (en) | Static and dynamic nbmp function image retrieval and scale ranking |
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 |