CN118012839A - 文件服务系统在用户态传递文件布局的方法、装置及系统 - Google Patents
文件服务系统在用户态传递文件布局的方法、装置及系统 Download PDFInfo
- Publication number
- CN118012839A CN118012839A CN202410050788.0A CN202410050788A CN118012839A CN 118012839 A CN118012839 A CN 118012839A CN 202410050788 A CN202410050788 A CN 202410050788A CN 118012839 A CN118012839 A CN 118012839A
- Authority
- CN
- China
- Prior art keywords
- file
- file layout
- request
- layout
- transfer
- 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.)
- Granted
Links
- 238000012546 transfer Methods 0.000 title claims abstract description 73
- 238000000034 method Methods 0.000 title claims abstract description 36
- 230000006870 function Effects 0.000 claims description 80
- 238000012545 processing Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 6
- 238000007726 management method Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 claims description 5
- 230000003993 interaction Effects 0.000 claims description 4
- 230000002452 interceptive effect Effects 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000007717 exclusion Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
Classifications
-
- 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
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
- G06F16/183—Provision of network file services by network file servers, e.g. by using NFS, CIFS
-
- 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/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种文件服务系统在用户态传递文件布局的方法及系统,该方法步骤包括:在内核态初始化时创建文件布局传递设备以用于用户态传递文件布局请求给内核态;在用户态打开文件布局传递设备,并构建文件布局请求,文件布局请求包括文件布局获取请求、文件布局提交请求以及文件系统设备信息获取请求中任意一种;通过调用ioctl函数向内核态传递文件布局请求,将文件布局请求传递给内核态;当内核态接收到用户态传递的文件布局请求时,判断请求类型并获取文件指针,通过获取的文件指针调用对应请求类型的文件布局函数,将获取到的文件布局信息发送给用户态。
Description
技术领域
本发明涉及NFS-Ganesha文件服务系统,尤其涉及一种文件服务系统在用户态传递文件布局的方法、装置及系统。
背景技术
NFS-Ganesha是一种运行在linux用户态的NFS(Network File System,网络文件系统)服务端程序,支持nfsv3、nfsv4、nfsv4.1和nfsv4.2协议。NFS-Ganesha拥有文件系统抽象层(FSAL)的设计,通过文件系统抽象层模块可对接各种不同的文件系统,其中FSAL(File System Abstraction Layer)模块可对接各种服务端本地的文件系统,例如XFS文件系统。FSAL支持nfsv4的各种文件读写和元数据操作,但却不支持pNFS(Parallel NetworkFile System,并行网络文件系统)功能,主要原因是用户态的FSAL模块无法调用内核态的文件布局相关函数,因而无法直接获取以及提交文件布局。
具体来说,现有技术中在NFS-Ganesha系统中,文件布局函数只能在内核态调用,因而必须将所需调用的文件布局函数、函数所需参数和保存文件布局的内存地址等传递给内核态,再由内核态获取到传递的信息之后调用对应的函数后,将获取到的信息传递给用户态,用户态的VFS模块无法直接获取与提交文件布局,即不具备pNFS功能。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种文件服务系统在用户态传递文件布局的方法、装置及系统,能够在用户态获取文件布局以及提交文件布局,使得用户态的NFS-Ganesha实现pNFS功能。
为解决上述技术问题,本发明提出的技术方案为:
一种文件服务系统在用户态传递文件布局的方法,步骤包括:
在内核态初始化时创建文件布局传递设备以用于用户态传递文件布局请求给内核态;
在用户态打开所述文件布局传递设备,并构建文件布局请求,所述文件布局请求包括文件布局获取请求、文件布局提交请求以及文件系统设备信息获取请求中任意一种;
由所述文件布局传递设备通过调用ioctl(input/output control,输入输出操作)函数向内核态传递文件布局请求;
当内核态接收到用户态传递的文件布局请求时,判断请求类型并获取文件指针,通过获取的文件指针调用对应请求类型的文件布局函数,将获取到的文件布局信息发送给用户态。
进一步的,在用户态打开所述文件布局传递设备前,还包括在文件布局传递内核模块中定义文件布局请求类型,将各文件布局请求类型分别对应一个文件布局请求处理接口,在用户态加载所述文件布局传递内核模块,通过在内核态创建字符设备,注册所述文件布局请求处理接口到字符设备。
进一步的,所述文件布局获取请求包括文件描述符、文件读写模式、请求的文件布局偏移量、请求的文件布局长度、保存文件布局地址的变量中任意一种或多种参数,所述文件布局提交请求中包括文件描述符、是否修改时间属性的标志、所需修改的时间、文件最后写入的长度、文件需要提交的文件布局数量中任意一种或多种参数,每个文件布局中包含文件布局的地址、文件偏移量和写入长度,所述文件系统设备信息获取请求包括文件描述符、保存文件系统块设备UUID(Universally Unique Identifier,通用唯一识别码)的变量。
进一步的,所述通过获取的文件指针调用对应请求类型的文件布局函数包括:
若文件布局请求为文件布局获取请求,调用文件系统的输出操作集中的文件布局获取函数获取文件布局,再将文件布局数据保存到内存中;
若文件布局请求为文件布局提交请求,调用文件系统的输出操作集中的文件布局提交函数提交所有文件布局;
若文件布局请求为文件系统设备信息获取请求,调用文件系统的输出操作集中的文件系统设备信息获取函数,以获取并保存文件系统设备信息到内存中。
进一步的,所述将获取到的文件布局信息发送给用户态包括:用户态接收内核态执行结果时,用户态根据接收到的ioctl函数的返回值判断文件布局请求命令是否执行成功,若执行成功从文件布局请求中拷贝文件布局和文件系统设备信息。
进一步的,还包括预先创建多个文件布局传递设备以提供多个文件布局请求传递通道,在用户态根据通道数量建立文件布局请求处理线程池以并发处理文件布局请求。
进一步的,所述获取文件指针,通过获取的文件指针调用对应请求类型的文件布局函数,将获取到的文件布局信息发送给用户态的步骤包括:
先使用ioctl函数将内核态模块通过用户态的文件描述符获取到文件指针,并将文件描述符映射的文件指针保存在共享内存中;
用户态再通过NetLink套接字异步发送文件布局请求;
内核态模块通过NetLink套接字接收到文件布局请求后,通过共享内存获取到文件描述符对应的文件指针;
调用对应的文件布局函数,将执行结果通过NetLink套接字发送给用户态。
一种用于实现上述文件服务系统在用户态传递文件布局的方法的装置,包括:
文件布局传递用户态模块,用于提供交互接口、开关文件布局传递设备、调用ioctl函数向内核态传递文件布局请求以及根据文件布局接口参数构建文件布局请求;
文件布局传递内核模块,用于创建字符设备、管理字符设备注销以及根据文件布局请求类型返回执行结果。
进一步的,所述文件布局传递用户态模块包括:
文件布局接口管理单元,用于提供文件布局获取与提交的交互接口;
字符设备操作单元,用户打开与关闭文件布局传递设备,以及调用ioctl函数向内核态传递文件布局请求;
文件布局请求生成单元,用于根据文件布局接口参数构建不同的文件布局请求;
所述文件布局传递内核模块包括:
字符设备创建单元,用于生成设备号、注册文件布局请求处理接口到字符设备以及注册字符设备、创建字符设备文件;
文件布局请求管理单元,用于判断文件布局请求类型,根据文件布局请求类型执行对应的请求并返回执行结果;
字符设备注销单元,用于删除字符设备文件以及注销字符设备、释放设备号。
一种文件服务系统,包括处理器以及存储器,所述存储器用于存储计算机程序,所述处理器用于执行所述计算机程序以执行如上述方法。
与现有技术相比,本发明的优点在于:本发明通过创建一个文件布局传递设备以用于传递文件布局请求给内核态,用户态打开文件布局传递设备后,构建文件布局请求,通过调用ioctl函数实现将用户态参数传递给内核态,内核态再通过文件描述符获取文件指针,进而调用对应的文件布局函数,将获取到的文件布局信息发送给用户态,可以实现在用户态实现文件布局的获取以及提交,使得用户态的NFS-Ganesha能够实现pNFS功能。
附图说明
图1是本实施例文件服务系统在用户态传递文件布局的方法实现流程示意图。
图2是本实施例实现文件服务系统在用户态传递文件布局的装置的结构原理示意图。
具体实施方式
以下结合说明书附图和具体优选的实施例对本发明作进一步描述,但并不因此而限制本发明的保护范围。
NFS-Ganesha的FSAL模块在用户态时,文件布局函数只能在内核态调用,在内核态调用文件布局函数时,不仅需要将所需调用的文件布局函数、函数所需参数和保存文件布局的内存地址传递给内核态,另外由于用户态对文件的操作是使用文件描述符,而内核态对文件的操作却是使用文件指针,因而还需要内核态能将文件描述符转换为对应的文件指针,使得NFS-Ganesha的FSAL模块不具备pNFS功能。ioctl函数可用于设备驱动程序中向设备发送各种控制命令,例如使用ioctl函数获取设备的状态信息、设置设备的属性等。
为实现NFS-Ganesha的FSAL模块在用户态时即能够快速获取以及提交文件布局,本发明通过创建一个文件布局传递设备以用于传递文件布局请求给内核态,用户态打开文件布局传递设备后,构建文件布局请求,通过调用ioctl函数实现将用户态参数传递给内核态,内核态再通过文件描述符获取文件指针,进而调用对应的文件布局函数,内存拷贝可将内核态数据拷贝到用户态内存中,将获取到的文件布局信息发送给用户态,可以实现在用户态即实现文件布局的获取以及提交,使得用户态的NFS-Ganesha能够实现pNFS功能。
如图1所示,本实施例文件服务系统在用户态传递文件布局的方法的步骤包括:
在内核态初始化时创建文件布局传递设备以用于用户态传递文件布局请求给内核态。其中,文件布局传递设备主要是为用户态模块提供传递文件布局请求的接口,并将用户态的文件布局请求传递给文件布局获取与提交内核模块,以及将内核模块执行请求的结果返回给用户态模块;
在用户态打开文件布局传递设备,并构建文件布局请求,文件布局请求包括文件布局获取请求、文件布局提交请求以及文件系统设备信息获取请求中任意一种;
由文件布局传递设备通过调用ioctl函数向内核态传递文件布局请求;
当内核态接收到用户态传递的文件布局请求时,判断请求类型并获取文件指针,通过获取的文件指针调用对应请求类型的文件布局函数,将获取到的文件布局信息发送给用户态。
本实施例中,在用户态打开文件布局传递设备前,还包括在文件布局传递内核模块中定义文件布局请求类型,将各文件布局请求类型分别对应一个文件布局请求处理接口,在用户态加载文件布局传递内核模块,通过在内核态创建字符设备,注册文件布局请求处理接口到字符设备。文件布局传递内核模块主要用于为用户态提供可传递文件布局请求的设备和命令,然后根据用户态的请求执行文件布局函数,并返回执行结果。在内核态模块初始化时创建文件布局传递设备,该设备是字符设备,以使得用户态能够通过该设备传递文件布局请求给内核态。
本实施例中,文件布局获取请求具体包括文件描述符、文件读写模式、请求的文件布局偏移量、请求的文件布局长度、保存文件布局地址的变量等参数,文件布局提交请求中包括文件描述符、是否修改时间属性的标志、所需修改的时间、文件最后写入的长度、文件需要提交的文件布局数量等参数,每个文件布局中包含文件布局的地址、文件偏移量和写入长度等,文件系统设备信息获取请求包括文件描述符、保存文件系统块设备UUID的变量等。可以理解的是,各类请求中参数类型具体可以根据实际需求进行配置。
本实施例中,当内核态接收到用户态传递的文件布局请求时,通过获取文件布局请求的参数中的文件描述符,根据文件描述符获取对应文件的文件指针,根据获取的文件指针获取到文件系统的输出操作集指针。具体地,内核态可使用fget函数通过文件描述符获取文件指针,然后利用该文件指针获取到文件系统的输出操作集指针以及调用对应请求类型的文件布局函数。
本实施例中,通过获取的文件指针调用对应请求类型的文件布局函数包括:
若文件布局请求为文件布局获取请求,调用文件系统的输出操作集中的文件布局获取函数获取文件布局,再将文件布局数据保存到内存中;
若文件布局请求为文件布局提交请求,调用文件系统的输出操作集中的文件布局提交函数提交所有文件布局;
若文件布局请求为文件系统设备信息获取请求,调用文件系统的输出操作集中的文件系统设备信息获取函数,以获取并保存文件系统设备信息到内存中。
本实施例中,将获取到的文件布局信发送给用户态包括:用户态接收内核态执行结果时,用户态根据接收到的ioctl函数的返回值判断文件布局请求命令是否执行成功,若执行成功从文件布局请求中发送文件布局和文件系统设备信息。
本实施例中,还包括:
若不需要再获取或提交文件布局,关闭打开的文件布局获取与提交设备;
若需要卸载文件布局获取与提交内核模块,使用rmmod(remove module,卸载模块)命令进行卸载,内核模块删除创建的字符设备,释放设备占用的资源。
本实施例通过上述步骤,可以借助于创建的文件布局传递设备传递文件布局请求给内核态,用户态打开文件布局传递设备后,通过构建文件布局请求以及调用ioctl函数实现将用户态参数传递给内核态,内核态通过文件描述符获取文件指针调用对应的文件布局函数,将文件布局信息发送给用户态,使得在用户态即可实现文件布局的获取以及提交,即NFS-Ganesha的用户态也能够具备pNFS功能。
由于ioctl并非线程安全的函数,在多个客户端多个文件并发读写的情况下会造成数据混乱,虽然直接在调用ioctl函数之前使用互斥锁可以保证数据安全,由于互斥锁的竞争和ioctl的阻塞执行会造成大量的文件布局操作阻塞和部分文件布局操作一直无法执行,会严重影响文件的读写性能。本实施例进一步在内核模块初始化时通过创建多个文件布局传递设备以提供多个文件布局请求传递通道,并在用户态根据通道数量建立文件布局请求处理线程池来并发处理文件布局请求,以使得能够进一步提高文件读写的效率。
考虑到在大规模的并发读写时文件布局请求处理线程池的切换开销和处理能力也会成为文件布局请求的处理瓶颈。本实施例进一步引入性能更高的用户态与内核态信息交互技术NetLink(进程间通信)以实现用户态与内核态的交互,NetLink的用户态消息发送和内核态的消息接收是两个独立的进程,导致内核态无法通过用户态的文件描述符获取到文件指针。本实施例获取文件指针,通过获取的文件指针调用对应请求类型的文件布局函数,将获取到的文件布局信息发送给用户态的步骤包括:
先通过ioctl函数让内核态模块通过用户态的文件描述符获取到文件指针,并将文件描述符映射的文件指针保存在共享内存中;
用户态通过NetLink套接字异步发送文件布局请求;
内核态模块通过NetLink套接字接收到文件布局请求后,通过共享内存获取到文件描述符对应的文件指针,然后再调用对应的文件布局函数,最后将执行结果通过NetLink套接字发送给用户态。
本实施例通过上述步骤,能够充分发挥ioctl函数以及NetLink技术的优势,在用户态的实现pNFS功能的同时,还能够进一步提升文件布局请求处理能力。
本实施例还提供用于实现上述文件服务系统在用户态传递文件布局的方法的装置,包括:
文件布局传递用户态模块,用于提供交互接口、开关文件布局传递设备、调用ioctl函数向内核态传递文件布局请求以及根据文件布局接口参数构建文件布局请求;
文件布局传递内核模块,用于创建字符设备、管理字符设备注销以及根据文件布局请求类型返回执行结果。
上述文件布局传递内核模块主要为用户态提供可传递文件布局请求的设备和命令,然后根据用户态的请求执行文件布局函数,并返回执行结果。在具体应用实施例中,文件布局传递内核模块配置具有以下功能:
1、定义文件布局请求命令,让用户态内通过ioctl函数传递不同的文件布局请求到内核态;
2、等待接收用户态传递的文件布局请求,判断请求类型,根据文件描述符获取文件指针,通过文件指针调用对应请求类型的文件布局函数,以及将获取到的文件布局相关信息发送给用户态。
3、内核态模块初始化时创建文件布局获取与提交设备,使用户态能通过此设备传递文件布局请求给内核态。
4、内核态模块卸载时删除文件布局获取与提交设备,释放设备资源。
上述文件布局传递用户态模块主要用于生成和发送文件布局请求以及接收请求执行的结果,在具体应用实施例中,文件布局传递用户态模块配置具有以下功能:
1、加载文件布局获取与提交内核模块;
2、打开文件布局获取与提交设备,获取设备描述符;
3、准备文件布局请求;
4、调用ioctl函数向内核态传递文件布局请求;
5、等待内核态执行文件布局函数结束,获取返回值和文件布局信息。
为实现上述功能,如图2所示,本实施例中文件布局传递用户态模块具体包括:
文件布局接口管理单元,用于提文件布局获取与提交的交互接口;
字符设备操作单元,用户打开与关闭文件布局传递设备,以及调用ioctl函数向内核态传递文件布局请求;
文件布局请求生成单元,用于根据文件布局接口参数构建不同的文件布局请求;
本实施例中文件布局传递内核模块具体包括:
字符设备创建单元,用于生成设备号、注册文件布局请求处理接口到字符设备以及注册字符设备、创建字符设备文件;
文件布局请求管理单元,用于判断文件布局请求类型,根据文件布局请求类型执行对应的请求并返回执行结果,包括执行文件布局获取(layoutget)、文件布局提交(layoutcommit)或文件系统设备信息获取(getdeviceinfo)请求;
字符设备注销单元,用于删除字符设备文件以及注销字符设备、释放设备号。
在具体应用实施例中,利用上述装置实现在用户态传递文件布局的步骤为:
步骤1:文件布局传递内核模块定义文件布局请求命令包括文件布局获取命令、文件布局提交命令和文件系统设备信息获取命令,各命令对应一个文件布局请求处理接口;
步骤2:用户态使用命令加载文件布局传递内核模块,内核态创建字符设备,注册文件布局请求处理接口到字符设备,并在内核模块初始化阶段创建多个文件布局传递设备以提供多个文件布局请求传递通道,以及在用户态根据通道数量建立文件布局请求处理线程池来以并发处理文件布局请求;
步骤3:用户态打开文件布局传递设备。
步骤4:用户态生成文件布局请求。
步骤5:文件布局请求有文件布局获取(layoutget)、文件布局提交(layoutcommit)或文件系统设备信息获取(getdeviceinfo)三种类型的请求。
步骤6:用户态将文件描述符发送给内核态,内核态根据文件描述符获取到文件指针,并将文件描述符和文件指针保存在共享内存中,以使得后续可以结合Netlink技术进行文件布局传递。用户态将文件布局请求发送给内核态。
步骤7:内核态接收用户态传递的文件布局获取请求,获取文件布局请求参数中的文件描述符,根据文件描述符获取对应文件的文件指针,根据文件指针获取到文件系统的输出操作集指针。
步骤8:内核态判断文件布局请求命令类型,根据命令类型执行相应操作:
若文件布局请求命令为文件布局获取命令(layoutget),调用文件系统的输出操作集中的文件布局获取函数获取文件布局,再将文件布局数据保存到内存中;
若文件布局请求命令为文件布局提交命令(layoutcommit),调用文件系统的输出操作集中的文件布局提交函数,提交所有文件布局;
若文件布局请求命令为文件系统设备信息获取命令(getdeviceinfo),调用文件系统的输出操作集中的文件系统设备信息获取函数,获取并保存文件系统设备信息到内存中。
步骤9:文件布局传递设内核态将文件布局获取(layoutget)、文件布局提交(layoutcommit)或文件系统设备信息获取(getdeviceinfo)的执行结果发送给用户态。
先通过ioctl函数让内核态模块通过用户态的文件描述符获取到文件指针,并将文件描述符映射的文件指针保存在共享内存中;用户态通过NetLink套接字异步发送文件布局请求;内核态模块通过NetLink套接字接收到文件布局请求后,通过共享内存获取到文件描述符对应的文件指针,然后再调用对应的文件布局函数,最后将执行结果通过NetLink套接字发送给用户态。
步骤10:用户态接收内核态执行结果,用户态从文件布局请求中获取文件布局和文件系统设备信息。
步骤11:获取或提交文件布局,关闭打开的文件布局获取与提交设备。
步骤12:卸载文件布局获取与提交内核模块,内核模块卸载时删除创建的字符设备,释放设备占用的资源。
本实施例还提供文件服务系统,包括处理器以及存储器,存储器用于存储计算机程序,处理器用于执行计算机程序以执行如上述方法。
可以理解的是,本实施例上述方法可以由单个设备执行,例如一台计算机或服务器等,也可以应用于分布式场景下由多台设备相互配合来完成,在分布式场景的情况下,多台设备中的一台设备可以只执行本实施例上述方法中的某一个或多个步骤,多台设备之间进行交互以完成上述方法。处理器可以采用通用的CPU、微处理器、应用专用集成电路、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本实施例上述方法。存储器可以采用只读存储器ROM、随机存取存储器RAM、静态存储设备以及动态存储设备等形式实现。存储器可以存储操作系统和其他应用程序,在通过软件或者固件来实现本实施例上述方法时,相关的程序代码保存在存储器中,并由处理器来调用执行。
上述只是本发明的较佳实施例,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。因此,凡是未脱离本发明技术方案的内容,依据本发明技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均应落在本发明技术方案保护的范围内。
Claims (10)
1.一种文件服务系统在用户态传递文件布局的方法,其特征在于,步骤包括:
在内核态初始化时创建文件布局传递设备以用于用户态传递文件布局请求给内核态;
在用户态打开所述文件布局传递设备,并构建文件布局请求,所述文件布局请求包括文件布局获取请求、文件布局提交请求以及文件系统设备信息获取请求中任意一种;
由所述文件布局传递设备通过调用ioctl函数向内核态传递文件布局请求;
当内核态接收到用户态传递的文件布局请求时,判断请求类型并获取文件指针,通过获取的文件指针调用对应请求类型的文件布局函数,将获取到的文件布局信息发送给用户态。
2.根据权利要求1所述的文件服务系统在用户态传递文件布局的方法,其特征在于,在用户态打开所述文件布局传递设备前,还包括在文件布局传递内核模块中定义文件布局请求类型,将各文件布局请求类型分别对应一个文件布局请求处理接口,在用户态加载所述文件布局传递内核模块,通过在内核态创建字符设备,注册所述文件布局请求处理接口到字符设备。
3.根据权利要求1所述的文件服务系统在用户态传递文件布局的方法,其特征在于,所述文件布局获取请求包括文件描述符、文件读写模式、请求的文件布局偏移量、请求的文件布局长度、保存文件布局地址的变量中任意一种或多种参数,所述文件布局提交请求中包括文件描述符、是否修改时间属性的标志、所需修改的时间、文件最后写入的长度、文件需要提交的文件布局数量中任意一种或多种参数,每个文件布局中包含文件布局的地址、文件偏移量和写入长度,所述文件系统设备信息获取请求包括文件描述符、保存文件系统块设备UUID的变量。
4.根据权利要求1所述的文件服务系统在用户态传递文件布局的方法,其特征在于,所述通过获取的文件指针调用对应请求类型的文件布局函数包括:
若文件布局请求为文件布局获取请求,调用文件系统的输出操作集中的文件布局获取函数获取文件布局,再将文件布局数据保存到内存中;
若文件布局请求为文件布局提交请求,调用文件系统的输出操作集中的文件布局提交函数提交所有文件布局;
若文件布局请求为文件系统设备信息获取请求,调用文件系统的输出操作集中的文件系统设备信息获取函数,以获取并保存文件系统设备信息到内存中。
5.根据权利要求1所述的文件服务系统在用户态传递文件布局的方法,其特征在于,所述将获取到的文件布局信息发送给用户态包括:用户态接收内核态执行结果时,用户态根据接收到的ioctl函数的返回值判断文件布局请求命令是否执行成功,若执行成功从文件布局请求中发送文件布局和文件系统设备信息。
6.根据权利要求1~5中任意一项所述的文件服务系统在用户态传递文件布局的方法,其特征在于,还包括预先创建多个文件布局传递设备以提供多个文件布局请求传递通道,在用户态根据通道数量建立文件布局请求处理线程池以并发处理文件布局请求。
7.根据权利要求6所述的文件服务系统在用户态传递文件布局的方法,其特征在于,所述获取文件指针,通过获取的文件指针调用对应请求类型的文件布局函数,将获取到的文件布局信息发送给用户态的步骤包括:
先使用ioctl函数将内核态模块通过用户态的文件描述符获取到文件指针,并将文件描述符映射的文件指针保存在共享内存中;
用户态再通过NetLink套接字异步发送文件布局请求;
内核态模块通过NetLink套接字接收到文件布局请求后,通过共享内存获取到文件描述符对应的文件指针;
调用对应的文件布局函数,将执行结果通过NetLink套接字发送给用户态。
8.一种用于实现权利要求1~7中任意一项的文件服务系统在用户态传递文件布局的方法的装置,其特征在于,包括:
文件布局传递用户态模块,用于提供交互接口、开关文件布局传递设备、调用ioctl函数向内核态传递文件布局请求以及根据文件布局接口参数构建文件布局请求;
文件布局传递内核模块,用于创建字符设备、管理字符设备注销以及根据文件布局请求类型返回执行结果。
9.根据权利要求8所述的装置,其特征在于,所述文件布局传递用户态模块包括:
文件布局接口管理单元,用于提供文件布局获取与提交的交互接口;
字符设备操作单元,用户打开与关闭文件布局传递设备,以及调用ioctl函数向内核态传递文件布局请求;
文件布局请求生成单元,用于根据文件布局接口参数构建不同的文件布局请求;
所述文件布局传递内核模块包括:
字符设备创建单元,用于生成设备号、注册文件布局请求处理接口到字符设备以及注册字符设备、创建字符设备文件;
文件布局请求管理单元,用于判断文件布局请求类型,根据文件布局请求类型执行对应的请求并返回执行结果;
字符设备注销单元,用于删除字符设备文件以及注销字符设备、释放设备号。
10.一种文件服务系统,包括处理器以及存储器,所述存储器用于存储计算机程序,其特征在于,所述处理器用于执行所述计算机程序以执行如权利要求1~7中任意一项所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410050788.0A CN118012839B (zh) | 2024-01-12 | 2024-01-12 | 文件服务系统在用户态传递文件布局的方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410050788.0A CN118012839B (zh) | 2024-01-12 | 2024-01-12 | 文件服务系统在用户态传递文件布局的方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN118012839A true CN118012839A (zh) | 2024-05-10 |
CN118012839B CN118012839B (zh) | 2024-09-20 |
Family
ID=90955263
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410050788.0A Active CN118012839B (zh) | 2024-01-12 | 2024-01-12 | 文件服务系统在用户态传递文件布局的方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118012839B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102164161A (zh) * | 2011-01-10 | 2011-08-24 | 清华大学 | 一种对并行文件系统进行文件布局提取的方法和装置 |
CN102541984A (zh) * | 2011-10-25 | 2012-07-04 | 曙光信息产业(北京)有限公司 | 一种分布式文件系统客户端的文件系统 |
US20130110904A1 (en) * | 2011-10-27 | 2013-05-02 | Hitachi, Ltd. | Method and apparatus to forward shared file stored in block storages |
CN104123229A (zh) * | 2014-07-21 | 2014-10-29 | 上海斐讯数据通信技术有限公司 | 能使报文高效地从内核态提交到用户态的方法及系统 |
CN105939365A (zh) * | 2015-06-29 | 2016-09-14 | 杭州迪普科技有限公司 | 主控板用户态从业务板内核态获取数据的方法及装置 |
CN112732344A (zh) * | 2020-12-31 | 2021-04-30 | 普华基础软件股份有限公司 | 一种用户态驱动与内核态驱动的协同工作系统及方法 |
CN114003578A (zh) * | 2021-09-27 | 2022-02-01 | 湖南麒麟信安科技股份有限公司 | 一种网络文件系统加密方法、系统及介质 |
CN114090072A (zh) * | 2022-01-21 | 2022-02-25 | 成都云祺科技有限公司 | Windows用户文件系统开发框架搭建方法、系统及其应用 |
CN114691390A (zh) * | 2022-03-07 | 2022-07-01 | 阿里巴巴(中国)有限公司 | 用户态程序的处理方法和装置、存储介质及处理器 |
CN115292096A (zh) * | 2022-08-19 | 2022-11-04 | 上海英方软件股份有限公司 | 一种备份数据保护系统、方法、设备及存储介质 |
-
2024
- 2024-01-12 CN CN202410050788.0A patent/CN118012839B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102164161A (zh) * | 2011-01-10 | 2011-08-24 | 清华大学 | 一种对并行文件系统进行文件布局提取的方法和装置 |
CN102541984A (zh) * | 2011-10-25 | 2012-07-04 | 曙光信息产业(北京)有限公司 | 一种分布式文件系统客户端的文件系统 |
US20130110904A1 (en) * | 2011-10-27 | 2013-05-02 | Hitachi, Ltd. | Method and apparatus to forward shared file stored in block storages |
CN104123229A (zh) * | 2014-07-21 | 2014-10-29 | 上海斐讯数据通信技术有限公司 | 能使报文高效地从内核态提交到用户态的方法及系统 |
CN105939365A (zh) * | 2015-06-29 | 2016-09-14 | 杭州迪普科技有限公司 | 主控板用户态从业务板内核态获取数据的方法及装置 |
CN112732344A (zh) * | 2020-12-31 | 2021-04-30 | 普华基础软件股份有限公司 | 一种用户态驱动与内核态驱动的协同工作系统及方法 |
CN114003578A (zh) * | 2021-09-27 | 2022-02-01 | 湖南麒麟信安科技股份有限公司 | 一种网络文件系统加密方法、系统及介质 |
CN114090072A (zh) * | 2022-01-21 | 2022-02-25 | 成都云祺科技有限公司 | Windows用户文件系统开发框架搭建方法、系统及其应用 |
CN114691390A (zh) * | 2022-03-07 | 2022-07-01 | 阿里巴巴(中国)有限公司 | 用户态程序的处理方法和装置、存储介质及处理器 |
CN115292096A (zh) * | 2022-08-19 | 2022-11-04 | 上海英方软件股份有限公司 | 一种备份数据保护系统、方法、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
周强;李善平;: "基于Linux的用户态文件系统的设计", 计算机应用与软件, no. 10, 15 October 2007 (2007-10-15), pages 87 - 89 * |
Also Published As
Publication number | Publication date |
---|---|
CN118012839B (zh) | 2024-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5375207A (en) | Remote processing of a plurality of commands during a session between a first computer and a host computer | |
US5396630A (en) | Method and system for object management across process boundries in a data processing system | |
US4885770A (en) | Boot system for distributed digital data processing system | |
KR100868410B1 (ko) | 관리화된 파일 시스템 필터 모델 및 아키텍쳐 | |
US5765205A (en) | Method and system for on-demand software distribution | |
US20040177361A1 (en) | Generic application program interface for native drivers | |
US6711559B1 (en) | Distributed processing system, apparatus for operating shared file system and computer readable medium | |
JP3037924B2 (ja) | マルチメディア・システムでデータストリームを効率的に転送するためのシステム及び方法 | |
EP2947582A1 (en) | Computing device and method for executing database operation command | |
CN112052263A (zh) | 请求指令处理的方法、系统、计算机设备和可读存储介质 | |
US7970814B2 (en) | Method and apparatus for providing a synchronous interface for an asynchronous service | |
CN112685148A (zh) | 海量终端的异步通信方法、装置、计算机设备和存储介质 | |
US20020029301A1 (en) | Processor system | |
CN112241398A (zh) | 一种数据迁移方法和系统 | |
CN112506676B (zh) | 进程间的数据传输方法、计算机设备和存储介质 | |
US6799319B2 (en) | Method and apparatus for application packages and delegate packages to adopt and export standard execution state machine interfaces | |
CN118012839B (zh) | 文件服务系统在用户态传递文件布局的方法、装置及系统 | |
CN113760318A (zh) | 信息处理方法、装置、服务器及存储介质 | |
US7350210B2 (en) | Generic data persistence application program interface | |
US7827194B2 (en) | Access to shared disk device on storage area network | |
US8538917B2 (en) | System and method for file coordination | |
CN113760465A (zh) | 一种事务执行方法、装置、服务器、设备和存储介质 | |
CN110879747B (zh) | 资源管理方法及装置 | |
US7010781B1 (en) | Methods and apparatus for managing debugging I/O | |
WO2024093409A1 (zh) | 服务组件的调用方法、装置、计算机设备以及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |