CN108595119B - 一种数据同步方法及分布式系统 - Google Patents

一种数据同步方法及分布式系统 Download PDF

Info

Publication number
CN108595119B
CN108595119B CN201810276921.9A CN201810276921A CN108595119B CN 108595119 B CN108595119 B CN 108595119B CN 201810276921 A CN201810276921 A CN 201810276921A CN 108595119 B CN108595119 B CN 108595119B
Authority
CN
China
Prior art keywords
hard disk
mechanical hard
log
log data
storage server
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
CN201810276921.9A
Other languages
English (en)
Other versions
CN108595119A (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.)
Zhejiang Dahua Technology Co Ltd
Original Assignee
Zhejiang Dahua 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 Zhejiang Dahua Technology Co Ltd filed Critical Zhejiang Dahua Technology Co Ltd
Priority to CN201810276921.9A priority Critical patent/CN108595119B/zh
Publication of CN108595119A publication Critical patent/CN108595119A/zh
Application granted granted Critical
Publication of CN108595119B publication Critical patent/CN108595119B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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]
    • 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/0671In-line storage system
    • G06F3/0683Plurality of storage devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例提供一种数据同步方法及分布式系统,所述分布式系统包括两两互相通信的至少两个存储服务器,每个存储服务器包括用于存储日志数据的非易失性高速存储盘,分布式系统从第一存储服务器检测到第一机械硬盘上线后,读取第一机械硬盘的标识信息,然后判断第一机械硬盘的日志数据和第一日志分区的日志数据是否一致,若不一致则基于第一机械硬盘的标识信息,从第二存储服务器获取第一机械硬盘的完整日志数据,并将完整日志数据同步到第一机械硬盘和第一日志分区,确保机械硬盘和存储系统之间日志数据的一致、完整。

Description

一种数据同步方法及分布式系统
技术领域
本发明涉及分布式存储技术领域,尤其涉及一种数据同步方法及分布式系统。
背景技术
日志文件系统是一种文件系统在发生变化时,先把相关信息写入日志区域,然后再把变化信息写入主文件系统的文件系统,如XFS文件系统、第四代扩展文件系统(fourthEXTended filesystem,EXT4)等。在文件系统发生如内核崩溃或突然停电等故障时,日志文件系统更容易保持一致性,并且可以较快恢复,而云存储系统通常会选择某种日志文件系统作为底层存储系统,默认情况下,日志数据和普通数据都直接写到同一个机械硬盘分区,由于机械硬盘的寻道的限制,在需要大量读、写日志数据时往往性能很差。
针对上述问题,现有技术中通常使用内存或其他高速存储介质作为日志数据的缓存,以提高日志数据的读写性能。若有机械硬盘挂载,可以指定日志数据的存放区域,如可以指定将日志数据存放到内存或其他高速存储介质的分区中,之后使用中,文件系统就会将日志数据写到相应分区,此过程对用户和开发者来说都是透明的,但由于日志数据和机械硬盘分离,一旦机械硬盘插拔到其他服务器上使用,就会导致日志数据损坏甚至丢失。
综上可知,现有技术中难以确保机械硬盘和存储系统之间日志数据的一致。
发明内容
本发明实施例提供一种数据同步方法及分布式系统,用以确保机械硬盘和存储系统之间日志数据的一致。
第一方面,本发明实施例提供一种数据同步方法,应用于分布式系统,所述分布式系统包括两两互相通信的至少两个存储服务器,每个存储服务器包括用于存储日志数据的非易失性高速存储盘,分布式系统从第一存储服务器检测到第一机械硬盘上线后,读取第一机械硬盘的标识信息,然后判断第一机械硬盘的日志数据和第一日志分区的日志数据是否一致,若不一致则基于第一机械硬盘的标识信息,从第二存储服务器获取第一机械硬盘的完整日志数据,并将完整日志数据同步到第一机械硬盘和第一日志分区,确保机械硬盘和存储系统之间日志数据的一致、完整。
在一种可能的实现方式中,在判断第一机械硬盘的日志数据和第一日志分区的日志数据是否一致之前,可以判断第一存储服务器的非易失性高速存储盘中是否存在与所述第一机械硬盘的硬盘标识对应的日志分区,若不存在,则从所述第一存储服务器的非易失性高速存储盘中分配第一日志分区用于存储所述第一机械硬盘的日志数据,如此可以确保后续上线的新的机械硬盘均有与其对应的日志分区。
在一种可能的实现方式中,若所述第一存储服务器的非易失性高速存储盘中存在与所述第一机械硬盘的硬盘标识对应的日志分区,则判断所述第一机械硬盘的日志数据的日志版本号与所述第一日志分区的日志数据的日志版本号是否一致,若日志版本号不一致,则确定所述第一机械硬盘的日志数据和第一日志分区的日志数据不一致,为后续日志数据的同步提供依据、确保日志数据不丢失,提高数据可靠性。
在一种可能的实现方式中,在基于所述第一机械硬盘的标识信息,从第二存储服务器获取所述第一机械硬盘的完整日志数据之前,判断所述第一机械硬盘的日志数据是否完整;若不完整,则基于所述第一机械硬盘的标识信息,从第二存储服务器获取所述第一机械硬盘的完整日志数据,确保日志数据的完整性。
在一种可能的实现方式中,基于所述第一机械硬盘的标识信息,从第二存储服务器获取所述第一机械硬盘的完整日志数据,包括:将所述第一机械硬盘的标识信息发送给所述至少两个存储服务器中除所述第一存储服务器外的所有存储服务器;获取所述第二存储服务器反馈的所述第一机械硬盘的完整日志数据,确保日志数据的完整性。
在一种可能的实现方式中,获取所述第二存储服务器反馈的所述第一机械硬盘的完整日志数据,包括:对比所述第一机械硬盘的日志数据的日志版本号和所述第二存储服务器中所述第一机械硬盘的日志数据的日志版本号;若一致,则获取所述第二存储服务器反馈的与所述第一机械硬盘的日志版本号对应的完整日志数据;若不一致,则获取所述第二存储服务器反馈的所述第一机械硬盘的最新日志版本的完整日志数据,确保日志数据的完整性。
在一种可能的实现方式中,所述第一存储服务器的非易失性高速存储盘的日志分区的个数大于所述第一存储服务器中已有的机械硬盘的个数,如此可以确保后续上线的机械硬盘有空闲的日志分区可以分配。
在一种可能的实现方式中,将所述完整日志数据同步到所述第一机械硬盘和所述第一日志分区,包括:基于预设策略将所述完整日志数据同步到所述第一机械硬盘和所述第一日志分区,其中,所述预设策略包括预设时间、日志数据量和机械硬盘负载中的至少一项。
第二方面,本发明实施例提供一种分布式系统,包括:
磁盘管理模块,用于从第一存储服务器检测到第一机械硬盘上线后,读取所述第一机械硬盘的标识信息,其中,所述第一存储服务器为所述分布式系统包括的两两互相通信的至少两个存储服务器中的任一存储服务器,每个存储服务器包括用于存储日志数据的非易失性高速存储盘,所述标识信息包括硬盘标识;
日志管理模块,用于判断所述第一机械硬盘的日志数据和第一日志分区的日志数据是否一致,所述第一日志分区为所述第一存储服务器的非易失性高速存储盘中与第一机械硬盘的硬盘标识对应的日志分区;若不一致,则基于所述第一机械硬盘的标识信息,从第二存储服务器获取所述第一机械硬盘的完整日志数据,并将所述完整日志数据同步到所述第一机械硬盘和所述第一日志分区,其中,所述第二存储服务器为所述至少两个存储服务器中除所述第一存储服务器外的存储有所述完整日志数据的存储服务器。
在一种可能的实现方式中,所述日志管理模块用于:在判断第一机械硬盘的日志数据和第一日志分区的日志数据是否一致之前,判断第一存储服务器的非易失性高速存储盘中是否存在与所述第一机械硬盘的硬盘标识对应的日志分区,若不存在,则从所述第一存储服务器的非易失性高速存储盘中分配第一日志分区用于存储所述第一机械硬盘的日志数据,如此可以确保后续上线的新的机械硬盘均有与其对应的日志分区。
在一种可能的实现方式中,所述日志管理模块用于:若所述第一存储服务器的非易失性高速存储盘中存在与所述第一机械硬盘的硬盘标识对应的日志分区,判断所述第一机械硬盘的日志数据的日志版本号与所述第一日志分区的日志数据的日志版本号是否一致,若日志版本号不一致,则确定所述第一机械硬盘的日志数据和第一日志分区的日志数据不一致,为后续日志数据的同步提供依据、确保日志数据不丢失,提高数据可靠性。
在一种可能的实现方式中,所述日志管理模块用于:在基于所述第一机械硬盘的标识信息,从第二存储服务器获取所述第一机械硬盘的完整日志数据之前,判断所述第一机械硬盘的日志数据是否完整;若不完整,则基于所述第一机械硬盘的标识信息,从第二存储服务器获取所述第一机械硬盘的完整日志数据,确保日志数据的完整性。
在一种可能的实现方式中,所述日志管理模块用于:将所述第一机械硬盘的标识信息发送给所述至少两个存储服务器中除所述第一存储服务器外的所有存储服务器;获取所述第二存储服务器反馈的所述第一机械硬盘的完整日志数据,确保日志数据的完整性。
在一种可能的实现方式中,所述日志管理模块用于:对比所述第一机械硬盘的日志数据的日志版本号和所述第二存储服务器中所述第一机械硬盘的日志数据的日志版本号;若一致,则获取所述第二存储服务器反馈的与所述第一机械硬盘的日志版本号对应的完整日志数据;若不一致,则获取所述第二存储服务器反馈的所述第一机械硬盘的最新日志版本的完整日志数据,确保日志数据的完整性。
在一种可能的实现方式中,所述第一存储服务器的非易失性高速存储盘的日志分区的个数大于所述第一存储服务器中已有的机械硬盘的个数,如此可以确保后续上线的机械硬盘有空闲的日志分区可以分配。
在一种可能的实现方式中,所述日志管理模块用于:基于预设策略将所述完整日志数据同步到所述第一机械硬盘和所述第一日志分区,其中,所述预设策略包括预设时间、日志数据量和机械硬盘负载中的至少一项。
第三方面,本发明实施例提供一种计算机装置,所述计算机装置包括:
至少一个处理器,以及
与所述至少一个处理器通信连接的存储器、通信接口;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令,利用所述通信接口执行如第一方面所述的方法。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如第一方面所述的方法。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所介绍的附图只是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中分布式系统的结构示意图;
图2为本发明实施例中存储服务器的结构示意图;
图3为本发明实施例中数据同步方法的流程示意图;
图4为本发明实施例中SSD的日志分区与机械硬盘的日志区对应的示意图;
图5为本发明实施例中机械硬盘从存储服务器A到存储服务器B的漂移场景的示意图;
图6为本发明实施例中数据同步方法在实际应用场景中的基本流程图;
图7为本发明实施例中数据写入的流程示意图;
图8为本发明实施例中机械硬盘卸载的流程示意图;
图9为本发明实施例中分布式系统的模块示意图;
图10为本发明实施例中计算机装置的示意图。
具体实施方式
为了使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
请参见图1,首先对本发明实施例中的分布式存储系统(本文中称作分布式系统)进行介绍。分布式系统中可以包括两两互相通信的至少两个存储服务器,其中,每个存储服务器可以包括至少一个用于存储日志数据的非易失性高速存储盘,如固态硬盘(SolidState Drives,SSD)、NVDIMM等,图1中每个存储服务器中以示出一个SSD为例,每个存储服务器还可以包括至少一个机械硬盘,图1中每个存储服务器中以示出四个机械硬盘为例。
针对图1中的存储服务器,请参见图2,每个存储服务器可以包括多个软件模块,如日志管理模块、磁盘管理模块等,在实际应用中存储服务器还可以根据应用场景选择性的包括通信模块和数据管理模块等,其中,日志管理模块可以用于实现非易失性高速存储盘和机械硬盘之间日志数据的同步,以及机械硬盘漂移后,其与历史存储服务器、当前所在的存储服务器之间日志数据的同步和一致性检查;数据管理模块可以用于提供数据读写、满足实际业务需求;磁盘管理模块可以用于提供非易失性高速存储盘和机械硬盘的管理功能;通信模块可以用于实现两两存储服务器之间的互相通信。而机械硬盘漂移指:在分布式或云存储系统中,将机械硬盘从一台存储服务器更换到另一台存储服务器,且机械硬盘原有数据不丢失,更换后可继续使用。
本发明采用非易失性高速存储盘,如SSD作为日志数据的缓存介质,并采用一系列同步刷新机制可以将日志数据回写到机械硬盘中,其中,非易失性高速存储盘相对内存等缓存介质来说容量更大、成本上也有优势,且断电后数据不丢失,服务重启后也可以从SSD上直接加载日志数据,性能上有明显优势,而通过将日志数据刷新到机械硬盘,可以保证机械硬盘数据完整,从而可以漂移到其他存储服务器使用。针对磁盘漂移的场景,设计了一套版本机制保证数据一致性。且在机械硬盘热插拔造成非易失性高速存储盘与机械硬盘的日志数据不一致的情况下,利用云存储系统分布式存储节点实现日志数据同步,保证日志数据不丢失,提高数据可靠性。其中,机械硬盘的热插拔指将机械硬盘直接插入存储服务器、将机械硬盘从存储服务器上直接拔出。
需要理解的是,在本发明实施例的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
下面结合附图对本发明优选的实施例作详细的介绍。
请参见图3,本发明实施例中提供一种数据同步方法,可以应用于分布式系统,或者也可以应用于分布式系统中的各个存储服务器以实现两两存储服务器之间的数据交互;其中,数据同步方法的实现流程可以描述如下:
S301:从第一存储服务器检测到第一机械硬盘上线后,读取第一机械硬盘的标识信息,其中,第一存储服务器为至少两个存储服务器中的任一存储服务器,标识信息包括硬盘标识;
S302:判断第一机械硬盘的日志数据和第一日志分区的日志数据是否一致,第一日志分区为第一存储服务器的非易失性高速存储盘中与第一机械硬盘的硬盘标识对应的日志分区;
S303:若不一致,则基于第一机械硬盘的标识信息,从第二存储服务器获取第一机械硬盘的完整日志数据,并将完整日志数据同步到第一机械硬盘和第一日志分区,其中,第二存储服务器为至少两个存储服务器中除第一存储服务器外的存储有完整日志数据的存储服务器。
本发明实施例中,针对任一存储服务器,分布式系统在检测到SSD上线时,可以自动将SSD分为多个日志分区,每个日志分区可以对应一个机械硬盘的日志区,即分布式系统可以按照存储服务器中当前已有的机械硬盘的个数对相应存储服务器中的SSD进行日志分区的划分,划分的标准为SSD的日志分区的个数大于已有的机械硬盘的个数;或者,分布式系统可以按照已有的机械硬盘的个数对SSD的部分区间划分相应个数的日志分区,而SSD的剩余部分区间可以待新的机械硬盘上线后再划分新的日志分区,如此可以确保后续上线的机械硬盘有空闲的日志分区可以分配。
例如,可以参见图4,为SSD的日志分区和机械硬盘的日志区对应的示意图。通常情况下整个机械硬盘不分区、直接格式化成一个文件系统使用;而图4中可以按一定比例从机械硬盘中分出部分空间作为日志区与SSD的日志分区对应、以备份日志数据,而机械硬盘中的剩余空间可以作为数据区存储普通数据供用户使用。
本发明实施例中,考虑到机械硬盘的热插拔、漂移功能等,分布式系统可以记录机械硬盘与SSD的日志分区之间的映射关系,维护每个机械硬盘的标识信息与SSD的日志分区的映射表,如通用唯一识别码(Universally Unique Identifier,UUID)与SSD分区的映射表,并对该映射表持久化。由于每个存储服务器的硬盘数量可能只有几十块,这部分数据量很小,加载、更新速度会很快,当分布式系统检测到新增的机械硬盘或接收机械硬盘彻底移除的指令后,可以自动更新该映射表。
在S301中,分布式系统从第一存储服务器检测到第一机械硬盘上线后,可以读取第一机械硬盘的标识信息,考虑到第一机械硬盘在不同存储服务器之间漂移后,日志数据可能会不一致甚至有可能重新进行格式化,因此SSD的日志分区以及机械硬盘的日志区中可以包括以下标识信息中的至少一种:
日志版本号:SSD上每次更新日志数据后需要更新该版本号,在没有格式化机械硬盘的情况下,日志数据同步时应以新的版本号为准;
格式化版本号:机械硬盘的数据区每进行一次格式化操作,都要更新日志区的该版本号,通过该版本号区分机械硬盘是否进行过格式化,再未进行格式化的情况下,以新的日志版本号的日志数据为准,而在进行过格式化的情况下,优先以新的格式化版本号的日志数据为准;
磁盘正常卸载标志位:当存储服务器上的服务正常关闭或主动卸载机械硬盘时,在完成SSD和机械硬盘的日志同步后,设置此标志位,当机械硬盘挂载、使用后,清除该标志位,机械硬盘上线时,如果分布式系统检查发现该标志位被设置,可以认定机械硬盘上的日志数据是完整的、最新的,可以直接使用;通过该机制可以减少通过网络比较日志版本的开销,提高效率,且在硬盘漂移场景中,机械硬盘所在原始服务器下线情况下,仍然可以判断出该机械硬盘的日志数据是否完整;
硬盘唯一标识:可选字段,可以包括但不限于UUID等方式,也可以利用硬件或文件系统本身的标识信息进行区分。
在分布式系统读取第一机械硬盘的标识信息之后,可以进入S302,即判断第一机械硬盘的日志数据和第一日志分区的日志数据是否一致,第一日志分区为第一存储服务器的非易失性高速存储盘中与第一机械硬盘的硬盘标识对应的日志分区。
如对于新上线的机械硬盘,检查机械硬盘中的日志数据和SSD中的日志数据是否一致,如果识别出机械硬盘是从其他存储服务器漂移到第一存储服务器的,还需要经过通信模块,检查其在历史存储服务器上的日志版本,以便确定是否需要进行同步。
在S302之前,分布式系统可以判断第一存储服务器的SSD中是否存在与第一机械硬盘的硬盘标识对应的日志分区,如果不存在,则可以认为第一机械硬盘对于第一存储服务器为全新的机械硬盘,这时分布式系统可以直接进行格式化并预留出SSD的一个日志分区,或者选择SSD空闲的一个日志分区用以存储第一机械硬盘的日志数据,防止用户数据占满空间,无法存放日志数据。
而如果第一存储服务器的非易失性高速存储盘中存在与第一机械硬盘的硬盘标识对应的日志分区,则可以判断第一机械硬盘的日志数据的日志版本号与第一日志分区的日志数据的日志版本号是否一致,若日志版本号不一致,则确定第一机械硬盘的日志数据和第一日志分区的日志数据不一致,其中,第一日志分区为第一存储服务器的非易失性高速存储盘中与第一机械硬盘的硬盘标识对应的日志分区。当然,判断第一机械硬盘的日志数据和第一日志分区的日志数据是否一致还可以针对上述列举的其他标识信息进行,本发明实施例不作具体限制。
若日志数据不一致,则可以进入S303,分布式系统可以根据第一机械硬盘的标识信息,从第二存储服务器获取第一机械硬盘的完整日志数据,并将完整日志数据通过分布式系统内部的通信机制,如网络同步等同步到第一机械硬盘和第一日志分区,其中,第二存储服务器为至少两个存储服务器中除第一存储服务器外的存储有完整日志数据的存储服务器。
比如可以参见图5,存储服务器A为第二存储服务器,存储服务器B为第一存储服务器。针对机械硬盘的漂移场景,假设机械硬盘1原本在存储服务器A上,在机械硬盘1的日志数据与存储服务器A中相应日志分区同步完成之前,就被漂移到了存储服务器B上。
分布式系统从存储服务器B上检测到机械硬盘1的上线消息后,可以读取机械硬盘1的标识信息,如机械硬盘1的硬盘标识等日志区信息,然后分布式系统可以对比机械硬盘1的日志数据的日志版本号与存储服务器B中相应日志分区的日志数据的日志版本号是否一致,若日志版本号不一致,则可以确定日志数据不一致。
这时,分布式系统可以向除存储服务器B外的其他存储服务器查询机械硬盘1的最新日志版本的完整日志数据,并将完整日志数据同步到机械硬盘1和存储服务器B的SSD中与机械硬盘1对应的第一日志分区。
在一种可能的实现方式中,在基于第一机械硬盘的标识信息,从第二存储服务器获取第一机械硬盘的完整日志数据之前,还可以对第一机械硬盘的日志数据的完整性进行判断,如果第一机械硬盘的日志数据不完整,则可以根据第一机械硬盘的标识信息从第二存储服务器获取第一机械硬盘的完整日志数据,如此无论第一机械硬盘在什么时机从第二存储服务器中拔出、在什么时机插入第一存储服务器,均可以确保第一机械硬盘的日志区的日志数据和第一存储服务器的SSD中与第一机械硬盘对应的日志分区的日志数据的完整,进而提高了数据的可靠性。
而如果第一机械硬盘的日志数据是完整的,则可以直接将第一机械硬盘日志区中存储的日志数据同步到第一存储服务器的SSD相应的日志分区中。
举例来说,例如机械硬盘1最初在存储服务器A上使用,并写入一些日志数据,后来将其漂移到存储服务器B上继续使用,且保留原有的日志数据。机械硬盘1在存储服务器B上线后,分布式系统或者分布式系统中的中心型管理服务器检查发现机械硬盘1中的日志数据是完整的,此时不需要经过网络通信从其他存储服务器同步日志数据,只需将机械硬盘1中的日志数据同步到存储服务器B的SSD即可。
在一种可能的实现方式中,在基于第一机械硬盘的标识信息,从第二存储服务器获取第一机械硬盘的完整日志数据之前,对第一机械硬盘的日志数据的完整性判断还可以通过磁盘正常卸载标志位的设置进行,如可以判断第一存储服务器中的第一机械硬盘的磁盘正常卸载标志位是否被设置,若确定第一机械硬盘的磁盘正常卸载标志位未被设置,则可以确定第一机械硬盘的日志数据是不完整的。
在一种可能的实现方式中,在S303中,基于第一机械硬盘的标识信息,从第二存储服务器获取第一机械硬盘的完整日志数据可以具体实现为将第一机械硬盘的标识信息发送给至少两个存储服务器中除第一存储服务器外的所有存储服务器,进而获取第二存储服务器反馈的第一机械硬盘的完整日志数据。
而在获取第二存储服务器反馈的第一机械硬盘的完整日志数据时,可以对比第一机械硬盘的日志数据的日志版本号和第二存储服务器中第一机械硬盘的日志数据的日志版本号;若一致,则获取第二存储服务器反馈的与第一机械硬盘的日志版本号对应的完整日志数据;若不一致,则获取第二存储服务器反馈的第一机械硬盘的最新日志版本的完整日志数据。
在一种可能的实现方式中,在S303中,分布式系统将完整日志数据同步到第一机械硬盘和第一日志分区,可以包括基于预设策略将完整日志数据同步到第一机械硬盘和第一日志分区,其中,预设策略包括预设时间、日志数据量和机械硬盘负载中的至少一项。
比如,分布式系统可以将SSD中的日志数据回写到机械硬盘,SSD的日志数据变更后,可以根据预设策略,将日志数据回写到对应的机械硬盘的日志区中,其中,预设策略包括但不限于以下列举的至少一种:
按预设时间回写,即数据更新等待一定时间,超时后开始回写;
按日志数据量回写,即改动的日志数据量达到一定程度后,开始回写;
根据机械硬盘的负载回写,即实时监控机械硬盘负载,在负载较低时进行回写,可提高SSD和机械硬盘上日志数据的实时一致性。
下面结合图6,对本发明的基本流程进行进一步的说明,以便本领域技术人员的理解。
分布式系统检测到机械硬盘上线后,可以获取机械硬盘的日志分区的UUID等标识信息,对于全新磁盘,直接进行格式化并预留出一个日志分区,防止用户数据将磁盘空间占满,无法存放日志数据。
分布式系统可以根据机械硬盘的标识信息,查找是否已有与之对应的SSD日志分区,若没有,则选择一个空闲的SSD日志分区作为该机械硬盘的日志区,若有,则分布式系统可以确定上述SSD中与机械硬盘对应的日志分区作为存储日志数据的日志区,通过mount接口或命令挂载该机械硬盘。
然后,分布式系统检测是否需要在SSD和机械硬盘之间同步日志数据,考虑到机械硬盘漂移,以及漂移后在其他节点更新数据、设置格式化后再次漂移回来等场景,在机械硬盘和SSD日志分区中同时记录版本号,每次日志数据修改都会更新版本号,机械硬盘格式化后会清空版本号并更新格式化记录,以此确定日志同步的方向。
如果机械硬盘上有日志数据完整标识位,则可以以机械硬盘中的日志数据为基准;如果机械硬盘的日志数据和SSD相应的日志分区的日志数据不一致,且检测到该机械硬盘是漂移过来的,需要从该机械硬盘所在的历史存储服务器上获取最新日志版本号进行比对。如果机械硬盘一直属于当前的这台存储服务器,没有进行过漂移,则可以直接比对该机械硬盘和SSD相应的日志分区的日志数据的日志版本,确定是从SSD同步到机械硬盘还是从机械硬盘同步到SSD。
分布式系统可以根据检测结果,执行日志同步操作,同步完成后,硬盘准备就绪,可为用户提供读写数据等服务。
其中,硬盘准备就绪后,数据写入流程可以参见图7,分布式系统在接收到写入请求时,因机械硬盘在mount挂载时已经指定将SSD作为日志数据的存储区,XFS、EXT4等文件系统会自动将日志数据写入SSD,将普通数据写入机械硬盘,然后用户请求返回;然后根据既定策略,在满足条件后,将SSD中的日志数据同步到机械硬盘的日志区,并更新对应版本信息。
数据读取流程:分布式系统接收到用户读请求,或因分布式系统启动初始化等场景需要读取数据时,直接调用分布式系统接口,文件系统会从SSD和机械硬盘上读取日志数据和普通数据。
在服务重启、磁盘漂移或维护等场景下会主动卸载(umount)机械硬盘,其处理流程可以参见图8。分布式系统停止对机械硬盘的读、写请求,将SSD盘日志同步到硬盘日志分区,在完成同步后设置一个标志位,然后调用umount命令或接口卸载硬盘,大多数情况下,机械硬盘下线不需要清除其对应的SSD日志分区,这样当机械硬盘再次上线时,可以大大减少数据同步工作,只有当用户显示指定机械硬盘被彻底删除时,才需要释放相应的SSD日志分区。
综上所述,本发明实施例的一个或者多个技术方案,至少具有如下技术效果或者优点:
第一、与现有技术单纯使用机械硬盘相比,本方案可明显提升对日志数据操作的性能,因为日志数据写入非易失性高速存储盘,从根本上避免了大量读写小IO时造成的机械硬盘频繁寻道开销。
第二、通过同步机制,尤其是基于分布式存储各个节点之间自动同步日志的机制,可以保证机械硬盘日志数据的完整性,从而能够实现热插拔、磁盘漂移等场景。在热插拔机械硬盘导致日志数据来不及同步到机械硬盘的情况下,仍然可以在机械硬盘插入任意一台存储服务器后自动实现日志同步,保证数据一致性。
第三、通过日志版本机制,解决了磁盘反复漂移后带来的数据不一致问题。
第四、采用多种同步策略,可以最大限度保证数据一致性并提高对日志数据的读写性能;
第五、在对机械硬盘预留一定的非易失性高速存储盘日志分区,可有效防止用户数据将机械硬盘写满导致无法存放日志数据的问题。
请参见图9,基于同一发明构思,本发明实施例提供一种分布式系统,包括:
磁盘管理模块91,用于从第一存储服务器检测到第一机械硬盘上线后,读取所述第一机械硬盘的标识信息,其中,所述第一存储服务器为所述分布式系统包括的两两互相通信的至少两个存储服务器中的任一存储服务器,每个存储服务器包括用于存储日志数据的非易失性高速存储盘,所述标识信息包括硬盘标识;
日志管理模块92,用于判断所述第一机械硬盘的日志数据和第一日志分区的日志数据是否一致,所述第一日志分区为所述第一存储服务器的非易失性高速存储盘中与第一机械硬盘的硬盘标识对应的日志分区;若不一致,则基于所述第一机械硬盘的标识信息,从第二存储服务器获取所述第一机械硬盘的完整日志数据,并将所述完整日志数据同步到所述第一机械硬盘和所述第一日志分区,其中,所述第二存储服务器为所述至少两个存储服务器中除所述第一存储服务器外的存储有所述完整日志数据的存储服务器。
在一种可能的实现方式中,所述日志管理模块92用于:在判断第一机械硬盘的日志数据和第一日志分区的日志数据是否一致之前,判断第一存储服务器的非易失性高速存储盘中是否存在与所述第一机械硬盘的硬盘标识对应的日志分区,若不存在,则从所述第一存储服务器的非易失性高速存储盘中分配第一日志分区用于存储所述第一机械硬盘的日志数据,如此可以确保后续上线的新的机械硬盘均有与其对应的日志分区。
在一种可能的实现方式中,所述日志管理模块92用于:若所述第一存储服务器的非易失性高速存储盘中存在与所述第一机械硬盘的硬盘标识对应的日志分区,判断所述第一机械硬盘的日志数据的日志版本号与所述第一日志分区的日志数据的日志版本号是否一致,若日志版本号不一致,则确定所述第一机械硬盘的日志数据和第一日志分区的日志数据不一致,为后续日志数据的同步提供依据、确保日志数据不丢失,提高数据可靠性。
在一种可能的实现方式中,所述日志管理模块92用于:在基于所述第一机械硬盘的标识信息,从第二存储服务器获取所述第一机械硬盘的完整日志数据之前,判断所述第一机械硬盘的日志数据是否完整;若不完整,则基于所述第一机械硬盘的标识信息,从第二存储服务器获取所述第一机械硬盘的完整日志数据,确保日志数据的完整性。
在一种可能的实现方式中,所述日志管理模块92用于:将所述第一机械硬盘的标识信息发送给所述至少两个存储服务器中除所述第一存储服务器外的所有存储服务器;获取所述第二存储服务器反馈的所述第一机械硬盘的完整日志数据,确保日志数据的完整性。
在一种可能的实现方式中,所述日志管理模块92用于:对比所述第一机械硬盘的日志数据的日志版本号和所述第二存储服务器中所述第一机械硬盘的日志数据的日志版本号;若一致,则获取所述第二存储服务器反馈的与所述第一机械硬盘的日志版本号对应的完整日志数据;若不一致,则获取所述第二存储服务器反馈的所述第一机械硬盘的最新日志版本的完整日志数据,确保日志数据的完整性。
在一种可能的实现方式中,所述第一存储服务器的非易失性高速存储盘的日志分区的个数大于所述第一存储服务器中已有的机械硬盘的个数,如此可以确保后续上线的机械硬盘有空闲的日志分区可以分配。
在一种可能的实现方式中,所述日志管理模块92用于:基于预设策略将所述完整日志数据同步到所述第一机械硬盘和所述第一日志分区,其中,所述预设策略包括预设时间、日志数据量和机械硬盘负载中的至少一项。
请参见图10,基于同一发明构思,本发明实施例中提供一种计算机装置,包括至少一个处理器101,以及与所述至少一个处理器101通信连接的存储器102和通信接口103,图10中以示出一个处理器101为例。
其中,所述存储器102存储有可被所述至少一个处理器101执行的指令,所述至少一个处理器101通过执行所述存储器102存储的指令,通过所述通信接口103执行上述描述的数据同步方法。
基于同一发明构思,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行上述描述的数据同步方法。
在具体的实施过程中,计算机可读存储介质包括:通用串行总线闪存盘(Universal Serial Bus flash drive,USB)、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的存储介质。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元/模块可以是或者也可以不是物理上分开的,作为单元/模块显示的部件可以是或者也可以不是物理单元/模块,即可以位于一个地方,或者也可以分布到多个网络单元/模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (11)

1.一种数据同步方法,其特征在于,应用于分布式系统,所述分布式系统包括两两互相通信的至少两个存储服务器,每个存储服务器包括用于存储日志数据的非易失性高速存储盘,所述方法包括:
从第一存储服务器检测到第一机械硬盘上线后,读取所述第一机械硬盘的标识信息,其中,所述第一存储服务器为所述至少两个存储服务器中的任一存储服务器,所述标识信息包括硬盘标识;
判断所述第一机械硬盘的日志数据和第一日志分区的日志数据是否一致,所述第一日志分区为所述第一存储服务器的非易失性高速存储盘中与第一机械硬盘的硬盘标识对应的日志分区;
若不一致,且所述第一机械硬盘的日志数据不完整,则基于所述第一机械硬盘的标识信息,从第二存储服务器获取所述第一机械硬盘的完整日志数据,并将所述完整日志数据同步到所述第一机械硬盘和所述第一日志分区,其中,所述第二存储服务器为所述至少两个存储服务器中除所述第一存储服务器外的存储有所述完整日志数据的存储服务器。
2.如权利要求1所述的方法,其特征在于,在判断所述第一机械硬盘的日志数据和第一日志分区的日志数据是否一致之前,还包括:
判断所述第一存储服务器的非易失性高速存储盘中是否存在与所述第一机械硬盘的硬盘标识对应的日志分区;
若不存在,则从所述第一存储服务器的非易失性高速存储盘中分配第一日志分区用于存储所述第一机械硬盘的日志数据。
3.如权利要求2所述的方法,其特征在于,若所述第一存储服务器的非易失性高速存储盘中存在与所述第一机械硬盘的硬盘标识对应的日志分区,则判断所述第一机械硬盘的日志数据和第一日志分区的日志数据是否一致,包括:
判断所述第一机械硬盘的日志数据的日志版本号与所述第一日志分区的日志数据的日志版本号是否一致;
若日志版本号不一致,则确定所述第一机械硬盘的日志数据和第一日志分区的日志数据不一致。
4.如权利要求1所述的方法,其特征在于,在基于所述第一机械硬盘的标识信息,从第二存储服务器获取所述第一机械硬盘的完整日志数据之前,还包括:
判断所述第一机械硬盘的日志数据是否完整;
若不完整,则基于所述第一机械硬盘的标识信息,从第二存储服务器获取所述第一机械硬盘的完整日志数据。
5.如权利要求1所述的方法,其特征在于,基于所述第一机械硬盘的标识信息,从第二存储服务器获取所述第一机械硬盘的完整日志数据,包括:
将所述第一机械硬盘的标识信息发送给所述至少两个存储服务器中除所述第一存储服务器外的所有存储服务器;
获取所述第二存储服务器反馈的所述第一机械硬盘的完整日志数据。
6.如权利要求5所述的方法,其特征在于,获取所述第二存储服务器反馈的所述第一机械硬盘的完整日志数据,包括:
对比所述第一机械硬盘的日志数据的日志版本号和所述第二存储服务器中所述第一机械硬盘的日志数据的日志版本号;
若一致,则获取所述第二存储服务器反馈的与所述第一机械硬盘的日志版本号对应的完整日志数据;
若不一致,则获取所述第二存储服务器反馈的所述第一机械硬盘的最新日志版本的完整日志数据。
7.如权利要求1-6中任一项所述的方法,其特征在于,所述第一存储服务器的非易失性高速存储盘的日志分区的个数大于所述第一存储服务器中已有的机械硬盘的个数。
8.如权利要求1-6中任一项所述的方法,其特征在于,将所述完整日志数据同步到所述第一机械硬盘和所述第一日志分区,包括:
基于预设策略将所述完整日志数据同步到所述第一机械硬盘和所述第一日志分区,其中,所述预设策略包括预设时间、日志数据量和机械硬盘负载中的至少一项。
9.一种分布式系统,其特征在于,包括:
磁盘管理模块,用于从第一存储服务器检测到第一机械硬盘上线后,读取所述第一机械硬盘的标识信息,其中,所述第一存储服务器为所述分布式系统包括的两两互相通信的至少两个存储服务器中的任一存储服务器,每个存储服务器包括用于存储日志数据的非易失性高速存储盘,所述标识信息包括硬盘标识;
日志管理模块,用于判断所述第一机械硬盘的日志数据和第一日志分区的日志数据是否一致,所述第一日志分区为所述第一存储服务器的非易失性高速存储盘中与第一机械硬盘的硬盘标识对应的日志分区;若不一致,且所述第一机械硬盘的日志数据不完整,则基于所述第一机械硬盘的标识信息,从第二存储服务器获取所述第一机械硬盘的完整日志数据,并将所述完整日志数据同步到所述第一机械硬盘和所述第一日志分区,其中,所述第二存储服务器为所述至少两个存储服务器中除所述第一存储服务器外的存储有所述完整日志数据的存储服务器。
10.一种计算机装置,其特征在于,所述计算机装置包括:
至少一个处理器,以及
与所述至少一个处理器通信连接的存储器、通信接口;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令,利用所述通信接口执行如权利要求1-8中任一项所述的方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如权利要求1-8中任一项所述的方法。
CN201810276921.9A 2018-03-30 2018-03-30 一种数据同步方法及分布式系统 Active CN108595119B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810276921.9A CN108595119B (zh) 2018-03-30 2018-03-30 一种数据同步方法及分布式系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810276921.9A CN108595119B (zh) 2018-03-30 2018-03-30 一种数据同步方法及分布式系统

