CN110096232B - 磁盘锁的处理方法、存储单元的创建方法及相关装置 - Google Patents

磁盘锁的处理方法、存储单元的创建方法及相关装置 Download PDF

Info

Publication number
CN110096232B
CN110096232B CN201910338581.2A CN201910338581A CN110096232B CN 110096232 B CN110096232 B CN 110096232B CN 201910338581 A CN201910338581 A CN 201910338581A CN 110096232 B CN110096232 B CN 110096232B
Authority
CN
China
Prior art keywords
storage unit
disk lock
host
shared
storage
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
CN201910338581.2A
Other languages
English (en)
Other versions
CN110096232A (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.)
New H3C Cloud Technologies Co Ltd
Original Assignee
New H3C Cloud Technologies 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 New H3C Cloud Technologies Co Ltd filed Critical New H3C Cloud Technologies Co Ltd
Priority to CN201910338581.2A priority Critical patent/CN110096232B/zh
Publication of CN110096232A publication Critical patent/CN110096232A/zh
Application granted granted Critical
Publication of CN110096232B publication Critical patent/CN110096232B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

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)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开涉及共享文件系统技术领域,提供一种磁盘锁的处理方法、存储单元的创建方法及相关装置,所述方法包括:接收访问共享资源的访问请求,其中,共享资源预先存储于第一存储单元;获取共享资源的磁盘锁的加锁状态信息,其中,磁盘锁的加锁状态信息存储于第二存储单元;依据磁盘锁的加锁状态信息对磁盘锁加锁,当加锁成功时访问共享资源。本公开通过将磁盘锁独立存储至第二存储单元,提高了磁盘锁的加锁性能。

Description

