CN111552489B - 用户态文件系统热升级方法、装置、服务器及介质 - Google Patents

用户态文件系统热升级方法、装置、服务器及介质 Download PDF

Info

Publication number
CN111552489B
CN111552489B CN202010247450.6A CN202010247450A CN111552489B CN 111552489 B CN111552489 B CN 111552489B CN 202010247450 A CN202010247450 A CN 202010247450A CN 111552489 B CN111552489 B CN 111552489B
Authority
CN
China
Prior art keywords
file system
communication channel
state
target user
system process
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.)
Active
Application number
CN202010247450.6A
Other languages
English (en)
Other versions
CN111552489A (zh
Inventor
赵晨
马介悦
张洪全
柏硕
何征宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN202010247450.6A priority Critical patent/CN111552489B/zh
Publication of CN111552489A publication Critical patent/CN111552489A/zh
Application granted granted Critical
Publication of CN111552489B publication Critical patent/CN111552489B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本说明书实施例提供了一种用户态文件系统热升级方法、装置、服务器及介质,通过在运行目标用户态文件系统前,将目标用户态文件系统进程与内核态FUSE驱动之间通信通道的文件描述符克隆到预先创建的管理进程中,在该管理进程中备份与内核态FUSE驱动之间的备用通信通道,然后在目标用户态文件系统进程运行过程中,若监测到升级指令,则将备用通信通道的文件描述符克隆到新启动的用户态文件系统进程中,使得新启动的用户态文件系统进程拥有与内核态FUSE驱动的新通信通道,进而就可以运行新启动的用户态文件系统进程,实现用户态文件系统的热升级。

Description

用户态文件系统热升级方法、装置、服务器及介质
技术领域
本说明书实施例涉及计算机技术领域,尤其涉及一种用户态文件系统热升级方法、装置、服务器及介质。
背景技术
作为操作系统中数据管理和组织的关键角色,文件系统一般作为核心组件集成在内核中。近年来,随着文件系统复杂度的不断增长,出现了很多运行在用户态的新型文件系统。用户态文件系统能够避免内核态文件系统的数据拷贝、上下文切换、中断干扰等诸多问题,同时又能大幅减少开发复杂度,降低不稳定的文件系统对操作系统带来的安全风险。目前为止,业界已经出现了不少基于用户态文件系统的产品。
在实际的生产环境中,文件系统作为复杂度最高的系统组件之一,不可避免的存在各种功能或安全性缺陷、以及增加新特性的需求,需要在尽量不影响用户的情况下进行升级。因此,如何实现用户态文件系统的热升级成为亟待解决的问题。
发明内容
本说明书实施例提供了一种用户态文件系统热升级方法、装置、服务器及介质。
第一方面,本说明书实施例提供了一种用户态文件系统热升级方法,包括:在目标用户态文件系统进程启动后,将原始通信通道的文件描述符克隆到预先创建的管理进程中,建立所述管理进程与内核态FUSE驱动之间的通信通道,作为备用通信通道,其中,所述原始通信通道是所述目标用户态文件系统进程与所述FUSE驱动之间的通信通道;在所述目标用户态文件系统进程运行过程中,若监测到用于触发所述目标用户态文件系统进行热升级的指令,则启动新用户态文件系统进程,且将所述备用通信通道的文件描述符克隆到所述新用户态文件系统进程中,建立所述新用户态文件系统进程与所述FUSE驱动之间的新通信通道,并运行所述新用户态文件系统进程,其中,所述新通信通道用于继续转发应用进程发起的文件操作请求到所述新用户态文件系统进程进行处理。
第二方面,本说明书实施例提供了一种用户态文件系统热升级装置,包括:通道备份模块,用于在目标用户态文件系统进程启动后,将原始通信通道的文件描述符克隆到预先创建的管理进程中,建立所述管理进程与内核态FUSE驱动之间的通信通道,作为备用通信通道,其中,所述原始通信通道是所述目标用户态文件系统进程与所述FUSE驱动之间的通信通道;升级模块,用于在所述目标用户态文件系统进程运行过程中,若监测到用于触发所述目标用户态文件系统进行热升级的指令,则启动新用户态文件系统进程,且将所述备用通信通道的文件描述符克隆到所述新用户态文件系统进程中,建立所述新用户态文件系统进程与所述FUSE驱动之间的新通信通道,并运行所述新用户态文件系统进程,其中,所述新通信通道用于继续转发应用进程发起的文件操作请求到所述新用户态文件系统进程进行处理。
第三方面,本说明书实施例提供了一种服务器,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述第一方面提供的用户态文件系统热升级方法的步骤。
第四方面,本说明书实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面提供的用户态文件系统热升级方法的步骤。
本说明书一个实施例提供的用户态文件系统热升级方法,通过在运行目标用户态文件系统进程前,将目标用户态文件系统进程与内核态FUSE驱动之间原始通信通道的文件描述符克隆到预先创建的管理进程中,在该管理进程中备份与内核态FUSE驱动之间的备用通信通道,然后在目标用户态文件系统进程运行过程中,若监测到升级指令,再将备用通信通道的文件描述符克隆到新启动的用户态文件系统中,使得新启动的用户态文件系统进程拥有与内核态FUSE驱动的新通信通道,进而就可以运行新启动的用户态文件系统进程,实现了用户态文件系统的热升级。在上述过程中,新启动的用户态文件系统进程可以通过该新通信通道接收和处理应用进程发起的文件操作请求,能够有效地解决热升级进程替换过程中通道被释放无法恢复的问题,避免了由于用户态文件系统的升级引起业务中断。并且,由于上述的新通信通道和原始通信通道是同一个PIPE的文件描述符,因此升级后的新进程可以继续处理经过该通道转发的文件操作请求,该过程对应用来说是无感知的,也无需重新挂载(mount),从而实现了用户态文件系统在用户和应用无感知条件下的热升级。
附图说明
图1为本说明书实施例第一方面提供的一种用户态文件系统热升级方法的流程图;
图2为本说明书实施例第一方面提供的一种用户态文件系统热升级方法适用的系统框图;
图3为本说明书实施例第二方面提供的一种用户态文件系统热升级装置的模块框图;
图4为本说明书实施例第三方面提供的一种服务器的结构示意图。
具体实施方式
本申请发明人经过长期研究发现,虽然用户态文件系统的升级流程相对传统的内核态文件系统来说已经大大简化,但依然会引起业务中断、减少业务的服务时间,影响用户的正常使用。尤其是用户态文件系统的实现需要同操作系统内核建立互相通信的通道,用于接收和处理内核虚拟文件系统(Virtual File System)转发的文件操作请求。业界主流实现方案用户空间文件系统(Filesystem in User Space,FUSE)一般基于操作系统的PIPE同内核进行通信。升级过程中一旦文件系统进程退出,FUSE生成的通道会因为没有被进程引用而被操作系统释放,此后即使重新拉起用户态文件系统进程也无法恢复该通道,会导致应用进程发起的文件操作请求无响应,引起业务中断。需要说明的是,FUSE是一个面向类Unix计算机操作系统的软件接口,当前Linux通过内核模块对此进行支持,基于FUSE,用户可以实现用户态文件系统。
有鉴于此,本说明书实施例提供了一种用户态文件系统热升级方法、装置、服务器以及介质,通过在目标用户态文件系统进程启动并与内核态FUSE驱动(FUSE Driver)建立通信通道后,通过将该原始通信通道的文件描述符(File Descriptor)克隆到预先创建的管理进程中,建立该管理进程与FUSE Driver之间的通信通道,作为备用通信通道;随后上述目标用户态文件系统进程进入运行状态,在上述目标用户态文件系统运行过程中,若监测到用于触发该目标用户态文件系统进行升级的指令,则启动新的用户态文件系统进程,且将上述备用通信通道的文件描述符克隆到新启动的用户态文件系统进程中,建立新启动的用户态文件系统进程与FUSE Driver之间的新通信通道,并运行新启动的用户态文件系统进程。
这样,新启动的用户态文件系统进程同FUSE Driver之间就拥有了通信通道,通过该通信通道可以继续接收和处理应用进程发起的文件操作请求,这样能够有效地解决热升级进程替换过程中通道被释放无法恢复的问题,避免了由于用户态文件系统的升级引起业务中断的问题。由于目标用户态文件系统进程启动时与内核态FUSE Driver建立的原始通信通道和上述新通信通道实际上是同一个PIPE的File Descriptor,因此升级后的用户态文件系统进程可以继续处理经过该通道转发的文件操作请求,该过程对应用来说是无感知的,也无需重新挂载(mount),即能够在应用软件完全无感知的条件下完成新的用户态文件系统进程的启动和替换,实现目标用户态文件系统的热升级。
需要说明的是,本说明书实施例提供的用户态文件系统热升级方法可以由标准的Linux服务器执行。当然,在本说明书其他实施例中,也可以在容器中执行。其中,容器为类似Docker这种轻量级的操作系统虚拟化技术。
为了更好的理解本说明书实施例提供的技术方案,下面通过附图以及具体实施例对本说明书实施例的技术方案做详细的说明,应当理解本说明书实施例以及实施例中的具体特征是对本说明书实施例技术方案的详细的说明,而不是对本说明书技术方案的限定,在不冲突的情况下,本说明书实施例以及实施例中的技术特征可以相互组合。
第一方面,图1示出了本说明书实施例提供的一种用户态文件系统热升级方法的流程图。请参阅图1,所述方法可以至少包括以下步骤S101和步骤S102。
步骤S101,在目标用户态文件系统进程启动后,将原始通信通道的文件描述符克隆到预先创建的管理进程中,建立管理进程与内核态FUSE Driver之间的通信通道,作为备用通信通道。
其中,原始通信通道是目标用户态文件系统进程与内核态FUSE Driver之间的通信通道。
如图2所示,应用进程所在的容器启动时会挂载FUSE,一种用户态文件系统框架。应用进程对该文件系统挂载目录下的所有文件操作都会由操作系统虚拟文件系统(Virtual File System)通过FUSE Driver内核模块转发到用户态文件系统进程(Filesystem Process),用户态文件系统进程接收并处理文件操作请求,例如将数据持久化到本地存储(Local Storage)或者通过网络保存到远端存储(Remote Storage)中。用户态文件系统进程和内核态FUSE Driver之间是通过图2中的Channel(即一种PIPE)来进行通信。
本说明书实施例中,目标用户态文件系统即为要升级的用户态文件系统。如图2所示,目标用户态文件系统进程在启动时会同内核态FUSE Driver建立通信通道,即原始通信通道Channel(即图2中的步骤①)。原始通信通道Channel建立后可以通过Unix DomainSocket或者其它方法将该Channel的File Descriptor克隆到预先创建的FD管理(FileDescriptor Manager)进程中(即图2中的步骤②)。其中,FD Manager进程是为了备份目标用户态文件系统进程与内核态FUSE Driver之间原始通信通道Channel而创建的管理进程。FD Manager进程因此拥有了同FUSE Driver之间的通信通道Channel′(即图2中的步骤③),该通道Channel′仅作为Channel的备份,即作为备用通信通道。随后目标用户态文件系统进程就可以进入运行状态。
步骤S102,在目标用户态文件系统进程运行过程中,若监测到用于触发目标用户态文件系统进行热升级的指令,则启动新用户态文件系统进程,且将备用通信通道的文件描述符克隆到新用户态文件系统进程中,建立新用户态文件系统进程与FUSE Driver之间的新通信通道,并运行新用户态文件系统进程。
在目标用户态文件系统进程运行过程中,若系统管理员要对目标用户态文件系统进行热升级,会载入并启动用于替代目标用户态文件系统进程的新用户态文件系统进程,以下也称为新进程,相应地,将被替代的目标用户态文件系统进程称为旧进程。举例来讲,FD Manager进程可以通过持续监测热升级指令的方式监测是否存在用于触发目标用户态文件系统进行热升级的指令。当然,也可以采用其他方式对热升级进行监测。
在新用户态文件系统进程启动时,就可以基于通过FD Manager进程备份的与FUSEDriver之间的通信通道,即图2所示的备用通信通道Channel′,恢复新启动的用户态文件系统与FUSE Driver之间的通信通道。具体来讲,FDManager进程可以通过Unix DomainSocket或者其它方法将Channel′的File Descriptor克隆到新启动的文件系统进程中(即图2中的步骤④)。这样新启动的用户态文件系统与FUSE Driver之间就拥有了通信通道,也就是图2所示的新通信通道Channel″(即图2中的步骤⑤)。新通信通道Channel″用于继续转发应用进程发起的文件操作请求到新启动的用户态文件系统进程进行处理。
新启动的用户态文件系统通过新通信通道Channel″可以继续接收和处理用户容器内的文件操作请求,随后旧进程即目标用户态文件系统进程就可以安全退出,这样能够有效地解决热升级进程替换过程中通道被释放无法恢复的问题,避免了由于用户态文件系统的升级引起业务中断。由于上述的Channel和Channel″实际上是同一个PIPE的FileDescriptor,因此升级后的新进程可以继续处理经过该通道转发的文件操作请求,该过程对应用来说是无感知的,也无需重新挂载(mount),实现了用户和应用无感知条件下的热升级。
进一步地,由于Unix Domain Socket克隆File Descriptor的时间在毫秒级,所以本方案可在毫秒级完成用户态文件系统进程的热升级。因此,在热升级时服务中断时间也在毫秒级,不会导致业务长时间中断,实际生产环境中基本无影响。
另外,本说明书实施例提供用户态文件系统热升级方法通过在管理面增加保活进程备份用户态文件系统同操作系统内核之间的数据通道,而不是通过在数据面增加中间层的方式,没有侵入数据路径,能够在支持热升级的同时避免性能下降。
可以理解的是,相比于内核文件系统,用户态文件系统本身的劣势之一就是性能不及内核态文件系统,如果在数据路径中额外引入代理层会进一步增加进程间通信的开销,导致性能恶化。另外,该代理进程自身是无法进行热升级的,因此在数据面增加中间层的方式无法从根本上解决热升级的问题。
进一步地,考虑到用户态文件系统的实现是有状态的,热升级后,需要将文件系统运行时的状态信息迁移到新进程。因此,在图1所示实施例的基础上,可选地,可以在上述目标用户态文件系统第一次启动时,针对该目标用户态文件系统,创建共享内存(ShareMemory)。具体创建过程可以采用Linux提供的通用的创建共享内存的流程,此处不做详述。该共享内存用于在目标用户态文件系统运行过程中持续的保存和记录文件系统的状态信息。
通过共享内存持久化保存用户态文件系统的状态信息,能够避免丢失文件系统数据。这样热升级完成后即监测到新的用户态文件系统进程启动并且进入正常运行状态后,新的用户态文件系统进程会继承使用存储在共享内存中的相关数据。
因此,在运行新启动的用户态文件系统进程之前,本说明书实施例提供的用户态文件系统热升级方法还可以包括:将目标用户态文件系统进程运行过程中产生的状态信息均保存至预先创建的共享内存中。本说明书实施例中,上述状态信息可以包括但不限于文件系统Superblock控制信息以及Metadata文件元数据信息。例如,还可以包括文件表(filetable)以及统计信息等。
并且,在运行新用户态文件系统进程即新进程进入正常运行状态之后,还包括:通过对上述共享内存进行解析,从共享内存中提取目标用户态文件系统的状态信息;从而基于提取到的状态信息,运行新用户态文件系统进程。
具体来讲,当旧进程监测到热升级时,可以直接退出但保持有该旧进程的状态信息的共享内存仍继续保留,升级后的新进程可以按照预先约定的格式对该共享内存解析,继承旧进程的状态信息,利用提取到的状态信息继续运行。这样就可以在热升级后,将文件系统运行时的状态信息无缝迁移到新进程,有效地保证了在热升级过程中不会引起文件系统数据丢失。
考虑到若旧进程在请求处理的中途退出,容易导致出现文件操作返错甚至IOHang等问题,在一种可选的实施例中,在将上述目标用户态文件系统进程退出之前,本说明书实施例提供的用户态文件系统热升级方法还可以包括:检测目标用户态文件系统进程当前是否正在处理文件操作请求,若是,则待目标用户态文件系统进程处理完该文件操作请求后,再执行所述将目标用户态文件系统进程退出的步骤。当然,如果检测到当前无正在处理的文件操作请求,就可以安全退出旧进程。
具体实施过程中,可以对FUSE代码进行修改,准确地说是对FUSE中的libfuse进行修改,libfuse是作为用户态文件系统的一个组件,它是个开源的代码。原来的FUSE在处理IO请求的过程中间随时可能退出(因为热升级所以需要让位给新进程),导致IO请求处理不完整。修改后能保证在热升级过程中,旧进程只在完整的处理完IO处理请求后再退出。
这样能够实现文件操作请求处理的原子化,保证了热升级过程中,用户态文件系统在处理请求时每个文件操作请求都被完整的处理并成功返回到内核态,避免在请求处理的中途退出,导致出现文件操作返错甚至IO Hang等问题,有利于避免热升级过程对业务处理造成影响。
综上所述,本说明书实施例提供的用户态文件系统热升级方法,能够有效地实现在不引起应用文件操作出错、不中断业务、用户安全无感知的条件下,完成用户态文件系统的热升级。
第二方面,基于与前述第一方面实施例提供的用户态文件系统热升级方法同样的发明构思,本说明书实施例还提供了一种用户态文件系统热升级装置。如图3所示,该用户态文件系统热升级装置30包括:
通道备份模块31,用于在目标用户态文件系统进程启动后,将原始通信通道的文件描述符克隆到预先创建的管理进程中,建立所述管理进程与内核态FUSE驱动之间的通信通道,作为备用通信通道,其中,所述原始通信通道是所述目标用户态文件系统进程与所述FUSE驱动之间的通信通道;
升级模块32,用于在所述目标用户态文件系统进程运行过程中,若监测到用于触发所述目标用户态文件系统进行热升级的指令,则启动新用户态文件系统进程,且将所述备用通信通道的文件描述符克隆到所述新用户态文件系统进程中,建立所述新用户态文件系统进程与所述FUSE驱动之间的新通信通道,并运行所述新用户态文件系统进程,其中,所述新通信通道用于继续转发应用进程发起的文件操作请求到所述新用户态文件系统进程进行处理。
在一种可选的实施例中,上述用户态文件系统热升级装置30还包括:信息保存模块33,用于将所述目标用户态文件系统进程运行过程中产生的状态信息均保存至预先创建的共享内存中。
在一种可选的实施例中,上述用户态文件系统热升级装置30还包括:信息迁移模块34,用于通过对所述共享内存进行解析,从所述共享内存中提取所述目标用户态文件系统进程的状态信息;基于提取到的状态信息运行所述新用户态文件系统进程。
在一种可选的实施例中,上述状态信息包括文件系统Superblock控制信息以及Metadata文件元数据信息。
在一种可选的实施例中,上述升级模块32还用于:将所述目标用户态文件系统进程退出。
在一种可选的实施例中,上述用户态文件系统热升级装置30还包括:检测模块35,用于检测所述目标用户态文件系统进程当前是否正在处理文件操作请求,若是,则待所述目标用户态文件系统进程处理完该文件操作请求后,再执行所述将所述目标用户态文件系统进程退出的步骤。
在一种可选的实施例中,上述通道备份模块31用于:通过Unix Domain Socket将原始通信通道的文件描述符克隆到预先创建的管理进程中。
需要说明的是,本说明书实施例所提供的用户态文件系统热升级装置30,其中各个模块执行操作的具体方式已经在上述第一方面提供的方法实施例中进行了详细描述,具体实施过程可以参照上述第一方面提供的方法实施例,此处将不做详细阐述说明。
第三方面,基于与前述实施例提供的用户态文件系统热升级方法同样的发明构思,本说明书实施例还提供了一种服务器。如图4所示,该服务器包括存储器404、一个或多个处理器402及存储在存储器404上并可在处理器402上运行的计算机程序,处理器402执行该程序时实现前文第一方面提供的用户态文件系统热升级方法的任一实施例的步骤。
其中,在图4中,总线架构(用总线400来代表),总线400可以包括任意数量的互联的总线和桥,总线400将包括由处理器402代表的一个或多个处理器和存储器404代表的存储器的各种电路链接在一起。总线400还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口405在总线400和接收器401和发送器403之间提供接口。接收器401和发送器403可以是同一个元件,即收发机,提供用于在传输介质上与各种其他装置通信的单元。处理器402负责管理总线400和通常的处理,而存储器404可以被用于存储处理器402在执行操作时所使用的数据。
可以理解的是,图4所示的结构仅为示意,本说明书实施例提供的服务器还可包括比图4中所示更多或者更少的组件,或者具有与图4所示不同的配置。图4中所示的各组件可以采用硬件、软件或其组合实现。
第四方面,基于与前述实施例中提供的用户态文件系统热升级方法同样的发明构思,本说明书实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前文第一方面提供的用户态文件系统热升级方法的任一实施例的步骤。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的设备。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令设备的制造品,该指令设备实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本说明书的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本说明书范围的所有变更和修改。
显然,本领域的技术人员可以对本说明书进行各种改动和变型而不脱离本说明书的精神和范围。这样,倘若本说明书的这些修改和变型属于本说明书权利要求及其等同技术的范围之内,则本说明书也意图包含这些改动和变型在内。

Claims (16)

1.一种用户态文件系统热升级方法,包括:
在目标用户态文件系统进程启动后,将原始通信通道的文件描述符克隆到预先创建的管理进程中,建立所述管理进程与内核态FUSE驱动之间的通信通道,作为备用通信通道,其中,所述原始通信通道是所述目标用户态文件系统进程与所述FUSE驱动之间的通信通道;
在所述目标用户态文件系统进程运行过程中,若监测到用于触发所述目标用户态文件系统进行热升级的指令,则启动新用户态文件系统进程,且将所述备用通信通道的文件描述符克隆到所述新用户态文件系统进程中,建立所述新用户态文件系统进程与所述FUSE驱动之间的新通信通道,并运行所述新用户态文件系统进程,其中,所述新通信通道用于继续转发应用进程发起的文件操作请求到所述新用户态文件系统进程进行处理。
2.根据权利要求1所述的方法,在所述运行所述新用户态文件系统进程之前,还包括:
将所述目标用户态文件系统进程运行过程中产生的状态信息均保存至预先创建的共享内存中。
3.根据权利要求2所述的方法,所述运行所述新用户态文件系统进程之后,还包括:
通过对所述共享内存进行解析,从所述共享内存中提取所述目标用户态文件系统进程的状态信息;
基于提取到的状态信息运行所述新用户态文件系统进程。
4.根据权利要求2所述的方法,所述状态信息包括文件系统Superblock控制信息以及Metadata文件元数据信息。
5.根据权利要求1所述的方法,所述运行所述新用户态文件系统进程之后,还包括:
将所述目标用户态文件系统进程退出。
6.根据权利要求5所述的方法,所述将所述目标用户态文件系统进程退出之前,还包括:
检测所述目标用户态文件系统进程当前是否正在处理文件操作请求,若是,则待所述目标用户态文件系统进程处理完该文件操作请求后,再执行所述将所述目标用户态文件系统进程退出的步骤。
7.根据权利要求1所述的方法,所述将原始通信通道的文件描述符克隆到预先创建的管理进程中,包括:
通过Unix Domain Socket将所述原始通信通道的文件描述符克隆到预先创建的管理进程中。
8.一种用户态文件系统热升级装置,包括:
通道备份模块,用于在目标用户态文件系统进程启动后,将原始通信通道的文件描述符克隆到预先创建的管理进程中,建立所述管理进程与内核态FUSE驱动之间的通信通道,作为备用通信通道,其中,所述原始通信通道是所述目标用户态文件系统进程与所述FUSE驱动之间的通信通道;
升级模块,用于在所述目标用户态文件系统进程运行过程中,若监测到用于触发所述目标用户态文件系统进行热升级的指令,则启动新用户态文件系统进程,且将所述备用通信通道的文件描述符克隆到所述新用户态文件系统进程中,建立所述新用户态文件系统进程与所述FUSE驱动之间的新通信通道,并运行所述新用户态文件系统进程,其中,所述新通信通道用于继续转发应用进程发起的文件操作请求到所述新用户态文件系统进程进行处理。
9.根据权利要求8所述的装置,还包括:
信息保存模块,用于将所述目标用户态文件系统进程运行过程中产生的状态信息均保存至预先创建的共享内存中。
10.根据权利要求9所述的装置,还包括:
信息迁移模块,用于通过对所述共享内存进行解析,从所述共享内存中提取所述目标用户态文件系统进程的状态信息;基于提取到的状态信息运行所述新用户态文件系统进程。
11.根据权利要求9所述的装置,所述状态信息包括文件系统Superblock控制信息以及Metadata文件元数据信息。
12.根据权利要求8所述的装置,所述升级模块还用于:
将所述目标用户态文件系统进程退出。
13.根据权利要求12所述的装置,还包括:
检测模块,用于检测所述目标用户态文件系统进程当前是否正在处理文件操作请求,若是,则待所述目标用户态文件系统进程处理完该文件操作请求后,再执行所述将所述目标用户态文件系统进程退出的步骤。
14.根据权利要求8所述的装置,所述通道备份模块用于:
通过Unix Domain Socket将原始通信通道的文件描述符克隆到预先创建的管理进程中。
15.一种服务器,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1-7中任一项所述方法的步骤。
16.一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现权利要求1-7中任一项所述方法的步骤。
CN202010247450.6A 2020-03-31 2020-03-31 用户态文件系统热升级方法、装置、服务器及介质 Active CN111552489B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010247450.6A CN111552489B (zh) 2020-03-31 2020-03-31 用户态文件系统热升级方法、装置、服务器及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010247450.6A CN111552489B (zh) 2020-03-31 2020-03-31 用户态文件系统热升级方法、装置、服务器及介质

Publications (2)

Publication Number Publication Date
CN111552489A CN111552489A (zh) 2020-08-18
CN111552489B true CN111552489B (zh) 2022-04-26

Family

ID=72002401

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010247450.6A Active CN111552489B (zh) 2020-03-31 2020-03-31 用户态文件系统热升级方法、装置、服务器及介质

Country Status (1)

Country Link
CN (1) CN111552489B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112416863A (zh) * 2020-10-19 2021-02-26 网宿科技股份有限公司 数据存储方法及缓存服务器
CN112506553B (zh) * 2020-11-30 2024-03-19 北京达佳互联信息技术有限公司 服务网格的数据面容器的升级方法、装置及电子设备
CN113296807B (zh) * 2021-05-12 2023-10-31 阿里巴巴新加坡控股有限公司 数据更新方法
CN113590175A (zh) * 2021-06-30 2021-11-02 支付宝(杭州)信息技术有限公司 依赖目录的创建方法、装置及设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110118941A (ko) * 2010-04-26 2011-11-02 삼성전자주식회사 화상형성장치를 세팅하는 세팅 장치와, 그 백업 파일 저장 방법 및 세팅 방법
CN103984585A (zh) * 2014-06-06 2014-08-13 浪潮电子信息产业股份有限公司 一种Linux内核可热插拨内核模块运行时升级方法
WO2014180425A1 (zh) * 2013-12-16 2014-11-13 中兴通讯股份有限公司 文件系统升级包制作方法、升级方法及装置、终端
WO2016122699A1 (en) * 2015-01-30 2016-08-04 Hewlett Packard Enterprise Development Lp Failure atomic update of application data files
CN107526777A (zh) * 2017-07-21 2017-12-29 阿里巴巴集团控股有限公司 一种基于版本号对文件进行处理的方法及设备
CN109426586A (zh) * 2017-08-25 2019-03-05 中兴通讯股份有限公司 一种数据文件修复方法、设备及计算机可读存储介质
CN109921929A (zh) * 2019-02-27 2019-06-21 深信服科技股份有限公司 一种网络升级方法、装置、设备及介质
CN110489150A (zh) * 2019-08-26 2019-11-22 深信服科技股份有限公司 一种虚拟机热升级方法、装置及其相关设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9460097B2 (en) * 2013-07-02 2016-10-04 Hitachi Data Systems Engineering UK Limited Method and apparatus for migration of a virtualized file system, data storage system for migration of a virtualized file system, and file server for use in a data storage system

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110118941A (ko) * 2010-04-26 2011-11-02 삼성전자주식회사 화상형성장치를 세팅하는 세팅 장치와, 그 백업 파일 저장 방법 및 세팅 방법
WO2014180425A1 (zh) * 2013-12-16 2014-11-13 中兴通讯股份有限公司 文件系统升级包制作方法、升级方法及装置、终端
CN103984585A (zh) * 2014-06-06 2014-08-13 浪潮电子信息产业股份有限公司 一种Linux内核可热插拨内核模块运行时升级方法
WO2016122699A1 (en) * 2015-01-30 2016-08-04 Hewlett Packard Enterprise Development Lp Failure atomic update of application data files
CN107526777A (zh) * 2017-07-21 2017-12-29 阿里巴巴集团控股有限公司 一种基于版本号对文件进行处理的方法及设备
CN109426586A (zh) * 2017-08-25 2019-03-05 中兴通讯股份有限公司 一种数据文件修复方法、设备及计算机可读存储介质
CN109921929A (zh) * 2019-02-27 2019-06-21 深信服科技股份有限公司 一种网络升级方法、装置、设备及介质
CN110489150A (zh) * 2019-08-26 2019-11-22 深信服科技股份有限公司 一种虚拟机热升级方法、装置及其相关设备

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Direct-FUSE: Removing the Middleman for High-Performance FUSE File System Support;Yue Zhu;《ROSS"18: Proceedings of the 8th International Workshop on Runtime and Operating Systems for Supercomputers》;20180612;全文 *
基于Docker的私有云系统的设计;蔡云龙;《电子产品世界》;20160404(第04期);全文 *
基于Linux的用户态文件系统的设计;周强等;《计算机应用与软件》;20071015(第10期);全文 *

Also Published As

Publication number Publication date
CN111552489A (zh) 2020-08-18

Similar Documents

Publication Publication Date Title
CN111552489B (zh) 用户态文件系统热升级方法、装置、服务器及介质
US9965304B2 (en) Delayed hardware upgrades in virtualization systems
EP2816467B1 (en) Method and device for checkpoint and restart of container state
US9798632B2 (en) Providing boot data in a cluster network environment
US8769226B2 (en) Discovering cluster resources to efficiently perform cluster backups and restores
JP2021506044A (ja) 自動的に配備される情報技術(it)システム及び方法
KR100382851B1 (ko) 분산형 데이터 처리 시스템에서 클라이언트 컴퓨터를관리하기 위한 방법 및 장치
CN102972010B (zh) 一种云环境下虚拟应用双机的切换方法、装置及系统
US7237140B2 (en) Fault tolerant multi-node computing system for parallel-running a program under different environments
WO2021129733A1 (zh) 云操作系统的管理方法、装置、服务器、管理系统及介质
US20090144720A1 (en) Cluster software upgrades
CN104823160A (zh) 虚拟机-保留主机更新
JP2002328813A (ja) プログラム修正方法
US9948509B1 (en) Method and apparatus for optimizing resource utilization within a cluster and facilitating high availability for an application
US11231919B2 (en) Live updates of stateful components
CN110347483B (zh) 物理机到虚拟机迁移方法、装置及存储介质
US11604806B2 (en) System and method for highly available database service
US20220114004A1 (en) Containerized application management system and management method
US10108434B2 (en) Booting a computing device by streaming a desktop image over a network
US9098392B1 (en) Systems and methods for changing fencing modes in clusters
US20200133701A1 (en) Software service intervention in a computing system
US20110239038A1 (en) Management apparatus, management method, and program
CN112732412B (zh) 一种服务配置文件处理方法、装置、存储介质及电子设备
US8826264B1 (en) Non-disruptive upgrade of applications
US20080201694A1 (en) Code recovery system and method

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
GR01 Patent grant