CN117290025A - 磁盘重定向方法、装置、计算机设备及可读介质 - Google Patents
磁盘重定向方法、装置、计算机设备及可读介质 Download PDFInfo
- Publication number
- CN117290025A CN117290025A CN202210686183.1A CN202210686183A CN117290025A CN 117290025 A CN117290025 A CN 117290025A CN 202210686183 A CN202210686183 A CN 202210686183A CN 117290025 A CN117290025 A CN 117290025A
- Authority
- CN
- China
- Prior art keywords
- disk
- operation request
- file operation
- user
- disk file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000012545 processing Methods 0.000 claims description 62
- 238000004590 computer program Methods 0.000 claims description 4
- 238000011161 development Methods 0.000 abstract description 5
- 238000012423 maintenance Methods 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 101100226364 Arabidopsis thaliana EXT1 gene Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/452—Remote windowing, e.g. X-Window System, desktop virtualisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0667—Virtualisation aspects at data level, e.g. file, record or object virtualisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供一种磁盘重定向方法,应用于云桌面的磁盘重定向装置,云终端的磁盘预先映射在磁盘重定向装置中,磁盘重定向装置部署在云桌面操作系统的内核态和用户态中,所述方法包括:在内核态获取到磁盘文件操作请求的情况下,将磁盘文件操作请求发送至用户态;磁盘文件操作请求是云桌面用户针对磁盘重定向装置所映射的磁盘发起的;在用户态中将磁盘文件操作请求发送给云终端,以使云终端根据磁盘文件操作请求对本地的磁盘文件进行处理;将文件系统从操作系统的内核态向上移到了用户态,因此可以使用用户态的调试工具进行调试,方便开发、调试和维护,提高操作系统稳定性。本公开还提供一种磁盘重定向装置、计算机设备和可读介质。
Description
技术领域
本公开涉及云桌面技术领域,具体涉及一种磁盘重定向方法、装置、计算机设备及可读介质。
背景技术
在云桌面环境下,磁盘重定向功能可以将云终端(云终端为胖终端)里的磁盘映射到云桌面上,用户可以通过云桌面的文件管理器操作被映射的磁盘,包括创建、删除、重命名、读写等操作。
磁盘重定向本质上是在云桌面中实现一个文件系统,该文件系统是虚拟的,并没有真正存放文件,而其会连接到云终端上的磁盘,该磁盘存放着真正的文件;用户在云桌面上对映射的磁盘进行操作,这些操作会被路由到虚拟文件系统中,该虚拟的文件系统最终会将这些操作落实到云终端磁盘里对应的真正的文件上。
目前,Windows云桌面已经实现了磁盘重定向,但是Linux云桌面还没有实现磁盘重定向。
发明内容
本公开提供一种磁盘重定向方法、装置、计算机设备和可读介质。
第一方面,本公开实施例提供一种磁盘重定向方法,所述方法应用于云桌面的磁盘重定向装置,所述磁盘重定向装置部署在云桌面操作系统的内核态和用户态中,云终端的磁盘预先映射在所述磁盘重定向装置中;所述方法包括:
在所述内核态获取到磁盘文件操作请求的情况下,将所述磁盘文件操作请求发送至所述用户态;所述磁盘文件操作请求是云桌面用户针对所述磁盘重定向装置所映射的磁盘发起的;
在所述用户态中将所述磁盘文件操作请求发送给所述云终端,以使所述云终端根据所述磁盘文件操作请求对本地的磁盘文件进行处理。
在一些实施例中,在所述用户态中将所述磁盘文件操作请求发送给所述云终端之后,所述方法还包括:
在所述用户态中接收所述云终端返回的处理结果,所述处理结果由所述云终端根据所述磁盘文件操作请求对所述云终端的磁盘文件进行处理得到;
将所述处理结果发送至所述内核态。
在一些实施例中,所述在所述用户态中接收所述云终端返回的处理结果之后、将所述处理结果发送至所述内核态之前,所述方法还包括:
在所述用户态中为目标磁盘文件分配虚拟索引节点以标识所述目标磁盘文件,所述目标磁盘文件为所述磁盘文件操作请求对应的磁盘文件;
所述将所述处理结果发送至所述内核态,包括:将所述处理结果和所述虚拟索引节点发送至所述内核态。
在一些实施例中,所述磁盘文件操作请求是云桌面用户利用文件管理器针对所述磁盘重定向装置所映射的磁盘发起的;
在将所述处理结果发送至所述内核态之后,所述方法还包括:
通过调用所述文件管理器展示所述处理结果。
在一些实施例中,所述将所述磁盘文件操作请求发送至所述用户态,包括:
调用预先注册的第一接口获取所述磁盘文件操作请求;
利用所述第一接口将所述磁盘文件操作请求封装为第一格式;
将第一格式的磁盘文件操作请求写入预先注册的第二接口,所述第二接口为所述用户态与所述内核态之间的接口。
在一些实施例中,所述在所述用户态中将所述磁盘文件操作请求发送给所述云终端,包括:
在所述用户态中从所述第二接口中获取所述第一格式的磁盘文件操作请求;
根据所述磁盘文件操作请求的类型调用相应的用户操作接口;
利用所述用户操作接口将所述第一格式的磁盘文件操作请求封装为第二格式;
将所述第二格式的磁盘文件操作请求发送给所述云终端。
在一些实施例中,所述将所述处理结果发送至所述内核态,包括:
将所述处理结果写入所述第二接口;
在所述内核态中从所述第二接口中获取所述处理结果。
又一方面,本公开实施例还提供一种磁盘重定向装置,包括文件系统模块和磁盘重定向模块,云终端的磁盘预先映射在所述磁盘重定向模块中,所述磁盘重定向装置部署在云桌面操作系统的内核态和用户态中,
所述文件系统模块部署在云桌面操作系统的内核态中,用于在所述内核态获取到磁盘文件操作请求的情况下,将所述磁盘文件操作请求发送至所述用户态;所述磁盘文件操作请求是云桌面用户针对所述磁盘重定向装置所映射的磁盘发起的;
所述磁盘重定向模块部署在云桌面操作系统的用户态中,用于在所述用户态中将所述磁盘文件操作请求发送给所述云终端,以使所述云终端根据所述磁盘文件操作请求对本地的磁盘文件进行处理。
又一方面,本公开实施例还提供一种计算机设备,包括:一个或多个处理器;存储装置,其上存储有一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如前所述的磁盘重定向方法。
又一方面,本公开实施例还提供一种计算机可读介质,其上存储有计算机程序,其中,所述程序被执行时实现如前所述的磁盘重定向方法。
本公开实施例提供的磁盘重定向方法,所述方法应用于云桌面的磁盘重定向装置,云终端的磁盘预先映射在所述磁盘重定向装置中,磁盘重定向装置部署在云桌面操作系统的内核态和用户态中,所述方法包括:在内核态获取到磁盘文件操作请求的情况下,将磁盘文件操作请求发送至用户态;磁盘文件操作请求是云桌面用户针对磁盘重定向装置所映射的磁盘发起的;在用户态中将磁盘文件操作请求发送给云终端,以使云终端根据磁盘文件操作请求对本地的磁盘文件进行处理;本公开实施例将文件系统从操作系统的内核态向上移到了用户态,因此可以使用用户态的调试工具进行调试,方便开发、调试和维护,提高操作系统稳定性,填补了Linux云桌面磁盘重定向的空白,能够补充云桌面功能,丰富云桌面的生态。
附图说明
图1为本公开实施例提供的磁盘重定向的流程示意图一;
图2为本公开实施例提供的磁盘重定向的流程示意图二;
图3为本公开实施例提供的磁盘重定向的流程示意图三;
图4为本公开实施例提供的磁盘重定向的流程示意图四;
图5为本公开实施例提供的将磁盘文件操作请求发送至用户态的流程示意图;
图6为本公开实施例提供的在用户态中将磁盘文件操作请求发送给云终端的流程示意图;
图7为本公开实施例提供的将处理结果发送至内核态的流程示意图;
图8为本公开实施例提供的磁盘重定向过程示意图;
图9为本公开实施例提供的具体实例的磁盘重定向流程示意图;
图10为本公开实施例提供的磁盘重定向装置的结构示意图。
具体实施方式
在下文中将参考附图更充分地描述示例实施例,但是所述示例实施例可以以不同形式来体现且不应当被解释为限于本文阐述的实施例。反之,提供这些实施例的目的在于使本公开透彻和完整,并将使本领域技术人员充分理解本公开的范围。
如本文所使用的,术语“和/或”包括一个或多个相关列举条目的任何和所有组合。
本文所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本文所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。还将理解的是,当本说明书中使用术语“包括”和/或“由……制成”时,指定存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其他特征、整体、步骤、操作、元件、组件和/或其群组。
本文所述实施例可借助本公开的理想示意图而参考平面图和/或截面图进行描述。因此,可根据制造技术和/或容限来修改示例图示。因此,实施例不限于附图中所示的实施例,而是包括基于制造工艺而形成的配置的修改。因此,附图中例示的区具有示意性属性,并且图中所示区的形状例示了元件的区的具体形状,但并不旨在是限制性的。
除非另外限定,否则本文所用的所有术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本公开的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本文明确如此限定。
目前业界通常在Linux操作系统的内核态中实现文件系统,这种方法不方便调试,而且如果出现问题会导致整个操作系统不稳定。本公开实施例提供一种磁盘重定向方法,能够实现Linux云桌面的磁盘重定向功能并解决上述问题。
本公开实施例提供的磁盘重定向方法应用于云桌面的磁盘重定向装置,磁盘重定向装置部署在云桌面操作系统的内核态和用户态中,云终端的磁盘预先映射在磁盘重定向装置中。需要说明的是,在本公开实施例中,云终端为胖终端,胖终端是指具备自己的硬盘、RAM、控制计算单元的云终端,通过安装full-fledged OS可以运行计算和存储程序,其具有完整的运算能力。
如图1所示,所述磁盘重定向方法包括以下步骤:
步骤11,在内核态获取到磁盘文件操作请求的情况下,将磁盘文件操作请求发送至用户态;磁盘文件操作请求是云桌面用户针对磁盘重定向装置所映射的磁盘发起的。
由于云终端的磁盘已经映射在磁盘重定向装置中,因此,云桌面用户可以针对磁盘重定向装置所映射的磁盘发起磁盘文件操作请求,磁盘文件操作请求会通过系统调用陷入到内核态中。磁盘重定向装置的文件系统模块部署在内核态中,在本步骤中,文件系统模块获取到磁盘文件操作请求后,将该磁盘文件操作请求发送至用户态,这样可以使用用户态的调试工具进行调试,方便开发、调试和维护,如果出问题最多只会导致本进程崩溃,不会导致整个系统的不稳定。
步骤12,在用户态中将磁盘文件操作请求发送给云终端,以使云终端根据磁盘文件操作请求对本地的磁盘文件进行处理。
在本步骤中,磁盘重定向装置的磁盘重定向模块通过网络将磁盘文件操作请求发送给云终端,云终端在本地对相应的磁盘文件进行数据处理,得到处理结果,磁盘重定向模块等待接收云终端返回的处理结果。
本公开实施例提供的磁盘重定向方法应用于云桌面的磁盘重定向装置,云终端的磁盘预先映射在所述磁盘重定向装置中,磁盘重定向装置部署在云桌面操作系统的内核态和用户态中,所述方法包括:在内核态获取到磁盘文件操作请求的情况下,将磁盘文件操作请求发送至用户态;磁盘文件操作请求是云桌面用户针对磁盘重定向装置所映射的磁盘发起的;在用户态中将磁盘文件操作请求发送给云终端,以使云终端根据磁盘文件操作请求对本地的磁盘文件进行处理;本公开实施例将文件系统从操作系统的内核态向上移到了用户态,因此可以使用用户态的调试工具进行调试,方便开发、调试和维护,提高操作系统稳定性,填补了Linux云桌面磁盘重定向的空白,能够补充云桌面功能,丰富云桌面的生态。
在一些实施例中,如图2所示,在用户态中将磁盘文件操作请求发送给云终端(即步骤11)之后,所述磁盘重定向方法还包括以下步骤:
步骤13,在用户态中接收云终端返回的处理结果,处理结果由云终端根据磁盘文件操作请求对云终端的磁盘文件进行处理得到。
在本步骤中,磁盘重定向装置的磁盘重定向模块接收云终端返回的处理结果。
步骤14,将处理结果发送至内核态。
在本步骤中,磁盘重定向装置的磁盘重定向模块将云终端发送的处理结果发送给文件系统模块,从而将处理结果从用户态向内核态的传递。
在Linux云桌面上每个文件都通过一个索引节点(ino)来标识。由于云终端上的磁盘可能使用Windows的文件系统,例如NTFS(New Technology File System,新技术文件系统),也可能使用Linux的文件系统,例如EXT4(Fourth extended filesystem,第四代扩展文件系统)。Windows的文件系统文件没有索引节点,Linux的文件系统文件有索引节点,而Linux云桌面上的文件根据索引节点识别,因此,在云终端采用Windows的文件系统的情况下,Linux云桌面无法识别磁盘文件,即Linux云桌面只能与采用Windows文件系统的云终端实现磁盘重定向。
为了解决上述问题,在一些实施例中,如图3所示,所述在用户态中接收云终端返回的处理结果(即步骤13)之后、将处理结果发送至内核态(即步骤14)之前,所述磁盘重定向方法还包括以下步骤:
步骤13’,在用户态中为目标磁盘文件分配虚拟索引节点以标识目标磁盘文件,目标磁盘文件为磁盘文件操作请求对应的磁盘文件。
在本步骤中,在云终端返回磁盘文件(该磁盘文件即为磁盘文件操作请求对应的目标磁盘文件)的处理结果之后,磁盘重定向装置的磁盘重定向模块为该目标磁盘文件分配虚拟索引节点(ino)作为文件标识,这样云桌面就可以通过该虚拟索引节点识别目标磁盘文件,后续对目标磁盘文件的所有操作都会使用这个已经分配好的虚拟索引节点进行。
通过为目标磁盘文件分配虚拟索引节点,无论云终端上使用什么文件系统,Linux云桌面的磁盘重定向装置统一使用虚拟索引节点标识磁盘文件,这样Linux云桌面可以同时兼容云终端上各种类型的文件系统。
相应的,所述将处理结果发送至内核态(即步骤14),包括:将处理结果和虚拟索引节点发送至内核态。
在一些实施例中,磁盘文件操作请求是云桌面用户利用文件管理器针对磁盘重定向装置所映射的磁盘发起的。也就是说,云桌面用户在文件管理器中发起磁盘文件操作请求,该磁盘文件操作请求对应的磁盘就是云终端已经映射到云桌面上的磁盘。
相应的,在一些实施例中,如图4所示,在将处理结果发送至内核态(即步骤14)之后,所述磁盘重定向方法还包括以下步骤:
步骤15,通过调用文件管理器展示处理结果。
在本步骤中,磁盘重定向装置的文件系统模块调用文件管理器展示处理结果,从而将磁盘文件操作的处理结果呈现给云桌面用户。
在一些实施例中,文件系统模块可以是FUSE(Filesystem in Userspace,用户空间文件系统)。FUSE为Linux内核的一部分,在Linux开机的时候,FUSE会实现两部分功能:(1)注册VFS(Virtual File System,虚拟文件系统)接口,VFS接口面向云桌面用户,当云桌面用户进行操作的时候就会调用该接口;(2)注册字符设备,字符设备即为dev/fuse接口,字符设备面向磁盘重定向模块。
如图5所示,所述将磁盘文件操作请求发送至用户态(即步骤11),包括以下步骤:
步骤111,调用预先注册的第一接口获取磁盘文件操作请求。
第一接口为VFS接口,在本步骤中,FUSE调用VFS接口,获取云桌面用户发起的磁盘文件操作请求。
步骤112,利用第一接口将磁盘文件操作请求封装为第一格式。
在本步骤中,VFS接口按照约定好的协议格式(即第一格式),对磁盘文件操作请求进行封装,将其封装为第一格式。
步骤113,将第一格式的磁盘文件操作请求写入预先注册的第二接口,第二接口为用户态与内核态之间的接口。
第二接口即为字符设备,也就是dev/fuse接口,该接口为用户态与内核态之间的接口。在本步骤中,FUSE将第一格式的磁盘文件操作请求发送给第二接口,并将该第一格式的磁盘文件操作请求写入第二接口,以便用户态能够从第二接口中获取磁盘文件操作请求。需要说明的是,在第二接口中没有存储数据的情况下,磁盘重定向模块阻塞读取第二接口。
在一些实施例中,如图6所示,所述在用户态中将磁盘文件操作请求发送给云终端(即步骤12),包括以下步骤:
步骤121,在用户态中从第二接口中获取第一格式的磁盘文件操作请求。
在本步骤中,磁盘重定向装置的磁盘重定向模块从第二接口中获取第一格式的磁盘文件操作请求。
步骤122,根据磁盘文件操作请求的类型调用相应的用户操作接口。
步骤123,利用用户操作接口将第一格式的磁盘文件操作请求封装为第二格式。
步骤124,将第二格式的磁盘文件操作请求发送给云终端。
磁盘重定向模块的承载体是一个位于用户态的守护进程,该守护进程在启动的时候会注册一系列的接口,这些接口对应着云桌面用户的每个操作(例如注册的getattr接口对应着用户查看文件属性的操作),可以读取字符设备(即第二接口),获取来自内核态的数据。如果内核态向用户态发送了数据,用户态就可以通过第二接口接收并获取到该数据。然后守护进程根据磁盘文件操作请求的类型调用启动的时候已经注册好的用户操作接口,按照与云终端约定好的协议格式(即第二格式),对第一格式的磁盘文件操作请求进行封装得到第二格式的磁盘文件操作请求,通过网络发送给云终端,并等待云终端的回复。
在一些实施例中,如图7所示,所述将处理结果发送至内核态(即步骤14),包括以下步骤:
步骤141,将处理结果写入第二接口。
步骤142,在内核态中从第二接口中获取处理结果。
磁盘重定向装置的磁盘重定向模块(即守护进程)将云终端发送的处理结果写入第二接口,磁盘重定向装置的文件系统模块(即FUSE)从第二接口中获取处理结果,以便展示给云桌面用户。
为清楚说明本公开实施例的方案,以下结合图8和图9,通过一具体实例对本公开实施例的磁盘重定向过程进行详细说明。
图8为磁盘重定向过程的示意图,如图8所示,云桌面用户指的是使用Linux云桌面的用户;磁盘重定向模块为磁盘重定向装置的功能模块,位于用户态,其载体为守护进程,是磁盘重定向所在的进程,用于接收磁盘文件操作请求,并发送给云终端;文件系统模块(FUSE)为磁盘重定向装置的功能模块,位于内核态,向云桌面用户提供第一接口(即VFS接口),并向守护进程提供第二接口(即/dev/fuse接口)。
图9为本公开实施例提供的具体实例的磁盘重定向流程示意图,在本具体实例中,以查看文件属性的操作为例说明。如图9所示,在该具体实例中,云桌面用户通过磁盘重定向装置(包括FUSE模块和磁盘重定向模块)实现对胖终端的磁盘重定向操作。
在初始化阶段,FUSE在Linux开机的时候注册VFS接口并创建字符设备,磁盘重定向模块注册用户操作接口,并阻塞读取字符设备,胖终端初始化。
初始化完成之后,磁盘重定向模块和胖终端通过握手流程互相沟通信息,保证双方都已经做好映射磁盘的准备;当握手阶段结束后,就表明已经成功将胖终端里的磁盘映射到云桌面上。
磁盘重定向流程包括以下步骤:
步骤1,云桌面用户通过文件管理器查看所映射的磁盘中的磁盘文件属性,即云桌面用户向FUSE模块发送查看文件属性请求。
步骤2,FUSE模块向磁盘重定向模块转发查看文件属性请求。云桌面用户的查看文件属性请求会通过系统调用VFS接口陷入内核态,FUSE利用VFS接口封装该查看文件属性请求后发送给字符设备。
步骤3,磁盘重定向模块从字符设备中读取查看文件属性请求,经过进一步封装后,经由网络转发给胖终端。
步骤4,胖终端获取文件属性后,将文件属性返回给磁盘重定向模块。
步骤5,磁盘重定向模块给该文件分配一个虚拟的ino作为该文件的标识,将文件属性和ino封装后发送给字符设备,通过字符设备发送给FUSE模块。
步骤6,FUSE模块利用文件管理器向云桌面用户展示文件属性。
在完成上述操作之后,磁盘重定向模块与胖终端通过握手流程取消磁盘映射,从而断开云桌面和胖终端的连接。
本公开实施例是对于Linux云桌面应用的场景,用于云桌面访问远端的云终端(即胖终端)上的存储设备。利用FUSE实现用户态文件系统,将用户的磁盘文件操作请求在用户态进行处理,便于开发、调试和维护;使用虚拟ino标识磁盘文件,可以同时兼容胖终端上的各种类型的文件系统。本公开实施例使用用户态文件系统(利用FUSE从内核态上移至用户态),避免了内核文件系统的弊端,更加有利于产品的稳定和可维护性。
基于相同的技术构思,本公开实施例还提供一种磁盘重定向装置,如图10所示,所述磁盘重定向装置包括文件系统模块101和磁盘重定向模块102,云终端的磁盘预先映射在磁盘重定向模块102中,所述磁盘重定向装置部署在云桌面操作系统的内核态和用户态中。
文件系统模块101部署在云桌面操作系统的内核态中,用于在所述内核态获取到磁盘文件操作请求的情况下,将所述磁盘文件操作请求发送至所述用户态;所述磁盘文件操作请求是云桌面用户针对所述磁盘重定向装置所映射的磁盘发起的。
磁盘重定向模块部102署在云桌面操作系统的用户态中,用于在所述用户态中将所述磁盘文件操作请求发送给所述云终端,以使所述云终端根据所述磁盘文件操作请求对本地的磁盘文件进行处理。
在一些实施例中,磁盘重定向模块102还用于,在所述用户态中将所述磁盘文件操作请求发送给所述云终端之后,在所述用户态中接收所述云终端返回的处理结果,所述处理结果由所述云终端根据所述磁盘文件操作请求对所述云终端的磁盘文件进行处理得到;将所述处理结果发送至所述内核态。
在一些实施例中,磁盘重定向模块102还用于,在所述用户态中接收所述云终端返回的处理结果之后、将所述处理结果发送至所述内核态之前,在所述用户态中为目标磁盘文件分配虚拟索引节点以标识所述目标磁盘文件,所述目标磁盘文件为所述磁盘文件操作请求对应的磁盘文件。
磁盘重定向模块102用于,将所述处理结果和所述虚拟索引节点发送至所述内核态。
在一些实施例中,所述磁盘文件操作请求是云桌面用户利用文件管理器针对所述磁盘重定向装置所映射的磁盘发起的。
文件系统模块101还用于,在将所述处理结果发送至所述内核态之后,通过调用所述文件管理器展示所述处理结果。
在一些实施例中,文件系统模块101用于,调用预先注册的第一接口获取所述磁盘文件操作请求;利用所述第一接口将所述磁盘文件操作请求封装为第一格式;将第一格式的磁盘文件操作请求写入预先注册的第二接口,所述第二接口为所述用户态与所述内核态之间的接口。
在一些实施例中,磁盘重定向模块102用于,在所述用户态中从所述第二接口中获取所述第一格式的磁盘文件操作请求;根据所述磁盘文件操作请求的类型调用相应的用户操作接口;利用所述用户操作接口将所述第一格式的磁盘文件操作请求封装为第二格式;将所述第二格式的磁盘文件操作请求发送给所述云终端。
在一些实施例中,磁盘重定向模块102用于,将所述处理结果写入所述第二接口;在所述内核态中从所述第二接口中获取所述处理结果。
本公开实施例还提供了一种计算机设备,该计算机设备包括:一个或多个处理器以及存储装置;其中,存储装置上存储有一个或多个程序,当上述一个或多个程序被上述一个或多个处理器执行时,使得上述一个或多个处理器实现如前述各实施例所提供的磁盘重定向方法。
本公开实施例还提供了一种计算机可读介质,其上存储有计算机程序,其中,该计算机程序被执行时实现如前述各实施例所提供的磁盘重定向方法。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
本文已经公开了示例实施例,并且虽然采用了具体术语,但它们仅用于并仅应当被解释为一般说明性含义,并且不用于限制的目的。在一些实例中,对本领域技术人员显而易见的是,除非另外明确指出,否则可单独使用与特定实施例相结合描述的特征、特性和/或元素,或可与其他实施例相结合描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解,在不脱离由所附的权利要求阐明的本发明的范围的情况下,可进行各种形式和细节上的改变。
Claims (10)
1.一种磁盘重定向方法,其特征在于,所述方法应用于云桌面的磁盘重定向装置,所述磁盘重定向装置部署在云桌面操作系统的内核态和用户态中,云终端的磁盘预先映射在所述磁盘重定向装置中;所述方法包括:
在所述内核态获取到磁盘文件操作请求的情况下,将所述磁盘文件操作请求发送至所述用户态;所述磁盘文件操作请求是云桌面用户针对所述磁盘重定向装置所映射的磁盘发起的;
在所述用户态中将所述磁盘文件操作请求发送给所述云终端,以使所述云终端根据所述磁盘文件操作请求对本地的磁盘文件进行处理。
2.如权利要求1所述的方法,其特征在于,在所述用户态中将所述磁盘文件操作请求发送给所述云终端之后,所述方法还包括:
在所述用户态中接收所述云终端返回的处理结果,所述处理结果由所述云终端根据所述磁盘文件操作请求对所述云终端的磁盘文件进行处理得到;
将所述处理结果发送至所述内核态。
3.如权利要求2所述的方法,其特征在于,所述在所述用户态中接收所述云终端返回的处理结果之后、将所述处理结果发送至所述内核态之前,所述方法还包括:
在所述用户态中为目标磁盘文件分配虚拟索引节点以标识所述目标磁盘文件,所述目标磁盘文件为所述磁盘文件操作请求对应的磁盘文件;
所述将所述处理结果发送至所述内核态,包括:将所述处理结果和所述虚拟索引节点发送至所述内核态。
4.如权利要求2所述的方法,其特征在于,所述磁盘文件操作请求是云桌面用户利用文件管理器针对所述磁盘重定向装置所映射的磁盘发起的;
在将所述处理结果发送至所述内核态之后,所述方法还包括:
通过调用所述文件管理器展示所述处理结果。
5.如权利要求2-4任一项所述的方法,其特征在于,所述将所述磁盘文件操作请求发送至所述用户态,包括:
调用预先注册的第一接口获取所述磁盘文件操作请求;
利用所述第一接口将所述磁盘文件操作请求封装为第一格式;
将第一格式的磁盘文件操作请求写入预先注册的第二接口,所述第二接口为所述用户态与所述内核态之间的接口。
6.如权利要求5所述的方法,其特征在于,所述在所述用户态中将所述磁盘文件操作请求发送给所述云终端,包括:
在所述用户态中从所述第二接口中获取所述第一格式的磁盘文件操作请求;
根据所述磁盘文件操作请求的类型调用相应的用户操作接口;
利用所述用户操作接口将所述第一格式的磁盘文件操作请求封装为第二格式;
将所述第二格式的磁盘文件操作请求发送给所述云终端。
7.如权利要求5所述的方法,其特征在于,所述将所述处理结果发送至所述内核态,包括:
将所述处理结果写入所述第二接口;
在所述内核态中从所述第二接口中获取所述处理结果。
8.一种磁盘重定向装置,其特征在于,包括文件系统模块和磁盘重定向模块,云终端的磁盘预先映射在所述磁盘重定向模块中,所述磁盘重定向装置部署在云桌面操作系统的内核态和用户态中,
所述文件系统模块部署在云桌面操作系统的内核态中,用于在所述内核态获取到磁盘文件操作请求的情况下,将所述磁盘文件操作请求发送至所述用户态;所述磁盘文件操作请求是云桌面用户针对所述磁盘重定向装置所映射的磁盘发起的;
所述磁盘重定向模块部署在云桌面操作系统的用户态中,用于在所述用户态中将所述磁盘文件操作请求发送给所述云终端,以使所述云终端根据所述磁盘文件操作请求对本地的磁盘文件进行处理。
9.一种计算机设备,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-7任一项所述的磁盘重定向方法。
10.一种计算机可读介质,其上存储有计算机程序,其中,所述程序被执行时实现如权利要求1-7任一项所述的磁盘重定向方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210686183.1A CN117290025A (zh) | 2022-06-16 | 2022-06-16 | 磁盘重定向方法、装置、计算机设备及可读介质 |
PCT/CN2023/100608 WO2023241679A1 (zh) | 2022-06-16 | 2023-06-16 | 磁盘重定向方法、装置、计算机设备及可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210686183.1A CN117290025A (zh) | 2022-06-16 | 2022-06-16 | 磁盘重定向方法、装置、计算机设备及可读介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117290025A true CN117290025A (zh) | 2023-12-26 |
Family
ID=89192339
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210686183.1A Pending CN117290025A (zh) | 2022-06-16 | 2022-06-16 | 磁盘重定向方法、装置、计算机设备及可读介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117290025A (zh) |
WO (1) | WO2023241679A1 (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105100178B (zh) * | 2014-05-23 | 2019-12-20 | 中兴通讯股份有限公司 | 一种自适应重定向加速处理方法及装置 |
CN104503863B (zh) * | 2014-11-07 | 2017-08-11 | 清华大学 | 用于虚拟容器系统容灾的内核态与用户态数据交换方法 |
CN111309698A (zh) * | 2018-12-12 | 2020-06-19 | 中兴通讯股份有限公司 | 磁盘重定向方法、装置和系统 |
CN111782318A (zh) * | 2020-06-16 | 2020-10-16 | 贵州省广播电视信息网络股份有限公司 | 远程挂载本地磁盘到云桌面虚拟机中共享访问系统及方法 |
-
2022
- 2022-06-16 CN CN202210686183.1A patent/CN117290025A/zh active Pending
-
2023
- 2023-06-16 WO PCT/CN2023/100608 patent/WO2023241679A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023241679A1 (zh) | 2023-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110019081B (zh) | 数据持久化处理方法、装置、系统及可读存储介质 | |
CN107004032B (zh) | 镜像文件转换方法及装置 | |
CN112445579B (zh) | 零终端数据处理系统及其文件复制方法、装置 | |
US10430378B1 (en) | Fast container distribution with storage acceleration | |
CN111782318A (zh) | 远程挂载本地磁盘到云桌面虚拟机中共享访问系统及方法 | |
US9104339B1 (en) | Support track aligned partitions inside virtual machines | |
CN109729121B (zh) | 一种云存储系统及用于云存储系统中实现自定义数据处理的方法 | |
CN108459910A (zh) | 一种删除资源的方法及设备 | |
CN115390991A (zh) | 虚拟机的导入导出方法、装置、设备及存储介质 | |
CN111164570B (zh) | 用于创建用于与远程计算机一起使用的虚拟盘映像的系统和方法 | |
CN110865981A (zh) | 用于移动终端的文件访问方法及其移动终端 | |
CN107092494B (zh) | 访问apk资源的方法和装置 | |
CN117290025A (zh) | 磁盘重定向方法、装置、计算机设备及可读介质 | |
CN109656674B (zh) | 一种计算机设备、虚拟化芯片及数据传输方法 | |
CN106789198B (zh) | 一种计算节点管理方法及系统 | |
CN115509563A (zh) | 镜像文件制作方法、装置、设备及介质 | |
CN115774701A (zh) | 数据共享方法、装置、电子设备及存储介质 | |
CN113918519A (zh) | 一种文件夹挂载方法、装置及终端设备 | |
US20180307702A1 (en) | File directory synchronization | |
CN114860166A (zh) | 一种卷的本地化方法、装置以及介质 | |
CN114979114A (zh) | 云应用处理方法和系统 | |
CN109347896B (zh) | 一种信息处理方法、设备和计算机可读存储介质 | |
CN115525618A (zh) | 存储集群、数据存储方法、系统及存储介质 | |
US20190012103A1 (en) | Virtual removable memory component | |
CN105045629A (zh) | 一种无盘工作站设备启动方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |