【技术实现步骤摘要】
一种边缘计算虚拟机镜像缓存方法
[0001]本专利技术属于边缘计算
,特别是涉及一种边缘计算虚拟机镜像缓存方法。
技术介绍
[0002]在边缘计算场景,用户需要将虚拟机的自定义镜像导出到云端备份,并且使用导出的镜像在原来的集群创建新的虚拟机。这种场景特征是用户导出镜像非常大,边缘到云端的上传下载受到带宽限制,耗时严重。而基于nginx做开发,nginx缓存模块只能缓存后端服务的http响应,无法缓存上传镜像的body内容,因此,需要一种镜像缓存解决方案,加快镜像获取,缩短虚拟机部署时间。
技术实现思路
[0003]为实现上述目的,本专利技术提供了如下方案:一种边缘计算虚拟机镜像缓存方法,包括:
[0004]根据用户需要将虚拟机的自定义镜像导出,同时生成缓存文件;
[0005]基于nginx作为HTTP和反向代理web服务器,对所述缓存文件进行访问,通过启用sendfile()系统调用来替换read()和write()调用,将所述虚拟机的自定义镜像上传到image
‑
proxy镜像服务代理程序;
[0006]通过image
‑
proxy镜像服务代理程序将镜像文件以数据流的形式上传到云端备份,在上传云端的过程中生成nginx缓存文件,通过io.tee管道的方式,一边上传镜像一边写缓存文件,进行云端镜像备份;基于nginx下载镜像,在原来的集群创建新的虚拟机,完成虚拟机部署。
[0007]优选地,在上传云端的过程中生成nginx缓存文 ...
【技术保护点】
【技术特征摘要】
1.一种边缘计算虚拟机镜像缓存方法,其特征在于,包括:根据用户需要将虚拟机的自定义镜像导出,同时生成缓存文件;基于nginx作为HTTP和反向代理web服务器,对所述缓存文件进行访问,通过启用sendfile()系统调用来替换read()和write()调用,将所述虚拟机的自定义镜像上传到image
‑
proxy镜像服务代理程序;通过image
‑
proxy镜像服务代理程序将镜像文件以数据流的形式上传到云端备份,在上传云端的过程中生成nginx缓存文件,通过io.tee管道的方式,一边上传镜像一边写缓存文件,进行云端镜像备份;基于nginx下载镜像,在原来的集群创建新的虚拟机,完成虚拟机部署。2.根据权利要求1所述的边缘计算虚拟机镜像缓存方法,其特征在于,在上传云端的过程中生成nginx缓存文件,通过io.tee管道的方式,一边上传镜像一边写缓存文件,进行云端镜像备份的过程包括,通过io.tee管道的方式,破解nginx缓存文件的文件格式,将上传的镜像数据转换为nginx缓存,实现image
‑
proxy的自定义缓存;所述破解nginx缓存文件的文件格式的过程包括,获取缓存文件名称和缓存目录结构,基于所述缓存文件名和缓存目录结构破解缓存文件格式。3.根据权利要求2所述的边缘计算虚拟机镜像缓存方法,其特征在于,所述获取缓存文件名称和缓存目录结构的过程包括,基于nginx配置proxy_cache_key,为每个镜像生成一个hash值,将所述hash值传递到image
‑
proxy,获得缓存文件名称;根据proxy_cache_path的level值设置缓存文件的索引目录层级,获得缓存目录结构。4.根据权利要求3所述的边缘计算虚拟机镜像缓存方法,其特征在于,基于nginx配置proxy_cache_key,为每个镜像生成一个hash值,将所述hash值传递到image
‑
proxy,获得缓存文件名称的过程包括,通过ngx_http_request_t*r结构获取proxy_hash_key,通过ngx_crc32_update和ngx_md5_update方法生成crc32值和hash值;开发nginx模块,基于所述nginx模块开发cache
‑
hash
‑
header指令,设置所述nginx模块的postconfiguration回调函数,将指令挂载在NGX_HTTP_REWRITE_PHASE阶段,在nginx发送代理请求时将crc32值和hash值添加到proxy header传递到image
‑
proxy。5.根据权利要求2所述的边缘计算虚拟机镜像缓存方法,其特征在于,基于所述缓存文件名和缓存目录结构破解缓存文件格式的过程包括,通过src/http/ngx_http_file_cache.c的ngx_http_file_cache_read方法,当nginx读取缓存文件时,通过校验crc32值判断文件有效性,通过校验valid_sec判断缓存是否过期,image
‑
proxy构建获得缓存文件头部;按业务需求自定义其余文件内容的header和body,更新Content
‑
Length字段为body大小,发送reload信号至nginx加载缓存文件。6.根据权利要求1所述的边缘计算虚拟机镜像缓存方法,其特征在于,基于nginx下载镜像,在原...
【专利技术属性】
技术研发人员:刘敏健,安雨顺,魏文生,黎梓安,田红艳,
申请(专利权)人:天翼云科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。