本申请涉及分布式文件系统领域,具体涉及一种分布式文件系统重命名的实现方法和装置。
背景技术:
1、posix语义要求重命名rename操作不能破坏目录树结构的完整性,同理在分布式文件系统ceph中的多个客户端进行rename时也有同样要求。
2、分布式文件系统对rename场景的实现方案如下:服务器处理多个客户端的rename请求时,会对rename的相关路径进行遍历加锁,如果多个rename请求没有锁冲突,则这些rename请求进行并发处理;对于可能导致锁冲突的并发rename请求,则进行串行处理。这样就能保证分布式文件系统的rename操作不会破坏目录树结构的完整性,以此来保证posix语义要求。
3、但是分布式文件系统的这种实现方案是建立在服务端必须全路径缓存加锁保存完整目录树缓存的前提下的,这样会导致服务端之间缓存副本管理时,副本一致性非常复杂,而服务端多副本的同步也会降低元数据操作的性能。
技术实现思路
1、本申请提供一种分布式文件系统重命名的实现方法和装置,可以解决现有技术中分布式文件系统在多客户端进行重命名时,为了保证目录树结构的完整性,采用全路径缓存加锁而引入副本的机制的方案,会使元数据管理变的很复杂,以及元数据操作性能下降的问题。
2、第一方面,本申请实施例提供一种分布式文件系统重命名的实现方法,所述分布式文件系统重命名的实现方法包括:
3、识别客户端发送的重命名请求;
4、若所述重命名请求的对象为目录,且所述重命名请求的源路径和目的路径位于不同目录下,则向预设的目标服务端申请文件系统锁,并使所述目标服务端在已加锁状态时,进行锁阻塞操作,直至所述文件系统锁申请成功;
5、在所述文件系统锁申请成功后,处理所述重命名请求,并将处理结果发送给所述客户端。
6、结合第一方面,在一种实施方式中,该方法还包括:
7、若所述重命名请求的对象为目录,且所述重命名请求的源路径和目的路径位于同一目录下,则处理所述重命名请求,并将处理结果发送给所述客户端。
8、在一种实施方式中,该方法还包括:
9、若所述重命名请求的对象为文件,则处理所述重命名请求,并将处理结果发送给所述客户端。
10、在一种实施方式中,该方法还包括:
11、在接收到所述重命名请求后,对重命名的相关路径进行缓存。
12、在一种实施方式中,所述目标服务端为id为0的服务端。
13、第二方面,本申请实施例提供了一种分布式文件系统重命名的实现装置,所述分布式文件系统重命名的实现装置包括:
14、识别模块,其用于识别客户端发送的重命名请求;
15、分布式锁模块,其用于若所述重命名请求的对象为目录,且所述重命名请求的源路径和目的路径位于不同目录下,则向预设的目标服务端申请文件系统锁,并使所述目标服务端在已加锁状态时,进行锁阻塞操作,直至所述文件系统锁申请成功;
16、处理模块,其用于在所述文件系统锁申请成功后,处理所述重命名请求,并将处理结果发送给所述客户端。
17、结合第二方面,在一种实施方式中,所述处理模块还用于:
18、若所述重命名请求的对象为目录,且所述重命名请求的源路径和目的路径位于同一目录下,则处理所述重命名请求,并将处理结果发送给所述客户端。
19、在一种实施方式中,所述处理模块还用于:
20、若所述重命名请求的对象为文件,则处理所述重命名请求,并将处理结果发送给所述客户端。
21、在一种实施方式中,还装置还包括:
22、缓存模块,其用于在接收到所述重命名请求后,对重命名的相关路径进行缓存。
23、在一种实施方式中,所述目标服务端为id为0的服务端。
24、本实施例提供的一种分布式文件系统重命名的实现方法和装置,通过识别客户端发送的重命名请求;若所述重命名请求的对象为目录,且所述重命名请求的源路径和目的路径位于不同目录下,则向预设的目标服务端申请文件系统锁,并使所述目标服务端在已加锁状态时,进行锁阻塞操作,直至所述文件系统锁申请成功;在所述文件系统锁申请成功后,处理所述重命名请求,并将处理结果发送给所述客户端。解决了相关技术中分布式文件系统在多客户端进行重命名时,为了保证目录树结构的完整性,采用全路径缓存加锁而引入副本的机制的方案,会使元数据管理变的很复杂,以及元数据操作性能下降的问题。本实施例中通过针对跨目录的重命名操作引入分布式锁机制,使得多客户端的跨目录重命名串行处理,不需要对全路径缓存副本加锁,降低了副本管理的复杂性,提升了元数据操作性能。
1.一种分布式文件系统重命名的实现方法,其特征在于,所述分布式文件系统重命名的实现方法包括:
2.如权利要求1所述的分布式文件系统重命名的实现方法,其特征在于,还包括:
3.如权利要求1所述的分布式文件系统重命名的实现方法,其特征在于,还包括:
4.如权利要求1所述的分布式文件系统重命名的实现方法,其特征在于,还包括:
5.如权利要求1所述的分布式文件系统重命名的实现方法,其特征在于,所述目标服务端为id为0的服务端。
6.一种分布式文件系统重命名的实现装置,其特征在于,所述分布式文件系统重命名的实现装置包括:
7.如权利要求1所述的分布式文件系统重命名的实现装置,其特征在于,所述处理模块还用于:
8.如权利要求1所述的分布式文件系统重命名的实现装置,其特征在于,所述处理模块还用于:
9.根据权利要求1所述的分布式文件系统重命名的实现装置,其特征在于,该装置还包括:
10.根据权利要求1所述的分布式文件系统重命名的实现装置,其特征在于,所述目标服务端为id为0的服务端。