Publications (2)

Publication Number Publication Date
CN108595119A CN108595119A (zh) 2018-09-28
CN108595119B true CN108595119B (zh) 2021-04-16

Family

ID=63624987

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810276921.9A Active CN108595119B (zh) 2018-03-30 2018-03-30 一种数据同步方法及分布式系统

Country Status (1)

Country Link
CN (1) CN108595119B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109491837B (zh) * 2018-11-01 2020-09-25 苏州浪潮智能科技有限公司 一种非易失性内存储器的日志容错处理方法与装置
CN111597197B (zh) * 2020-06-29 2022-02-08 腾讯科技(深圳)有限公司 数据库之间的数据对账方法和装置、存储介质及电子设备
CN111857577B (zh) * 2020-06-29 2022-04-26 烽火通信科技股份有限公司 一种分布式存储系统下物理硬盘的管理方法与装置
CN111880751B (zh) * 2020-09-28 2020-12-25 浙江大华技术股份有限公司 一种硬盘迁移方法、分布式存储集群系统和存储介质
CN113742135B (zh) * 2021-08-24 2023-11-10 咪咕音乐有限公司 数据备份方法、装置及计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105373549A (zh) * 2014-08-25 2016-03-02 浙江大华技术股份有限公司 数据迁移方法、设备及数据节点服务器
CN105760252A (zh) * 2014-12-19 2016-07-13 中兴通讯股份有限公司 实现事务日志镜像备份的方法及装置
CN205901808U (zh) * 2016-08-05 2017-01-18 国家电网公司 一种完成元数据节点自动切换的分布式存储系统
CN107291924A (zh) * 2017-06-29 2017-10-24 深信服科技股份有限公司 一种用于灾备系统的同步复制日志控制方法和系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10114576B2 (en) * 2014-07-24 2018-10-30 Sandisk Technologies Llc Storage device metadata synchronization

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105373549A (zh) * 2014-08-25 2016-03-02 浙江大华技术股份有限公司 数据迁移方法、设备及数据节点服务器
CN105760252A (zh) * 2014-12-19 2016-07-13 中兴通讯股份有限公司 实现事务日志镜像备份的方法及装置
CN205901808U (zh) * 2016-08-05 2017-01-18 国家电网公司 一种完成元数据节点自动切换的分布式存储系统
CN107291924A (zh) * 2017-06-29 2017-10-24 深信服科技股份有限公司 一种用于灾备系统的同步复制日志控制方法和系统

