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

文档序号:9687664阅读:来源:国知局
图。在图8中,检索节点操作包括虚拟机VFS系统中提供的创建索引节点(creat)、查找索引节点(lookup)、索引节点链接(link)、删除索引节点(unlink)、重命名索引节点(rename)、扩展路径(setxattr)、获取路径(getxattr)。在实现上述索引节点操作时(innode_ops)时,虚拟机启动应用程序,调用索引节点操作下的相应函数,进而去调用VHFS中索引节点操作(innode_ops)下的相应函数,根据相应的索引节点操作,生成VHFS请求,该VHFS请求中包括了操作命令(具体可以是上述索引节点操作)和索引节点标识等。与上述其它操作相同,虚拟机将VHFS请求写入预置通用寄存器后,调用Vmcall退出非根模式。然后宿主机中的VHFSD模块处理该VHFS请求,在VHS相同中完成相应的索引节点操作,返回操作结果。
[0119]请参阅图9,图9为本发明实施例提供的虚拟机的结构示意图;如图9所示,一种虚拟机运行在宿主机上,虚拟机中安装有虚拟主机文件系统VHFS,宿主机的文件被共享到上述VHFS中,该虚拟机可包括:
[0120]VHFS处理模块,用于检测对上述VHFS中共享文件的操作,获得操作信息;根据上述操作信息生成VHFS请求,并将上述VHFS请求写入上述虚拟机的内存,上述VHFS请求用于请求上述宿主机在上述宿主机上完成对上述共享文件的上述操作;将上述VHFS请求所在内存的地址写入预置通用寄存器,并调用系统切换指令以使上述宿主机处理上述VHFS请求。
[0121]在本发明一些实施例中,上述VHFS处理模块具体用于,检测对上述VHFS中共享文件的操作,获得操作信息,上述操作信息包括文件信息和操作命令,上述文件操作命令所指示的操作包括文件打开操作、文件读取操作、文件写入操作、文件创建操作和浏览目录操作中的任意一种。
[0122]在本发明一些实施例中,上述VHFS处理模块具体用于当上述操作命令所指示的操作为文件读取操作或文件写入操作时,获取上述共享文件所在缓冲区的虚拟机逻辑地址,将上述虚拟机逻辑地址转换成上述虚拟机物理地址;根据上述文件信息、上述操作命令和上述虚拟机物理地址,生成上述VHFS请求,上述VHFS请求包括上述文件信息、上述操作命令和上述共享文件所在缓冲区的虚拟机物理地址。
[0123]在本发明一些实施例中,上述VHFS处理模块具体用于,将上述VHFS请求所在内存的地址写入上述预置通用寄存器;调用vmcall指令退出非根模式,以使上述宿主机处理上述VHFS请求。
[0124]在本发明一些实施例中,上述VHFS处理模块具体用于,将上述VHFS请求所在内存的地址写入上述宿主机虚拟的外设部件互连标准PCI设备,并触发上述虚拟机退出非根模式,以使上述宿主机获得控制权处理上述VHFS请求。
[0?25]请参阅图10,图10为本发明一些实施例提供的宿主机的结构不意图;如图10所不,该宿主机上运行着虚拟机,虚拟机中安装有VHFS,宿主机的文件被共享到每一个虚拟机的VHFS中,该宿主机包括:
[0126]VHFSD处理模块,用于检测到上述虚拟机调用系统切换指令,从预置通用寄存器中读取VHFS请求所在内存的地址,上述VHFS请求为上述虚拟机根据用户对上述虚拟机中的VHFS的共享文件的操作生成,上述VHFS请求用于请求上述宿主机在上述宿主机上完成对上述共享文件的上述操作;
[0127]上述VHFSD处理模块还用于,根据读取的上述VHFS请求所在内存的地址,读取上述VHFS请求,根据上述VHFS请求执行对上述共享文件的上述操作。
[0128]可选地,上述操作信息包括文件信息和操作命令,上述文件操作命令所指示的操作包括文件打开操作、文件读取操作、文件写入操作、文件创建操作和浏览目录操作中的任意一种。
[0129]在本发明一些实施例中,上述VHFSD处理模块具体用于,当上述操作命令所指示的操作包括上述文件打开操作或文件读取操作时,将上述虚拟机物理地址转换成主机逻辑地址;根据上述主机逻辑地址以及上述文件信息,查找到上述共享文件;对查找到的上述共享文件执行上述操作命令所指示的操作。
[0130]在本发明一些实施例中,上述VHFSD处理模块还用于,将执行上述操作的操作结果,返回给上述虚拟机。
[0131]请参阅图11,图11为本发明实施例提供的共享文件的访问系统的结构示意图;如图11所示,一种共享文件的访问系统可包括:
[0132]图9提供的虚拟机和图10提供的宿主机,其中,对虚拟机和宿主机的详细介绍可以参阅方法实施例和装置实施例中的说明,在此不再赘述。
[0133]请参考图12,图12为本发明实施例提供的共享文件的访问装置的结构示意图,其中,可包括至少一个处理器1201(例如CPU,Central Processing Unit),至少一个网络接口或者其它通信接口,存储器1202,和至少一个通信总线,用于实现这些装置之间的连接通信。上述处理器1201用于执行存储器中存储的可执行模块,例如计算机程序。上述存储器1202可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个网络接口(可以是有线或者无线)实现该系统网关与至少一个其它网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
[0134]如图12所示,在一些实施方式中,上述存储器1202中存储了程序指令,程序指令可以被处理器1201执行,上述处理器1201具体执行以下步骤:
[0135]检测对上述VHFS中共享文件的操作,获得操作信息;根据上述操作信息生成VHFS请求,并将上述VHFS请求写入上述虚拟机的内存,上述VHFS请求用于请求上述宿主机在上述宿主机上完成对上述共享文件的上述操作;将上述VHFS请求所在内存的地址写入预置通用寄存器,并调用系统切换指令以使上述宿主机处理上述VHFS请求;
[0136]或者,检测到上述虚拟机调用系统切换指令,从预置通用寄存器中读取VHFS请求所在内存的地址,上述VHFS请求为上述虚拟机根据用户对上述虚拟机中的VHFS的共享文件的操作生成,上述VHFS请求用于请求上述宿主机在上述宿主机上完成对上述共享文件的上述操作;根据读取的上述VHFS请求所在内存的地址,读取上述VHFS请求,根据上述VHFS请求执行对上述共享文件的上述操作。
[0137]在一些实施方式中,上述处理器1201还可以执行以下步骤:检测对上述VHFS中共享文件的操作,获得操作信息,上述操作信息包括文件信息和操作命令,上述文件操作命令所指示的操作包括文件打开操作、文件读取操作、文件写入操作、文件创建操作和浏览目录操作中的任意一种。
[0138]在一些实施方式中,上述处理器1201还可以执行以下步骤:当上述操作命令所指示的操作为文件读取操作或文件写入操作时,获取上述共享文件所在缓冲区的虚拟机逻辑地址,将上述虚拟机逻辑地址转换成上述虚拟机物理地址;根据上述文件信息、上述操作命令和上述虚拟机物理地址,生成上述VHFS请求,上述VHFS请求包括上述文件信息、上述操作命令和上述共享文件所在缓冲区的虚拟机物理地址。
[0139]在一些实施方式中,上述处理器1201还可以执行以下步骤:将上述VHFS请求所在内存的地址写入上述预置通用寄存器;调用vmcall指令退出非根模式,以使上述宿主机处理上述VHFS请求。
[0140]在一些实施方式中,上述处理器1201还可以执行以下步骤:将上述VHFS请求所在内存的地址写入上述宿主机虚拟的外设部件互连标准PCI设备,并触发上述虚拟机退出非根模式,以使上述宿主机获得控制权处理上述VHFS请求。
[0141]在一些实施方式中,上述处理器1201还可以执行以下步骤:当上述操作命令所指示的操作包括上述文件打开操作或文件读取操作时,将上述虚拟机物理地址转换成主机逻辑地址;根据上述主机逻辑地址以及上述文件信息,查找到上述共享文件;对查找到的上述共享文件执行上述操作命令所指示的操作。
[0142]在一些实施方式中,上述处理器1201还可以执行以下步骤:将执行上述操作的操作结果,返回给上述虚拟机。
[0143]在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0144]所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0145]在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0146]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0147]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采
...
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1