CN111552489A - 用户态文件***热升级方法、装置、服务器及介质 - Google Patents
用户态文件***热升级方法、装置、服务器及介质 Download PDFInfo
- Publication number
- CN111552489A CN111552489A CN202010247450.6A CN202010247450A CN111552489A CN 111552489 A CN111552489 A CN 111552489A CN 202010247450 A CN202010247450 A CN 202010247450A CN 111552489 A CN111552489 A CN 111552489A
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- 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/11—File system administration, e.g. details of archiving or snapshots
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram 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中任一项所述方法的步骤。
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 true CN111552489A (zh) | 2020-08-18 |
CN111552489B 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) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112416863A (zh) * | 2020-10-19 | 2021-02-26 | 网宿科技股份有限公司 | 数据存储方法及缓存服务器 |
CN112506553A (zh) * | 2020-11-30 | 2021-03-16 | 北京达佳互联信息技术有限公司 | 服务网格的数据面容器的升级方法、装置及电子设备 |
CN113296807A (zh) * | 2021-05-12 | 2021-08-24 | 阿里巴巴新加坡控股有限公司 | 数据更新方法 |
CN113535215A (zh) * | 2021-07-20 | 2021-10-22 | 北京字节跳动网络技术有限公司 | 一种虚拟机热升级方法、装置、设备以及存储介质 |
CN113590175A (zh) * | 2021-06-30 | 2021-11-02 | 支付宝(杭州)信息技术有限公司 | 依赖目录的创建方法、装置及设备 |
CN114461247A (zh) * | 2022-02-07 | 2022-05-10 | 北京京东振世信息技术有限公司 | 热更新方法、装置、电子设备和计算机可读介质 |
Citations (9)
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 | 中兴通讯股份有限公司 | 文件***升级包制作方法、升级方法及装置、终端 |
US20150012567A1 (en) * | 2013-07-02 | 2015-01-08 | 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 |
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 | 深信服科技股份有限公司 | 一种虚拟机热升级方法、装置及其相关设备 |
-
2020
- 2020-03-31 CN CN202010247450.6A patent/CN111552489B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110118941A (ko) * | 2010-04-26 | 2011-11-02 | 삼성전자주식회사 | 화상형성장치를 세팅하는 세팅 장치와, 그 백업 파일 저장 방법 및 세팅 방법 |
US20150012567A1 (en) * | 2013-07-02 | 2015-01-08 | 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 |
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)
Title |
---|
YUE ZHU: "Direct-FUSE: Removing the Middleman for High-Performance FUSE File System Support", 《ROSS"18: PROCEEDINGS OF THE 8TH INTERNATIONAL WORKSHOP ON RUNTIME AND OPERATING SYSTEMS FOR SUPERCOMPUTERS》 * |
周强等: "基于Linux的用户态文件***的设计", 《计算机应用与软件》 * |
蔡云龙: "基于Docker的私有云***的设计", 《电子产品世界》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112416863A (zh) * | 2020-10-19 | 2021-02-26 | 网宿科技股份有限公司 | 数据存储方法及缓存服务器 |
CN112506553A (zh) * | 2020-11-30 | 2021-03-16 | 北京达佳互联信息技术有限公司 | 服务网格的数据面容器的升级方法、装置及电子设备 |
CN112506553B (zh) * | 2020-11-30 | 2024-03-19 | 北京达佳互联信息技术有限公司 | 服务网格的数据面容器的升级方法、装置及电子设备 |
CN113296807A (zh) * | 2021-05-12 | 2021-08-24 | 阿里巴巴新加坡控股有限公司 | 数据更新方法 |
CN113296807B (zh) * | 2021-05-12 | 2023-10-31 | 阿里巴巴新加坡控股有限公司 | 数据更新方法 |
CN113590175A (zh) * | 2021-06-30 | 2021-11-02 | 支付宝(杭州)信息技术有限公司 | 依赖目录的创建方法、装置及设备 |
CN113535215A (zh) * | 2021-07-20 | 2021-10-22 | 北京字节跳动网络技术有限公司 | 一种虚拟机热升级方法、装置、设备以及存储介质 |
CN113535215B (zh) * | 2021-07-20 | 2024-05-28 | 抖音视界有限公司 | 一种虚拟机热升级方法、装置、设备以及存储介质 |
CN114461247A (zh) * | 2022-02-07 | 2022-05-10 | 北京京东振世信息技术有限公司 | 热更新方法、装置、电子设备和计算机可读介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111552489B (zh) | 2022-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111552489B (zh) | 用户态文件***热升级方法、装置、服务器及介质 | |
US9798632B2 (en) | Providing boot data in a cluster network environment | |
EP2816467B1 (en) | Method and device for checkpoint and restart of container state | |
US9965304B2 (en) | Delayed hardware upgrades in virtualization systems | |
US7237140B2 (en) | Fault tolerant multi-node computing system for parallel-running a program under different environments | |
US8769226B2 (en) | Discovering cluster resources to efficiently perform cluster backups and restores | |
KR100382851B1 (ko) | 분산형 데이터 처리 시스템에서 클라이언트 컴퓨터를관리하기 위한 방법 및 장치 | |
US8938643B1 (en) | Cloning using streaming restore | |
JP2021506044A (ja) | 自動的に配備される情報技術(it)システム及び方法 | |
CN102972010B (zh) | 一种云环境下虚拟应用双机的切换方法、装置及*** | |
WO2021129733A1 (zh) | 云操作***的管理方法、装置、服务器、管理***及介质 | |
US20090144720A1 (en) | Cluster software upgrades | |
US20150089479A1 (en) | Method for pre-testing software compatibility and system thereof | |
US20110213753A1 (en) | Systems and Methods for Managing Application Availability | |
US11231919B2 (en) | Live updates of stateful components | |
JP2002328813A (ja) | プログラム修正方法 | |
CA2538559A1 (en) | Server system and online software update method | |
US9948509B1 (en) | Method and apparatus for optimizing resource utilization within a cluster and facilitating high availability for an application | |
US20220114004A1 (en) | Containerized application management system and management method | |
US10509646B2 (en) | Software update rollbacks using file system volume snapshots | |
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 | |
US20110239038A1 (en) | Management apparatus, management method, and program | |
US8826264B1 (en) | Non-disruptive upgrade of applications | |
US7783921B2 (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 |