Also Published As

Publication number Publication date
CN108595119A (zh) 2018-09-28

Similar Documents

Publication Publication Date Title
CN108595119B (zh) 一种数据同步方法及分布式系统
CN111880751B (zh) 一种硬盘迁移方法、分布式存储集群系统和存储介质
CN109842651B (zh) 一种业务不间断的负载均衡方法和系统
CN102033786B (zh) 一种对象存储系统中修复副本一致性的方法
EP3206128B1 (en) Data storage method, data storage apparatus, and storage device
CN107919977B (zh) 一种基于Paxos协议的在线扩容、在线缩容的方法和装置
EP3974973A1 (en) Virtual machine backup method and device based on cloud platform data center
CN114443364B (zh) 一种分布式块存储数据处理方法、装置、设备及存储介质
CN111198845B (zh) 一种数据迁移方法、可读存储介质及计算设备
CN112052230A (zh) 多机房数据同步方法、计算设备及存储介质
US12050778B2 (en) Data restoration method and related device
CN111240901B (zh) 分布式块存储系统的节点动态扩展系统、方法及设备
CN110147296A (zh) 数据处理方法、装置、设备及可读存储介质
CN102025758B (zh) 分布式系统中数据副本的恢复方法、装置和系统
CN113885809B (zh) 数据管理系统及方法
CN116501259A (zh) 磁盘组双活同步方法、装置、计算机设备及存储介质
CN104035728A (zh) 一种硬盘热插拔处理方法、装置及节点
CN105915595B (zh) 一种集群存储系统存取数据的方法以及集群存储系统
WO2022151593A1 (zh) 一种数据恢复方法、装置、设备、介质及程序产品
CN114077517A (zh) 数据处理的方法、设备及系统
CN109032536B (zh) 基于分布式集群系统的数据存储方法、装置、系统及设备
CN111124275B (zh) 一种分布式块存储系统的监控服务优化方法及装置
CN111176886A (zh) 一种数据库模式的切换方法、装置及电子设备
CN111930707B (zh) 一种windows云迁移的盘符修正方法及系统
CN103838639A (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
GR01 Patent grant