一种共享文件的访问方法、系统及相关设备的制造方法_2

文档序号:9687664阅读:来源:国知局
主机上完成对上述共享文件的上述操作;
[0032]上述VHFSD处理模块还用于,根据读取的上述VHFS请求所在内存的地址,读取上述VHFS请求,根据上述VHFS请求执行对上述共享文件的上述操作。
[0033]在本发明一些实施例中,上述操作信息包括文件信息和操作命令,上述文件操作命令所指示的操作包括文件打开操作、文件读取操作、文件写入操作、文件创建操作和浏览目录操作中的任意一种。
[0034]在本发明一些实施例中,上述VHFSD处理模块具体用于,当上述操作命令所指示的操作包括上述文件打开操作或文件读取操作时,将上述虚拟机物理地址转换成主机逻辑地址;根据上述主机逻辑地址以及上述文件信息,查找到上述共享文件;对查找到的上述共享文件执行上述操作命令所指示的操作。
[0035]在本发明一些实施例中,上述VHFSD处理模块还用于,将执行上述操作的操作结果,返回给上述虚拟机。
[0036]可选地,上述文件信息包括文件描述符或文件路径或文件的节点索引。
[0037]本发明第五方面提供了一种共享文件的访问系统,包括第三方面提供的虚拟机,以及第四方面提供的宿主机。
【附图说明】
[0038]为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0039]图1为现有技术提供的宿主机-虚拟机模型;
[0040]图2为现有技术提供的宿主机与虚拟机基于网络文件系统进行文件共享的示意图;
[0041]图3为本发明一些实施例提供的共享文件的访问系统的结构示意图;
[0042]图4为本发明实施例提供的共享文件的访问方法的流程示意图;
[0043]图5为本发明实施例提供的共享文件的访问方法的信令图;
[0044]图6a为本发明实施例提供的文件打开流程;
[0045]图6b为本发明实施例提供的宿主机的文件系统与虚拟机的文件系统之间的数据对应关系;
[0046]图7a为本发明一些实施例提供的共享文件的写入方法的信令图;
[0047]图7b为本发明实施例提供的写文件的流程示意图;
[0048]图8为本发明一些实施例提供的索引节点操的流程示意图;
[0049]图9为本发明实施例提供的虚拟机的结构示意图;
[0050]图10为本发明一些实施例提供的宿主机的结构示意图;
[0051]图11为本发明实施例提供的共享文件的访问系统的结构示意图;
[0052]图12为本发明实施例提供的共享文件的访问装置的结构示意图。
【具体实施方式】
[0053]下面将结合本发明实施例的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0054]本发明实施例提供了一种共享文件的访问方法,用于简化文件访问流程,提高文件访问效率。本发明实施例还提供了一种共享文件的访问方法对应的系统、虚拟机及宿主机。
[0055]首先,先简单地介绍一下本发明实施例提供的共享文件的访问系统,请参阅图3,图3为本发明实施例提供的共享文件的访问系统的结构示意图。在图3中,共享文件的访问系统包括宿主机和虚拟机,其中,宿主机安装有文件系统(File System,简称FS),FS下还安装着VFS,宿主机中还有各种通用寄存器,并在宿主机中设置一个VHFSD(Virtual HostFile System Handle,简称VHFSD)处理模块,该VHFSD处理模块主要用于在宿主机这端处理VHFS请求。虚拟机中安装有VFS,并在VFS下安装有VHFS处理模块,用于在虚拟机这端处理VHFS请求。
[0056]在宿主机需要共享文件给虚拟机时,将某个文件目录下的文件共享到VHFS上。比如,在使用时,通过一条mount指令把宿主机VFS系统目录下的文件挂载到虚拟机的VHFS上:
[0057]mount-t vhfs host:/home/test/mnt/hostfs/test
[0058]即把宿主机的/home/test目录挂载到虚拟机的/mnt/hostfs/test上。
[0059]VHFS能够实现文件系统的各类标准操作,比如浏览目录操作(dentry_ops)、文件的节点索引操作(inode_ops)以及文件操作(file_ops)等,其中,f ile_ops可以看做一个集合,集合了所有文件的操作,比如,文件打开操作、文件读取操作、文件写入操作、文件创建操作等,其它项也仅是某一个大功能的集合,里面还集合了各种具体操作,在此不再一一赘述。
[0060]宿主机运行在根(root)模式下(根模式是宿主机运行的层级),而虚拟机运行在非根(non-root)模式(非根模式是虚拟机运行的层级)下。而本发明实施例中提供了一种Vmcall门,用于实现根模式与非根模式之间的切换,从非根模式到根模式,将控制权交给宿主机;根模式到非根模式,将控制权交给虚拟机。
[0061]可以看出,在本发明实施例中,只需要在虚拟机中安装一个VHFS文件系统和设置一个VHFS处理模块,其中,VHFS文件系统用于共享宿主机共享过来的文件目录,VHFS处理模块用于处理VHFS文件系统中文件相关的VHFS请求。另外,在宿主机中设置VHFSD处理模块,VHFSD处理模块去完成对VHFS请求的处理,能够简化系统参与共享文件操作的组件,简化了文件操作的流程,提高文件访问效率。
[0062]需要说明,本发明实施例中宿主机共享给虚拟机的文件为配置虚拟机需要的文件,或者是虚拟机运行业务时需要的文件,或者是包括着配置虚拟机需要的数据信息,或者是包括着运行业务需要的数据信息等。
[0063]基于上述介绍,本发明实施例提供了一种共享文件的访问方法。请参阅图4,图4为本发明实施例提供的共享文件的访问方法的流程示意图;如图4所示,一种共享文件的访问方法可包括:
[0064]401、上述虚拟机检测对上述VHFS中共享文件的操作,获得操作信息;
[0065]宿主机中共享到VHFS文件系统上给予虚拟机使用的共享文件,可以由用户操作或者是在配置虚拟机时自行操作,具体可以对虚拟机中的共享文件的目录项进行操作、对文件的节点索引进行操作,对文件进行操作。而文件操作包括有对文件打开操作、文件读取操作、文件写入操作以及文件创建操作、文件删除操作等。
[0066]需要说明,对应不同的操作,所获取到的操作信息有所不同。比如,若是文件打开操作,那么操作信息会包括文件路径信息和操作命令等。若为文件读取操作,操作信息中包括文件描述符(fd)和操作命令等。若为文件写入操作,操作信息中包括文件描述符(fd)、操作命令和写入内容等。若为文件的节点索引操作,操作信息中包括文件的索引节点、操作命令等。
[0067]其中,操作命令所指示的操作为上述具体介绍的各种操作。
[0068]在本发明实施例中,将操作信息中的内容大致归为两类,一类是文件信息、另一类是操作命令。文件信息即包括上述文件路径信息或文件描述符(fd)或写入内容等。
[0069]当然,此时系统的操作模式为非根模式下,即为虚拟机的运行层级。
[0070]402、上述虚拟机根据上述操作信息生成VHFS请求,并将上述VHFS请求写入上述虚拟机的内存,上述VHFS请求用于请求上述宿主机在上述宿主机上完成对上述共享文件的上述操作;
[0071]虚拟机根据操作信息生成VHFS请求,可以理解,VHFS请求中将包括操作信息中的内容,由于操作信息根据不同的操作而有所不同,因此,VHFS请求包括的内容也将因不同的操作而有所不同。
[0072]若为文件打开操作时,VHFS请求包括文件路径信息和操作命令等。若为文件的节点索引操作,VHFS请求中包括文件的索引节点、操作命令等。
[0073]但是,若为文件读取操作和文件写入操作,VHFS请求中除了包括操作信息中的内容外,还包括虚拟机物理地址。因为,在对文件读取操作和写入操作时,需要涉及到虚拟机上的文件缓冲区,也就是共享文件将需要被放入到文件缓冲区。
[0074]需要说明,文件缓冲区是虚拟机管理着,对应着一个虚拟机逻辑地址,但宿主机无法识别虚拟机逻辑地址,因此,还需要将共享文件所在缓冲区的虚拟机逻辑地址转换成虚拟机物理地址。那么,在生成VHFS请求之前,需要将共享文件所在缓冲区的虚拟机逻辑地址转换成虚拟机物理地址。
[0075]还需要说明,宿主机虚拟出虚拟机时,需要给虚拟机分配内存和寄存器等,因此,虚拟机将VHFS请求写入内存,也就是写入宿主机分配给虚拟机的内存,后续宿主机能够从该内存中读取到VHFS请求。
[0076]403、上述虚拟机将上述VHFS请求所在内存的地址写入预置通用寄存器,并调用系统切换指令以使上述宿主机处理上述VHFS请求;
[0077]404、上述宿主机检测到上述虚拟机调用系统切换指令,从预置通用寄存器中读取VHFS请求所在内存的地址,上述VHFS请求为上述虚拟机根据用户对上述虚拟机中的VHFS的共享文件的操作生成,上述VHFS请求用于请求上述宿主机在上述宿主机上完成对上述共享文件的上述操作;
[0078]在本发明实施例中,将根据用户对共享文件的操作信息生成
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1