磁盘锁的处理方法、存储单元的创建方法及相关装置
技术领域
本公开涉及共享文件系统技术领域,具体而言,涉及一种磁盘锁的处理方法、存储单元的创建方法及相关装置。
背景技术
在共享存储环境中,多台主机同时访问共享文件系统中的数据或者文件的时候,需要特定的锁定机制,这些锁定机制可以防止多台主机同时修改元数据,以确保不会发生文件系统中的数据被损坏。
固态硬盘SSD(Solid State Drive,SSD)相比于机械盘HDD(Hard Disk Drive,HDD),SSD没有移动的机械部件,完全依赖集成电路或者非易失性半导体技术存储数据。相比于机械盘,更加抗震、没有工作噪音,访问数据更快并同时具备更低的时延。但是,SSD的价格相比于机械盘也更高,因此,SSD通常用来做应用加速。
发明内容
本公开的目的在于提供一种磁盘锁的处理方法、存储单元的创建方法及相关装置,通过将磁盘锁独立存储,提高了磁盘锁的加锁性能。
为了实现上述目的,本公开采用的技术方案如下:
第一方面,本公开提供了一种磁盘锁的处理方法,应用于共享存储系统中的主机,共享存储系统还包括存储设备,主机与存储设备通信连接,存储设备包括第一存储单元和第二存储单元,所述方法包括:接收访问共享资源的访问请求,其中,共享资源预先存储于第一存储单元;获取共享资源的磁盘锁的加锁状态信息,其中,磁盘锁的加锁状态信息存储于第二存储单元;依据磁盘锁的加锁状态信息对磁盘锁加锁,当加锁成功时访问共享资源。
第二方面,本公开还提供了一种磁盘锁的处理装置,应用于共享存储系统中的主机,共享存储系统还包括存储设备,主机与存储设备通信连接,存储设备包括第一存储单元和第二存储单元,所述装置包括接收模块、获取模块和访问模块。其中,接收模块用于接收访问共享资源的访问请求,其中,共享资源预先存储于第一存储单元;获取模块用于获取共享资源的磁盘锁的加锁状态信息,其中,磁盘锁的加锁状态信息存储于第二存储单元;访问模块用于依据磁盘锁的加锁状态信息对磁盘锁加锁,当加锁成功时访问共享资源。
第三方面,本公开还提供了一种存储单元的创建方法,应用于共享存储系统中的存储设备,所述方法包括:创建第一存储单元,第一存储单元用于存储共享资源;创建第二存储单元,第二存储单元用于存储共享资源的磁盘锁的加锁状态信息。
第四方面,本公开还提供了一种存储单元的创建装置,应用于共享存储系统中的存储设备,所述装置包括:第一存储单元创建模块,用于创建第一存储单元,第一存储单元用于存储共享资源;第二存储单元创建模块,用于创建第二存储单元,第二存储单元用于存储共享资源的磁盘锁的加锁状态信息。
第五方面,本公开还提供了一种主机,所述主机与存储设备通信连接,所述主机包括:一个或多个第一处理器;第一存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个第一处理器执行时,使得所述一个或多个第一处理器实现上述的磁盘锁的处理方法。
第六方面,本公开还提供了一种存储设备,所述存储设备与主机通信连接,所述存储设备包括:一个或多个第二处理器;第二存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个第二处理器执行时,使得所述一个或多个第二处理器实现上述的存储单元的创建方法。
第七方面,本公开还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的磁盘锁的处理方法,或者,实现上述的存储单元的创建方法。
相对现有技术,本公开提供的一种磁盘锁的处理方法、存储单元的创建方法及相关装置,首先,主机接收访问共享资源的访问请求,其中,共享资源预先存储于第一存储单元;然后,主机从第二存储单元获取共享资源的磁盘锁的加锁状态信息;最后,主机依据磁盘锁的加锁状态信息对磁盘锁加锁,当加锁成功时访问共享资源。与现有技术相比,本公开通过将磁盘锁独立存储至第二存储单元,提高了访问磁盘锁的性能,从而提高了磁盘锁的加锁性能。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开提供的共享存储系统的示意图。
图2示出了本公开提供的主机的方框示意图。
图3示出了本公开提供的存储设备的方框示意图。
图4示出了本公开提供的磁盘锁的处理方法流程图。
图5示出了本公开提供的磁盘锁的处理方法中共享文件系统初始化的流程图。
图6示出了本公开提供的磁盘锁的处理方法中共享文件系统挂载的流程图。
图7示出了本公开提供的磁盘锁的处理方法中共享资源创建的流程图。
图8示出了本公开提供的存储单元的创建方法流程图。
图9示出了本公开提供的磁盘锁的处理装置的方框示意图。
图10示出了本公开提供的存储单元的创建装置的方框示意图。
图标:10-主机;101-第一存储器;102-第一通信接口;103-第一处理器;104-第一总线;200-磁盘锁的处理装置;201-初始化模块;202-挂载模块;203-共享资源创建模块;204-接收模块;205-获取模块;206-访问模块;30-存储设备;301-第二存储器;302-第二通信接口;303-第二处理器;304-第二总线;400-存储单元的创建装置;401-第一存储单元创建模块;402-第二存储单元创建模块。
具体实施方式
下面将结合本公开中附图,对本公开中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本公开的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
共享文件系统中,为了实现资源访问的互斥和协调,从而防止多台主机同时修改相同文件中的数据,造成的数据破坏,现有技术通常采用磁盘锁,磁盘锁基于磁盘扇区进行离散锁定。一般通过SCSI CAW(Small Computer System Interface Compare And Write)指令实现。物理节点通过原子操作比较写CAW尝试加锁,比较写的第一步是从磁盘中读取一个扇区,将读取到的扇区中的内容和预先设置的内容的进行比较,如果相同,则将第二步的内容写入磁盘,如果不同,则将中止本次操作。
现有技术中,为了便于统一管理,通常将磁盘锁和文件系统的元数据及用户数据存储在同一个的存储单元中,这样会导致磁盘锁的访问和文件系统的元数据及用户数据的访问同时进行,增大了存储单元的访问性能压力,降低了磁盘锁的加锁性能。
针对这一问题,发明人提出了一种磁盘锁的处理方法、存储单元的创建方法及相关装置,通过将磁盘锁独立存储,提高了磁盘锁的加锁性能,下面将对此进行详细描述。
请参照图1,图1示出了本公开提供的共享存储系统的示意图,图1中,共享存储系统包括至少两个主机10和存储设备30,每个主机10均与存储设备30通信连接,每个主机10上运行有共享文件系统,其中,共享文件系统可以是一个软件,用于管理存储设备30上的存储资源,用户通过主机10上的共享文件系统将用户数据存储至存储设备30。存储设备30上预先创建有存储单元1和存储单元2,其中,存储单元1为第一存储单元,存储单元2为第二存储单元,存储单元1用于存储用户数据和共享文件系统的元数据,存储单元2用于存储磁盘锁的加锁状态信息,以便主机10在访问存储单元1上的用户数据前,先根据对应的磁盘锁的状态信息进行加锁,加锁成功后再访问用户数据。
需要说明的是,作为一种较优的实施方式,存储单元2的访问性能可以高于存储单元1,其具体实现场景至少有以下两种:(1)存储单元1和存储单元2分别创建在不同的存储介质上,其中,存储单元2的存储介质的访问性能要高于存储单元1的存储介质的访问性能,例如,存储单元2的存储介质为固态硬盘SSD(Solid State Disk,SSD)盘,存储单元1的存储介质为串行小型计算机系统接口的SAS盘(Serial Attached Small Computer SystemInterface,SAS)或者SATA盘(Serial ATA:Serial Advanced Technology Attachment,SATA),由于SSD盘的访问性能高于SAS盘或者SATA盘,因此,同等条件下,存储单元2的访问性能高于存储单元1。(2)存储单元1和存储单元2创建在相同的存储介质上,其中,存储单元1基于的存储介质的硬盘个数要小于存储单元2基于的存储介质的硬盘个数,在相同条件下,由于硬盘个数越多,访问并发越大,访问性能也可以越高,因此存储单元2的访问性能高于存储单元1,例如,存储单元1创建在3个硬盘上,存储单元2创建在10个硬盘上,则访问存储单元2时,10个硬盘可以同时并发访问,访问存储单元1时,3个硬盘同时并发访问,在相同条件下,10个硬盘并发访问的访问性能可以高于3个硬盘并发访问的访问性能。
请参照图2,图2示出了本公开提供的主机10的方框示意图。主机10可以是,但不限于,虚拟机、实体服务器、实体服务器上的虚拟机等能提供与所述服务器或者虚拟机有相同功能的实体或者虚拟的服务端。主机10的操作系统可以是,但不限于,Windows系统、Linux系统等。所述主机10包括第一存储器101、第一通信接口102、第一处理器103和第一总线104,所述第一存储器101、第一通信接口102和第一处理器103通过第一总线104连接,第一处理器103用于执行第一存储器101中存储的可执行模块,例如计算机程序。
其中,第一存储器101可能包含高速随机存取存储器(RAM:Random AccessMemory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个第一通信接口102(可以是有线或者无线)实现该主机10与至少一个其他主机10、以及外部设备之间的通信连接。
第一总线104可以是ISA总线、PCI总线或EISA总线等。图2中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,第一存储器101用于存储程序,所述第一处理器103在接收到执行指令后,执行所述程序以实现本公开上述实施例揭示的磁盘锁的处理方法。
请参照图3,图3示出了本公开提供的存储设备30的方框示意图。存储设备30可以是,一个或者多个存储服务器、存储阵列或者存储网络中可以提供存储空间的设备,第一存储单元和第二存储单元可以来自于存储设备30中的同一个设备,也可以来自于存储设备30中两个不同设备。存储设备30的操作系统可以是,但不限于,Windows系统、Linux系统等。所述存储设备30包括第二存储器301、第二通信接口302、第二处理器303和第二总线304,所述第二存储器301、第二通信接口302和第二处理器303通过第二总线304连接,第二处理器303用于执行第二存储器301中存储的可执行模块,例如计算机程序。
其中,第二存储器301可能包含高速随机存取存储器(RAM:Random AccessMemory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个第二通信接口302(可以是有线或者无线)实现该存储设备30与至少一个其他存储设备30之间的通信连接。
第二总线304可以是ISA总线、PCI总线或EISA总线等。图3中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,第二存储器301用于存储程序,所述第二处理器303在接收到执行指令后,执行所述程序以实现本公开上述实施例揭示的存储单元的创建方法。
第一实施例
请参照图4,图4示出了本公开提供的磁盘锁的处理方法流程图。该方法包括以下步骤:
步骤S101,接收访问共享资源的访问请求,其中,共享资源预先存储于第一存储单元。
在本公开中,共享资源为可以同时被至少两个主机10访问的资源,共享资源可以为共享存储系统中的目录,也可以为共享存储系统中的文件,还可以为共享存储系统中其他的元数据等。
在本公开中,存储设备30上预先创建有第一存储单元,第一存储单元用于存放的数据包括需要存储的用户数据、第一存储单元空间管理的元数据等,其中,共享资源包括、但不限于可以同时被至少两个主机10访问的用户数据或者元数据,只要是存储与第一存储单元上,且可以同时被至少两个主机10访问的资源均为共享资源。
在本公开中,第一存储单元可以是物理存储单元,例如一块或者多块硬盘,第一存储单元也可以是逻辑存储单元,例如本领域中的逻辑单元设备,由于每个逻辑单元设备都有一个唯一的逻辑单元号LUN(Logic Unit Number,LUN),因此,也将逻辑单元设备简称为LUN,本公开不对具体第一存储单元的具体形式予以限定,第二存储单元同第一存储单元,本公开也不对第二存储单元的具体形式予以限定。
步骤S102,获取共享资源的磁盘锁的加锁状态信息,其中,磁盘锁的加锁状态信息存储于第二存储单元。
在本公开中,为了避免共享资源出现访问冲突,每一个共享资源均具有一个磁盘锁,只有对磁盘锁加锁成功的主机10,才可以访问对应的共享资源,因此,每个磁盘锁需要维护一个加锁状态信息,当主机10需要对磁盘锁加锁时,首先查看该磁盘锁的加锁状态信息,根据加锁状态信息判断是否可以加锁。根据具体的实现方式,加锁状态信息至少有两种:(1)加锁状态信息可以表征磁盘锁当前是否处于加锁状态,如果当前磁盘锁已经处于加锁状态,且待加的锁与当前已加的锁状态不兼容,则不能再对该磁盘锁加锁;(2)加锁状态信息也可以表征加锁的级别,例如,加锁级别可以有三种:完全互斥、可读不可写、未加锁,当一个主机10持有完全互斥级别的磁盘锁时,其他主机10不能再同时访问和操作对应的共享资源,即此时其他主机10加不上该磁盘锁,当一个主机10持有可读不可写级别的磁盘锁时,其他主机10可以读对应的共享资源,但是不能修改对应的共享资源。
在本公开中,磁盘锁的加锁状态信息存储于第二存储单元,磁盘锁在创建、加锁、解锁时,其对应的加锁状态信息也会随之更新,主机10在访问共享资源时,磁盘锁的加锁状态信息会被频繁地访问,此时,对于磁盘锁的加锁状态信息的访问会成为共享资源访问的瓶颈,进而影响共享资源的访问性能,本公开正是为了解决这一问题,将磁盘锁的加锁状态信息专门存放于与第一存储单元相互独立的第二存储单元,以此提高磁盘锁的加锁状态的访问性能。
在本发明实施例中,除了将磁盘锁和共享资源分开存储,以此提高磁盘锁加锁和解锁的性能之外,还有一种较优的具体实施方式,第二存储单元的访问性能高于第一存储单元,此时,磁盘锁的加锁和解锁性能会更高。
步骤S103,依据磁盘锁的加锁状态信息对磁盘锁加锁,当加锁成功时访问共享资源。
在本公开中,主机10上运行有共享文件系统,该共享文件系统是一个软件模块,主机10可以通过共享文件系统以文件的形式访问第一存储单元中的数据。
由于磁盘锁的加锁状态信息存放于独立的第二存储单元,为了保证访问共享资源时,可以正确地访问共享资源对应的磁盘锁的加锁状态信息,本公开预先在初始化共享文件系统和挂载共享文件系统时分别做了适配处理,因此,本公开还包括初始化共享文件系统时需要进行步骤S104-S105,在挂载共享文件系统时需要进行的步骤S106-S108。
请参照图5,图5示出了本公开提供的磁盘锁的处理方法中共享文件系统初始化的流程图。
步骤S104,当初始化共享文件系统时,将第二存储单元的标识存储至共享文件系统的管理结构。
在本公开中,一个共享文件系统对应一个第一存储单元,即主机10通过共享文件系统将数据存储至第一存储单元,第一存储单元中的共享资源对应的磁盘锁的加锁状态信息存储于第二存储单元,为了将第一存储单元和第二存储单元关联起来,保证在访问第一存储单元中的共享资源时,可以正确地访问对应的第二存储单元中的磁盘锁,在初始化共享文件系统时,将第二存储单元的标识存储至共享文件系统的管理结构,其中,第二存储单元的标识唯一表征第二存储单元,例如,当第二存储单元为LUN的形式时,第二存储单元的标识可以是LUN的NAA,也可以是LUN的全球通用号WWN(world wide number,WWN)。共享文件系统的管理结构用于存储共享文件系统的元数据结构,共享文件系统的元数据空间以块进行管理,共享文件系统的元数据包括共享文件系统的大小、块大小,空闲及已经使用的块的数量,共享文件系统的管理结构是一个特殊的全局管理区,通常也称为超级块(superblock)。
需要说明的是,多个第一存储单元中的共享资源的磁盘锁也可以共用一个第二存储单元,但是每个第一存储单元对应第二存储单元中的一部分独立的存储空间,此时,每个第一存储单元对应的共享文件系统的管理结构中存储第二存储单元的标识可以包括表征第二存储单元的唯一标识加上表征与该第一存储单元对应的标识信息,比如说,第二存储单元的唯一标识加上该第一存储单元的共享资源的磁盘锁的加锁状态信息的起始地址。因此,多个第一存储单元中的共享资源的磁盘锁共用一个第二存储单元的具体实现方式,完全可以通过本申请公开的内容在不付出创造性劳动的情况下直接或者推导得出,因此,也在本申请的保护范围内。
步骤S105,依据第二存储单元的标识初始化磁盘锁空间。
在本公开中,初始化磁盘锁空间可以是将磁盘锁空间的初始化信息写入第二存储单元,依据第二存储单元的管理形式的不同,对第二存储单元的访问形式也可以不同,例如,当第二存储单元以块进行管理时,可以通过第二存储单元的块设备写入的初始化,当第二存储单元以文件形式进行管理时,可以通过第二存储单元的文件描述符进行写入。
在本公开中,作为一种具体实施方式,依据第二存储单元的标识初始化磁盘锁空间的方式可以是:
首先,获取与第二存储单元的标识对应的块设备;
其次,通过块设备将磁盘锁空间的初始化信息写入第二存储单元。
在本公开中,磁盘锁空间的初始化信息可以是磁盘锁空间的分配位图,位图中的每一个bit位可以代表一个磁盘锁空间的使用状态,例如,bit位取值为0时,代表对应的磁盘锁空间未使用,bit位取值为1时,代表对应的磁盘锁空间已使用。
需要说明的是,磁盘锁空间的管理形式不同,磁盘锁空间的初始化信息也可以不同,例如,磁盘锁空间也可以以链表的形式组织,此时,磁盘锁空间的初始化信息可以是链表的初始化信息。
请参照图6,图6示出了本公开提供的磁盘锁的处理方法中共享文件系统挂载的流程图。
步骤S106,当挂载共享文件系统时,从共享文件系统的管理结构中获取第二存储单元的标识。
在本公开中,主机10首先要挂载共享文件系统,然后才可以通过共享文件系统将数据存储至存储设备30。挂载共享文件系统可以通过在主机10上执行挂载命令mount命令来实现,例如,主机10上执行:mount/dev/sdc/mnt/sharefs,其中,/dev/sdc对应第一存储单元,/mnt/sharefs为一个目录,即挂载点,意思是将第一存储单元对应的/dev/sdc挂载到主机10的/mnt/sharefs目录,由此,主机10可以通过访问挂载点/mnt/sharefs目录访问第一存储单元。
步骤S107,依据第二存储单元的标识判断主机是否与第二存储单元存在访问连接。
在本公开中,主机10上运行的共享文件系统可以通过调用用户态工具,判断主机10是否与第二存储单元存在访问连接,或者尝试向第二存储单元下发预设的读写操作,根据能否正常返回对应的读写数据判断主机10是否与第二存储单元存在访问连接。
步骤S108,若主机与第二存储单元存在访问连接,则将第二存储单元对应的块设备存储至主机的内存中。
在本公开中,之所以将第二存储单元对应的块设备存储至主机10的内存中,是为了快速找到第二存储单元对应的块设备,从而加速访问第二存储单元中的磁盘锁的加锁状态信息。
在本公开中,若主机10与第二存储单元不存在访问连接,则终止挂载流程,挂载失败,若主机10与第二存储单元存在访问连接,则将第二存储单元对应的块设备存储至主机10的内存中,继续挂载流程直至挂载成功。
在本公开中,为了存储共享资源的磁盘锁的加锁状态信息,需要为每个共享资源的磁盘锁在第二存储单元中分配一个独立的磁盘锁空间,因此,本公开还包括步骤S109-步骤S110。
请参照图7,图7示出了本公开提供的磁盘锁的处理方法中共享资源创建的流程图。
步骤S109,当创建共享资源时,从多个磁盘锁空间中分配一个使用状态为空闲的目标磁盘锁空间,并建立目标磁盘锁空间与共享资源之间的对应关系。
在本公开中,目标磁盘锁空间是状态空闲、且用于存储待创建的共享资源的磁盘锁的加锁状态信息的磁盘锁空间。
步骤S110,将目标磁盘锁的加锁状态信息存储至目标磁盘锁空间。
在本公开中,创建共享资源时,该共享资源的加锁状态信息可以是初始信息,例如,加锁状态信息包括加锁和未加锁,创建共享资源时,将该新创建的共享资源的加锁状态信息设置为未加锁。
在本公开中,通过将磁盘锁的加锁状态信息独立存储至第二存储单元,访问共享资源时,首先访问第二存储单元上的共享资源的磁盘锁的加锁状态信息,然后根据磁盘锁的加锁状态信息判断是否可以加锁成功,当加锁成功时再访问共享资源,与现有技术相比,具有以下有益效果:
第一,将磁盘锁的加锁状态信息独立存储至高性能的第二存储单元,加快了磁盘锁的加锁状态信息的访问性能,从而提高了磁盘锁的加锁性能。
第二,由于磁盘锁的加锁状态信息与共享资源分开存储至不同的存储单元,减轻了共享资源所属的存储单元的访问压力,从而提高共享资源的访问性能。
第三,加载共享文件系统时,将第二存储单元的块设备保存至主机10的内存中,以便于访问共享资源时快速找到对应的第二存储单元,加快了磁盘锁的加锁状态信息的访问性能,从而提高了磁盘锁的加锁性能。
第二实施例
在本公开中,本公开的技术方案实现的前提在于共享设备上存在两个独立的存储单元:第一存储单元和第二存储单元,第一存储单元用于存储共享资源,第二存储单元用于存储共享资源的磁盘锁的加锁状态信息。
请参照图8,图8示出了本公开提供的存储单元的创建方法流程图。该方法包括以下步骤:
步骤S201,创建第一存储单元,第一存储单元用于存储共享资源;
步骤S202,创建第二存储单元,第二存储单元用于存储共享资源的磁盘锁的加锁状态信息。
作为一种较优的实施方式,第二存储单元的访问性能高于第一存储单元。
第三实施例
请参照图9,图9示出了本公开提供的磁盘锁的处理装置200的方框示意图。磁盘锁的处理装置200应用于主机10,该磁盘锁的处理装置200包括至少一个可以软件或固件(firmware)的形式存储于所述第一存储器101中或固化在所述主机10的操作系统(operating system,OS)中的软件功能模块。其包括初始化模块201;挂载模块202;共享资源创建模块203;接收模块204;获取模块205;访问模块206。
初始化模块201,用于当初始化共享文件系统时,将第二存储单元的标识存储至共享文件系统的管理结构;依据第二存储单元的标识初始化磁盘锁空间。
在本公开中,初始化模块201用于执行步骤S104。
挂载模块202,用于当挂载共享文件系统时,从共享文件系统的管理结构中获取第二存储单元的标识;依据第二存储单元的标识判断主机是否与第二存储单元存在访问连接;若主机与第二存储单元存在访问连接,则将第二存储单元对应的块设备存储至主机的内存中。
在本公开中,挂载模块202用于执行步骤S105。
共享资源创建模块203,用于当创建共享资源时,从多个磁盘锁空间中分配一个使用状态为空闲的目标磁盘锁空间,并建立目标磁盘锁空间与共享资源之间的对应关系;将目标磁盘锁的加锁状态信息存储至目标磁盘锁空间。
在本公开中,共享资源创建模块203用于执行步骤S103。
接收模块204,用于接收访问共享资源的访问请求,其中,共享资源预先存储于第一存储单元。
在本公开中,接收模块204用于执行步骤S101。
获取模块205,用于获取共享资源的磁盘锁的加锁状态信息,其中,磁盘锁的加锁状态信息存储于第二存储单元。
在本公开中,获取模块205用于执行步骤S102。
访问模块206,用于依据磁盘锁的加锁状态信息对磁盘锁加锁,当加锁成功时访问共享资源。
在本公开中,访问模块206用于执行步骤S103。
第四实施例
请参照图10,图10示出了本公开提供的存储单元的创建装置400的方框示意图。存储单元的创建装置400应用于存储设备30,该存储单元的创建装置400包括至少一个可以软件或固件(firmware)的形式存储于所述第二存储器301中或固化在所述存储设备30的操作系统(operating system,OS)中的软件功能模块。其包括第一存储单元创建模块401;第二存储单元创建模块402。
第一存储单元创建模块401,用于创建第一存储单元,第一存储单元用于存储共享资源。
在本公开中,第一存储单元创建模块401用于执行步骤S201。
第二存储单元创建模块402,用于创建第二存储单元,第二存储单元用于存储共享资源的磁盘锁的加锁状态信息。
在本公开中,第二存储单元创建模块402用于执行步骤S202。
综上所述,本公开提供的一种磁盘锁的处理方法、存储单元的创建方法及相关装置,所述磁盘锁的处理方法包括:接收访问共享资源的访问请求,其中,共享资源预先存储于第一存储单元;获取共享资源的磁盘锁的加锁状态信息,其中,磁盘锁的加锁状态信息存储于第二存储单元;依据磁盘锁的加锁状态信息对磁盘锁加锁,当加锁成功时访问共享资源。与现有技术相比,通过将磁盘锁独立存储至第二存储单元,提高了访问磁盘锁的性能,从而提高了磁盘锁的加锁性能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本公开的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本公开各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本公开的优选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

Claims (10)

1.一种磁盘锁的处理方法,其特征在于,应用于共享存储系统中的主机,所述共享存储系统还包括存储设备,所述主机与所述存储设备通信连接,所述存储设备包括第一存储单元和第二存储单元,所述主机上运行有共享文件系统,所述主机上预先存储所述共享文件系统的管理结构,所述第二存储单元存在磁盘锁空间,所述方法包括:
接收访问共享资源的访问请求,其中,所述共享资源预先存储于所述第一存储单元;
获取所述共享资源的磁盘锁的加锁状态信息,其中,所述磁盘锁的加锁状态信息存储于所述第二存储单元;
依据所述磁盘锁的加锁状态信息对所述磁盘锁加锁,当加锁成功时访问所述共享资源;
所述方法还包括:
当初始化所述共享文件系统时,将所述第二存储单元的标识存储至所述共享文件系统的管理结构;
依据所述第二存储单元的标识初始化所述磁盘锁空间;
当挂载所述共享文件系统时,从所述共享文件系统的管理结构中获取所述第二存储单元的标识;
依据所述第二存储单元的标识判断所述主机是否与所述第二存储单元存在访问连接;
若所述主机与所述第二存储单元存在访问连接,则将所述第二存储单元对应的块设备存储至所述主机的内存中。
2.如权利要求1所述的磁盘锁的处理方法,其特征在于,所述依据所述第二存储单元的标识初始化所述磁盘锁空间的步骤,包括:
获取与所述第二存储单元的标识对应的块设备;
通过所述块设备将所述磁盘锁空间的初始化信息写入所述第二存储单元。
3.如权利要求1所述的磁盘锁的处理方法,其特征在于,所述第二存储单元存在多个磁盘锁空间,所述方法还包括:
当创建共享资源时,从所述多个磁盘锁空间中分配一个使用状态为空闲的目标磁盘锁空间,并建立所述目标磁盘锁空间与所述共享资源之间的对应关系;
将所述目标磁盘锁的加锁状态信息存储至所述目标磁盘锁空间。
4.如权利要求1-3任一项所述的磁盘锁的处理方法,其特征在于,所述第二存储单元的访问性能高于所述第一存储单元。
5.一种存储单元的创建方法,其特征在于,应用于共享存储系统中的存储设备,所述共享存储系统还包括主机,所述主机与所述存储设备通信连接,所述主机用于执行如权利要求1~4中任一项所述的磁盘锁的处理方法,所述方法包括:
创建第一存储单元,所述第一存储单元用于存储共享资源;
创建第二存储单元,所述第二存储单元用于存储所述共享资源的磁盘锁的加锁状态信息。
6.一种磁盘锁的处理装置,其特征在于,应用于共享存储系统中的主机,所述共享存储系统还包括存储设备,所述主机与所述存储设备通信连接,所述存储设备包括第一存储单元和第二存储单元,所述主机上运行有共享文件系统,所述主机上预先存储所述共享文件系统的管理结构,所述第二存储单元存在磁盘锁空间,所述装置包括:
接收模块,用于接收访问共享资源的访问请求,其中,所述共享资源预先存储于所述第一存储单元;
获取模块,用于获取所述共享资源的磁盘锁的加锁状态信息,其中,所述磁盘锁的加锁状态信息存储于所述第二存储单元;
访问模块,用于依据所述磁盘锁的加锁状态信息对所述磁盘锁加锁,当加锁成功时访问所述共享资源;
初始化模块,用于:当初始化所述共享文件系统时,将所述第二存储单元的标识存储至所述共享文件系统的管理结构;依据所述第二存储单元的标识初始化所述磁盘锁空间;
挂载模块,用于:当挂载所述共享文件系统时,从所述共享文件系统的管理结构中获取所述第二存储单元的标识;依据所述第二存储单元的标识判断所述主机是否与所述第二存储单元存在访问连接;若所述主机与所述第二存储单元存在访问连接,则将所述第二存储单元对应的块设备存储至所述主机的内存中。
7.一种存储单元的创建装置,其特征在于,应用于共享存储系统中的存储设备,所述共享存储系统还包括主机,所述主机与所述存储设备通信连接,所述主机用于执行如权利要求1~4中任一项所述的磁盘锁的处理方法,所述装置包括:
第一存储单元创建模块,用于创建第一存储单元,所述第一存储单元用于存储共享资源;
第二存储单元创建模块,用于创建第二存储单元,所述第二存储单元用于存储所述共享资源的磁盘锁的加锁状态信息。
8.一种主机,其特征在于,所述主机与存储设备通信连接,所述主机包括:
一个或多个第一处理器;
第一存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个第一处理器执行时,使得所述一个或多个第一处理器实现如权利要求1-4中任一项所述的方法。
9.一种存储设备,其特征在于,所述存储设备与主机通信连接,所述存储设备包括:
一个或多个第二处理器;
第二存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个第二处理器执行时,使得所述一个或多个第二处理器实现如权利要求5中所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-4中任一项所述的方法,或者,实现如权利要求5中所述的方法。
CN201910338581.2A 2019-04-25 2019-04-25 磁盘锁的处理方法、存储单元的创建方法及相关装置 Active CN110096232B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910338581.2A CN110096232B (zh) 2019-04-25 2019-04-25 磁盘锁的处理方法、存储单元的创建方法及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910338581.2A CN110096232B (zh) 2019-04-25 2019-04-25 磁盘锁的处理方法、存储单元的创建方法及相关装置

Publications (2)

Publication Number Publication Date
CN110096232A CN110096232A (zh) 2019-08-06
CN110096232B true CN110096232B (zh) 2022-09-09

Family

ID=67445841

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910338581.2A Active CN110096232B (zh) 2019-04-25 2019-04-25 磁盘锁的处理方法、存储单元的创建方法及相关装置

Country Status (1)

Country Link
CN (1) CN110096232B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111966471B (zh) * 2020-10-21 2022-03-08 北京首都在线科技股份有限公司 访问方法、装置、电子设备及计算机存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7406473B1 (en) * 2002-01-30 2008-07-29 Red Hat, Inc. Distributed file system using disk servers, lock servers and file servers
CN101650646A (zh) * 2009-09-22 2010-02-17 杭州华三通信技术有限公司 一种共享数据一致性的实现方法及装置
CN106648909A (zh) * 2016-10-13 2017-05-10 华为技术有限公司 一种磁盘锁的管理方法、装置和系统
CN107544851A (zh) * 2017-05-11 2018-01-05 新华三云计算技术有限公司 一种锁操作处理方法及装置
CN108446337A (zh) * 2018-02-28 2018-08-24 新华三云计算技术有限公司 一种锁资源控制权限迁移方法以及装置
CN109246182A (zh) * 2018-07-26 2019-01-18 郑州云海信息技术有限公司 一种分布式锁管理器及其实现方法
CN109407971A (zh) * 2018-09-13 2019-03-01 新华三云计算技术有限公司 升级磁盘锁的方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8700585B2 (en) * 2004-02-06 2014-04-15 Vmware, Inc. Optimistic locking method and system for committing transactions on a file system
US20110066801A1 (en) * 2009-01-20 2011-03-17 Takahito Sato Storage system and method for controlling the same

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7406473B1 (en) * 2002-01-30 2008-07-29 Red Hat, Inc. Distributed file system using disk servers, lock servers and file servers
CN101650646A (zh) * 2009-09-22 2010-02-17 杭州华三通信技术有限公司 一种共享数据一致性的实现方法及装置
CN106648909A (zh) * 2016-10-13 2017-05-10 华为技术有限公司 一种磁盘锁的管理方法、装置和系统
CN107544851A (zh) * 2017-05-11 2018-01-05 新华三云计算技术有限公司 一种锁操作处理方法及装置
CN108446337A (zh) * 2018-02-28 2018-08-24 新华三云计算技术有限公司 一种锁资源控制权限迁移方法以及装置
CN109246182A (zh) * 2018-07-26 2019-01-18 郑州云海信息技术有限公司 一种分布式锁管理器及其实现方法
CN109407971A (zh) * 2018-09-13 2019-03-01 新华三云计算技术有限公司 升级磁盘锁的方法及装置

Also Published As

Publication number Publication date
CN110096232A (zh) 2019-08-06

Similar Documents

Publication Publication Date Title
US8161128B2 (en) Sharing of data across disjoint clusters
US7464189B2 (en) System and method for creation/deletion of linear block address table entries for direct I/O
US7502872B2 (en) Method for out of user space block mode I/O directly between an application instance and an I/O adapter
US8924664B2 (en) Logical object deletion
US8347059B2 (en) Management of recycling bin for thinly-provisioned logical volumes
CN107656834B (zh) 用于基于事务日志恢复主机访问的系统和方法及存储介质
US7657662B2 (en) Processing user space operations directly between an application instance and an I/O adapter
US10365845B1 (en) Mapped raid restripe for improved drive utilization
US10235282B2 (en) Computer system, computer, and method to manage allocation of virtual and physical memory areas
US9430492B1 (en) Efficient scavenging of data and metadata file system blocks
US9658799B2 (en) Data storage device deferred secure delete
US8984011B1 (en) Page object caching for variably sized access control lists in data storage systems
US7552240B2 (en) Method for user space operations for direct I/O between an application instance and an I/O adapter
US20070005815A1 (en) System and method for processing block mode I/O operations using a linear block address translation protection table
CN114667506A (zh) 多物理功能非易失性存储器设备的管理
US20060265525A1 (en) System and method for processor queue to linear block address translation using protection table control based on a protection domain
US10089015B1 (en) Per-drive memory resident zeroing maps for drive zeroing in a data storage system
US7502871B2 (en) Method for query/modification of linear block address table entries for direct I/O
CN110096232B (zh) 磁盘锁的处理方法、存储单元的创建方法及相关装置
US9864643B1 (en) Using locks of different scopes in a data storage system to optimize performance and complexity
CN109508140B (zh) 存储资源管理方法、装置、电子设备及电子设备、系统
CN111625477B (zh) 访问擦除块的读请求的处理方法与装置
US11216439B2 (en) Auto-expiring locks based on object stamping
US10936231B2 (en) Allocating snapshot group identifiers
US11435913B2 (en) Storage policy matching using difference-based scoring

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