一种改进的安全容器启动方法与流程

文档序号:37672306发布日期:2024-04-18 20:45阅读:20来源:国知局
一种改进的安全容器启动方法与流程

本发明属于it与软件开发领域,尤其涉及一种改进的安全容器启动方法。


背景技术:

1、安全容器是开发用于提供额外的安全层的,它是一种使用微虚机隔离的容器,把每个容器都用单独的微虚机进行隔离。而普通容器是共享主机的资源和内核,因此安全容器相比普通容器具有更好的隔离性和安全性。

2、正是由于安全容器是通过单独的微虚机进行隔离的,那么,安全容器在启动时比普通容器多了启动微虚机的时间,以及运行时比普通容器多了微虚机的内存开销。因此,安全容器的启动速度较慢、占用内存资源较多。


技术实现思路

1、本发明所要解决的技术问题是针对背景技术的不足提供一种改进的安全容器启动方法,通过给virtio-vsock设备接一个分流服务,使得原本只能用于安全容器运行时与微虚机用户空间agent通信的virtio-vsock设备还可以同时多提供一条通信通道用于实现virtio-mmio设备热插拔功能以替代传统的高级配置与电源接口acpi热插拔;从而避免微虚机启动过程中对acpi设备的模拟,实现减少微虚机启动时间和内存开销,以解决安全容器的启动速度较慢、内存开销较大的问题。

2、本发明为解决上述技术问题采用以下技术方案:

3、一种改进的安全容器启动方法,通过给virtio-vsock设备接一个分流服务,用于使原本只能用于安全容器运行时与微虚机用户空间agent通信的virtio-vsock设备同时,多提供一条通信通道用于实现virtio-mmio设备热插拔功能以替代传统的高级配置与电源接口acpi热插拔;具体包含以下三部分;

4、一、启动安全容器;

5、二、分流服务;

6、三、安全容器热插拔virtio-mmio设备。

7、作为本发明一种改进的安全容器启动方法的进一步优选方案,启动安全容器具体如下:

8、1)将virtio-vsock设备的数据包重定向经过分流服务并且virtio-vsock设备侦听分流服务对象的文件描述符,分流服务侦听virtio-mmio热插拔服务对象的文件描述符,分流服务侦听安全容器运行时侦听的unixsocket文件的文件描述符;

9、2)在微虚机启动一个virtio-mmio热插拔驱动侦听vitio-vsock设备的0xdc端口;

10、3)分流服务侦听到容器运行时的启动容器请求就向agent请求在微虚机内部启动容器。

11、作为本发明一种改进的安全容器启动方法的进一步优选方案,分流服务具体如下:

12、通过给virtio-vsock设备接一个分流服务使得原本只能用于安全容器运行时与微虚机用户空间agent通信的virtio-vsock设备,同时用于virtio-mmio热插拔服务与微虚virtio-mmio热插拔驱动的通信。

13、作为本发明一种改进的安全容器启动方法的进一步优选方案,分流服务一方面会收到来自vitio-vsock设备的包,另一方面会收到来自安全容器runtime或virtio-mmio热插拔服务的包,分流服务针对不同来源的包有各自的处理机制。

14、作为本发明一种改进的安全容器启动方法的进一步优选方案,分流服务收到来自vitio-vsock设备的包的判断处理:

15、若不是已有连接且是req数据包,提取包的peer端口和local端口,再通过local端口与安全容器runtime建立新的连接成功后得到一个连接对象,再将该连接对象和连接的peer/local端口信息的对应关系存储起来;

16、若不是已有连接且不是req数据包,返回一个rst数据包;

17、若是已有连接且是rst数据包,删除该连接;

18、若是已有连接且不是rst数据包,查找出对应的连接对象并转发。

19、作为本发明一种改进的安全容器启动方法的进一步优选方案,根据包的peer端口和local端口在存储的对应关系中查找出对应的连接对象并转发。

20、作为本发明一种改进的安全容器启动方法的进一步优选方案,分流服务收到来自安全容器runtime或virtio-mmio热插拔服务的包的判断处理:

21、若不是已有连接,提取包的peer端口,再分配新的local端口与virtio-mmio热插拔服务建立新连接得到一个连接对象,再将该连接对象和连接的peer/local端口信息的对应关系存储起来,最后将local端口填入包后转发vitio-vsock设备;

22、若是已有连接,转发vitio-vsock设备。

23、作为本发明一种改进的安全容器启动方法的进一步优选方案,在热插拔virtio-mmio设备过程中,安全容器运行时向virtio-mmio热插拔服务发起请求。

24、作为本发明一种改进的安全容器启动方法的进一步优选方案,安全容器运行时向virtio-mmio热插拔服务发起请求,具体如下:

25、virtio-mmio热插拔服务侦听到容器运行时的热插拔请求,将virito-mmio设备的id号、空间基地址、空间长度、中断号和操作类型信息封装到一个peer端口为0xdc的包经分流服务向微虚机的virtio-mmio热插拔驱动发起请求;

26、virtio-mmio热插拔驱动收到请求后,根据操作类型判断为热插入请求还是热拔出请求:

27、若是热插入请求,向内核的virtio-mmio模块传入virito-mmio设备的空间基地址、空间长度、中断号以请求添加该设备;

28、若是热拔出请求,向内核的virtio-mmio模块传入virito-mmio设备id号以请求删除该设备;

29、virtio-mmio热插拔驱动将结果和设备id号封装到一个数据包,返回给virtio-mmio热插拔服务,virtio-mmio热插拔服务再将结果返回给容器运行时。

30、作为本发明一种改进的安全容器启动方法的进一步优选方案,将virito-mmio设备的信息封装到一个peer端口为0xdc的包经分流服务向微虚机的virtio-mmio热插拔驱动发起请求,所述virito-mmio设备的信息包含id号、空间基地址、空间长度、中断号和操作类型。

31、本发明采用以上技术方案与现有技术相比,具有以下技术效果:

32、1、本发明通过给virtio-vsock设备接一个分流服务,使得原本只能用于安全容器运行时与微虚机用户空间agent通信的virtio-vsock设备还可以同时多提供一条通信通道用于实现virtio-mmio设备热插拔功能以替代传统的acpi热插拔;从而避免微虚机启动过程中对acpi设备的模拟,实现减少微虚机启动时间和内存开销。

33、2、本发明在实现virtio-mmio设备热插拔以替代传统的acpi热插拔以避免微虚机启动过程中对acpi设备的模拟的同时,没有新增模拟设备去重新增加微虚机的启动时间,能显著减少微虚机启动时间和内存开销。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1