适用于制造技术

技术编号:39736950 阅读:7 留言:0更新日期:2023-12-17 23:39
本发明专利技术提供了一种适用于

【技术实现步骤摘要】
适用于RDMA网络的远程容器快速启动方法和系统


[0001]本专利技术涉及容器启动
,具体地,涉及一种适用于
RDMA
网络的远程容器快速启动方法和系统


技术介绍

[0002]容器是操作系统重要的进程执行抽象

容器是与系统其他部分隔离开的一个或一组进程

运行这些进程需要提供一个文件系统,而不是使用原有系统的文件系统,这意味着从开发,测试再到生产的流程当中,容器带来了可移植性和一致性,拥有更快的开发效率

容器技术较于普遍也易于使用,成为
IT
安全方面的重要组成部分
。Docker

Podman

Kata
等都是常见的容器项目

[0003]容器技术的发展经历了多个阶段:
1979
年,
changeroot
技术的引入开启了进程间隔离的大门;
2000
年,
FreeBSD Jail
技术将
FreeBSD
系统分区成多个子系统
(Jail)

2008
年,
cgroups(
控制组
)
技术被引入内核,其能够控制和限制一个进程或多组进程的资源使用,成为了保持环境隔离的重要框架;
2013
年,
Docker
出现,容器的关注度出现爆发性的增长
r/>[0004]启动容器需要一系列繁琐的隔离环境设置,如
cgroup

namespace。
除从之外,容器还需要初始化语言运行时
(

Java
虚拟机
)
的内存

尽管容器提供了隔离并简化了应用开发部署,上述初始化步骤会显著提高启动的时延,在数据中心新兴低时延应用场景下会显著制约应用性能

启动开销在远程启动场景,即容器镜像不在启动机器本地时更为明显,因为此时机器会额外从网络传输容器的镜像

[0005]目前,只有
Checkpoint/Restore
技术
(C/R)
能加速远程容器的启动

但是,
C/R
方法依赖于文件来管理容器的镜像快照,在远程启动场景中会引入分布式文件系统的软件开销,这些开销在快速网络
(

RDMA)
场景下会更为明显,使得远程容器启动无法完全利用好
RDMA
的高带宽和低时延

[0006]专利文献
CN114168255A(
申请号:
CN202010949478.4)
公开了一种容器云平台中异构指令集容器的运行方法和装置,所述方法包括:基于来自用户终端的工作负载部署信息和集群负载状态选择用于部署工作负载的节点;基于选择的节点的芯片类型和工作负载所使用的容器镜像的名称
/
或地址从镜像仓库获取容器镜像,在不存在申威或龙芯指令集版本的情况下,在选择的节点上启动经裁剪的
QEMU
,构建基于
x86

64
指令集的虚拟机;在构建的虚拟机中加载编译的封装有容器运行时的虚拟机内核;在内核初始化后加载容器运行时,并运行用户指定的容器镜像启动异构指令集容器内的一个或多个应用

[0007]总体而言,现有的技术对于跨机器间的容器启动仍存在很大的不足


技术实现思路

[0008]针对现有技术中的缺陷,本专利技术的目的是提供一种适用于
RDMA
网络的远程容器快速启动方法和系统

[0009]根据本专利技术提供的适用于
RDMA
网络的远程容器快速启动方法,包括:
[0010]步骤1:通过机器内核对本地的容器进行快照操作,生成存放在内存当中的数据结构,作为容器描述符;
[0011]步骤2:在远程启动时,通过远程机器初始化一个空的容器;
[0012]步骤3:使用
RDMA
将容器描述符读回;
[0013]步骤4:根据容器描述符的内容设置空容器的隔离环境;
[0014]步骤5:根据容器描述符中的页表,将空容器的内存映射到储存快照的机器;
[0015]步骤6:在远程机器完成容器启动后,开始执行容器

[0016]优选的,所述容器描述符包含容器的执行状态,由包含该机器
RDMA
网卡设备的地址

处理程序的
ID
和一个证明密钥进行唯一标识

[0017]优选的,内存映射过程为,将空容器的页表设置为描述符中的页表,并将页表项的
present
位置为0,并使用一个空闲的位将页表项标记为远端;
[0018]容器启动过程为,将空容器的
CPU
寄存器的值设为标记符里
CPU
的值,并将控制流返回给容器

[0019]优选的,远程机器使用
RDMA
网卡,通过单向
RDMA
操作进行容器描述符的读取

[0020]优选的,当空容器发生缺页时,若页表的地址在远端机器,则使用
RDMA
将该地址的内存页读回到本地;若容器执行时如果发生缺页异常,由
RDMA
进行直接读取

[0021]根据本专利技术提供的适用于
RDMA
网络的远程容器快速启动系统,包括:
[0022]模块
M1
:通过机器内核对本地的容器进行快照操作,生成存放在内存当中的数据结构,作为容器描述符;
[0023]模块
M2
:在远程启动时,通过远程机器初始化一个空的容器;
[0024]模块
M3
:使用
RDMA
将容器描述符读回;
[0025]模块
M4
:根据容器描述符的内容设置空容器的隔离环境;
[0026]模块
M5
:根据容器描述符中的页表,将空容器的内存映射到储存快照的机器;
[0027]模块
M6
:在远程机器完成容器启动后,开始执行容器

[0028]优选的,所述容器描述符包含容器的执行状态,由包含该机器
RDMA
网卡设备的地址

处理程序的
ID
和一个证明密钥进行唯一标识

[0029]优选的,内存映射过程为,将空容器的页表设置为描述符中的页表,并将页表项的
present
位置为0,并使用一个空闲的位将页表项本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.
一种适用于
RDMA
网络的远程容器快速启动方法,其特征在于,包括:步骤1:通过机器内核对本地的容器进行快照操作,生成存放在内存当中的数据结构,作为容器描述符;步骤2:在远程启动时,通过远程机器初始化一个空的容器;步骤3:使用
RDMA
将容器描述符读回;步骤4:根据容器描述符的内容设置空容器的隔离环境;步骤5:根据容器描述符中的页表,将空容器的内存映射到储存快照的机器;步骤6:在远程机器完成容器启动后,开始执行容器
。2.
根据权利要求1所述的适用于
RDMA
网络的远程容器快速启动方法,其特征在于,所述容器描述符包含容器的执行状态,由包含该机器
RDMA
网卡设备的地址

处理程序的
ID
和一个证明密钥进行唯一标识
。3.
根据权利要求1所述的适用于
RDMA
网络的远程容器快速启动方法,其特征在于,内存映射过程为,将空容器的页表设置为描述符中的页表,并将页表项的
present
位置为0,并使用一个空闲的位将页表项标记为远端;容器启动过程为,将空容器的
CPU
寄存器的值设为标记符里
CPU
的值,并将控制流返回给容器
。4.
根据权利要求1所述的适用于
RDMA
网络的远程容器快速启动方法,其特征在于,远程机器使用
RDMA
网卡,通过单向
RDMA
操作进行容器描述符的读取
。5.
根据权利要求1所述的适用于
RDMA
网络的远程容器快速启动方法,其特征在于,当空容器发生缺页时,若页表的地址在远端机器,则使用
RDMA
将该地址的内存页读回到本地;若容器执行时如果发生缺页异常,由
RDMA
进行直接读取
。6.
一种适用于
RDMA
网络的远程容器快速启动系统,其特征在于,...

【专利技术属性】
技术研发人员:魏星达陈榕杨宇晗古金宇陈海波
申请(专利权)人:上海交通大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1