CN117234412A - 数据迁移方法及相关装置 - Google Patents

数据迁移方法及相关装置 Download PDF

Info

Publication number
CN117234412A
CN117234412A CN202211102393.8A CN202211102393A CN117234412A CN 117234412 A CN117234412 A CN 117234412A CN 202211102393 A CN202211102393 A CN 202211102393A CN 117234412 A CN117234412 A CN 117234412A
Authority
CN
China
Prior art keywords
file
metadata
storage device
storage
data
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.)
Pending
Application number
CN202211102393.8A
Other languages
English (en)
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to PCT/CN2023/080091 priority Critical patent/WO2023241115A1/zh
Publication of CN117234412A publication Critical patent/CN117234412A/zh
Pending legal-status Critical Current

Links

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

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种数据迁移方法及相关装置,迁移调度装置确定对第一文件的数据从源设备迁移到目标设备的迁移任务,并对第一文件的元数据进行第一变更,以触发上述源设备或目标设备基于该第一文件的元数据的第一变更,完成该迁移任务。该方法基于对文件的元数据的变更(如,对文件的归属、存储布局等元数据的变更)来触发对该文件的数据迁移,而且文件的数据的迁移的进度也能够通过该文件的元数据的状态来反映。该方法可以提高数据迁移的效率,提升在数据使用和管理上的便捷性,还实现了迁移过程中各个设备的解耦,极大地提高业务系统的灵活性和可扩展性。

Description

数据迁移方法及相关装置
技术领域
本申请涉及信息技术(information technology,IT)、存储技术领域,尤其涉及数据迁移方法及相关装置。
背景技术
随着用户业务规模的增长,单一的存储设备无法满足业务的需求,用户业务的数据可能会被存储在多个存储设备中。有些用户的业务比较广,可能会涉及不同的地域的存储设备或不同的数据中心。此时,业务运行的过程中则经常会涉及数据迁移,例如:A存储设备容量较低但存储性能较高,B存储设备容量较高但存储性能较差,因此当业务对存储于A设备的某一数据(例如称为DATA1)的访问性能要求降低后,可以通过迁移操作,将数据DATA1存放于B设备中,实现整体存储成本最优。
目前的数据分级方法主要包含基于中间设备的分级方法和基于复制技术的迁移方法。其中,第一种方法需要引入外部的迁移控制器,由迁移控制器从源设备读取数据并写入目标设备。第二种方法是在源设备和目的设备之间建立双向通道,由源设备控制并执行向目的设备写入数据的过程。可以看出,上述两种方法在迁移之前都需要实现设备的相互感知,在第一种方法中,迁移器需要和源设备和目的设备建立连接和访问安全控制,在第二种方法中,源设备和目的设备之间需要建立连接和访问安全控制。由于需要设备之间的相互感知和安全控制,使得数据迁移的流程复杂,导致数据迁移的效率较低,容易影响用户对于数据的正常使用。
发明内容
本申请实施例提供了数据迁移方法及装置,能够实现基于状态的数据迁移,提高了数据迁移的效率,提升用户在数据使用和管理上的便捷性。
第一方面,本申请实施例提供一种数据迁移方法,该方法包括:
确定针对第一文件的迁移任务,所述第一文件的数据存储在第一存储设备上,所述针对第一文件的迁移任务指示将所述第一文件的数据从所述第一存储设备迁移到第二存储设备;
对所述第一文件的元数据进行第一变更,以触发执行所述针对第一文件的迁移任务;其中,所述第一变更指示所述第一文件归属的存储设备从所述第一存储设备变更为所述第二存储设备。
可选的,上述方法由迁移调度装置来实现。
本申请实施例通过变更文件的元数据来触发针对文件的迁移操作,当文件的归属为第二存储设备而文件的数据仍然存储在第一存储设备上时,则将第一文件从所述第一存储设备迁移到第二存储设备。这种方式能够基于文件状态(文件的归属、文件的存储布局等属性状态)来触发数据迁移。当设备具备变更文件的元数据的能力,即可变更文件状态进而触发迁移过程,无需为了迁移而建立与第一存储设备、第二存储设备之间的数据访问的安全控制,简化了数据迁移的安全控制流程,提高了数据迁移的效率,提升用户在数据使用和管理上的便捷性。尤其对于包含多个存储设备或多个数据中心的业务,基于状态的数据迁移可以进一步解耦各个设备的功能,极大地提高业务系统的灵活性和可扩展性。
另外,使用该方法进行迁移时,文件的数据的存储位置仍然通过存储布局信息来指示,因此上述的数据迁移方法可以不影响用户对于文件的数据的正常使用,提升了业务系统的稳定性。
在第一方面的一种可能的实施方式中,第一文件的元数据包含所述第一文件的归属信息和所述第一文件的存储布局信息。进行第一变更以前,所述第一文件的归属信息指示的存储设备为第一存储设备,所述第一文件的存储布局信息指示存储第一文件的存储设备包含第一存储设备且不包含第二存储设备。
可选的,第一文件的归属信息为第一存储设备的标识,第一文件的存储布局信息包含第一存储设备的标识且不包含第二存储设备的标识。
在第一方面的又一种可能的实施方式中,所述对所述第一文件的元数据进行第一变更,包括:
将所述第一文件的归属信息从所述第一存储设备的标识变更为所述第二存储设备的标识。
在第一方面的又一种可能的实施方式中,针对第一文件的迁移任务包括所述第一文件的标识、所述第一存储设备的标识和所述第二存储设备的标识。
在第一方面的又一种可能的实施方式中,所述第一文件属于目标文件系统,所述第一文件的元数据包含于所述目标文件系统的元数据中,所述目标文件系统的元数据在多个设备之间同步。
其中,在多个设备之间同步,是指:可以被多个设备中的任意一个设备改动,改动后的内容能够被该多个设备获知到,且多个设备获知的目标系统的元数据是一致的。
上述多个设备包含第一计算设备和第二计算设备,第一计算设备位于第一存储设备中或与第一存储设备相连,第二计算设备位于第二存储设备中或与第二存储设备相连。
在这种实施方式中,由于目标文件系统的元数据在多个设备之间同步,当对第一文件的元数据进行变更时,多个设备都能够读取文件系统的元数据的变更,使得第一计算设备和第二计算设备能够基于元数据的变更触发迁移操作。
示例性的,源设备可以同步文件系统的元数据,了解第一文件的归属信息的变更,从而触发对第一文件的数据的推送操作。
示例性的,目的设备可以同步文件系统的元数据,了解第一文件的归属信息的变更,从而触发对第一文件的数据的拉取操作。
另外,目标文件系统的元数据在多个设备之间同步,使得多个设备可以使用一致的元数据表示目标文件系统的层次结构和文件(和/或目录)的信息,能够方便地实现某个文件系统的联合、互通,有利于对文件系统进行管理。
进一步的,上述多个设备还可以包含迁移调度装置。
在第一方面的又一种可能的实施方式中,在所述对所述第一文件的元数据进行第一变更之后,所述方法还包括:
发送第一通知,所述第一通知指示所述第一文件的元数据发生了变更,以使得所述第一计算设备或所述第二计算设备根据所述第一通知获取所述第一文件的所述第一变更后的元数据,并根据所述第一文件的所述第一变更后的元数据执行所述针对第一文件的迁移任务。
可选的,第一通知指示第一文件的元数据发生了哪些变更。例如,第一通知可以包含第一变更的内容,如第一文件的标识和第二变更所改变文件的属性(或属性的值)。这种情况下,第一计算设备和第二计算设备可以根据第一文件的第一变更前的元数据和第一变更的内容,得到第一文件的第一变更后的元数据,并根据第一文件的第一变更后的元数据执行迁移任务。再如,第一通知可以包含第一文件的所述第一变更后的元数据。这种情况下,第一计算设备和第二计算设备可以根据第一文件的第一变更后的元数据执行迁移任务。
可选的,第一通知指示发生了第一变更,但不包含变更的具体内容和第一文件的第一变更后的元数据。此时,第一计算设备和/或第二计算设备可以响应于第一通知,向迁移调度装置请求第一文件的所述第一变更后的元数据,并根据迁移调度装置提供的第一文件的所述第一变更后的元数据来执行迁移任务。
在第一方面的又一种可能的实施方式中,在触发执行针对第一文件的迁移任务之后,所述方法还包括:
获取所述第一文件的第二变更后的元数据,所述第二变更由所述第一计算设备或所述第二计算设备执行,所述第二变更指示所述第一文件的存储布局信息的变化;
根据所述第一文件的所述第二变更后的元数据,确定所述第一文件的迁移进度。
通过监控存储布局信息,可以确定第一文件的数据是否已经存在归属的设备上,从而了解文件的迁移进度,提升用户体验。另一方面,通过跟踪任务执行进度,对于进展缓慢或者失败的任务等,可以尽快进行处理,提升系统稳定性。
另外,进度监控通过文件的元数据变化来实现,可以无需与执行迁移的设备之间进行数据交互,实现了进度跟踪与迁移执行控制之间的解耦。
在第一方面的又一种可能的实施方式中,目标文件系统的元数据在多个设备的本地进行存储。当某一设备对目标文件系统进行了变更时,该设备向存储了目标文件系统的元数据的其他设备通知该变更,其他设备基于通知来相应变更本地存储的目标文件系统的元数据,从而实现目标文件系统的元数据在多个设备上的同步。
示例性的,迁移调度装置、第一计算设备和第二计算设备都在本地存储了第一文件系统的元数据。当迁移调度装置对目标文件系统的元数据中的第一文件的元数据进行了第一变更时,迁移调度装置可以发送第一通知,第一通知指示第一文件的元数据产生了第一变更,第一计算设备和第二计算设备基于第一通知来相应变更本地存储的目标文件系统的元数据,从而实现目标文件系统的元数据在多个设备上的同步。
在第一方面的又一种可能的实施方式中,所述目标文件系统的元数据存储在全局元数据服务。其中,全局元数据服务能够存储目标文件系统的元数据。
进一步的,全局元数据服务能够支持对目标文件系统的元数据的访问和更新。具体的,当某一设备对目标文件系统的元数据进行了变更时,该变更被提供给全局元数据服务,多个设备可以从全局元数据服务处访问经过变更的目标文件系统的元数据,从而实现目标文件系统的元数据在多个设备上的同步。
通过全局元数据服务来对文件系统的元数据进行管理、提供访问和更新,则多个设备都按照全局元数据服务中的元数据的格式来读取或者写入元数据,统一了文件的元数据的表示方式,屏蔽了异构的存储设备之间的元数据管理和访问控制的差异,不仅提升用户在数据使用和管理上的便捷性,还能够提升系统的可扩展性和灵活性。
例如,当有新的存储设备需要共享文件系统的元数据时,通过使用全局元数据服务能够加入共享;类似的,当存储设备退出共享时,可以通过断开与全局元数据服务之间的功能交互来实现退出共享。总之,上述实施方式使得业务的扩展和收缩更灵活且易于实现。
在第一方面的又一种可能的实施方式中,在所述获取所述第一文件的第二变更后的元数据之前,所述方法还包括:
接收第二通知,所述第二通知指示所述第一文件的元数据发生了变更。
在第一方面的又一种可能的实施方式中,所述迁移调度装置、所述第一计算设备和所述第二计算设备均维护有所述目标文件系统的元数据;所述获取所述第一文件的第二变更后的元数据,包括:
根据所述第二通知获取所述第一文件的第二变更后的元数据。
可选的,第二通知包含第二变更的内容,或者,第二通知包含所述第一文件的第二变更后的元数据。
作为一种可能的方案,第二通知包含所述第二变更的内容。例如,第二变更的内容可以包含第一文件的标识和第二变更所改变文件的属性(或属性的值)。此时,迁移调度装置可以根据第一文件的第二变更前的元数据和第二变更的内容得到第一文件的第二变更后的元数据。
作为又一种可能的方案,所述第二通知包含所述第一文件的第二变更后的元数据。此时,迁移调度装置可以根据第二通知得到第一文件的第二变更后的元数据。
在第一方面的又一种可能的实施方式中,通知(例如第一通知、或第二通知等)可以通过消息队列的形式发送。由发送方将消息写入消息队列,接收方通过读取消息队列来接收通知,从而进一步减少不同功能模块之间的耦合度。
在第一方面的又一种可能的实施方式中,所述迁移调度装置、所述第一计算设备和所述第二计算设备均维护有所述目标文件系统的元数据;
所述获取所述第一文件的第二变更后的元数据,包括:
向所述第一计算设备或所述第二计算设备发送用于获取所述第一文件的变更后的元数据的请求;
根据所述第一计算设备或所述第二计算设备对所述请求的响应获取所述第一文件的第二变更后的元数据。
在第一方面的又一种可能的实施方式中,所述目标文件系统的元数据存储在全局元数据服务中且通过所述全局元数据服务在所述多个设备之间同步;
所述获取所述第一文件的第二变更后的元数据,包括:
从所述全局元数据服务获取所述第一文件的所述第二变更后的元数据。
在第一方面的又一种可能的实施方式中,全局元数据服务提供服务接口,设备可以调用服务接口来实现对元数据的访问和更新。
其中,服务接口是一种通信接口,例如应用程序接口(application programminginterface,API),能够用于不同的功能模块之间数据交互并提供服务。通过抽象的服务接口,可以将调用者和实现者解耦和,例如调用服务接口的设备可以按照服务接口的要求提供相关的数据,而全局元数据服务可以通过服务接口获取相关的数据并实现相对应的功能,不仅提升了访问、更新元数据的效率,也提高了系统的可扩展性和灵活性。
在第一方面的又一种可能的实施方式中,所述目标文件系统的元数据存储在全局元数据服务中且通过所述全局元数据服务在所述多个设备之间同步;
所述对所述第一文件的元数据进行第一变更,包括:
通过所述全局元数据服务提供的服务接口来实现所述第一变更。
在第一方面的又一种可能的实施方式中,所述全局元数据服务位于所述多个设备中的任意一个设备上,或者位于所述多个设备之外的任意一个设备上。
示例性的,所述全局元数据服务位于第三计算设备,第三计算设备可以与第一计算设备或第二计算设备相同的计算设备,也可以是二者之外的另一计算设备。
可选的,全局元数据服务的服务接口可以是由第三计算设备向迁移调度装置提供的。或者,第三计算设备可以向迁移调度装置提供另一个接口(便于区分称为第一接口),通过调用该第一接口可以实现调用全局元数据服务的服务接口的功能。
在第一方面的又一种可能的实施方式中,所述目标文件系统的元数据为表式结构且元数据可以被修改。其中,表式结构是一种包含行和列的数据结构,每一行(或者每一列)包含多个值,每个值对应了一个属性。
表式结构的元数据可以增加一行(或一列)元数据、删除一行(或一列)元数据,也可以修改元数据中已有的属性值。也即是,第一变更可以通过修改目标文件系统的元数据的方式实现。
在第一方面的又一种可能的实施方式中,所述目标文件系统的元数据为流式结构且包含多条元数据记录,每条元数据记录包含一个节点的标识和所述一个节点的属性,其中,节点为文件或目录,所述节点的属性包含所述节点的归属信息和所述节点的存储布局信息。
其中,流式结构是包含多条信息的一种数据结构,每一条信息为一条元数据记录。流式结构具有以下特征:只读、只增、有序,其中“只读”是指流式结构中的记录的值只能读取而无法修改;“只增”指示流式结构中只能追加新的记录而无法删除(或修改)已有的记录,但属于同一个节点的多条记录可以被合并成一条记录;“有序”是指流式结构中的记录具有逻辑顺序,追加的记录在流式结构的尾部增加。
在第一方面的又一种可能的实施方式中,所述对所述第一文件的元数据进行第一变更,包括:
在所述目标文件系统的元数据的末端追加第一元数据记录,所述第一元数据记录包括所述第一文件的标识和所述第一文件的变更后的归属信息,所述第一文件的变更后的归属信息指示所述第一文件归属的存储设备为所述第二存储设备。
上述实施方式可以进行第一变更,并且,第一变更通过在元数据流中添加元数据记录的方式来实现。此时,其他设备通过获取元数据流的变化(追加的记录),即可获知第一文件系统中的元数据的变更,相应的可以更新第一文件系统在本地的文件的层次结构或节点的属性,有利于实现文件视图在多个设备上的同步。
在第一方面的又一种可能的实施方式中,所述确定针对第一文件的迁移任务之前,所述方法还包括:
根据外部事件信息,确定所述针对第一文件的迁移任务;
所述外部事件信息包含以下信息中的一项或者多项:网络连接情况、设备健康情况或所述第一文件相关的人员调动状况。
上述实施方式中,数据迁移的触发,与外部事件信息相关。当这些外部事件信息达到触发迁移的条件时,则会确定对应的迁移任务,对数据进行迁移,实现综合多信息流的智能迁移,提升用户的使用体验。
以网络连接情况为例,当某个线路通信中断,预测A地的通信受影响时,可以将A地的数据迁移到B地。
以设备健康情况为例,当某个存储设备的存储访问储能力达到预置下限,则将该存储设备上的数据迁移到其他存储设备上。
以第一文件相关的人员调动状况为例,当某个业务的研发团队人员出差异地,可以主动触发迁移,将该业务的数据迁移到距离出差目的地更近的存储设备。
在第一方面的又一种可能的实施方式中,所述确定针对第一文件的迁移任务,包括:
根据所述第一文件的元数据的分析结果,确定所述针对第一文件的迁移任务;其中,所述分析结果包含以下一项或者多项信息:所述第一文件的冷热状态、所述第一文件的安全性或所述第一文件相关的业务。
作为一种示例,元数据的冷热状态可以通过文件的访问频次来指示。例如,第一文件的元数据中包含表示文件在一段时长内的访问次数的属性。若访问次数大于或者大于等于第一阈值,则将第一文件的数据迁移到高存储速度的设备(例如为第二存储设备),从而提升存取第一文件的数据的效率,提升系统的服务质量。类似的,若第一文件的访问次数小于或者小于等于第二阈值,则将文件的数据迁移到高存储容量的设备,降低存储成本。可选的,第一阈值、第二阈值可以是管理员(例如开发人员、管理部分等)、厂商等输入的、或预先设置的。
作为一种示例,第一文件的元数据中可以包含表示文件的安全等级的属性。例如,若第一文件的安全等级为高级,而第一存储设备安全等级不满足第一文件的安全等级需求,则将第一文件的数据迁移到能够满足第一文件的安全等级的需求的设备上,有效保障用户对文件的安全性需求,提升系统的服务质量。
作为一种示例,第一文件的元数据中包含表示第一文件相关的业务的属性。例如,第一文件的相关业务为车载业务、视频业务、或文件下载业务等。示例性的,若第一文件用于存储车载服务的数据,当车载服务的数据需要迁移到第二存储设备时,第一文件的数据也对应的迁移。如此,用户可以基于不同的业务来对文件进行迁移,提升了用户管理业务数据的便捷性用户,提升系统的服务质量。
可以看出,元数据的分析结果能够指示对文件的迁移需求(例如访问需求、安全需求、业务需求等),基于迁移需求来确定迁移任务,能够实现整体的存储优化。另外,用户通过更新文件的元数据就可以表达对文件的迁移需求,实现了对数据的智能化管理,提升用户在数据使用和管理上的便捷性。
在第一方面的又一种可能的实施方式中,所述确定针对第一文件的迁移任务,包括:
根据用户输入的针对所述第一文件的迁移指示,确定所述针对第一文件的迁移任务。
这种实施方式中,用户可以通过输入迁移指示来实现针对某一文件的迁移,这样可以满足用户的个性化需求,提升用户体验。
在第一方面的又一种可能的实施方式中,所述方法还包括:
确定针对第二文件的迁移任务;
编排所述针对第一文件的迁移任务和所述针对第二文件的迁移任务的执行顺序。
作为一种可能的设计,编排任务可以包含确定任务的执行顺序、执行优先级等,例如先迁移哪一个文件等。这样可以根据需求的轻重缓急,来确定使得部分文件的迁移任务优先被执行,提升用户的使用体验。例如,对于在短时间内访问频次暴涨的文件,可以被优先执行迁移,尽快提升该文件的访问速率,提升用户体验。
作为又一种可能的设计,编排任务的过程中可以合并多个任务。例如,A任务指示将第一文件从第一存储设备迁移到第二存储设备,而B任务指示将第一文件从第一存储设备迁移到第三存储设备,则A任务和B任务可以被合并得到新的任务,新的任务指示将第一文件从第一存储设备迁移到第三存储设备。这样一来可以减少任务执行出错的概率,二来可以减少任务执行的算力消耗,有效提高任务执行效率,提升用户体验。
总之,上述实施方式在执行任务之前先进行编排,从而使得各个迁移任务按照合理的执行顺序和执行方式执行,提升用户体验。
第二方面,本申请实施例提供一种数据迁移方法,应用于第一计算设备,所述第一计算设备位于第一存储设备中或与所述第一存储设备相连,所述第一存储设备上存储第一文件的数据,所述方法还包括:
获取第一文件的元数据,所述第一文件的元数据包含所述第一文件的归属信息和所述第一文件的存储布局信息;
在确定所述第一文件的归属信息指示的存储设备为第二存储设备,且第一文件的存储布局信息指示存储所述第一文件的存储设备不包含所述第二存储设备且包含所述第一存储设备时,将所述第一文件的数据从所述第一存储设备迁移到所述第二存储设备。
本申请实施例通过变更文件的归属信息来触发针对文件的迁移操作,当文件的归属信息指示第二存储设备、而文件的存储布局信息包含指示存储所述第一文件的存储设备不包含所述第二存储设备且包含所述第一存储设备时,则第一存储设备将第一文件从所述第一存储设备迁移到第二存储设备。本申请实施例实现了基于文件状态(文件的归属、文件的存储布局等属性状态)来触发数据迁移,使得第一计算设备在获取到文件的归属信息产生变更后即可对文件进行迁移,提高了数据迁移的效率,提升在数据使用和管理上的便捷性。尤其对于包含多个存储设备或多个数据中心的业务,基于状态的数据迁移过程,可以进一步解耦各个设备的功能,极大地提高业务系统的灵活性和可扩展性。
另外,使用该方法进行迁移时,文件的存储位置仍然通过存储布局信息来指示,因此上述的数据迁移方法可以不影响用户对于文件的数据的正常使用,提升了业务系统的稳定性。
第二方面的一种可能的实施方式中,所述第一文件属于目标文件系统,所述第一文件的元数据包含于所述目标文件系统的元数据中,所述目标文件系统的元数据在多个设备之间同步,所述多个设备包含所述第一计算设备。
第二方面的又一种可能的实施方式中,所述目标文件系统的元数据存储在全局元数据服务中且通过所述全局元数据服务在所述多个设备之间同步;
所述获取第一文件的元数据,包括:
从所述全局元数据服务获取所述第一文件的当前的元数据。
第二方面的又一种可能的实施方式中,所述将所述第一文件的数据从所述第一存储设备迁移到所述第二存储设备,包括:
向共享存储区推送所述第一文件的数据;所述共享存储区与所述第一计算设备和第二计算设备相连,所述第二计算设备位于所述第二存储设备中或与所述第二存储设备相连;
对所述第一文件的元数据执行第一变更,以触发所述第二计算设备从所述共享存储区获取所述第一文件的数据并存储到所述第二存储设备中,所述第一变更指示在所述第一文件的存储布局信息指示的存储设备中增加所述共享存储区;在所述第一变更后,所述第一文件的存储布局信息指示存储所述第一文件的存储设备包含所述第一存储设备和共享存储区,且不包含所述第二存储设备。
在这种实施方式中,迁移过程中通过中间的共享存储区来暂存第一文件的数据,源设备无需与目的设备建立数据的安全访问控制机制,进一步解耦源设备和目的设备,业务系统的灵活性和可扩展性。
另外,通过存储布局信息来指示数据已经被推送到共享存储区。这种方式能够在不感知第二存储设备的条件下,向第二存储设备指示数据的存储位置,进一步解耦第一存储设备和第二存储设备,提高了业务系统的灵活性和可扩展性。
在第二方面的又一种可能的实施方式中,所述第一文件的归属信息为所述第二存储设备的标识,在所述第一变更之前,所述第一文件的存储布局信息包含所述第一存储设备的标识且不包含所述第二存储设备的标识;
所述对所述第一文件的元数据进行第一变更,包括:
在所述第一文件的存储布局信息中增加所述共享存储区的标识。
在第二方面的又一种可能的实施方式中,在所述获取第一文件的元数据之前,所述方法还包括:
接收第一通知,所述第一通知指示所述第一文件的元数据发生了变更;
在对所述第一文件的元数据执行第一变更后,所述方法还包括:
发送第二通知,所述第一通知指示所述第一文件的元数据发生了变更。
在第二方面的又一种可能的实施方式中,所述获取第一文件的元数据,包括:
同步目标文件系统的元数据,所述目标文件系统的元数据包含所述第一文件的元数据。
作为一种可能的实施方式,目标文件系统的元数据在多个设备的本地进行存储。当某一设备对目标文件系统进行了变更时,该设备向存储了目标文件系统的元数据的其他设备通知该变更,其他设备基于通知来相应变更本地存储的目标文件系统的元数据,从而实现目标文件系统的元数据在多个设备上的同步。
作为一种可能的实施方式,所述目标文件系统的元数据存储在全局元数据服务。其中,全局元数据服务能够存储目标文件系统的元数据。
进一步的,全局元数据服务能够支持对目标文件系统的元数据的访问和更新。
在第二方面的又一种可能的实施方式中,所述目标文件系统的元数据为流式结构且包含多条元数据记录,每条元数据记录包含一个节点的标识和所述一个节点的属性,其中,节点为文件或目录,所述节点的属性包含所述节点的归属信息和所述节点的存储布局信息;
所述对所述第一文件的元数据执行第一变更,包含:
在所述目标文件系统的元数据的末端追加第一元数据记录,所述第一元数据记录包括所述第一文件的标识和所述第一文件的存储布局信息,所述第一文件的存储布局信息指示存储所述第一文件的存储设备包含所述第一存储设备和所述共享存储区。
在第二方面的又一种可能的实施方式中,所述方法还包括:
当获取到所述第一文件的第二变更后的元数据时,删除所述第一存储设备上的所述第一文件的数据;所述第二变更指示所述第一文件的存储布局信息的变化,在所述第二变更后,所述第一文件的存储布局信息指示存储所述第一文件的存储设备包含所述第一存储设备且包含所述第二存储设备;
对所述第一文件的元数据执行第三变更,所述第三变更指示在所述第一文件的存储布局信息指示的存储设备中删除所述第一存储设备;在所述第三变更后,所述第一文件的存储布局信息指示存储所述第一文件的存储设备不包含所述第一存储设备。
上述实施方式中,当第一文件的数据已经存储在第二存储设备中,可以将源设备(第一存储设备)上的数据删除,从而避免多个存储设备重复存储某一个文件的数据,解决存储空间,优化整体存储成本。
在第二方面的又一种可能的实施方式中,在所述删除所述第一存储设备上的所述第一文件之前,所述方法还包括:
将所述第一文件的数据标记为可删除,以使得在所述第一文件的数据处于可删除状态时执行删除所述第一文件的操作。
例如,当第一文件的数据正在使用,不便于立即执行删除操作,此时可以先标记第一文件的数据,等到文件使用结束后删除。
再如,在删除文件之前,先将文件标记为可删除,可删除的文件无法通过正常方式访问到,等到满足预设条件时在统一删除文件。这里的预设条件可以是,标记为可删除的时间达到预设时长、标记文可删除的数据达到预设大小等。这样可以方便用户在第一存储设备上找回第一文件的数据,减少因为误操作带来的数据丢失,提升用户体验。
在第二方面的又一种可能的实施方式中,所述将所述第一文件的数据从所述第一存储设备迁移到所述第二存储设备,包括:
向第二计算设备推送所述第一文件的数据。
例如,第一计算设备和第二计算设备已经建立过连接或者确认对端设备为可信设备,则第一计算设备可以直接向第二计算设备推送第一文件的数据,而不用经过中间设备,提升数据迁移的效率。
再如,第一存储设备(或第一计算设备)和第二存储设备(或第二计算设备)是位于同一数据中心的设备,则第一计算设备可以向第二计算设备推送第一文件的数据。
在第二方面的又一种可能的实施方式中,所述方法还包括:
接收来自所述第二计算设备的针对所述第一文件的拉取请求。
在上述实施方式中,第二计算设备发送了拉取请求,说明第二计算设备和/或第二存储设备应当处于可用状态,这样可以避免将第一文件的数据迁移到不可用的设备上,提升数据的安全性和可用性。
在第二方面的又一种可能的实施方式中,所述方法还包括:
提供所述第一存储设备的本地文件视图,所述本地文件视图指示存储在所述第一存储设备上的多个文件的层次结构,所述多个文件的存储布局信息指示所述第一存储设备。
上述实施方式中,第一计算设备可以基于文件的存储布局信息对外提供本地视图,使得用户或应用可以方便地获取到存储在第一存储设备上的文件的数据,满足了对文件的可视化需求,提升了用户体验。
在第二方面的又一种可能的实施方式中,所述方法还包括:
提供所述第一存储设备的归属文件视图,所述归属本地文件视图包含多个文件的信息,该多个文件的归属信息指示所述第一存储设备。
上述实施方式中,第一计算设备可以提供归属文件视图,以呈现归属于第一存储设备的文件的信息,满足了对归属于第一存储设备的文件的可视化需求,提升了用户体验。
在第二方面的又一种可能的实施方式中,归属于第一存储设备的文件和归属于第二存储设备的文件属于全局文件系统。所述方法还包括:
提供全局文件视图,所述全局文件视图包含归属于第一存储设备的文件的信息和归属于第二存储设备的文件的信息。
这种实施方式中,全局文件视图能够将跨设备的文件的信息融合在一个文件视图中,使得不同的设备中的数据不再是孤单的数据,全局文件系统的低层联合对于上层应用无感,上层应用使用全局文件系统的方式就像使用传统的一个文件系统一样轻松,极大地提升用户在数据使用和管理上的便捷性。
第三方面,本申请实施例提供一种数据迁移方法,应用于第二计算设备,所述第二计算设备位于第二存储设备中,或者,所述第二计算设备与所述第二存储设备相连,所述方法包括:
获取第一文件的元数据,所述第一文件的元数据包含所述第一文件的归属信息和所述第一文件的存储布局信息;
在所述第一文件的归属信息指示所述第一文件归属的存储设备为所述第二存储设备,且第一文件的存储布局信息指示存储所述第一文件的存储设备不包含所述第二存储设备时,从存储所述第一文件的数据的设备拉取所述第一文件的数据到所述第二存储设备。
本申请实施例通过变更文件的归属信息来触发针对文件的迁移操作,当文件的归属信息指示第二存储设备、而文件的存储布局信息包含指示存储所述第一文件的存储设备不包含所述第二存储设备且包含所述第一存储设备时,则第二计算设备将第一文件的数据从所述第一存储设备拉取到第二存储设备。本申请实施例实现了基于文件状态(文件的归属、文件的存储布局等属性状态)来触发数据迁移,使得第二计算设备在获取到文件的归属信息产生变更后即可拉取归属于第二存储设备的文件的数据,提高了数据迁移的效率,提升在数据使用和管理上的便捷性。尤其对于包含多个存储设备或多个数据中心的业务,基于状态的数据迁移过程,可以进一步解耦各个设备的功能,极大地提高业务系统的灵活性和可扩展性。
另外,使用该方法进行迁移时,文件的存储位置仍然通过存储布局信息来指示,因此上述的数据迁移方法可以不影响用户对于文件的数据的正常使用,提升了业务系统的稳定性。
在第三方面的一种可能的实施方式中,所述方法还包括:
对所述第一文件的元数据执行第一变更,所述第一变更指示在所述第一文件的存储布局信息指示的存储设备中增加所述第二存储设备。
在第三方面的又一种可能的实施方式中,所述第一文件的归属信息为所述第二存储设备的标识,在所述第一变更之前,所述第一文件的存储布局信息不包含所述第二存储设备的标识;
所述对所述第一文件的元数据执行第一变更,包括:
在所述第一文件的存储布局信息中增加所述第二存储设备的标识。
在第三方面的又一种可能的实施方式中,所述第一文件的存储布局信息指示存储所述第一文件的存储设备包含第一存储设备,在所述从存储所述第一文件的数据的设备拉取所述第一文件的数据到所述第二存储设备之前,所述方法还包括:
发送针对所述第一文件的拉取请求,所述拉取请求用于指示第一计算设备推送所述第一文件;所述第一计算设备位于第一存储设备中或与所述第一存储设备相连。
在第三方面的又一种可能的实施方式中,所述第一文件的存储布局信息指示存储所述第一文件的存储设备包含共享存储区,所述从存储所述第一文件的数据的设备拉取所述第一文件的数据到所述第二存储设备,包括:
从所述共享存储区拉取所述第一文件的数据到所述第二存储设备。
在第三方面的又一种可能的实施方式中,所述第一文件的存储布局信息指示存储所述第一文件的存储设备包含第一存储设备,所述从存储所述第一文件的数据的设备拉取所述第一文件的数据到所述第二存储设备,包括:
从第一存储设备拉取所述第一文件的数据到所述第二存储设备。
在第三方面的又一种可能的实施方式中,所述从存储所述第一文件的数据的设备拉取所述第一文件的数据到所述第二存储设备:
接收第一计算设备推送的第一文件的数据。
在第三方面的又一种可能的实施方式中,所述第一文件属于目标文件系统,所述第一文件的元数据包含于所述目标文件系统的元数据中,所述目标文件系统的元数据存储在全局元数据服务中;
所述获取第一文件的元数据,包括:
从所述全局元数据服务获取所述第一文件的当前的元数据。
在第三方面的又一种可能的实施方式中,所述目标文件系统的元数据为流式结构且包含多条元数据记录,每条元数据记录包含一个节点的标识和所述一个节点的属性,其中,节点为文件或目录,所述节点的属性包含所述节点的归属信息和所述节点的存储布局信息。所述对所述第一文件的元数据执行第一变更,包括:
在所述目标文件系统的元数据的末端追加第一元数据记录,所述第一元数据记录包括所述第一文件的标识和所述第一文件的存储布局信息,所述第一文件的存储布局信息包含所述第二存储设备的标识。
在第三方面的又一种可能的实施方式中,所述方法还包括:
提供所述第二存储设备的本地文件视图,所述本地文件视图指示存储在所述第一存储设备上的多个文件的层次结构,所述多个文件的存储布局信息指示所述第一存储设备。
在第三方面的又一种可能的实施方式中,所述方法还包括:
提供所述第二存储设备的归属文件视图,所述归属本地文件视图包含多个文件的信息,该多个文件的归属信息指示所述第二存储设备。
在第三方面的又一种可能的实施方式中,归属于第一存储设备的文件和归属于第二存储设备的文件属于全局文件系统。所述方法还包括:
提供全局文件视图,所述全局文件视图包含归属于第一存储设备的文件的信息和归属于第二存储设备的文件的信息。
第四方面,本申请实施例提供一种数据迁移方法,应用于第一计算设备,所述第一计算设备位于第一存储设备中或与所述第一存储设备相连,所述第一存储设备上存储第一文件的数据,所述方法还包括:
接收来自第二计算设备的针对所述第一文件的拉取请求,所述第二计算设备与第二存储设备相连;
向共享存储区推送所述第一文件的数据;
对所述第一文件的元数据执行第一变更,以触发所述第二计算设备从所述共享存储区获取所述第一文件的数据并存储到所述第二存储设备中,所述第一变更指示在所述第一文件的存储布局信息指示的存储设备中增加所述共享存储区;在所述第一变更后,所述第一文件的存储布局信息指示存储所述第一文件的存储设备包含所述第一存储设备和共享存储区,且不包含所述第二存储设备。
在第四方面的又一种可能的实施方式中,所述第一文件的归属信息为所述第二存储设备的标识,在所述第一变更之前,所述第一文件的存储布局信息包含所述第一存储设备的标识且不包含所述第二存储设备的标识;
所述对所述第一文件的元数据进行第一变更,包括:
在所述第一文件的存储布局信息中增加所述共享存储区的标识。
在第四方面的又一种可能的实施方式中,所述第一文件属于目标文件系统,所述第一文件的元数据包含于所述目标文件系统的元数据中,所述目标文件系统的元数据在多个设备之间同步,所述多个设备包含所述第一计算设备。
在第四方面的又一种可能的实施方式中,在对所述第一文件的元数据执行第一变更后,所述方法还包括:
发送第一通知,所述第一通知指示所述第一文件的元数据发生了变更。
在第四方面的又一种可能的实施方式中,所述目标文件系统的元数据为流式结构且包含多条元数据记录,每条元数据记录包含一个节点的标识和所述一个节点的属性,其中,节点为文件或目录,所述节点的属性包含所述节点的归属信息和所述节点的存储布局信息;
所述对所述第一文件的元数据执行第一变更,包含:
在所述目标文件系统的元数据的末端追加第一元数据记录,所述第一元数据记录包括所述第一文件的标识和所述第一文件的存储布局信息,所述第一文件的存储布局信息指示存储所述第一文件的存储设备包含所述第一存储设备和所述共享存储区。
在第四方面的又一种可能的实施方式中,所述方法还包括:
当获取到所述第一文件的第二变更后的元数据时,删除所述第一存储设备上的所述第一文件的数据;所述第二变更指示所述第一文件的存储布局信息的变化,在所述第二变更后,所述第一文件的存储布局信息指示存储所述第一文件的存储设备包含所述第一存储设备且包含所述第二存储设备;
对所述第一文件的元数据执行第三变更,所述第三变更指示在所述第一文件的存储布局信息指示的存储设备中删除所述第一存储设备;在所述第三变更后,所述第一文件的存储布局信息指示存储所述第一文件的存储设备不包含所述第一存储设备。
在第四方面的又一种可能的实施方式中,在所述删除所述第一存储设备上的所述第一文件之前,所述方法还包括:
将所述第一文件的数据标记为可删除,以使得在所述第一文件的数据处于可删除状态时执行删除所述第一文件的操作。
在第四方面的又一种可能的实施方式中,所述方法还包括:
提供所述第一存储设备的本地文件视图,所述本地文件视图指示存储在所述第一存储设备上的多个文件的层次结构,所述多个文件的存储布局信息指示所述第一存储设备。
在第四方面的又一种可能的实施方式中,所述方法还包括:
提供所述第一存储设备的归属文件视图,所述归属本地文件视图包含多个文件的信息,该多个文件的归属信息指示所述第一存储设备。
在第四方面的又一种可能的实施方式中,归属于第一存储设备的文件和归属于第二存储设备的文件属于全局文件系统。所述方法还包括:
提供全局文件视图,所述全局文件视图包含归属于第一存储设备的文件的信息和归属于第二存储设备的文件的信息。
第五方面,本申请实施例提供一种迁移调度装置,所述迁移调度装置包含任务确定模块和元数据更新模块,所述迁移调度装置用于第一方面任一项所述的方法。
在第五方面的一种可能的实施方式中,所述任务确定模块,用于确定针对第一文件的迁移任务,所述第一文件的数据存储在第一存储设备上,所述针对第一文件的迁移任务指示将所述第一文件的数据从所述第一存储设备迁移到第二存储设备;
所述元数据更新模块,用于对所述第一文件的元数据进行第一变更,以触发执行所述针对第一文件的迁移任务;其中,所述第一变更指示所述第一文件归属的存储设备从所述第一存储设备变更为所述第二存储设备。
在第五方面的又一种可能的实施方式中,第一文件的元数据包含所述第一文件的归属信息和所述第一文件的存储布局信息。进行第一变更以前,所述第一文件的归属信息指示的存储设备为第一存储设备,所述第一文件的存储布局信息指示存储第一文件的存储设备包含第一存储设备且不包含第二存储设备。可选的,第一文件的归属信息为第一存储设备的标识,第一文件的存储布局信息包含第一存储设备的标识且不包含第二存储设备的标识。
在第五方面的又一种可能的实施方式中,所述元数据更新模块,用于将所述第一文件的归属信息从所述第一存储设备的标识变更为所述第二存储设备的标识。
在第五方面的又一种可能的实施方式中,针对第一文件的迁移任务包括所述第一文件的标识、所述第一存储设备的标识和所述第二存储设备的标识。
在第五方面的又一种可能的实施方式中,所述第一文件属于目标文件系统,所述第一文件的元数据包含于所述目标文件系统的元数据中,所述目标文件系统的元数据在多个设备之间同步。上述多个设备包含第一计算设备和第二计算设备,第一计算设备位于第一存储设备中或与第一存储设备相连,第二计算设备位于第二存储设备中或与第二存储设备相连。进一步的,上述多个设备还可以包含迁移调度装置。
在第五方面的又一种可能的实施方式中,所述迁移调度装置还包含通信模块,所述通信模块,用于发送第一通知,所述第一通知指示所述第一文件的元数据发生了变更,以使得所述第一计算设备或所述第二计算设备根据所述第一通知获取所述第一文件的所述第一变更后的元数据,并根据所述第一文件的所述第一变更后的元数据执行针对第一文件的迁移任务。
可选的,第一通知指示第一文件的元数据发生了哪些变更,例如,第一通知可以包含第一变更的内容,和/或,第一通知可以包含第一文件的所述第一变更后的元数据。或者可选的,可选的,第一通知指示发生了第一变更,但不包含变更的具体内容和第一文件的第一变更后的元数据。
在第五方面的又一种可能的实施方式中,所述迁移调度装置还包含任务监控模块,所述任务监控模块,用于:
获取所述第一文件的第二变更后的元数据,所述第二变更由所述第一计算设备或所述第二计算设备执行,所述第二变更指示所述第一文件的存储布局信息的变化;
根据所述第一文件的所述第二变更后的元数据,确定所述第一文件的迁移进度。
在第五方面的又一种可能的实施方式中,目标文件系统的元数据在多个设备的本地进行存储。
在第五方面的又一种可能的实施方式中,所述目标文件系统的元数据存储在全局元数据服务。其中,全局元数据服务能够存储目标文件系统的元数据。进一步的,全局元数据服务能够支持对目标文件系统的元数据的访问和更新。
在第五方面的又一种可能的实施方式中,迁移调度装置还包含通信模块,所述通信模块,用于:
接收第二通知,所述第二通知指示所述第一文件的元数据发生了变更。
在第五方面的又一种可能的实施方式中,所述任务监控模块,还用于:
根据所述第二通知获取所述第一文件的第二变更后的元数据。可选的,第二通知包含第二变更的内容,或者,第二通知包含所述第一文件的第二变更后的元数据。
在第五方面的又一种可能的实施方式中,通知(例如第一通知、或第二通知等)可以通过消息队列的形式发送。由发送方将消息写入消息队列,接收方通过读取消息队列来接收通知,从而进一步减少不同功能模块之间的耦合度。
在第五方面的又一种可能的实施方式中,所述通信模块,还用于:向所述第一计算设备或所述第二计算设备发送用于获取所述第一文件的变更后的元数据的请求;
所述任务监控模块,还用于:根据所述第一计算设备或所述第二计算设备对所述请求的响应获取所述第一文件的第二变更后的元数据。
在第五方面的又一种可能的实施方式中,所述任务监控模块,还用于从所述全局元数据服务获取所述第一文件的所述第二变更后的元数据。
在第五方面的又一种可能的实施方式中,全局元数据服务提供服务接口,所述迁移调度装置可以调用服务接口来实现对元数据的访问和更新。
其中,服务接口是一种通信接口,例如应用程序接口(application programminginterface,API),能够用于不同的功能模块之间数据交互并提供服务。
在第五方面的又一种可能的实施方式中,所述元数据更新模块,还用于:
通过所述全局元数据服务提供的服务接口来实现所述第一变更。
在第五方面的又一种可能的实施方式中,所述全局元数据服务位于所述多个设备中的任意一个设备上,或者位于所述多个设备之外的任意一个设备上。
示例性的,所述全局元数据服务位于第三计算设备。全局元数据服务的服务接口可以是由第三计算设备向迁移调度装置提供的。或者,第三计算设备可以向迁移调度装置提供另一个接口(便于区分称为第一接口),通过调用该第一接口可以实现调用全局元数据服务的服务接口的功能。
在第五方面的又一种可能的实施方式中,所述目标文件系统的元数据为表式结构且元数据可以被修改。其中,表式结构是一种包含行和列的数据接口,每一行(或者每一列)包含多个值,每个值对应了一个字段。
表式结构的元数据可以增加元数据、删除元数据,也可以修改已有的元数据。也即是或,第一变更可以通过修改目标文件系统的元数据的方式实现。
在第五方面的又一种可能的实施方式中,所述目标文件系统的元数据为流式结构且包含多条元数据记录,每条元数据记录包含一个节点的标识和所述一个节点的属性,其中,节点为文件或目录,所述节点的属性包含所述节点的归属信息和所述节点的存储布局信息。
在第五方面的又一种可能的实施方式中,所述元数据更新模块,还用于:
在所述目标文件系统的元数据的末端追加第一元数据记录,所述第一元数据记录包括所述第一文件的标识和所述第一文件的变更后的归属信息,所述第一文件的变更后的归属信息指示所述第一文件归属的存储设备为所述第二存储设备。
在第五方面的又一种可能的实施方式中,所述任务确定模块,还用于:
根据外部事件信息,确定所述针对第一文件的迁移任务;
所述外部事件信息包含以下信息中的一项或者多项:网络连接情况、设备健康情况或所述第一文件相关的人员调动状况。
在第五方面的又一种可能的实施方式中,所述任务确定模块,还用于:
根据所述第一文件的元数据的分析结果,确定所述针对第一文件的迁移任务;其中,所述分析结果包含以下一项或者多项信息:所述第一文件的冷热状态、所述第一文件的安全性或所述第一文件相关的业务。
在第五方面的又一种可能的实施方式中,所述任务确定模块,还用于:
根据用户输入的针对所述第一文件的迁移指示,确定所述针对第一文件的迁移任务。
在第五方面的又一种可能的实施方式中,所述任务确定模块,还用于确定针对第二文件的迁移任务;
所述迁移调度装置还包含,任务编排模块,所述任务编排模块用于编排所述针对第一文件的迁移任务和所述针对第二文件的迁移任务的执行顺序。
作为一种可能的设计,编排任务可以包含确定任务的执行顺序、执行优先级等。
作为又一种可能的设计,编排任务的过程中可以合并多个任务。
第六方面,本申请实施例提供一种计算装置,所述计算装置包含元数据获取模块和迁移模块,所述计算装置用于实现第二方面任一项所描述的方法。
可选的,所述计算装置位于第一存储设备内或者第一存储设备相连。
在第六方面的一种可能的实施方式中,所述元数据获取模块,用于获取第一文件的元数据,所述第一文件的元数据包含所述第一文件的归属信息和所述第一文件的存储布局信息;
所述迁移模块,用于在确定所述第一文件的归属信息指示的存储设备为第二存储设备,且第一文件的存储布局信息指示存储所述第一文件的存储设备不包含所述第二存储设备且包含所述第一存储设备时,将所述第一文件的数据从所述第一存储设备迁移到所述第二存储设备。
在第六方面的又一种可能的实施方式中,所述第一文件属于目标文件系统,所述第一文件的元数据包含于所述目标文件系统的元数据中,所述目标文件系统的元数据在多个设备之间同步,所述多个设备包含所述计算装置或者所述计算装置所在的第一计算设备。
在第六方面的又一种可能的实施方式中,所述目标文件系统的元数据存储在全局元数据服务中且通过所述全局元数据服务在所述多个设备之间同步;
所述元数据获取模块,还用于:
从所述全局元数据服务获取所述第一文件的当前的元数据。
在第六方面的又一种可能的实施方式中,所述迁移模块,还用于:
向共享存储区推送所述第一文件的数据;所述共享存储区与所述第一计算设备和第二计算设备相连,所述第二计算设备位于所述第二存储设备中或与所述第二存储设备相连;
所述计算装置还包含元数据更新模块,所述元数据更新模块,用于对所述第一文件的元数据执行第一变更,以触发所述第二计算设备从所述共享存储区获取所述第一文件的数据并存储到所述第二存储设备中,所述第一变更指示在所述第一文件的存储布局信息指示的存储设备中增加所述共享存储区;在所述第一变更后,所述第一文件的存储布局信息指示存储所述第一文件的存储设备包含所述第一存储设备和共享存储区,且不包含所述第二存储设备。
在第六方面的又一种可能的实施方式中,所述第一文件的归属信息为所述第二存储设备的标识,在所述第一变更之前,所述第一文件的存储布局信息包含所述第一存储设备的标识且不包含所述第二存储设备的标识;
所述元数据更新模块,还用于:
在所述第一文件的存储布局信息中增加所述共享存储区的标识。
在第六方面的又一种可能的实施方式中,所述计算装置还包含通信模块,所述通信模块,用于:
接收第一通知,所述第一通知指示所述第一文件的元数据发生了变更。
在第六方面的又一种可能的实施方式中,所述计算装置还包含通信模块,所述通信模块,用于:
发送第二通知,所述第一通知指示所述第一文件的元数据发生了变更。
在第六方面的又一种可能的实施方式中,所述元数据获取模块,还用于:
同步目标文件系统的元数据,所述目标文件系统的元数据包含所述第一文件的元数据。
在第六方面的又一种可能的实施方式中,所述目标文件系统的元数据为流式结构且包含多条元数据记录,每条元数据记录包含一个节点的标识和所述一个节点的属性,其中,节点为文件或目录,所述节点的属性包含所述节点的归属信息和所述节点的存储布局信息;
所述元数据更新模块,还用于:在所述目标文件系统的元数据的末端追加第一元数据记录,所述第一元数据记录包括所述第一文件的标识和所述第一文件的存储布局信息,所述第一文件的存储布局信息指示存储所述第一文件的存储设备包含所述第一存储设备和所述共享存储区。
在第六方面的又一种可能的实施方式中,所述计算装置还包含删除控制模块,所述删除控制模块,用于:
当获取到所述第一文件的第二变更后的元数据时,删除所述第一存储设备上的所述第一文件的数据;所述第二变更指示所述第一文件的存储布局信息的变化,在所述第二变更后,所述第一文件的存储布局信息指示存储所述第一文件的存储设备包含所述第一存储设备且包含所述第二存储设备;
所述元数据更新模块,还用于:对所述第一文件的元数据执行第三变更,所述第三变更指示在所述第一文件的存储布局信息指示的存储设备中删除所述第一存储设备;在所述第三变更后,所述第一文件的存储布局信息指示存储所述第一文件的存储设备不包含所述第一存储设备。
在第六方面的一种可能的实施方式中,所述删除控制模块,还用于:
将所述第一文件的数据标记为可删除,以使得在所述第一文件的数据处于可删除状态时执行删除所述第一文件的操作。
在第六方面的一种可能的实施方式中,所述迁移模块,还用于:
向第二计算设备推送所述第一文件的数据。
在第六方面的一种可能的实施方式中,所述计算装置还包含通信模块,所述通信模块,用于:
接收来自所述第二计算设备的针对所述第一文件的拉取请求。
在第六方面的又一种可能的实施方式中,所述计算装置还包含视图提供模块,视图提供模块用于提供所述第一存储设备的归属文件视图,所述归属本地文件视图包含多个文件的信息,该多个文件的归属信息指示所述第一存储设备。
在第六方面的又一种可能的实施方式中,归属于第一存储设备的文件和归属于第二存储设备的文件属于全局文件系统。所述计算装置还包含视图提供模块,视图提供模块用于提供全局文件视图,所述全局文件视图包含归属于第一存储设备的文件的信息和归属于第二存储设备的文件的信息。
第七方面,本申请实施例提供一种计算装置,所述计算装置包含元数据获取模块和迁移模块,所述计算装置用于实现第三方面任一项所描述的方法。
可选的,所述计算装置位于第二存储设备内或者第二存储设备相连。
在第七方面的又一种可能的实施方式中,所述元数据获取模块,用于获取第一文件的元数据,所述第一文件的元数据包含所述第一文件的归属信息和所述第一文件的存储布局信息;
所述迁移模块,用于在所述第一文件的归属信息指示所述第一文件归属的存储设备为所述第二存储设备,且第一文件的存储布局信息指示存储所述第一文件的存储设备不包含所述第二存储设备时,从存储所述第一文件的数据的设备拉取所述第一文件的数据到所述第二存储设备。
在第七方面的又一种可能的实施方式中,所述计算装置还包含元数据更新模块,所述元数据更新模块,还用于:
对所述第一文件的元数据执行第一变更,所述第一变更指示在所述第一文件的存储布局信息指示的存储设备中增加所述第二存储设备。
在第七方面的又一种可能的实施方式中,所述第一文件的归属信息为所述第二存储设备的标识,在所述第一变更之前,所述第一文件的存储布局信息不包含所述第二存储设备的标识;
所述元数据更新模块,还用于:
在所述第一文件的存储布局信息中增加所述第二存储设备的标识。
在第七方面的又一种可能的实施方式中,所述第一文件的存储布局信息指示存储所述第一文件的存储设备包含第一存储设备。所述计算装置还包含通信模块,所述通信模块用于:
发送针对所述第一文件的拉取请求,所述拉取请求用于指示第一计算设备推送所述第一文件;所述第一计算设备位于第一存储设备中或与所述第一存储设备相连。
在第七方面的又一种可能的实施方式中,所述第一文件的存储布局信息指示存储所述第一文件的存储设备包含共享存储区。所述迁移模块,用于:
从所述共享存储区拉取所述第一文件的数据到所述第二存储设备。
在第七方面的又一种可能的实施方式中,所述第一文件的存储布局信息指示存储所述第一文件的存储设备包含第一存储设备。所述迁移模块,还用于:
从第一存储设备拉取所述第一文件的数据到所述第二存储设备。
在第七方面的又一种可能的实施方式中,所述第一文件属于目标文件系统,所述第一文件的元数据包含于所述目标文件系统的元数据中,所述目标文件系统的元数据存储在全局元数据服务中;
所述元数据获取模块,还用于:
从所述全局元数据服务获取所述第一文件的当前的元数据。
在第七方面的又一种可能的实施方式中,所述目标文件系统的元数据为流式结构且包含多条元数据记录,每条元数据记录包含一个节点的标识和所述一个节点的属性,其中,节点为文件或目录,所述节点的属性包含所述节点的归属信息和所述节点的存储布局信息。所述对所述第一文件的元数据执行第一变更,包括:
在所述目标文件系统的元数据的末端追加第一元数据记录,所述第一元数据记录包括所述第一文件的标识和所述第一文件的存储布局信息,所述第一文件的存储布局信息包含所述第二存储设备的标识。
在第七方面的又一种可能的实施方式中,所述计算装置还包含视图提供模块,视图提供模块用于提供所述第一存储设备的本地文件视图,所述本地文件视图指示存储在所述第一存储设备上的多个文件的层次结构,所述多个文件的存储布局信息指示所述第一存储设备。
在第七方面的又一种可能的实施方式中,所述计算装置还包含视图提供模块,视图提供模块用于提供所述第一存储设备的归属文件视图,所述归属本地文件视图包含多个文件的信息,该多个文件的归属信息指示所述第一存储设备。
在第七方面的又一种可能的实施方式中,归属于第一存储设备的文件和归属于第二存储设备的文件以联邦构成全局文件系统。所述计算装置还包含视图提供模块,视图提供模块用于提供全局文件视图,所述全局文件视图包含归属于第一存储设备的文件的信息和归属于第二存储设备的文件的信息。
第八方面,本申请实施例提供一种计算装置,所述计算装置包含通信模块、迁移模块和元数据更新模块,所述计算装置用于实现第四方面任一项所描述的方法。
可选的,所述计算装置位于第一存储设备内或者第一存储设备相连。
在第八方面的一种可能的实施方式中,所述通信模块,用于接收来自第二计算设备的针对所述第一文件的拉取请求,所述第二计算设备与第二存储设备相连;
所述迁移模块,用于向共享存储区推送所述第一文件的数据;
所述元数据更新模块,用于对所述第一文件的元数据执行第一变更,以触发所述第二计算设备从所述共享存储区获取所述第一文件的数据并存储到所述第二存储设备中,所述第一变更指示在所述第一文件的存储布局信息指示的存储设备中增加所述共享存储区;在所述第一变更后,所述第一文件的存储布局信息指示存储所述第一文件的存储设备包含所述第一存储设备和共享存储区,且不包含所述第二存储设备。
在第八方面的又一种可能的实施方式中,所述第一文件的归属信息为所述第二存储设备的标识,在所述第一变更之前,所述第一文件的存储布局信息包含所述第一存储设备的标识且不包含所述第二存储设备的标识;
所述元数据更新模块,还用于:
在所述第一文件的存储布局信息中增加所述共享存储区的标识。
在第八方面的又一种可能的实施方式中,所述第一文件属于目标文件系统,所述第一文件的元数据包含于所述目标文件系统的元数据中,所述目标文件系统的元数据在多个设备之间同步,所述多个设备包含所述第一计算设备。
在第八方面的又一种可能的实施方式中,所述通信模块,还用于:
发送第一通知,所述第一通知指示所述第一文件的元数据发生了变更。
在第八方面的又一种可能的实施方式中,所述目标文件系统的元数据为流式结构且包含多条元数据记录,每条元数据记录包含一个节点的标识和所述一个节点的属性,其中,节点为文件或目录,所述节点的属性包含所述节点的归属信息和所述节点的存储布局信息;
所述元数据更新模块,用于:
在所述目标文件系统的元数据的末端追加第一元数据记录,所述第一元数据记录包括所述第一文件的标识和所述第一文件的存储布局信息,所述第一文件的存储布局信息指示存储所述第一文件的存储设备包含所述第一存储设备和所述共享存储区。
在第八方面的又一种可能的实施方式中,所述计算装置包含删除控制模块,所述删除控制模块,用于当获取到所述第一文件的第二变更后的元数据时,删除所述第一存储设备上的所述第一文件的数据;所述第二变更指示所述第一文件的存储布局信息的变化,在所述第二变更后,所述第一文件的存储布局信息指示存储所述第一文件的存储设备包含所述第一存储设备且包含所述第二存储设备;
所述元数据更新模块,用于对所述第一文件的元数据执行第三变更,所述第三变更指示在所述第一文件的存储布局信息指示的存储设备中删除所述第一存储设备;在所述第三变更后,所述第一文件的存储布局信息指示存储所述第一文件的存储设备不包含所述第一存储设备。
在第八方面的又一种可能的实施方式中,所述删除控制模块,还用于:
将所述第一文件的数据标记为可删除,以使得在所述第一文件的数据处于可删除状态时执行删除所述第一文件的操作。
第九方面,本申请实施例提供一种数据迁移系统,该数据迁移系统包含第一计算设备和第二计算设备,所述第一计算设备位于第一存储设备内或者所述第一计算设备与第一存储设备相连,所述第二计算设备位于第二存储设备内或者所述第二计算设备与第二存储设备相连。
其中,所述第一存储设备用于实现第二方面任一项或第四方面任一项所描述的方法,所述第二存储设备用于实现第三方面任一项所描述的方法。
或者,所述第一存储设备包含第六方面任一项或第八方面任一项所描述的计算装置,所述第二存储设备包含第七方面任一项所描述的计算装置。
在第九方面的一种可能的实施方式中,所述数据迁移系统还包含迁移调度装置,所述迁移调度装置用于实现第一方面任一项所描述的方法。
在第九方面的又一种可能的实施方式中,所述数据迁移系统还包含迁移调度装置,所述计算设备为第五方面任一项所描述的迁移调度装置。
第十方面,本申请实施例提供一种数据迁移系统,该数据迁移系统包含第一计算设备和第二计算设备,所述第一计算设备位于第一存储设备内或者所述第一计算设备与第一存储设备相连,所述第二计算设备位于第二存储设备内或者所述第二计算设备与第二存储设备相连;
第一计算设备,用于:
获取第一文件的元数据,所述第一文件的元数据包含所述第一文件的归属信息和所述第一文件的存储布局信息;
在确定所述第一文件的归属信息指示的存储设备为第二存储设备,且第一文件的存储布局信息指示存储所述第一文件的存储设备不包含所述第二存储设备且包含所述第一存储设备时,向共享存储区推送所述第一文件的数据;所述共享存储区与所述第一计算设备和第二计算设备相连,所述第二计算设备位于所述第二存储设备中或与所述第二存储设备相连;
第二计算设备,用于:
从所述共享存储区拉取所述第一文件的数据。
在第十方面的又一种可能的实施方式中,所述数据迁移系统还包含迁移调度装置,所述迁移调度装置用于实现第一方面任一项所描述的方法,或者,所述迁移调度装置为第五方面任一项的迁移调度装置。
第十方面的可能的实施方式可以参考前述第一至第九方面的可能实施方式。
第十一方面,本申请实施例提供一种数据迁移系统,该数据迁移系统包含第一计算设备和第二计算设备,所述第一计算设备位于第一存储设备内或者所述第一计算设备与第一存储设备相连,所述第二计算设备位于第二存储设备内或者所述第二计算设备与第二存储设备相连;
第二计算设备,用于:
获取第一文件的元数据,所述第一文件的元数据包含所述第一文件的归属信息和所述第一文件的存储布局信息;
在所述第一文件的归属信息指示所述第一文件归属的存储设备为所述第二存储设备,且第一文件的存储布局信息指示存储所述第一文件的存储设备不包含所述第二存储设备时,向第二存储设备发送拉取请求,所述拉取请求用于指示第一计算设备推送所述第一文件的数据;
第一计算设备,用于:
接收来自第二计算设备的针对所述第一文件的拉取请求;
向共享存储区推送所述第一文件的数据;
所述第二计算设备,还用于:
从所述共享存储区拉取所述第一文件的数据。
在第十一方面的又一种可能的实施方式中,所述数据迁移系统还包含迁移调度装置,所述迁移调度装置用于实现第一方面任一项所描述的方法,或者,所述迁移调度装置为第五方面任一项的迁移调度装置。
第十一方面的可能的实施方式可以参考前述第一至第九方面的可能实施方式。
第十二方面,本申请实施例提供一种数据迁移系统,该数据迁移系统包含第一计算设备和第二计算设备,所述第一计算设备位于第一存储设备内或者所述第一计算设备与第一存储设备相连,所述第二计算设备位于第二存储设备内或者所述第二计算设备与第二存储设备相连;
第一计算设备,用于:
获取第一文件的元数据,所述第一文件的元数据包含所述第一文件的归属信息和所述第一文件的存储布局信息;
在所述第一文件的归属信息指示所述第一文件归属的存储设备为所述第二存储设备,且第一文件的存储布局信息指示存储所述第一文件的存储设备不包含所述第二存储设备时,向第二计算设备推送所述第一文件的数据;
第二计算设备,用于:
接收所述第一计算设备推送的所述第一文件的数据。
在第十二方面的一种可能的实施方式中,所述数据迁移系统还包含迁移调度装置,所述迁移调度装置用于实现第一方面任一项所描述的方法,或者,所述迁移调度装置为第五方面任一项的迁移调度装置。
第十二方面的可能的实施方式可以参考前述第一至第九方面的可能实施方式。
第十三方面,本申请实施例提供一种数据迁移系统,该数据迁移系统包含第一计算设备和第二计算设备,所述第一计算设备位于第一存储设备内或者所述第一计算设备与第一存储设备相连,所述第二计算设备位于第二存储设备内或者所述第二计算设备与第二存储设备相连;
第二计算设备,用于:
获取第一文件的元数据,所述第一文件的元数据包含所述第一文件的归属信息和所述第一文件的存储布局信息;
在所述第一文件的归属信息指示所述第一文件归属的存储设备为所述第二存储设备,且第一文件的存储布局信息指示存储所述第一文件的存储设备不包含所述第二存储设备时,向第二存储设备发送拉取请求,所述拉取请求用于指示第一计算设备推送所述第一文件的数据;
第一计算设备,用于:
接收来自第二计算设备的针对所述第一文件的拉取请求;
向所述第二计算设备推送所述第一文件的数据;
所述第二计算设备,还用于:
接收所述第二计算设备推送的所述第一文件的数据。
第十三方面的可能的实施方式可以参考前述第一至第九方面的可能实施方式。
第十四方面,本申请实施例提供一种计算设备,该计算设备包括处理器和存储器;所述处理器执行存储器中存储的指令,以使得所述计算设备实现前述第一方面任一项所描述的方法。
可选的,所述计算设备还包括通信接口,所述通信接口用于接收和/或发送数据,和/或,所述通信接口用于为所述处理器提供输入和/或输出。
需要说明的是,上述实施例是以通过调用计算机指定来执行方法的处理器(或称通用处理器)为例进行说明。具体实施过程中,处理器还可以是专用处理器,此时计算机指令已经预先加载在处理器中。可选的,处理器还可以既包括专用处理器也包括通用处理器。
可选的,处理器和存储器还可能集成于一个器件中,即处理器和存储器还可以被集成在一起。
第十五方面,本申请实施例还提供一种计算设备集群,该计算设备集群包含至少一个计算设备,每个计算设备包括处理器和存储器;
所述至少一个计算设备的处理器用于执行所述至少一个计算设备的存储器中存储的指令,以使得所述计算设备集群执行第一方面任一项所述的方法。
第十六方面,本申请实施例提供一种计算设备,该计算设备包括处理器和存储器;所述存储器用于存储计算机指令,所述处理器用于执行所述存储器存储的计算机指令,以使得所述计算设备实现第二方面任一项所描述的方法,或者实现第四方面任一项所描述的方法。
第十七方面,本申请实施例提供一种存储设备,该存储设备包含计算设备和与计算设备相连的存储盘。其中,相连可以是通过有线线路相连,也可以通过无线线路相连。例如,二者通过总线相连。再如,二者通过交换机相连。其中,计算设备可以为第十六方面所描述的计算设备。
第十八方面,本申请实施例提供一种存储设备,该存储设备包括计算设备和与计算设备相连的存储盘;所述存储器用于存储计算机指令,所述处理器用于执行所述存储器存储的计算机指令,以使得所述计算设备实现第三方面任一项所描述的方法。
第十九方面,本申请实施例提供一种存储设备,该存储设备包含计算设备和与计算设备相连的存储盘。其中,相连可以是通过有线线路相连,也可以通过无线线路相连。例如,二者通过总线相连。再如,二者通过交换机相连。其中,计算设备可以为第十八方面所描述的计算设备。
第二十方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在至少一个处理器上运行时,实现前述第一方面任一项所描述的方法;又或者实现前述第二方面任一项所描述的方法;又或者实现前述第三方面任一项所描述的方法;又或者实现前述第四方面任一项所描述的方法。
第二十一方面,本申请提供了一种计算机程序产品,计算机程序产品包括计算机指令,当所述指令在至少一个处理器上运行时,实现前述第一方面任一项所描述的方法;又或者实现前述第二方面任一项所描述的方法;又或者实现前述第三方面任一项所描述的方法;又或者实现前述第四方面任一项所描述的方法。
可选的,该计算机程序产品可以为一个软件安装包或镜像包,在需要使用前述方法的情况下,可以下载该计算机程序产品并在计算设备上执行该计算机程序产品。
本申请第三至第二十一方面所提供的技术方案,其有益效果可以参考第一方面和/或第二方面的技术方案的有益效果,此处不再赘述。
附图说明
下面将对实施例描述中所需要使用的附图作简单地介绍。
图1是本申请实施例提供的一种数据迁移系统的架构示意图;
图2是本申请实施例提供的一种存储设备的架构示意图;
图3是本申请实施例提供的又一种数据迁移系统的架构示意图;
图4是本申请实施例提供的一种数据迁移系统的运行场景示意图;
图5是本申请实施例提供的一种全局文件系统的视图;
图6是本申请实施例提供的一种元数据流的示意图;
图7是本申请实施例提供的一种元数据表的变更示意图;
图8是本申请实施例提供的一种数据迁移方法的流程示意图;
图9是本申请实施例提供的一种第一文件的元数据的变更的示意图;
图10是本申请实施例提供的又一种数据迁移方法的流程示意图;
图11是本申请实施例提供的又一种第一文件的元数据的变更的示意图;
图12是本申请实施例提供的又一种数据迁移方法的流程示意图;
图13是本申请实施例提供的一种迁移调度装置的结构示意图;
图14是本申请实施例提供的一种计算装置的结构示意图;
图15是本申请实施例提供的一种计算设备的结构示意图。
具体实施方式
下面结合附图对本申请实施例进行详细介绍。
为了便于理解,以下示例地给出了部分与本申请实施例相关概念的说明以供参考。如下所示:
1.文件系统:文件系统是用于明确存储盘(例如磁盘、固态硬盘、或分区等)上的文件的方法和数据结构,即在存储盘上组织文件的方法。文件系统的主要作用是让用户可以便捷地读写文件,例如,用户向文件系统提供指定文件的标识(例如文件的名称、文件的路径等),文件系统就可以存取对应文件的数据。
2.文件、数据、元数据:文件,或称计算机文件,是一个信息集合。文件包含数据和元数据。数据即文件的数据内容;元数据即描述文件的信息,例如文件的名称、文件的大小、文件的类型等。
示例性的,文件的数据一般为非结构化的数据,例如文档、图片、视频、音频等没有固定结构的数据。
3.归属:文件的元数据中可以包含归属信息,归属信息用于指定文件的归属设备,例如文件所归属的存储设备。文件的归属设备用于管理文件的数据,包含但不限于是维护文件最新的完整数据、当文件的数据变化时发布数据变更、或发放数据(例如向请求数据的应用返回数据)等中的一项或者多项。
需要说明的是,目录的元数据中也可以包含归属信息,用于指定目录的归属设备。
4.消息队列
消息队列是一种数据结构,可以理解为包含一条或者多条消息的列表。消息在被处理和删除之前存储在消息队列上,消息发送方通过消息队列服务可以与消息接收方进行交互。应理解,本申请为了便于描述,故将包含多个消息的数据结构统一称为消息队列,并不旨在限定通过队列的方式实现消息队列。例如,具体实施过程中,消息队列还可以通过列表、堆、链表、或栈等方式来实现。
5.数据迁移、数据分级
数据迁移是指将数据从一个设备(源设备)迁移到另一个设备(目的设备)的过程。
数据分级,或称为分级存储管理(Hierarchical Storage Management,HSM),是指将数据从一个设备(源设备)迁移到另一个设备(目的设备),且在源设备上删除该数据的过程。在数据分级的过程中,源设备和目的设备通常是不同级别的(或者说具备不同的存储能力),例如,源设备和目的设备的成本、存取数据速度等不同。
一般来说,数据迁移不关注源设备后续对于其上存储的数据如何处理,而数据分级需要将源设备上存储的数据删除以释放存储空间。
当然,一些场景中,数据迁移和数据分级也可以相互替换,为了便于理解,本申请统一使用数据迁移来描述。
上文中对术语的示例性解释可以应用在下文的实施例中。需要说明的是,下文所涉及的文件系统是为数据提供存取、访问服务的系统。一些场景中,具备类似特征的系统其名称可能不一定称为文件系统,本申请为了方面描述以对文件系统中的数据的进行迁移为例进行描述,对于其他类似的系统也同样适用。
例如,一些对象系统在存储对象时,可以通过对象格式来存取、访问数据。而以对象形式来存储的数据也具有对应的元数据,本申请实施例对于对象系统也同样适用。
本申请实施例提供一种数据迁移方法及装置,该方法基于对文件的元数据的变更(如,对文件的归属、存储布局等元数据的变更)来触发对该文件的数据的迁移,而且该文件的数据的迁移进度也能够通过该文件的元数据的状态来反映。对于迁移调度装置来说,无需为了迁移而建立与源设备、目的设备之间的访问安全控制,简化了数据迁移的安全控制流程。对于源设备和目的设备来说,通过更新文件的归属信息和存储布局信息,来向对方指示其完成的操作,可以提高数据迁移的效率,提升在数据使用和管理上的便捷性。总之,本申请实施例不仅能够提升数据迁移的效率,并且实现了迁移过程中各个设备的解耦,极大地提高业务系统的灵活性和可扩展性。
下面对本申请实施例的系统架构进行示例性地描述。
需要说明的是,本申请描述的系统架构是为了更加清楚的说明本申请的技术方案,并不构成对于本申请提供的技术方案的限定,本领域普通技术人员可知,随着系统架构的演变和新业务场景的出现,本申请提供的技术方案对于类似的技术问题,同样适用。
请参见图1,图1是本申请实施例提供的一种数据迁移系统的架构示意图,该数据迁移系统10包含存储设备101和存储设备102。
存储设备101能够提供存储空间且具有存储数据的能力。存储设备101包含计算设备1011和存储盘1012,计算设备1011和存储盘1012相连。其中,计算设备1011具有计算能力;存储盘1012用于提供存储空间,存储盘1012中可以存储文件的数据。存储盘1012包含但不限于是硬盘、随机存取存储器或只读存储器(Read Only Memory,ROM)等,或者,存储盘还可以是虚拟的,例如为虚拟存储池等。
可选的,计算设备1011能够完成以下一种或者多种功能:获取文件的元数据、控制存储盘1012中的数据的读出和写入、或对元数据进行变更等。
类似的,存储设备102包含计算设备1021和存储盘1022,计算设备1021和存储盘1022相连接。其中,计算设备1021具有计算能力;存储盘1022用于提供存储空间。关于计算设备1021和存储盘1022的介绍请参考前述对计算设备1011和存储盘1012的介绍。
文件的数据经常需要进行跨设备的迁移,例如,将存储在存储设备101中的文件的数据迁移到存储设备102中。
本申请实施例可以基于文件的状态来控制数据迁移。具体的,文件的元数据包含文件的归属信息和存储布局信息,归属信息指示文件的归属设备,例如指示该文件归属的存储设备;文件的存储布局信息指示存储该文件的设备。在图1所示的系统中,文件的归属设备为存储设备101,而且,由于文件的数据存储在存储设备101上,文件的存储布局信息指示存储设备101。这种情况下,通过变更文件的归属信息,可以触发文件的数据的迁移。例如,文件的归属信息由指示存储设备101变更为指示存储设备102时,触发存储设备101和/或存储设备102将文件的数据从存储设备101迁移到存储设备102。
这样一来,只要设备具备变更文件的元数据的能力,即可触发数据迁移操作,无需为了迁移而建立与源设备(数据迁出的设备)和目的设备(数据迁入的设备)之间的数据访问的安全控制,简化了数据迁移的安全控制流程,提高了数据迁移的效率,提升用户在数据使用和管理上的便捷性。尤其对于包含多个存储设备或多个数据中心的业务,基于状态的数据迁移可以进一步解耦各个设备的功能,极大地提高业务系统的灵活性和可扩展性。
作为一种可能的实施方式,在文件的数据迁移的过程中,存储设备101可以将文件的数据推送至指定设备,以使得存储设备102从指定设备获取文件,以实现数据迁移。其中,指定设备可以为自定义的某一设备,能够为存储设备101和存储设备102提供数据存储服务(也称为共享存储区)。可选的,数据存储服务可以由全局数据服务提供,也可以由第三方临时存储设备、中间设备提供。
应理解,在图1所示的数据迁移系统中,存储设备中的计算设备(例如计算设备1011、计算设备1021)可以通过软件实现和/或通过硬件实现。
作为计算设备通过硬件实现的一种举例,计算设备可以为控制器、处理器或服务器等。其中,控制器包含但不限于存储控制器(例如内存控制器、硬盘控制器、集成驱动器,电子控制器、磁盘阵列控制器等)、组合逻辑控制器、硬布线控制器等。处理器包含但不限于是中央处理器、图片处理器、人工智能处理器、微处理器或可编程逻辑门阵列等。另外,在一些场景中,因控制器也具有计算能力和/或能够执行指令,因此控制器也可以看作处理器。服务器包含但不限于是通用计算机、存储服务器、云服务器或刀片式服务器等。当计算设备的功能由服务器实现时,其所包含的服务器的数量也可以是一个,也可以是多个(如服务器集群)。
作为一种可能的方案,计算设备所实现的功能可以通过软件功能单元来实现。示例性地,计算模块可以为虚拟机、容器、云端等。其中,虚拟机是通过软件模拟的具有完整硬件系统功能的、运行在隔离环境中的计算机系统。容器是将应用和应用依赖包进行打包得到的隔离环境。云端是采用应用程序虚拟化技术的软件平台,能够让一个或者多个软件、应用在独立的虚拟化环境中开发、运行。可选的,云端可以部署在公有云、私有云、或者混合云上等。
作为软件功能单元的一种举例,计算设备可以包括运行在计算实例上的代码。其中,计算实例可以包括物理主机(计算设备)、虚拟机、容器中的至少一种。
可选的,存储设备中的计算设备和存储盘可以集成的。作为计算设备和存储盘集成设置的一个举例,存储设备为盘控一体的存储系统,存储设备包含控制器(数量可以为一个或者多个),控制器与存储盘(例如硬盘)通过总线连接。控制器可以用于处理来自存储设备外部(服务器或者其他存储系统)的数据访问请求,也用于处理存储设备内部生成的请求。示例性的,控制器接收应用服务器发送的写数据请求时,可以通过将写数据请求中携带的数据发送给存储盘进行存储。在这种情况下,可选地,计算设备可以是存储设备中的控制器。
或者可选的,计算设备和存储盘也可以是独立设置的。如图2所示是本申请实施例提供的一种可能的存储设备的架构示意图,存储设备101中的计算设备1021为独立的设备,存储盘1022位于计算设备1021之外。
当然,无论二者是独立设置还是集成于同一设备中,计算设备和存储盘之间是相互连接的,二者的连接方式可以是总线或网络等。网络例如为有线网络、无线网络、有线网络和无线网络的组合等,示例性的,二者可以通过网线连接,或者,通过交换机连接。
在上文中,文件的归属信息的变更,可以由存储设备101执行,或者由存储设备102执行,或者由其他设备来执行。
作为一种可能的方案,数据迁移系统还包含迁移调度装置,迁移调度装置用于确定迁移任务并基于迁移任务变更文件的元数据。
如图3所示是本申请实施例提供的又一种数据迁移系统的架构示意图,该数据迁移系统30包含存储设备101、存储设备102和迁移调度装置301。
其中,迁移调度装置301可以变更文件的元数据,且元数据的变更可以被存储设备101和/或存储设备102获取,从而触发文件的数据的迁移。一些场景中,迁移调度装置也可以称为数据调度引擎。
作为一种可能的实施方式,迁移调度装置301可以基于输入信息来确定针对文件的迁移任务,并基于迁移任务来变更元数据。示例性地,输入信息可以为外部事件信息、用户输入的指示、元数据分析结果等中的一项或者多项。
可选的,迁移调度装置301中可以包含迁移策略模块,迁移策略模块用于实现分级迁移策略,这些迁移策略可以是由预先定义的算法(例如AI模块)定义的、或预先设置的规则定义的。进一步的,迁移策略模块还可以基于输入信息和分级迁移策略,确定迁移任务。
迁移调度装置301所确定的任务的数量可能有多个。这多个任务可能是针对同一文件的,也可能是针对不同文件的。任务之间是否具有冲突、任务执行的顺序等都会影响任务执行的成功率和效率。作为一种可能的方案,迁移调度装置301可以包含任务编排模块,任务编排模块用于编排多个任务。进一步的,编排任务可以包含确定任务的执行顺序、执行优先级等,例如先迁移哪一个文件等。另外,迁移调度装置在编排任务的过程中还可以合并多个任务。
可选的,迁移调度装置301可以包含迁移任务管理模块。迁移任务管理模块用于跟踪任务的执行进度,便于获取任务的执行情况。另外,对于进展缓慢或者失败的任务等,可以尽快进行处理,提升系统稳定性。
作为一种可能的实施方式,数据迁移系统30还包含元数据分析装置302。一些场景中,元数据分析装置也称为元数据分析引擎。应理解,迁移调度装置301也可以通过软件实现和/或通过硬件实现;元数据分析装置302也可以通过软件实现和/或通过硬件实现。可选的,迁移调度装置301和元数据分析装置302可以独立设置,也可以集成在同一设备中。
元数据分析装置302用于对文件的元数据进行分析,向迁移调度装置301提供分析结果。迁移调度装置基于分析结果,确定针对文件的迁移任务。示例性地,分析结果包含以下一项或者多项信息:文件的冷热状态、文件的安全性或文件相关的业务等。
以下以根据文件的冷热状态进行数据迁移为例,对数据迁移系统的一种可能的运行场景进行说明。
如图4所示是本申请实施例提供的一种数据迁移系统的运行场景示意图。其中,数据调度引擎包含迁移策略模块、任务编码模块和迁移任务管理模块中的一项或者多项,相关描述可以参考前述。数据调度引擎可以基于外部事件信息、用户输入和元数据分析结果等中的一项或者多项来确定针对文件的迁移任务。
其中,元数据分析引擎可以包含数据冷热画像模块,数据冷热画像模块用于确定文件系统中的文件的数据的冷热程度。示例性的,数据的冷热程度包含热数据、温数据和冷数据三个等级,其中热数据为访问频次较多的数据,温数据次之,冷数据再次之。
文件的元数据可以包含于全局文件系统的元数据中。全局文件系统是指将多个存储设备上的文件(或文件系统)联合得到的文件系统,也称为联合文件系统。
以图4为例,存储设备S1上的文件系统、存储设备S2上的文件系统和存储设备S3上的文件系统可以联合得到全局文件系统,如图5所示为一种可能的全局文件系统的视图,其中,为了方便理解将目录使用方框(为了便于区别,根目录为菱形)图案来示意,文件使用圆形图案来示意。当然,这并不旨在说明文件和目录在存储方式、呈现方式上的不同。形状中间的数字为目录和文件对应的节点编号,形状外的名称为目录的名称或文件的名称,应理解,节点的编号、文件(或目录)的排列顺序、文件(或目录)的名称等仅为示例,并不旨在限定本申请。
作为一种示例,存储设备S1是主打高存取速度的存储设备。存储设备S3是主打大容量的存储设备。而存储设备S2是在容量和存取速度都处于中等的存储设备。不难看出,存储设备S1适用于存储热数据,有利于实现文件的高速存取。存储设备S2适用于存储温数据。存储设备S1适用于存储冷数据。
这种情况下,元数据分析引擎可以向数据调度引擎提供数据的冷热程度。相应的,数据调度引擎根据数据的冷热程度,确定针对文件的迁移任务,并基于迁移任务修改文件的元数据。当存储设备获取经过修改后的文件的元数据后,基于元数据的变更来执行数据的迁移,将热数据迁移到存储设备S1上存储,将温数据迁移到存储设备S2上存储,将冷数据迁移到存储设备S3上存储,实现数据的存取性能最优和存储成本最优。
例如,当文件名为“001.png”的文件(当前存储在存储设备S1)的数据变为温数据,则数据调度引擎将文件名为“001.png”文件的归属设备变更为存储设备S2,使得该文件的数据被迁移到存储设备S2上存储。
再如,当文件名为“002.png”的文件(当前存储在存储设备S1)的数据变为冷数据,则数据调度引擎将文件名为“002.png”文件的归属设备变更为存储设备S3,使得该文件的数据被迁移到存储设备S3上存储。
上文对架构的介绍中提到了文件系统的元数据,下面对文件系统的元数据的格式进行介绍。
文件的元数据包含于文件系统的元数据。由于文件的属性会被变更,因此,文件系统的元数据需要支持元数据的动态变化。
作为一种可能的实施方式,文件系统的元数据为流式结构且包含多条元数据记录,每条元数据记录中包含文件的标识和文件的属性,文件的属性例如文件的归属信息、文件的存储布局信息、文件的创建时间等中的一项或者多项。
其中,流式结构是包含多条信息的一种数据结构,每一条信息为一条元数据记录。流式结构具有以下特征:只读、只增、有序,其中“只读”是指流式结构中的记录的值只能读取而无法修改;“只增”指示流式结构中只能追加新的记录而无法删除(或修改)已有的记录,但属于同一个文件(或目录)的多条记录可以被合并成一条记录;“有序”是指流式结构中的记录具有逻辑顺序,追加的记录在流式结构的尾部增加。
在流式结构的元数据(以下称为元数据流)中,当文件系统中的文件的元数据变更时,一条元数据记录被追加到元数据流的末端。其他设备通过读取元数据流末端新追加的元数据记录,则可以获取文件的属性的变更。
如图6所示为本申请实施例提供的一种元数据流的示意图,如元数据记录601所示,文件名为“001.png”的文件,其归属属性的值包含存储设备S1的标识(即S1);存储布局信息为{S1:1,S2:0},指示存储设备S1上存储了文件的数据而存储设备S2上未存储文件的数据。即该文件归属存储设备S1,且文件的数据存储于存储设备S1。
当变更“001.png”的归属设备时,元数据记录602被追加到元数据流的末端,在元数据记录602中,文件的归属信息已经被变更为存储设备S2的标识(即S2)。文件的归属信息已经变更,但文件的数据仍然存储在存储设备S1中,因此,需要将文件的数据从存储设备S1迁移到存储设备S2中。
相应的,当存储设备S1和/或存储设备S1从元数据流中读取新追加的记录时,响应于文件归属设备的变更,执行迁移操作。
作又一种可能的实施方式,文件系统的元数据为表式结构。其中,表式结构的元数据(以下称为元数据表)包含行和列,每一行(或者每一列)包含多个属性的值,每个属性的值对应了一个属性。元数据表可以增加一行(或一列)元数据、删除一行(或一列)元数据,也可以修改已有的属性的值。
在表式结构的元数据(以下称为元数据表)中,当文件系统中文件的元数据产生变更时,元数据表中原本有的一个字段的值被修改。其他设备通过获取修改后的文件的元数据的值,来获取文件的属性的变更。
如图7所示为本申请实施例提供的一种元数据表的变更示意图,如列701所示,文件名为“001.png”的文件,其归属包含存储设备S1的标识(即S1);存储布局信息为{S1:1,S2:0},指示存储设备S1上存储了文件的数据而存储设备S2上未存储文件的数据。即该文件归属存储设备S1,且文件的数据存储于存储设备S1。
当变更“001.png”的归属设备时,列701中的属性被修改,得到列702。可以看出,文件的归属信息已经被修改为存储设备S2的标识(即S2),但文件的数据仍然存储在存储设备S1中,因此,需要将文件的数据从存储设备S1迁移到存储设备S2中。
相应的,当存储设备S1和/或存储设备S1根据元数据表确定文件的归属信息变更后,响应于文件的归属信息的变更,执行迁移操作。
需要说明的是,图6、图7所示的元数据中,目录的归属信息未示出。在实际使用过程中,目录也可以具有归属信息,用于指示目录的归属设备。作为一种可能的设计,目录的归属可以为指定设备,即:由指定设备来统一维护文件系统中目录。
应理解,上述的文件系统的元数据的格式仅为示例,具体实施过程中,文件系统的元数据可以为其他格式。
上面说明了本申请实施例的架构和文件系统的元数据格式,下面对本申请实施例的方法进行详细介绍。
请参见图8,图8是本申请实施例提供的一种数据迁移方法的流程示意图。可选的,该方法可以应用于前述的数据迁移系统,例如图1、图3、或图5所示的数据迁移系统。
如图8所示的数据迁移方法可以包括步骤S801至步骤S806中的一个或者多个步骤。应理解,本申请为了方便描述,故通过S801至S806这一顺序进行描述,并不旨在限定一定通过上述顺序进行执行。本申请实施例对于上述一个或多个步骤的执行的先后顺序、执行的时间、执行的次数等不做限定。步骤S801至步骤S806具体如下:
步骤S801:迁移调度装置确定针对第一文件的迁移任务。
其中,迁移任务指示将所述第一文件从第一存储设备迁移到第二存储设备。应理解,第一文件可能为一个文件,也可能为多个文件。例如,迁移任务指示将某一目录下的多个文件的数据迁移到第二存储设备。
作为一种可能的实现,迁移任务包括第一文件的标识、第一存储设备的标识和第二存储设备的标识。其中,第一文件的标识用于指示该迁移任务所针对的文件或文件所属的目录,第一存储设备的标识为迁移的源设备的标识,第二存储设备的标识为迁移的目标设备的标识。
可选的,迁移调度装置可以基于输入信息确定针对文件的迁移任务。下面示例性的列举几种基于输入信息来确定迁移任务的设计:
设计1,迁移调度装置根据外部事件信息,确定针对第一文件的迁移任务。
外部事件是指在发生在迁移调度装置和/或业务系统之外的事件。外部事件信息包含但不限于是网络连接情况、设备健康情况或人员调动情况等中一项或者多项。
网络连接情况可以理解为在线状态,用于描述设备是否能够被其他设备感知。示例性的,当某个线路通信中断,预测A地的通信受影响时(或A地的设备可能不能被感知,或通信的速率受到影响),此时可以将A地的数据迁移到B地。
设备健康情况可以描述设备当前的存储能力,或者描述设备当前的故障状态。示例性的,设备的存取速度可能会随着使用时长和使用次数而下降,当某个存储设备的存取速度达到预置下限、或者使用时长达到预设时长、或者使用次数到达预设次数,则将该存储设备上的数据迁移到其他存储设备上。再如,当某一存储设备出现故障时,将该存储设备上的数据迁移到其他存储设备上。
第一文件相关的人员调动状况包含数据的拥有者或者数据的管理者的所在地变化。示例性的,当某个业务的研发团队人员出差异地,可以触发迁移,将该业务的数据迁移到距离出差目的地更近的存储设备。
具体实施过程中,迁移调度装置可以通过预设数据迁移策略来根据外部事件确定迁移任务。数据迁移策略可以为算法、预设的规则或用户设置的条件等。
在这种设计中,外部事件信息满足触发数据迁移的条件时,则会确定对应的迁移任务,实现综合多信息流的智能迁移,提升用户的使用体验。
可选的,触发数据迁移的条件可以由迁移策略来定义。迁移策略可以通过算法或者规则来实现。
设计2,迁移调度装置根据元数据分析结果确定针对第一文件的迁移任务。元数据分析结果是对第一文件的元数据(或目标文件系统的元数据)进行分析得到的结果,元数据分析结果包含但不限于第一文件的冷热状态、第一文件的安全性或第一文件相关的业务等中的一项或者多项。
作为一种示例,元数据的冷热状态可以通过文件的访问频次来指示。例如,若第一文件的元数据中包含表示一段时长内的访问次数的属性。若访问次数大于或者大于等于第一阈值,则将第一文件的数据迁移到高存储速度的设备(例如为第二存储设备),从而提升存取第一文件的数据的效率,提升系统的服务质量。类似的,若第一文件的访问次数小于或者小于等于第二阈值,则将文件的数据迁移到高存储容量的设备,降低存储成本。可选的,这里的第一阈值、第二阈值可以是管理员(例如开发人员、管理部分等)、厂商等输入的、或预先设置的。
作为一种示例,第一文件的元数据中可以包含表示文件的安全等级的属性。例如,若第一文件的安全等级为高级,而第一存储设备安全等级不满足第一文件的安全等级需求,则将第一文件的数据迁移到能够满足第一文件的安全等级的需求的设备上,有效保障用户对文件的安全性需求,提升系统的服务质量。
作为一种示例,第一文件的元数据中包含表示第一文件相关的业务的属性。例如,第一文件的相关业务为车载业务、视频业务、或文件下载业务等。示例性的,若第一文件用于存储车载服务的数据,当车载服务的数据需要迁移到第二存储设备时,第一文件的数据也对应的迁移。如此,用户可以基于不同的业务来对文件进行迁移,提升了用户管理业务数据的便捷性用户,提升系统的服务质量。
在这种设计中,元数据分析结果能够指示对文件的迁移需求(例如访问需求、安全需求、业务需求等),基于迁移需求来确定迁移任务,能够实现整体的存储优化。另外,用户通过更新文件的元数据就可以表达对文件的迁移需求,实现了对数据的智能化管理,提升用户在数据使用和管理上的便捷性。
设计3,迁移调度装置根据用户输入的针对第一文件的迁移指示,确定迁移任务。例如,用户输入的指示信息,指示将第一文件的数据迁移到第二存储设备上,迁移调度装置可以响应与该指示信息,确定针对第一文件的迁移任务。
这种设计中,用户可以通过输入迁移指示来实现针对某一文件的迁移,这样可以满足用户的个性化需求,提升用户体验。
上述的三种设计仅为示例,具体实施过程中输入信息还可以包含其他信息。上述三种设计还可以在不互斥的情况下结合,对于结合的情况此处不在赘述。
一些场景中,针对第一文件的迁移任务是迁移调度装置所确定的多个任务中的其中一部分。作为一种可能的方案,迁移调度装置可以确定多个任务,并对多个任务进行编排,以使得多个任务可以合理、有序地执行。
示例性的,迁移调度装置可以确定针对第二文件的迁移任务,并编排针对第一文件的迁移任务和针对第二文件的迁移任务。
作为一种可能的实施方式,编排任务可以包含以下的一个或者多个操作:确定任务的执行顺序、确定执行优先级、或合并多个任务等。
示例性的,数据调度装置可以根据需求的轻重缓急,来确定使得部分文件的迁移任务优先被执行,提升用户的使用体验。例如,对于在短时间内访问频次暴涨的文件,可以被优先执行迁移,尽快提升该文件的访问速率,提升用户体验。
示例性的,A任务指示将第一文件从第一存储设备迁移到第二存储设备,而B任务指示将第一文件从第一存储设备迁移到第三存储设备,则A任务和B任务可以被合并得到新的任务,新的任务指示将第一文件从第一存储设备迁移到第三存储设备。这样一来可以减少任务执行出错的概率,二来可以减少任务执行的算力消耗,有效提高任务执行效率,提升用户体验。
步骤S802:迁移调度装置对第一文件的元数据进行第一变更。
具体的,第一变更指示所述第一文件归属的存储设备从第一存储设备变更为第二存储设备。
在一些可能的场景中,第一文件的归属通过归属信息来指示,归属信息包含文件的归属设备的标识。例如,文件的归属信息为第一存储设备的标识,即标识文件的归属设备为第一设备。此时,迁移调度装置对第一文件的元数据进行第一变更,具体为:迁移调度装置所述第一文件的归属信息从所述第一存储设备的标识变更为所述第二存储设备的标识。再如,归属信息通过字段的取值来指示,当第一文件的元数据中第二存储设备对应的字段取值为第一值,则表示第二存储设备为第一文件的归属设备。其中,第一值可以预先定义或者预先配置。
作为又一种可能的实施方式,迁移调度装置可以通过变更目标文件系统的元数据,来变更第一文件的元数据。这里的目标文件系统是指第一文件所属的文件系统,应理解,目标文件系统是某一个或者某一组具体的文件系统。
可选的,目标文件系统的元数据为流式结构。此时,迁移调度装置可以通过在元数据流中追加元数据记录的方式,来进行第一变更。具体地,迁移调度装置在目标文件系统的元数据的末端追加第一元数据记录,第一元数据记录包括第一文件的标识和第一文件的归属信息,第一文件的归属信息包含第二存储设备的标识。
或者可选的,目标文件系统的元数据为表式结构。此时,迁移调度装置可以通过在目标文件系统的元数据表中修改第一文件的元数据,将第一文件的归属信息修改为第二存储设备的标识。在一些可能的设计中,目标文件系统的元数据在多个设备之间同步,或者说,多个设备共享目标文件系统的元数据。这里的同步是指:目标文件系统的元数据可以被多个设备中的任意一个设备改动,改动后的内容能够被该多个设备获知到,且多个设备获知的目标系统的元数据是一致的。因此,当迁移调度装置对第一文件的元数据进行第一变更时,共享目标文件系统的元数据的设备可以获取第一文件的第一变更后的元数据。
可选的,上述目标文件系统的元数据在多个设备之间同步,有以下几种可能的实现方式:
实现方式1:目标文件系统的元数据在多个设备的本地进行存储,当某一设备对目标文件系统进行了变更时,该设备向存储了目标文件系统的元数据的其他设备通知该变更,其他设备基于通知来相应变更本地存储的目标文件系统的元数据,从而实现目标文件系统的元数据在多个设备上的同步。应理解,这里的多个设备包含迁移调度装置、第一存储设备和第二存储设备。
示例性的,迁移调度装置、第一存储设备和第二存储设备都在本地存储了第一文件系统的元数据。当迁移调度装置对目标文件系统的元数据中的第一文件的元数据进行了第一变更时,迁移调度装置可以发送第一通知,第一通知指示第一文件的元数据产生了第一变更,第一存储设备和第二存储设备基于第一通知来相应变更本地存储的目标文件系统的元数据,从而实现目标文件系统的元数据在多个设备上的同步。
可选的,第一通知中指示第一文件的元数据发生了哪些变更。例如,第一通知可以包含第一变更的内容,如第一文件的标识和第二变更所改变文件的属性(或属性的值)。这种情况下,第一存储设备和第二存储设备可以根据第一文件的第一变更前的元数据和第一变更的内容,得到第一文件的第一变更后的元数据,并根据第一文件的第一变更后的元数据执行迁移任务。再如,第一通知可以包含第一文件的所述第一变更后的元数据。这种情况下,第一存储设备和第二存储设备可以根据第一文件的第一变更后的元数据执行迁移任务。
或者可选的,第一通知指示发生了第一变更,但第一通知不包含第一变更的具体内容和/或第一文件的第一变更后的元数据。在这种情况下,第一存储设备和第二存储设备向迁移调度装置请求第一变更的具体内容和/或第一文件的第一变更后的元数据,并根据迁移调度装置提供的信息来相应变更本地存储的目标文件系统的元数据。
实现方式2:目标文件系统的元数据由指定设备存储,并由指定设备来提供对目标文件系统的元数据的访问和更新。当某一设备对目标文件系统的元数据进行了变更时,该变更被提供给指定设备,多个设备可以从指定设备处获取经过变更的目标文件系统的元数据,从而实现目标文件系统的元数据在多个设备上的同步。应理解,这里的多个设备包含第一存储设备和第二存储设备,可选包含迁移调度装置。
触发多个设备获取目标文件的元数据的方式包含但不限于:由多个设备主动(周期或者非周期性)从指定设备读取、或者由指定设备通知多个设备读取(例如通过消息队列通知多个设备)、或者由指定设备主动发布变更、或者由变更目标文件系统的元数据的设备通知多个设备从指定设备读取、或者由变更目标文件系统的元数据的设备通知多个与变更相关的设备读取。
示例性的,管理目标文件系统的元数据的设备可以在第一文件的元数据产生变更时,向第一存储设备和第二存储设备提供经过第一文件的变更后的元数据,使其了解第一文件的归属信息的变更,触发第一存储设备和第二存储设备执行迁移任务。
示例性的,源设备可以周期性地读取目标文件系统的元数据,了解第一文件的归属信息的变更,触发对第一文件的数据的推送操作。示例性的,目的设备可以响应于数据调度的通知,从而读取文件系统的元数据,了解第一文件的归属信息的变更,触发对第一文件的数据的拉取操作。
作为一种同步目标文件系统的元数据的举例,迁移调度装置对目标文件系统的元数据进行第一变更,该第一变更被提供给指定设备,指定设备基于第一变更更新了目标文件的元数据后。第一存储设备和第二存储设备可以从指定设备读取经过第一变更的目标文件系统的元数据。
可选的,前述的指定设备可以为全局元数据服务,或者,可以为第一存储设备、第二存储设备、或迁移调度装置等。
作为一种可能的方案,目标文件系统的元数据存储在全局元数据服务中。通过全局元数据服务来对文件系统的元数据进行管理,使得多个设备则多个设备都按照全局元数据服务中的元数据的格式来读取或者写入元数据,统一了文件的元数据的表示方式,屏蔽了异构的存储设备之间的元数据管理和访问控制的差异,不仅提升用户在数据使用和管理上的便捷性,还能够提升系统的可扩展性和灵活性。
应理解,通过上述种种方式实现目标文件系统的元数据在多个设备之间的同步后,该多个设备中的任意一个设备都可以动态地获取到目标系统的变更后的元数据(也就是说,可以获取到目标系统的当前的元数据)。
进一步的,全局元数据服务可以提供服务接口,设备可以调用服务接口来实现对元数据的访问和更新。其中,服务接口是一种通信接口,例如应用程序接口(applicationprogrammi ng interface,API),能够用于不同的功能模块之间数据交互并提供服务。通过抽象的服务接口,可以将调用者和实现者解耦和,例如调用服务接口的设备可以按照服务接口的要求提供相关的数据,而全局元数据服务可以通过服务接口获取相关的数据并实现相对应的功能,不仅提升了访问、更新元数据的效率,也提高了系统的可扩展性和灵活性。
作为一种可能的实施方式,迁移调度装置调用全局元数据服务提供的服务接口,对第一文件的元数据进行第一变更。可选的,服务接口可以是全局元数据服务向迁移调度装置提供的,此时,迁移调度装置可以直接调用该服务接口。或者可选的,服务接口可以是全局元数据服务向共享目标文件系统的元数据流的设备提供的。此时迁移调度装置可以调用任一共享目标文件系统的元数据流的设备上的服务接口。例如,全局数据服务向第一存储设备提供服务接口,迁移调度装置可以调用第一存储设备上的服务接口实现第一变更。
作为一种可能的实施方式,文件的归属信息可以作为文件的一个基本属性包含于文件的元数据中。此时,迁移调度装置可以通过执行自定义的指令或者预先设置修改属性的指令来变更文件的归属元数据。
作为又一种可能的实施方式,文件的归属信息可以作为文件的扩展属性包含于文件的元数据中的扩展属性字段中,例如xattr字段、tags字段等。此时,迁移调度装置可以通过执行自定义的指令来变更文件的元数据中的扩展属性字段。或者,以文件的归属信息包含于xattr字段为例,迁移调度装置可以通过预先设置的修改xattr的指令来变更文件的归属信息。
在上文中我们提到,迁移调度装置可以发送通知(便于区分以下称为第一通知),以指示第一文件的元数据发生了第一变更。可选的,第一通知的接收方可以是管理目标文件系统的元数据的设备,或者可以是所有共享目标文件系统的元数据的设备,或者可以是迁移任务涉及的设备(第一存储设备和/或第二存储设备)。
作为一种发送第一通知的举例,迁移调度装置可以向全局元数据服务发送第一通知,由全局元数据服务发布第一变更。例如,全局元数据服务可以通知源设备(例如第一存储设备)和目的设备(例如第二存储设备)读取第一文件的第一变更后的元数据,或者,向源设备和目的设备发送第一文件的第一变更后的元数据。相应的,在这种示例中,源设备和目的设备可以接收来自全局元数据服务的通知,或者,接收全局元数据服务发送的第一文件的第一变更后的元数据。
作为又一种发送第一通知的举例,迁移调度装置可以通知源设备(例如第一存储设备)和目的设备(例如第二存储设备)读取第一文件的第一变更后的元数据,或者,向源设备和目的设备发送第一文件的第一变更后的元数据。相应的,在这种示例中,源设备和目的设备可以接收来自迁移调度装置的通知,或者,接收迁移调度装置发送的第一文件的第一变更后的元数据。
应理解,迁移调度装置发送通知的方法可以是直接发送方式,也可以是间接发送方式。在直接发送方式中,发送方向接收方发送消息。当然,消息可以被复制多份,向多个接收方分别发送消息。间接发送方式有多种可能实现,例如通过消息队列实现、通过中间设备转发的方式实现等。以消息队列实现消息间接发送为例,消息队列中的消息可以被一个或者多个设备读取;发送方向消息队列中写入消息,而接收方(接收方数量可以为一个或者多个)可以从消息队列中读取消息,从而实现消息的收发。
可选的,图8所示的实施例包含步骤S803,具体如下:
步骤S803:第一存储设备获取第一文件的元数据。
第一文件的元数据包含所述第一文件的归属信息和所述第一文件的存储布局信息。其中,第一文件的归属信息指示的第一文件的归属设备,第一文件的存储布局信息指示存储第一文件的设备。进一步的,在第一文件的数据以多个数据分段的形式来存储的情况下,存储布局信息还用于指示存储所述第一文件的数据分段的设备。
可选的,归属信息包含文件的归属设备的标识,例如,第一文件的归属信息为第一存储设备的标识,即表示文件的归属设备为第一设备。
可选的,存储布局信息包含存储文件的数据的标识,例如,第一文件的存储布局信息包含第一存储设备的标识,则表示文件的数据存储在第一存储设备上。
或者可选的,文件的归属信息和/或文件的存储布局信息也可以通过字段的值的方式来体现。示例性的,存储布局信息中包含多个字段,多个字段分别对应多个存储设备,当某一个存储设备对应的字段的取值为第一值,则表示该存储设备上存储了第一文件的数据。如,“设备S1:1;设备S2:0”中,字段“设备S1”的取值为1表示设备S1上存储了第一文件的数据,字段“设备S2”的取值为0表示设备S2上没有存储第一文件的数据。
在一些场景中,文件的数据可以以数据分段的形式存储在多个存储设备上。存储布局信息还用于指示多个存储设备所存储的数据分段。示例性,存储布局信息可以包含文件的位图(bitmap),以指示多个设备上的存储布局。当一个文件的数据包含8个数据分段时,某一存储设备上存储的数据分段可以通过8位的位图来指示,如存储布局信息可以包含:“设备S1:0x1010 0000;设备S3:0x1111 1111”。其中,字段“设备S1”的值中,第一位为1表示存储设备S1上存储了第一个数据分段,第二位为0表示存储设备S1上未存储第二个数据分段,其余位数以此类推。类似的,字段“设备S3”的值中,第一位为1表示存储设备S3上存储了第一个数据分段,第二位为1表示存储设备S3上存储了第二个数据分段,其余位数以此类推。
需要说明的是,第一存储设备获取的元数据可以是第一文件的第一变更后的元数据。第一变更可以是迁移调度装置执行的,也可能是其它设备执行的,例如第一存储设备、第二存储设备或其他存储设备等。
可选的,图8所示的实施例包含步骤S804,具体如下:
步骤S804:第二存储设备获取第一文件的元数据。
相关描述可以参考S803。
可选的,图8所示的实施例还包含步骤S805,具体如下:
步骤S805:第二存储设备发送拉取请求。
可选的,拉取请求可以是第二存储设备向第一存储设备发送,指示第一存储设备推送所述第一文件的数据。可选的,拉取请求中可以携带第一文件的归属信息和第一文件的存储布局信息。
或者可选的,也可以是通过广播或者组播的方式发送给多个设备,指示存储所述第一文件的数据的设备推送所述第一文件的数据。
可选的,拉取请求的发送方式可以是直接向接收方发送,或者可以通过间接发送的方式进行发送,例如通过消息队列发送等。详细介绍可以参见发送第一通知的方式的相关描述。
步骤S806:第一存储设备将第一文件的数据从第一存储设备迁移到第二存储设备。
作为一种可能的实施方式,第一存储设备在确定第一文件的归属信息指示的存储设备为第二存储设备,且第一文件的存储布局信息指示存储第一文件的存储设备不包含第二存储设备且包含第一存储设备时,将第一文件的数据从第一存储设备迁移到第二存储设备。
一些可能的场景中,当第一文件的数据包含多个数据分段时,第一文件的存储布局信息指示存储第一文件的存储设备不包含第二存储设备且包含第一存储设备包含以下情况:第一存储布局信息指示第一文件的数据分段(部分或全部数据分段)存储在第一存储设备上,且第二存储设备上未存储第一文件的全部数据分段。即:在第一文件的归属设备上没有文件的完整数据时,即触发存储了第一文件的数据分段的设备向第一文件的归属设备推送第一文件的数据分段。
作为一种可能的设计,源设备所推送的第一文件的数据分段包含目的设备上未存储的数据分段。可选的,第一文件的归属信息和存储信息的内容,可以是第一存储设备通过第一文件的元数据确定的,也可以是第一存储设备通过拉取请求确定的。
例如,第一存储设备获取第一文件的元数据,第一文件的归属信息为第二存储设备的标识,且第一文件的存储布局信息不包含所述第二存储设备的标识且包含所述第一存储设备的标识时,第一存储设备将第一文件的数据从第一存储设备迁移到第二存储设备。
作为又一种可能的实施方式,第一存储设备响应于拉取请求,将第一文件的数据从第一存储设备迁移到第二存储设备。
可选的,将第一文件的数据从第一存储设备迁移到第二存储设备,可以有以下几种情况:
情况一:第一存储设备向共享存储区推送所述第一文件的数据。该共享存储区与所述第一存储设备和第二存储设备相连,第二存储设备可以从共享存储区获取第一文件的数据。
在第一文件的数据以多个数据分段的形式存储的情况下,第二存储设备从共享存储区拉取的数据分段为第二存储设备上未存储的数据分段。具体的,第二存储设备在拉取第一文件的某一数据分段时,先检查自身是否存储了该数据分段,在第二存储上未存储该数据分段时从共享存储区拉取该数据分段。
进一步的,第一存储设备可以告知其他设备,数据已被推送到共享存储区。告知方式可以有以下几种实现:
实现方式一:第一存储设备对第一文件的元数据进行第二变更,以触发所述第二存储设备从所述共享存储区获取所述第一文件的数据并存储到所述第二存储设备。
其中,第二变更指示在所述第一文件的存储布局信息指示的存储设备中增加所述共享存储区。在所述第一变更后,所述第一文件的存储布局信息指示存储所述第一文件的存储设备包含所述第一存储设备和共享存储区,且不包含所述第二存储设备。第二存储设备获取文件的第二变更后的元数据,从共享存储区中拉取第一文件的数据并存储到第二存储设备中。
示例性的,所述第一文件的归属信息为所述第二存储设备的标识,在第二变更之前,第一文件的存储布局信息包含第一存储设备的标识且不包含第二存储设备的标识。第一存储设备可以在所述第一文件的存储布局信息中增加共享存储区的标识。在第二变更之后,第一文件的存储布局信息包含第一存储设备的信息和共享存储区的标识,且不包含第二存储设备的标识。
在这种实现方式中,第一文件的第二变更后的元数据可以通过以下方式被其他设备获取:第一存储设备通过同步目标文件系统的元数据来进行第一变更,其他设备通过同步目标文件系统的元数据来获取第一文件的第二变更后的元数据。该过程可以参考步骤S802中对目标文件系统的元数据在多个设备之间同步的两种实现方式,具体不再赘述。
以目标文件系统的元数据为流式结构为例,第一存储设备在元数据流的末端增加第二元数据记录,第二元数据记录中包含第一文件的标识和第一文件的存储布局信息,所述第一存储的存储布局信息中包含共享存储区的标识(可选包含第二存储设备的标识)。
相关说明可以参见步骤S802中,迁移调度装置执行第一变更相关描述以及发送第一通知的方式的相关描述。
实现方式二:第一存储设备向第二存储设备发送推送通知,通知其他设备,数据已被推送到共享存储区。
情况二:第一存储设备向第二存储设备推送所述第一文件的数据,相应的,第二存储设备从第一存储设备处拉取该第一文件的数据。
例如,第一存储设备和第二存储设备已经建立过连接或者确认对端设备为可信设备,则第一存储设备可以直接向第二存储设备推送第一文件的数据,而不用经过中间设备,提升数据迁移的效率。
再如,第一存储设备和第二存储设备是位于同一数据中心的设备,则第一存储设备可以向第二存储设备推送第一文件的数据。
一些可能的场景中,第一文件的数据以多个数据分段的形式存储,此时,第二存储设备从第一存储设备上拉取的数据分段为第二存储设备上未存储的数据分段。
应理解,上述两种情况仅为示例,具体实施过程中也可以有其他的设计。
作为一种可能的实施方式,在文件的数据以多个数据分段的形式进行存储时。推送数据也可以以数据分段的方式进行推送。
可选的,第二存储设备存储第一文件的数据后,对第一文件的元数据执行第三变更。第三变更指示在所述第一文件的存储布局信息指示的存储设备中增加所述第二存储设备。可选的,当文件的数据以多个数据分段的形式存储、存储布局信息中包含文件的位图的情况下,第二存储设备在拉取一个数据分段以后,则第二存储设备可以变更第二存储设备对应的文件的位图,以指示第二存储设备上已存储该数据分段。
或者,第二存储设备在存储了第一文件的数据后,发送通知,该通知指示第二存储设备已经获取第一文件的数据。其中,该通知可以是发送给第二存储设备和/或迁移调度装置,或者是通过广播发送。
在一些可能的场景中,当第二存储设备已经存储了第一文件的数据,则第一存储设备可在本地删除第一文件的数据。
示例性地,在所述第一文件的归属信息为所述第二存储设备且所述第一文件的存储布局信息包含所述第一存储设备的标识和所述第二存储设备的标识时,第一存储设备删除第一存储设备上的第一文件的数据。
示例性地,在第一文件接收通知,而通知指示第二存储设备已经获取第一文件的数据的情况下,第一存储设备删除第一存储设备上的第一文件的数据,避免多个存储设备重复存储某一个文件的数据,释放存储空间,优化整体存储成本。
作为一种可能的方案,当文件的数据以多个数据分段的形式存储时,在第二存储设备上存储了第一文件的全部数据分段后,第一存储设备在本地删除第一文件的数据分段。这样可以避免因为数据迁移过程中的错误而导致文件的数据被损坏,而使得文件的数据不再完整的问题。
进一步的,第一存储设备可以对所述第一文件的元数据执行第四变更操作,第四变更操作指示将第一存储设备的标识从第一文件的存储布局信息中删除。
作为一种可能的实施方式中,在第一存储设备删除第一文件的数据之前,可以先将所述第一文件的数据标记为可删除,以便于在所述第一文件的数据处于可删除状态时执行删除操作。例如,当第一文件的数据正在使用,不便于立即执行删除操作,此时可以先标记第一文件的数据,等到文件使用结束后删除。
再如,在删除文件之前,先将文件标记为可删除,可删除的文件无法通过正常方式访问到,等到满足预设条件时在统一删除文件。这里的预设条件可以是,标记为可删除的时间达到预设时长、标记文可删除的数据达到预设大小等。这样可以方便用户在第一存储设备上找回第一文件的数据,减少因为误操作带来的数据丢失,提升用户体验。
在一些可能的场景中,迁移调度装置可以基于文件的归属信息和存储布局信息,确定任务的执行进度。具体的,触发迁移、数据迁移和删除本地数据的过程都可能对文件的元数据进行变更,通过监控文件的元数据的变更(尤其是文件的归属信息的变更和文件的存储布局信息的变更),可以确定任务的执行进度,便于用户了解任务的执行情况。另外,对于进展缓慢或者失败的任务等,可以尽快进行处理,提升系统稳定性。
如图9所示是本申请实施例提供的一种第一文件的元数据的变更的示意图。示例性的,元数据的变更可以包含几下几个阶段:
阶段(1),触发迁移之前的元数据。元数据901为未触发数据迁移之前第一文件的元数据,包含第一文件的标识(inode为60)、第一文件的归属信息(即归属元数据)和第一文件的存储布局信息(即布局元数据),可以看出,第一文件的归属设备为设备S1,设备S1存在第一文件的数据。可选的,元数据901还包含第一文件的父节点的inode(表示为pinode)。
阶段(2),触发迁移之后、数据迁移之前的元数据。元数据901可以被执行变更,经过变更后的第一文件的元数据为元数据902。可以看出,第一文件的归属设备被变更为设备S2。由于设备S2上不存在第一文件的元数据,因此触发从设备S1至设备S2的迁移。
阶段(3),数据迁移之后、释放空间之前的元数据。将第一文件的数据从设备S1迁移到设备S2后,第一文件的布局元数据需要对应更新。根据元数据903可以看出,设备S2上已经存在第一文件的数据。
阶段(4),释放存储空间之后前的元数据。为了释放存储空间,在设备S1上存储的第一文件的数据可以被删除,而删除设备S1存储的第一文件的数据后,第一文件的存储布局信息也需要对应更新。从元数据904可以看出,文件的布局元数据指示设备S1上不存在第一文件的元数据。
当然,上述图9所示的4个阶段的元数据是为了方便理解元数据的变更所列举的一种可能的情况,不作为对元数据的变更阶段和元数据格式的限定。具体实施过程中,数据迁移可以包含更多或者更少的元数据变更阶段,或者,元数据中的归属元数据和布局元数据也可以有其他设计。
一些场景中,第一存储设备和/或第二存储设备可以生成本地文件视图。其中,本地文件是指文件的归属为本设备和/或文件的存储布局信息指示本身设备的文件。
示例性的,第二存储设备提供所述第二存储设备的本地文件视图,本地文件视图指示存储在所述第二存储设备上的多个文件的层次结构。其中,该多个文件的存储布局信息指示第二存储设备,和/或,该多个文件的归属信息指示第二存储设备。如图4所示中,存储设备S1可以提供本地文件视图。
在图8所示的实施例通过变更文件的元数据来触发文件的数据迁移,当文件的归属为第二存储设备而文件的数据仍然存储在第一存储设备上时,则将第一文件从所述第一存储设备迁移到第二存储设备。迁移调度装置、源设备和目的设备能够基于对文件的元数据的变更(如,对文件的归属、存储布局等元数据的变更)来触发对该文件的迁移,而且该文件迁移的进度也能够通过该文件的元数据的状态来反映。该方法可以提高数据迁移的效率,提升在数据使用和管理上的便捷性,还实现了迁移过程中各个设备的解耦,极大地提高业务系统的灵活性和可扩展性。
另外,使用该方法进行迁移时,文件的数据的存储位置仍然通过存储布局信息来指示,因此上述的数据迁移方法可以不影响用户对于文件的数据的正常使用,提升了业务系统的稳定性。
以上图8所示的方法实施例中包含了很多可能的实现方案,下面对其中的部分实现方案进行举例说明,需要说明的是,下文中未解释到的相关概念、操作或者逻辑关系可以参照图8所示实施例中的相应描述。
请参见图10,图10是本申请实施例提供的又一种数据迁移方法的流程示意图。可选的,该方法可以应用于前述的数据迁移系统中,例如图1、图3或图5所示的数据迁移系统。
如图10所示的数据迁移方法可以包括步骤S1001至步骤S1008中的一个或者多个步骤。应理解,本申请为了方便描述,故通过S1001至S1008这一顺序进行描述,并不旨在限定一定通过上述顺序进行执行。本申请实施例对于上述一个或多个步骤的执行的先后顺序、执行的时间、执行的次数等不做限定。步骤S1001至步骤S1008具体如下:
步骤S1001:迁移调度装置确定针对第一文件的迁移任务。
相关描述可以参见步骤S801的描述。
步骤S1002:迁移调度装置对第一文件的元数据执行第一变更。
第一变更指示第一文件归属的存储设备从第一存储设备变更为第二存储设备。
例如,第一变更指示将第一文件的归属信息从第一存储设备的标识变更为第二存储设备的标识。请参见图11,图11是本申请实施例提供的又一种第一文件的元数据的变更的示意图。第一文件的元数据1101经过第一变更,得到元数据1102。在元数据1102中,第一文件的归属信息包含第二存储设备的标识。
第一存储设备可以获取文件的归属信息的变更。示例性的,第一存储设备可以获取第一文件的第一变更后的元数据。例如,迁移调度装置在元数据流中追加元数据1102,相应的,第一存储设备可以获取在元数据流中追加的记录。
可选的,图10所示的数据迁移方法中还包含步骤S1003,具体如下:
步骤S1003:迁移调度装置根据第一文件的归属信息和存储布局信息,确定迁移进度。
示例性的,当第一文件的归属信息指示的存储设备为第二存储设备,但第一文件的存储布局信息指示存储所述第一文件的存储设备不包含第二存储设备且包含第一存储设备时,迁移进度为未开始。
当第一文件的归属信息指示的存储设备为第二存储设备,但第一文件的存储布局信息指示存储所述第一文件的存储设备包含第一存储设备和共享存储区但不包含第二存储设备时,迁移进度为:源设备已推送数据。
当第一文件的归属信息指示的存储设备为第二存储设备,但第一文件的存储布局信息指示存储所述第一文件的存储设备包含第一存储设备和第二存储设备时,迁移进度为:目标设备已拉取数据。
当第一文件的归属信息指示的存储设备为第二存储设备,但第一文件的存储布局信息指示存储所述第一文件的存储设备包含第二存储设备但不指示第一存储设备时,迁移进度为:已完成。
请参见图11,图11是本申请实施例提供的一种第一文件的元数据的变更的示意图。元数据1101为迁移未触发之前第一文件的元数据,元数据1102为触发迁移之后的第一文件的元数据,元数据1103为源设备推送第一文件的数据之后的元数据,元数据1104为目标设备拉取第一文件的数据之后的元数据,元数据1105为源设备删除本地的第一文件的数据之后的元数据。
步骤S1004:第一存储设备向共享存储区推送第一文件的数据。
其中,共享存储区是一个提供存储空间的中间设备。共享存储区与第一存储设备相连,第一存储设备可以向共享存储区推送数据。进一步的,共享存储区还可以与第二存储设备相连,第二存储设备从共享存储区拉取数据。
可选的,共享存储区可以由全局数据服务提供。或者可选的,共享存储区由第三方临时存储设备、中间设备提供。
作为一种可能的实施方式,第一文件的归属变更被同步到第一文件的数据所在的设备(即第一存储设备),第一存储设备检测到第一文件的归属不是本设备,且布局元数据显示数据在本地但不在归属设备(即第二存储设备),则源设备推送(或称为发布)第一文件的数据到共享存储区。
可选的,源设备向共享存储区推送数据后,源设备中可以先不删除本地的第一文件的数据,降低由于后续步骤执行失败而造成第一文件的数据丢失的风险,提升系统稳定性。
作为一种可能的方式,由于共享存储区中可能已经存储有第一文件的数据,为了避免数据的重复推送。第一存储设备在检测到第一文件的归属不是本设备,且布局元数据显示数据在本地但不在归属设备(即第二存储设备)和共享存储区时,向共享存储区推送(或称为发布)第一文件的数据。
步骤S1005:第一存储设备对第一文件的元数据执行第二变更。
第一变更指示在所述第一文件的存储布局信息指示的存储设备中增加共享存储区。在第二变更后,第一文件的存储布局信息指示存储第一文件的存储设备包含第一存储设备和共享存储区,且不包含第二存储设备。
例如,第一存储设备在第一文件的存储布局信息中增加共享存储区的标识。如图11所示,经过第二变更后的元数据1104中包含共享存储区的标识(即:共享存储区p1)。
可选的,第二存储设备可以获取第一文件的经过第二变更后的元数据。
步骤S1006:第二存储设备从共享存储区拉取第一文件的数据。
步骤S1007:第二存储设备对第一文件的元数据执行第三变更。
第三变更指示在所述第一文件的存储布局信息指示的存储设备中增加第二存储设备。例如,第二存储设备在第一文件的存储布局信息中增加第二存储设备的标识。示例性的,如图11所示,经过第三变更后的元数据1103中包含设备S2的标识(即:设备S2)。
可选的,由于第二存储设备拉取第一文件的数据后,共享存储区中可以删除在共享存储区中的第一文件的数据。因此,第三变更还可以指示在第一文件的存储布局信息指示的存储设备中删除共享存储区。例如,第二存储设备可以在第一文件的存储布局信息中删除共享存储区的标识。
或者可选的,提供共享存储区的设备也可以对第一文件的元数据进行变更,以在第一文件的存储布局信息指示的存储设备中删除共享存储区。
第一文件的第三变更后的元数据可以同步给第一存储设备和/或迁移调度装置。例如,通过目标文件的元数据进行同步,或者,第二存储设备将第一文件的第三变更后的元数据发送给第一存储设备。相关描述可以参考步骤S802和步骤S806中同步第一变更和第二变更的方式。
步骤S1008:第一存储设备删除存储在第二存储设备上的第一文件的数据。
具体的,在第一文件的归属设备上已经存在第一文件的数据时,第一存储设备可以删除本地的第一文件的数据,以释放存储空间,降低存储成本。
作为一种可能的方案,在所述第一文件的归属信息为所述第二存储设备且所述第一文件的存储布局信息包含所述第一存储设备的标识时,第一存储设备删除第一存储设备上的第一文件的数据。
可选的,第一存储设备可以同步第一文件的第三变更后的元数据,从而确定所述第一文件的归属信息为所述第二存储设备且所述第一文件的存储布局信息包含所述第一存储设备的标识。
步骤S1009:第一存储设备对第一文件的元数据执行第四变更。
在所述第一文件的存储布局信息指示的存储设备中删除第一存储设备。
例如,第一存储设备将第一存储设备的标识从第一文件的存储布局信息中删除。如图11所示,经过第四变更后的元数据1105中不包含设备S1的标识。
在图10所示的实施例中,迁移调度装置、源设备和目的设备能够文件的元数据的变更来实现数据迁移,而且数据迁移的进度也能够通过文件的元数据来反映。迁移调度装置、第一存储设备、第二存储设备之间无需为了数据迁移而建立额外的数据访问安全控制,简化了数据迁移的流程。对于第一存储设备和第二存储设备来说,通过更新文件的归属信息和存储布局信息,来向对方指示其完成的操作,可以提高数据迁移的效率,提升在数据使用和管理上的便捷性。总之,本申请实施例不仅能够提升数据迁移的效率,并且实现了迁移过程中各个设备的解耦,极大地提高业务系统的灵活性和可扩展性。
请参见图12,图12是本申请实施例提供的又一种数据迁移方法的流程示意图。可选的,该方法可以应用于前述的数据迁移系统中,例如图1、图3或图5所示的数据迁移系统。
如图12所示的数据迁移方法可以包括步骤S1201至步骤S1208中的一个或者多个步骤。应理解,本申请为了方便描述,故通过S1001至S1008这一顺序进行描述,并不旨在限定一定通过上述顺序进行执行。本申请实施例对于上述一个或多个步骤的执行的先后顺序、执行的时间、执行的次数等不做限定。步骤S1001至步骤S1008具体如下:
步骤S1201:迁移调度装置确定针对第一文件的迁移任务。
相关描述可以参见步骤S801的描述。
步骤S1202:迁移调度装置对第一文件的元数据执行第一变更。
相关描述可以参见步骤S802的描述。
可选的,图12所示的数据迁移方法中还包含步骤S1203,具体如下:
步骤S1203:迁移调度装置根据第一文件的归属信息和存储布局信息,确定迁移进度。
步骤S1204:第二存储设备获取第一文件的元数据。
其中,第一存储设备获取的第一文件的元数据为经过第一变更后的元数据。
步骤S1205:第二存储设备发送拉取请求。
具体地,第一文件的归属变更被同步到第一文件的归属设备(即第二存储设备),第二存储设备检测到第一文件的归属为本设备,且布局元数据显示数据不在本地,则第二存储设备发送拉取请求,使得存储了第一文件的数据的设备推送第一文件的数据。
可选的,拉取请求中包含第二存储设备的标识、第一文件的标识。可选还包含第一文件的归属信息和/或第一文件的存储布局信息。
可循的,拉取请求的发送方式可以是直接发送方式,或者间接发送方式。
示例性地,第二存储设备在广播消息队列中写入拉取请求,其他设备(例如第一存储设备)通过读取广播消息队列,可以接收该拉取请求。
可选的,由于第一文件的存储布局信息包含第一存储设备的信息,第二存储设备可以向第二存储设备发送拉取请求,以使地第一存储设备推送第一文件的数据。
作为一种可能的方式,由于共享存储区中可能已经存储有第一文件的数据,为了避免数据的重复推送。第二存储设备在检测到第一文件的归属不是本设备,且布局元数据显示数据不在本地也不在共享存储区时,发送拉取请求。
步骤S1206:第一存储设备向共享存储区推送第一文件的数据。
具体地,第一存储设备接收拉取请求。响应于拉取请求,第一存储设备向共享存储区推送第一文件的数据。
作为一种可能的实施方式,拉取请求包含第一文件的归属信息和第一文件的存储布局信息。第一存储设备根据拉取请求,确定第一文件的归属不是本设备,且布局元数据显示数据在本地但不在归属设备(即第二存储设备),则第一存储设备推送(或称为发布)第一文件的数据到共享存储区。
步骤S1207:第一存储设备对第一文件的元数据执行第二变更。
相关描述可以参考步骤S1005。
步骤S1208:第二存储设备从共享存储区拉取第一文件的数据。
步骤S1209:第二存储设备对第一文件的元数据执行第三变更。
相关描述可以参考步骤S1007。
步骤S1210:第一存储设备删除存储在第二存储设备上的第一文件的数据。
相关描述可以参考步骤S1008。
步骤S1211:第一存储设备对第一文件的元数据执行第四变更。
相关描述可以参考步骤S1009。
在图12所示的实施例中,由数据迁移的目的设备主动发送拉取请求,可以解决由于目的设备不在线或者目的设备故障造成的数据迁移失败的问题,提升数据迁移的成功率。
上面说明了本申请实施例的方法,下面提供本申请实施例的装置。
可以理解的是,本申请实施例提供的多个装置,例如数据迁移装置、迁移调度装置等,为了实现上述方法实施例中的功能,其包含了执行各个功能相应的硬件结构、软件单元、或硬件结构和软件结构的组合等。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的多种功能,装置以及装置中的模块能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以在不同的使用场景中,使用不同的装置实现方式来实现前述的方法实施例,对于装置的不同实现方式不应认为超出本申请实施例的范围。
以下列举几种可能的装置。
请参见图13,图13是本申请实施例提供的一种迁移调度装置130的结构示意图。该迁移调度装置130可以包括任务确定模块1301和元数据更新模块1302。该迁移调度装置130用于实现前述的数据迁移方法,例如图8、图10或图12所示实施例中的数据迁移方法。
在一种可能的实施方式中,所述任务确定模块1301,用于确定针对第一文件的迁移任务,所述第一文件的数据存储在第一存储设备上,所述针对第一文件的迁移任务指示将所述第一文件的数据从所述第一存储设备迁移到第二存储设备;
所述元数据更新模块1302,用于对所述第一文件的元数据进行第一变更,以触发执行所述针对第一文件的迁移任务;其中,所述第一变更指示所述第一文件归属的存储设备从所述第一存储设备变更为所述第二存储设备。
在又一种可能的实施方式中,第一文件的元数据包含所述第一文件的归属信息和所述第一文件的存储布局信息。进行第一变更以前,所述第一文件的归属信息指示的存储设备为第一存储设备,所述第一文件的存储布局信息指示存储第一文件的存储设备包含第一存储设备且不包含第二存储设备。
可选的,第一文件的归属信息为第一存储设备的标识,第一文件的存储布局信息包含第一存储设备的标识且不包含第二存储设备的标识。
在又一种可能的实施方式中,所述元数据更新模块1302,用于将所述第一文件的归属信息从所述第一存储设备的标识变更为所述第二存储设备的标识。
在又一种可能的实施方式中,针对第一文件的迁移任务包括所述第一文件的标识、所述第一存储设备的标识和所述第二存储设备的标识。
在又一种可能的实施方式中,所述第一文件属于目标文件系统,所述第一文件的元数据包含于所述目标文件系统的元数据中,所述目标文件系统的元数据在多个设备之间同步。上述多个设备包含第一计算设备和第二计算设备,第一计算设备位于第一存储设备中或与第一存储设备相连,第二计算设备位于第二存储设备中或与第二存储设备相连。进一步的,上述多个设备还可以包含迁移调度装置。
在又一种可能的实施方式中,所述迁移调度装置130还包含通信模块1303,所述通信模块1303,用于发送第一通知,所述第一通知指示所述第一文件的元数据发生了变更,以使得所述第一计算设备或所述第二计算设备根据所述第一通知获取所述第一文件的所述第一变更后的元数据,并根据所述第一文件的所述第一变更后的元数据执行针对第一文件的迁移任务。
可选的,第一通知指示第一文件的元数据发生了哪些变更,例如,第一通知可以包含第一变更的内容,和/或,第一通知可以包含第一文件的所述第一变更后的元数据。或者可选的,可选的,第一通知指示发生了第一变更,但不包含变更的具体内容和第一文件的第一变更后的元数据。
在又一种可能的实施方式中,所述迁移调度装置还包含任务监控模块1304,所述任务监控模块1304,用于:
获取所述第一文件的第二变更后的元数据,所述第二变更由所述第一计算设备或所述第二计算设备执行,所述第二变更指示所述第一文件的存储布局信息的变化;
根据所述第一文件的所述第二变更后的元数据,确定所述第一文件的迁移进度。
在又一种可能的实施方式中,目标文件系统的元数据在多个设备的本地进行存储。
在又一种可能的实施方式中,所述目标文件系统的元数据存储在全局元数据服务。其中,全局元数据服务能够存储目标文件系统的元数据。进一步的,全局元数据服务能够支持对目标文件系统的元数据的访问和更新。
在又一种可能的实施方式中,迁移调度装置130还包含通信模块1303,所述通信模块1303,用于:
接收第二通知,所述第二通知指示所述第一文件的元数据发生了变更。
在又一种可能的实施方式中,所述任务监控模块1304,还用于:
根据所述第二通知获取所述第一文件的第二变更后的元数据。可选的,第二通知包含第二变更的内容,或者,第二通知包含所述第一文件的第二变更后的元数据。
在又一种可能的实施方式中,通知(例如第一通知、或第二通知等)可以通过消息队列的形式发送。由发送方将消息写入消息队列,接收方通过读取消息队列来接收通知,从而进一步减少不同功能模块之间的耦合度。
在又一种可能的实施方式中,所述通信模块1303,还用于:向所述第一计算设备或所述第二计算设备发送用于获取所述第一文件的变更后的元数据的请求;
所述任务监控模块1304,还用于:根据所述第一计算设备或所述第二计算设备对所述请求的响应获取所述第一文件的第二变更后的元数据。
在又一种可能的实施方式中,所述任务监控模块1304,还用于从所述全局元数据服务获取所述第一文件的所述第二变更后的元数据。
在又一种可能的实施方式中,全局元数据服务提供服务接口,所述迁移调度装置可以调用服务接口来实现对元数据的访问和更新。
其中,服务接口是一种通信接口,例如应用程序接口(application programminginterface,API),能够用于不同的功能模块之间数据交互并提供服务。
在又一种可能的实施方式中,所述元数据更新模块1302,还用于:
通过所述全局元数据服务提供的服务接口来实现所述第一变更。
在又一种可能的实施方式中,所述全局元数据服务位于所述多个设备中的任意一个设备上,或者位于所述多个设备之外的任意一个设备上。
示例性的,所述全局元数据服务位于第三计算设备,第三计算设备可以与第一计算设备或第二计算设备相同的计算设备,也可以是二者之外的另一计算设备。
可选的,全局元数据服务的服务接口可以是由第三计算设备向迁移调度装置提供的。或者,第三计算设备可以向迁移调度装置提供另一个接口(便于区分称为第一接口),通过调用该第一接口可以实现调用全局元数据服务的服务接口的功能。
在又一种可能的实施方式中,所述目标文件系统的元数据为表式结构且元数据可以被修改。其中,表式结构是一种包含行和列的数据接口,每一行(或者每一列)包含多个值,每个值对应了一个字段。
表式结构的元数据可以增加元数据、删除元数据,也可以修改已有的元数据。也即是或,第一变更可以通过修改目标文件系统的元数据的方式实现。
在又一种可能的实施方式中,所述目标文件系统的元数据为流式结构且包含多条元数据记录,每条元数据记录包含一个节点的标识和所述一个节点的属性,其中,节点为文件或目录,所述节点的属性包含所述节点的归属信息和所述节点的存储布局信息。
在又一种可能的实施方式中,所述元数据更新模块1302,还用于:
在所述目标文件系统的元数据的末端追加第一元数据记录,所述第一元数据记录包括所述第一文件的标识和所述第一文件的变更后的归属信息,所述第一文件的变更后的归属信息指示所述第一文件归属的存储设备为所述第二存储设备。
在又一种可能的实施方式中,所述任务确定模块1301,还用于:
根据外部事件信息,确定所述针对第一文件的迁移任务;
所述外部事件信息包含以下信息中的一项或者多项:网络连接情况、设备健康情况或所述第一文件相关的人员调动状况。
在又一种可能的实施方式中,所述任务确定模块1301,还用于:
根据所述第一文件的元数据的分析结果,确定所述针对第一文件的迁移任务;其中,所述分析结果包含以下一项或者多项信息:所述第一文件的冷热状态、所述第一文件的安全性或所述第一文件相关的业务。
在又一种可能的实施方式中,所述任务确定模块1301,还用于:
根据用户输入的针对所述第一文件的迁移指示,确定所述针对第一文件的迁移任务。
在又一种可能的实施方式中,所述任务确定模块1301,还用于确定针对第二文件的迁移任务;
所述迁移调度装置130还包含,任务编排模块1305,所述任务编排模块1305用于编排所述针对第一文件的迁移任务和所述针对第二文件的迁移任务的执行顺序。
作为一种可能的设计,编排任务可以包含确定任务的执行顺序、执行优先级等。
作为又一种可能的设计,编排任务的过程中可以合并多个任务。
请参见图14,图14是本申请实施例提供的一种计算装置140的结构示意图。该计算装置140用于实现前述的数据迁移方法,例如图8、图10或图12所示实施例中的数据迁移方法。
可选的,该计算装置140包含于前述实施例中的存储设备、计算设备等,例如包含于图1、图2、图3、图8、图10或图12所示实施例中第一存储设备、或第二存储设备。再如,包含于图4的存储设备S1、存储设备S2和/或存储设备S3中。
或者,该计算装置140为独立的设备,能够与前述的存储设备或计算设备连接。
在一种可能的设计中,该计算装置140可以包括元数据获取模块1401和迁移模块1402。计算装置140用于实现图8或图10所示实施例中,第一存储设备一侧的方法。
在一种可能的实施方式中,所述元数据获取模块1401,用于获取第一文件的元数据,所述第一文件的元数据包含所述第一文件的归属信息和所述第一文件的存储布局信息;
所述迁移模块1402,用于在确定所述第一文件的归属信息指示的存储设备为第二存储设备,且第一文件的存储布局信息指示存储所述第一文件的存储设备不包含所述第二存储设备且包含所述第一存储设备时,将所述第一文件的数据从所述第一存储设备迁移到所述第二存储设备。
在又一种可能的实施方式中,所述第一文件属于目标文件系统,所述第一文件的元数据包含于所述目标文件系统的元数据中,所述目标文件系统的元数据在多个设备之间同步,所述多个设备包含所述计算装置或者所述计算装置所在的第一计算设备。
在又一种可能的实施方式中,所述目标文件系统的元数据存储在全局元数据服务中且通过所述全局元数据服务在所述多个设备之间同步;
所述元数据获取模块1401,还用于:
从所述全局元数据服务获取所述第一文件的当前的元数据。
在又一种可能的实施方式中,所述迁移模块1402,还用于:
向共享存储区推送所述第一文件的数据;所述共享存储区与所述第一计算设备和第二计算设备相连,所述第二计算设备位于所述第二存储设备中或与所述第二存储设备相连;
所述计算装置140还包含元数据更新模块1403,所述元数据更新模块1403,用于对所述第一文件的元数据执行第一变更,以触发所述第二计算设备从所述共享存储区获取所述第一文件的数据并存储到所述第二存储设备中,所述第一变更指示在所述第一文件的存储布局信息指示的存储设备中增加所述共享存储区;在所述第一变更后,所述第一文件的存储布局信息指示存储所述第一文件的存储设备包含所述第一存储设备和共享存储区,且不包含所述第二存储设备。
在又一种可能的实施方式中,所述第一文件的归属信息为所述第二存储设备的标识,在所述第一变更之前,所述第一文件的存储布局信息包含所述第一存储设备的标识且不包含所述第二存储设备的标识;
所述元数据更新模块1403,还用于:
在所述第一文件的存储布局信息中增加所述共享存储区的标识。
在又一种可能的实施方式中,所述计算装置140还包含通信模块1404,所述通信模块1404,用于:
接收第一通知,所述第一通知指示所述第一文件的元数据发生了变更。
在又一种可能的实施方式中,所述计算装置140还包含通信模块1404,所述通信模块1404,用于:
发送第二通知,所述第一通知指示所述第一文件的元数据发生了变更。
在又一种可能的实施方式中,所述元数据获取模块1401,还用于:
同步目标文件系统的元数据,所述目标文件系统的元数据包含所述第一文件的元数据。
在又一种可能的实施方式中,所述目标文件系统的元数据为流式结构且包含多条元数据记录,每条元数据记录包含一个节点的标识和所述一个节点的属性,其中,节点为文件或目录,所述节点的属性包含所述节点的归属信息和所述节点的存储布局信息;
所述元数据更新模块1403,还用于:在所述目标文件系统的元数据的末端追加第一元数据记录,所述第一元数据记录包括所述第一文件的标识和所述第一文件的存储布局信息,所述第一文件的存储布局信息指示存储所述第一文件的存储设备包含所述第一存储设备和所述共享存储区。
在又一种可能的实施方式中,所述计算装置140还包含删除控制模块1405,所述删除控制模块1405,用于:
当获取到所述第一文件的第二变更后的元数据时,删除所述第一存储设备上的所述第一文件的数据;所述第二变更指示所述第一文件的存储布局信息的变化,在所述第二变更后,所述第一文件的存储布局信息指示存储所述第一文件的存储设备包含所述第一存储设备且包含所述第二存储设备;
所述元数据更新模块1403,还用于:对所述第一文件的元数据执行第三变更,所述第三变更指示在所述第一文件的存储布局信息指示的存储设备中删除所述第一存储设备;在所述第三变更后,所述第一文件的存储布局信息指示存储所述第一文件的存储设备不包含所述第一存储设备。
在一种可能的实施方式中,所述删除控制模块1405,还用于:
将所述第一文件的数据标记为可删除,以使得在所述第一文件的数据处于可删除状态时执行删除所述第一文件的操作。
在一种可能的实施方式中,所述迁移模块1402,还用于:
向第二计算设备推送所述第一文件的数据。
在一种可能的实施方式中,所述计算装置140还包含通信模块1404,所述通信模块1404,用于:
接收来自所述第二计算设备的针对所述第一文件的拉取请求。
在又一种可能的实施方式中,所述计算装置140还包含视图提供模块1406,视图提供模块1406用于提供所述第一存储设备的归属文件视图,所述归属本地文件视图包含多个文件的信息,该多个文件的归属信息指示所述第一存储设备。
在又一种可能的实施方式中,归属于第一存储设备的文件和归属于第二存储设备的文件属于全局文件系统。所述计算装置140还包含视图提供模块1406,视图提供模块用于提供全局文件视图,所述全局文件视图包含归属于第一存储设备的文件的信息和归属于第二存储设备的文件的信息。
在又一种可能的设计中,该计算装置140可以包括元数据获取模块1401和迁移模块1402。该计算装置140用于实现图8、图10或图12所示实施例中,第二存储设备一侧的方法。
在又一种可能的实施方式中,所述元数据获取模块1401,用于获取第一文件的元数据,所述第一文件的元数据包含所述第一文件的归属信息和所述第一文件的存储布局信息;
所述迁移模块1402,用于在所述第一文件的归属信息指示所述第一文件归属的存储设备为所述第二存储设备,且第一文件的存储布局信息指示存储所述第一文件的存储设备不包含所述第二存储设备时,从存储所述第一文件的数据的设备拉取所述第一文件的数据到所述第二存储设备。
在又一种可能的实施方式中,所述计算装置140还包含元数据更新模块1403,所述元数据更新模块1403,还用于:
对所述第一文件的元数据执行第一变更,所述第一变更指示在所述第一文件的存储布局信息指示的存储设备中增加所述第二存储设备。
在又一种可能的实施方式中,所述第一文件的归属信息为所述第二存储设备的标识,在所述第一变更之前,所述第一文件的存储布局信息不包含所述第二存储设备的标识;
所述元数据更新模块1403,还用于:
在所述第一文件的存储布局信息中增加所述第二存储设备的标识。
在又一种可能的实施方式中,所述第一文件的存储布局信息指示存储所述第一文件的存储设备包含第一存储设备。所述计算装置140还包含通信模块1404,所述通信模块1404用于:
发送针对所述第一文件的拉取请求,所述拉取请求用于指示第一计算设备推送所述第一文件;所述第一计算设备位于第一存储设备中或与所述第一存储设备相连。
在又一种可能的实施方式中,所述第一文件的存储布局信息指示存储所述第一文件的存储设备包含共享存储区。所述迁移模块1402,用于:
从所述共享存储区拉取所述第一文件的数据到所述第二存储设备。
在又一种可能的实施方式中,所述第一文件的存储布局信息指示存储所述第一文件的存储设备包含第一存储设备。所述迁移模块1402,还用于:
从第一存储设备拉取所述第一文件的数据到所述第二存储设备。
在又一种可能的实施方式中,所述第一文件属于目标文件系统,所述第一文件的元数据包含于所述目标文件系统的元数据中,所述目标文件系统的元数据存储在全局元数据服务中;
所述元数据获取模块1401,还用于:
从所述全局元数据服务获取所述第一文件的当前的元数据。
在又一种可能的实施方式中,所述目标文件系统的元数据为流式结构且包含多条元数据记录,每条元数据记录包含一个节点的标识和所述一个节点的属性,其中,节点为文件或目录,所述节点的属性包含所述节点的归属信息和所述节点的存储布局信息。所述对所述第一文件的元数据执行第一变更,包括:
在所述目标文件系统的元数据的末端追加第一元数据记录,所述第一元数据记录包括所述第一文件的标识和所述第一文件的存储布局信息,所述第一文件的存储布局信息包含所述第二存储设备的标识。
在又一种可能的实施方式中,所述计算装置140还包含视图提供模块1406,视图提供模块用于提供所述第一存储设备的本地文件视图,所述本地文件视图指示存储在所述第一存储设备上的多个文件的层次结构,所述多个文件的存储布局信息指示所述第一存储设备。
在又一种可能的实施方式中,所述计算装置140还包含视图提供模块1406,视图提供模块用于提供所述第一存储设备的归属文件视图,所述归属本地文件视图包含多个文件的信息,该多个文件的归属信息指示所述第一存储设备。
在又一种可能的实施方式中,归属于第一存储设备的文件和归属于第二存储设备的文件以联邦构成全局文件系统。所述计算装置还包含视图提供模块1406,视图提供模块1406用于提供全局文件视图,所述全局文件视图包含归属于第一存储设备的文件的信息和归属于第二存储设备的文件的信息。
在一种可能的设计中,该计算装置140可以包括通信模块1404、迁移模块1402和元数据更新模块1403。计算装置140用于实现图12所示实施例中,第一存储设备一侧的方法。
一种可能的实施方式中,所述通信模块1404,用于接收来自第二计算设备的针对所述第一文件的拉取请求,所述第二计算设备与第二存储设备相连;
所述迁移模块1402,用于向共享存储区推送所述第一文件的数据;
所述元数据更新模块1403,用于对所述第一文件的元数据执行第一变更,以触发所述第二计算设备从所述共享存储区获取所述第一文件的数据并存储到所述第二存储设备中,所述第一变更指示在所述第一文件的存储布局信息指示的存储设备中增加所述共享存储区;在所述第一变更后,所述第一文件的存储布局信息指示存储所述第一文件的存储设备包含所述第一存储设备和共享存储区,且不包含所述第二存储设备。
在又一种可能的实施方式中,所述第一文件的归属信息为所述第二存储设备的标识,在所述第一变更之前,所述第一文件的存储布局信息包含所述第一存储设备的标识且不包含所述第二存储设备的标识;
所述元数据更新模块1403,还用于:
在所述第一文件的存储布局信息中增加所述共享存储区的标识。
在又一种可能的实施方式中,所述第一文件属于目标文件系统,所述第一文件的元数据包含于所述目标文件系统的元数据中,所述目标文件系统的元数据在多个设备之间同步,所述多个设备包含所述第一计算设备。
在又一种可能的实施方式中,所述通信模块1404,还用于:
发送第一通知,所述第一通知指示所述第一文件的元数据发生了变更。
在又一种可能的实施方式中,所述目标文件系统的元数据为流式结构且包含多条元数据记录,每条元数据记录包含一个节点的标识和所述一个节点的属性,其中,节点为文件或目录,所述节点的属性包含所述节点的归属信息和所述节点的存储布局信息;
所述元数据更新模块1403,用于:
在所述目标文件系统的元数据的末端追加第一元数据记录,所述第一元数据记录包括所述第一文件的标识和所述第一文件的存储布局信息,所述第一文件的存储布局信息指示存储所述第一文件的存储设备包含所述第一存储设备和所述共享存储区。
在又一种可能的实施方式中,所述计算装置140包含元数据获取模块1401,所述元数据获取模块1401获取所述第一文件的第二变更后的元数据。
在又一种可能的实施方式中,所述计算装置140包含删除控制模块1405,所述删除控制模块1405,用于当获取到所述第一文件的第二变更后的元数据时,删除所述第一存储设备上的所述第一文件的数据;所述第二变更指示所述第一文件的存储布局信息的变化,在所述第二变更后,所述第一文件的存储布局信息指示存储所述第一文件的存储设备包含所述第一存储设备且包含所述第二存储设备;
所述元数据更新模块1403,用于对所述第一文件的元数据执行第三变更,所述第三变更指示在所述第一文件的存储布局信息指示的存储设备中删除所述第一存储设备;在所述第三变更后,所述第一文件的存储布局信息指示存储所述第一文件的存储设备不包含所述第一存储设备。
在又一种可能的实施方式中,所述删除控制模块1405,还用于:
将所述第一文件的数据标记为可删除,以使得在所述第一文件的数据处于可删除状态时执行删除所述第一文件的操作。
在又一种可能的实施方式中,所述计算装置140还包含视图提供模块1406,视图提供模块1406用于提供所述第一存储设备的归属文件视图,所述归属本地文件视图包含多个文件的信息,该多个文件的归属信息指示所述第一存储设备。
在又一种可能的实施方式中,归属于第一存储设备的文件和归属于第二存储设备的文件属于全局文件系统。所述计算装置140还包含视图提供模块1406,视图提供模块用于提供全局文件视图,所述全局文件视图包含归属于第一存储设备的文件的信息和归属于第二存储设备的文件的信息。
图15所示为本申请实施例提供的一种计算设备150的结构示意图。计算设备150是具有计算能力的设备,这里的设备可以是实体的设备,例如控制器、处理器、服务器(如机架式服务器)、主机等,也可能是虚拟的设备,例如虚拟机、容器等。
如图15所示,计算设备150包括:处理器1502和存储器1501,可选包含总线1504、通信接口1503。处理器1502和存储器1501等之间通过总线1504通信。应理解,本申请不限定计算设备150中的处理器、存储器的个数。
存储器1501用于提供存储空间,存储空间中可选存储应用数据、用户数据、操作系统和计算机程序等。存储器1501可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。存储器1501还可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM),快闪存储器,机械硬盘(hard disk drive,HDD)或固态硬盘(solid state drive,SSD)等。
处理器1502是进行运算的模块,可以包括控制器(例如存储控制器)、中央处理器(central processing unit,CPU)、微图形处理器(graphics processing unit,GPU)、微处理器(microprocessor,MP)、数字信号处理器(digital signal processor,DSP)、协处理器(协助中央处理器完成相应处理和应用)、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、微控制单元(Microcontroller Unit,MCU)、虚拟机、容器等中的任意一种或多种。
通信接口1503用于为所述至少一个处理器提供信息输入或者输出。和/或,所述通信接口1503可以用于接收外部发送的数据和/或向外部发送数据。通信接口1503可以为包括诸如以太网电缆等的有线链路接口,也可以是无线链路(Wi-Fi、蓝牙、通用无线传输及其他无线通信技术等)接口。可选的,通信接口1503还可以包括与接口耦合的发射器(如射频发射器、天线等),或者接收器等。
总线1504可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图15中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。总线1504可包括在计算设备150各个部件(例如,存储器1501、处理器1502、通信接口1503)之间传送信息的通路。
本申请实施例中,存储器1501存储有可执行的指令,处理器1502执行该可执行的指令以实现前述的数据迁移方法,例如图8、图10或图12等实施例中的数据迁移方法。也即,存储器1501上存有用于执行数据迁移方法的指令。
本申请实施例还提供一种计算设备集群,该计算设备集群包含至少一个计算设备150,每个计算设备150包括处理器1502和存储器1501;
至少一个计算设备150的处理器1502用于执行所述至少一个计算设备150的存储器1501中存储的指令,以使得计算设备集群实现前述的数据迁移方法,例如图8、图10或图12等实施例中的数据迁移方法。可选的,存储器上存有用于执行数据迁移方法的指令。
本申请实施例还提供一种存储设备,存储设备包含存储盘,以及如图14所示的计算装置或如图15所示的计算设备。存储盘用于提供存储文件的数据的空间,计算装置或计算设备用于实现前述的数据迁移方法,例如图8、图10或图12等实施例中第一存储设备一侧,和/或,第二存储设备一侧的方法。
应理解,关于存储设备的相关描述还可以参考图1、图2、图3、图4等实施方式中对于第一计算设备和第二计算设备的描述。
在一些场景中,存储设备可以为存储厂商提供的存储产品。例如,存储设备可以包含华为提供的存储产品Dorado、或Pacific等。
本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在至少一个处理器上运行时,实现前述的数据迁移方法,例如图8、图10或图12等实施例中的数据迁移方法。
其中,所述计算机可读存储介质可以是计算设备能够存储的任何可用介质,或者是包含一个或多个可用介质的数据中心等数据存储设备。所述计算机可读存储介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。
本申请提供了一种计算机程序产品,计算机程序产品包括计算机指令,当所述指令在至少一个处理器上运行时,实现前述的数据迁移方法,例如图8、图10或图12等实施例中的数据迁移方法。
可选的,该计算机程序产品可以为一个软件安装包或镜像包,在需要使用前述方法的情况下,可以下载该计算机程序产品并在计算设备上执行该计算机程序产品。
本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
本申请中实施例提到的“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a、b、或c中的至少一项(个),可以表示:a、b、c、(a和b)、(a和c)、(b和c)、或(a和b和c),其中a、b、c可以是单个,也可以是多个。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A、同时存在A和B、单独存在B这三种情况,其中A、B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。
以及,除非有相反的说明,本申请实施例使用“第一”、“第二”等序数词是用于对多个对象进行区分,不用于限定多个对象的顺序、时序、优先级或者重要程度。例如,第一存储设备和第二存储设备,只是为了便于描述,而并不是表示第一存储设备和第二存储设备的装置结构、部署顺序、重要程度等的不同。
本领域普通技术人员可以理解,实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的保护范围。

Claims (41)

1.一种数据迁移方法,其特征在于,所述方法包括:
确定针对第一文件的迁移任务,所述第一文件的数据存储在第一存储设备上,所述针对第一文件的迁移任务指示将所述第一文件的数据从所述第一存储设备迁移到第二存储设备;其中,所述第一文件的元数据包含所述第一文件的归属信息和所述第一文件的存储布局信息,所述第一文件的归属信息指示所述第一文件归属的存储设备为所述第一存储设备,所述第一文件的存储布局信息指示存储所述第一文件的存储设备包含所述第一存储设备且不包含所述第二存储设备;
对所述第一文件的元数据进行第一变更,以触发执行所述针对第一文件的迁移任务;其中,所述第一变更指示所述第一文件归属的存储设备从所述第一存储设备变更为所述第二存储设备。
2.根据权利要求1所述的方法,其特征在于,所述第一文件的归属信息为所述第一存储设备的标识,所述第一文件的存储布局信息包含所述第一存储设备的标识且不包含所述第二存储设备的标识;
所述对所述第一文件的元数据进行第一变更,包括:
将所述第一文件的归属信息从所述第一存储设备的标识变更为所述第二存储设备的标识。
3.根据权利要求1或2所述的方法,其特征在于,所述针对第一文件的迁移任务包括所述第一文件的标识、所述第一存储设备的标识和所述第二存储设备的标识。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述方法由迁移调度装置执行,所述第一文件属于目标文件系统,所述第一文件的元数据包含于所述目标文件系统的元数据中,所述目标文件系统的元数据在多个设备之间同步,所述多个设备包含所述迁移调度装置,第一计算设备和第二计算设备;其中,所述第一计算设备位于所述第一存储设备中或与所述第一存储设备相连,所述第二计算设备位于所述第二存储设备中或与所述第二存储设备相连。
5.根据权利要求4所述的方法,其特征在于,在所述对所述第一文件的元数据进行第一变更之后,所述方法还包括:
发送第一通知,所述第一通知指示所述第一文件的元数据发生了变更,以使得所述第一计算设备或所述第二计算设备根据所述第一通知获取所述第一文件的所述第一变更后的元数据,并根据所述第一文件的所述第一变更后的元数据执行所述针对第一文件的迁移任务。
6.根据权利要求4或5所述的方法,其特征在于,在触发执行所述针对第一文件的迁移任务之后,所述方法还包括:
获取所述第一文件的第二变更后的元数据,所述第二变更由所述第一计算设备或所述第二计算设备执行,所述第二变更指示所述第一文件的存储布局信息的变化;
根据所述第一文件的所述第二变更后的元数据,确定所述第一文件的迁移进度。
7.根据权利要求6所述的方法,其特征在于,在所述获取所述第一文件的第二变更后的元数据之前,所述方法还包括:
接收第二通知,所述第二通知指示所述第一文件的元数据发生了变更。
8.根据权利要求7所述的方法,其特征在于,所述迁移调度装置、所述第一计算设备和所述第二计算设备均维护有所述目标文件系统的元数据;
所述获取所述第一文件的第二变更后的元数据,包括:
根据所述第二通知获取所述第一文件的第二变更后的元数据,所述第二通知包含所述第二变更的内容,或者,所述第二通知包含所述第一文件的第二变更后的元数据。
9.根据权利要求7所述的方法,其特征在于,所述迁移调度装置、所述第一计算设备和所述第二计算设备均维护有所述目标文件系统的元数据;
所述获取所述第一文件的第二变更后的元数据,包括:
向所述第一计算设备或所述第二计算设备发送用于获取所述第一文件的变更后的元数据的请求;
根据所述第一计算设备或所述第二计算设备对所述请求的响应获取所述第一文件的第二变更后的元数据。
10.根据权利要求6或7所述的方法,其特征在于,所述目标文件系统的元数据存储在全局元数据服务中且通过所述全局元数据服务在所述多个设备之间同步;
所述获取所述第一文件的第二变更后的元数据,包括:
从所述全局元数据服务获取所述第一文件的所述第二变更后的元数据。
11.根据权利要求4-7和10中任意一项所述的方法,其特征在于,所述目标文件系统的元数据存储在全局元数据服务中且通过所述全局元数据服务在所述多个设备之间同步;
所述对所述第一文件的元数据进行第一变更,包括:
通过所述全局元数据服务提供的服务接口来实现所述第一变更。
12.根据权利要求10或11所述的方法,其特征在于,所述全局元数据服务位于所述多个设备中的任意一个设备上,或者位于所述多个设备之外的任意一个设备上。
13.根据权利要求4-12任一项所述的方法,其特征在于,所述目标文件系统的元数据为流式结构且包含多条元数据记录,每条元数据记录包含一个节点的标识和所述一个节点的属性,其中,节点为文件或目录,所述节点的属性包含所述节点的归属信息和所述节点的存储布局信息;
所述对所述第一文件的元数据进行第一变更,包括:
在所述目标文件系统的元数据的末端追加第一元数据记录,所述第一元数据记录包括所述第一文件的标识和所述第一文件的变更后的归属信息,所述第一文件的变更后的归属信息指示所述第一文件归属的存储设备为所述第二存储设备。
14.根据权利要求1-13任一项所述的方法,其特征在于,所述确定针对第一文件的迁移任务,包括:
根据外部事件信息,确定所述针对第一文件的迁移任务;
所述外部事件信息包含以下信息中的一项或者多项:网络连接情况、设备健康情况或所述第一文件相关的人员调动状况。
15.根据权利要求1-14任一项所述的方法,其特征在于,所述确定针对第一文件的迁移任务,包括:
根据所述第一文件的元数据的分析结果,确定所述针对第一文件的迁移任务;其中,所述分析结果包含以下一项或者多项信息:所述第一文件的冷热状态、所述第一文件的安全性或所述第一文件相关的业务。
16.根据权利要求1-15任一项所述的方法,其特征在于,所述确定针对第一文件的迁移任务,包括:
根据用户输入的针对所述第一文件的迁移指示,确定所述针对第一文件的迁移任务。
17.根据权利要求1-16任一项所述的方法,其特征在于,所述方法还包括:
确定针对第二文件的迁移任务;
编排所述针对第一文件的迁移任务和所述针对第二文件的迁移任务的执行顺序。
18.一种数据迁移方法,其特征在于,应用于第一计算设备,所述第一计算设备位于第一存储设备中或与所述第一存储设备相连,所述第一存储设备上存储第一文件的数据,所述方法包括:
获取第一文件的元数据,所述第一文件的元数据包含所述第一文件的归属信息和所述第一文件的存储布局信息;
在确定所述第一文件的归属信息指示的存储设备为第二存储设备,且第一文件的存储布局信息指示存储所述第一文件的存储设备不包含所述第二存储设备且包含所述第一存储设备时,将所述第一文件的数据从所述第一存储设备迁移到所述第二存储设备。
19.根据权利要求18所述的方法,其特征在于,所述第一文件属于目标文件系统,所述第一文件的元数据包含于所述目标文件系统的元数据中,所述目标文件系统的元数据在多个设备之间同步,所述多个设备包含所述第一计算设备。
20.根据权利要求19所述的方法,其特征在于,所述目标文件系统的元数据存储在全局元数据服务中且通过所述全局元数据服务在所述多个设备之间同步;
所述获取第一文件的元数据,包括:
从所述全局元数据服务获取所述第一文件的当前的元数据。
21.根据权利要求18-20任意一项所述的方法,其特征在于,所述将所述第一文件的数据从所述第一存储设备迁移到所述第二存储设备,包括:
向共享存储区推送所述第一文件的数据,所述共享存储区与所述第一计算设备和第二计算设备相连,其中,所述第二计算设备位于所述第二存储设备中或与所述第二存储设备相连;
对所述第一文件的元数据执行第一变更,以触发所述第二计算设备从所述共享存储区获取所述第一文件的数据并存储到所述第二存储设备中,所述第一变更指示在所述第一文件的存储布局信息指示的存储设备中增加所述共享存储区;在所述第一变更后,所述第一文件的存储布局信息指示存储所述第一文件的存储设备包含所述第一存储设备和共享存储区,且不包含所述第二存储设备。
22.根据权利要求21所述的方法,其特征在于,所述第一文件的归属信息为所述第二存储设备的标识,在所述第一变更之前,所述第一文件的存储布局信息包含所述第一存储设备的标识且不包含所述第二存储设备的标识;
所述对所述第一文件的元数据进行第一变更,包括:
在所述第一文件的存储布局信息中增加所述共享存储区的标识。
23.根据权利要求21或22所述的方法,其特征在于,在所述获取第一文件的元数据之前,所述方法还包括:
接收第一通知,所述第一通知指示所述第一文件的元数据发生了变更;
在对所述第一文件的元数据执行第一变更后,所述方法还包括:
发送第二通知,所述第一通知指示所述第一文件的元数据发生了变更。
24.根据权利要求12-17任一项所述的方法,其特征在于,所述方法还包括:
当获取到所述第一文件的第二变更后的元数据时,删除所述第一存储设备上的所述第一文件的数据;所述第二变更指示所述第一文件的存储布局信息的变化,在所述第二变更后,所述第一文件的存储布局信息指示存储所述第一文件的存储设备包含所述第一存储设备且包含所述第二存储设备;
对所述第一文件的元数据执行第三变更,所述第三变更指示在所述第一文件的存储布局信息指示的存储设备中删除所述第一存储设备;在所述第三变更后,所述第一文件的存储布局信息指示存储所述第一文件的存储设备不包含所述第一存储设备。
25.根据权利要求24所述的方法,其特征在于,在所述删除所述第一存储设备上的所述第一文件之前,所述方法还包括:
将所述第一文件的数据标记为可删除,以使得在所述第一文件的数据处于可删除状态时执行删除所述第一文件的操作。
26.根据权利要求18-25任一项所述的方法,其特征在于,所述方法还包括:
提供所述第一存储设备的本地文件视图,所述本地文件视图指示存储在所述第一存储设备上的多个文件的层次结构,所述多个文件的存储布局信息指示所述第一存储设备。
27.一种数据迁移方法,其特征在于,应用于第二计算设备,所述第二计算设备位于第二存储设备中或与所述第二存储设备相连,所述方法包括:
获取第一文件的元数据,所述第一文件的元数据包含所述第一文件的归属信息和所述第一文件的存储布局信息;
在所述第一文件的归属信息指示所述第一文件归属的存储设备为所述第二存储设备,且第一文件的存储布局信息指示存储所述第一文件的存储设备不包含所述第二存储设备时,从存储所述第一文件的数据的设备拉取所述第一文件的数据到所述第二存储设备。
28.根据权利要求27所述的方法,其特征在于,所述方法还包括:
对所述第一文件的元数据执行第一变更,所述第一变更指示在所述第一文件的存储布局信息指示的存储设备中增加所述第二存储设备。
29.根据权利要求27或28所述的方法,其特征在于,所述第一文件的存储布局信息指示存储所述第一文件的存储设备包含第一存储设备,在所述从存储所述第一文件的数据的设备拉取所述第一文件的数据到所述第二存储设备之前,所述方法还包括:
发送针对所述第一文件的拉取请求,所述拉取请求用于指示第一计算设备推送所述第一文件;所述第一计算设备位于第一存储设备中或与所述第一存储设备相连。
30.根据权利要求27-29任一项所述的方法,其特征在于,所述第一文件的存储布局信息指示存储所述第一文件的存储设备包含共享存储区,所述从存储所述第一文件的数据的设备拉取所述第一文件的数据到所述第二存储设备,包括:
从所述共享存储区拉取所述第一文件的数据到所述第二存储设备。
31.根据权利要求27-30任意一项所述的方法,其特征在于,所述第一文件属于目标文件系统,所述第一文件的元数据包含于所述目标文件系统的元数据中,所述目标文件系统的元数据存储在全局元数据服务中;
所述获取第一文件的元数据,包括:
从所述全局元数据服务获取所述第一文件的当前的元数据。
32.一种迁移调度装置,其特征在于,所述迁移调度装置包含任务确定模块和元数据更新模块,所述迁移调度装置用于实现权利要求1-17任一项所述的方法。
33.一种计算装置,其特征在于,所述计算装置包含元数据获取模块和迁移模块,所述迁移调度装置用于实现权利要求18-26任一项所述的方法,或者用于实现权利要求27-31任一项所述的方法。
34.一种迁移调度装置,其特征在于,所述迁移调度装置包括处理器和存储器;
所述处理器用于执行所述存储器中存储的指令,以使得所述计算设备实现如权利要求1-17任一项所述的方法。
35.一种计算设备,其特征在于,所述计算设备包括处理器和存储器;所述存储器中存储有计算机指令,所述处理器用于调用所述存储器中存储的计算机指令,以实现权利要求18-26任一项所述的方法。
36.一种存储设备,其特征在于,所述存储设备包含如权利要求35所述的计算设备以及与所述计算设备相连的存储盘。
37.一种计算设备,其特征在于,所述计算设备包括处理器和存储器;所述存储器中存储有计算机指令,所述处理器用于调用所述存储器中存储的计算机指令,以实现权利要求27-31任一项所述的方法。
38.一种存储设备,其特征在于,所述存储设备包含如权利要求37所述的计算设备以及与所述计算设备相连的存储盘。
39.一种数据迁移系统,其特征在于,所述数据迁移系统包含如权利要求36所述的存储设备和如权利要求38所述的存储设备。
40.根据权利要求39所述的数据迁移系统,其特征在于,所述数据迁移系统还包括如权利要求34所述的迁移调度装置。
41.一种计算机可读存储介质,其特征在于,包括计算机程序指令,当所述计算机程序指令被处理器执行时,实现如权利要求1-17任一项所述的方法,或者实现权利要求18-26任一项所述的方法,或者实现权利要求27-31任一项所述的方法。
CN202211102393.8A 2022-06-13 2022-09-09 数据迁移方法及相关装置 Pending CN117234412A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2023/080091 WO2023241115A1 (zh) 2022-06-13 2023-03-07 数据迁移方法及相关装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202210678199 2022-06-13
CN2022106781998 2022-06-13

Publications (1)

Publication Number Publication Date
CN117234412A true CN117234412A (zh) 2023-12-15

Family

ID=89086793

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211102393.8A Pending CN117234412A (zh) 2022-06-13 2022-09-09 数据迁移方法及相关装置

Country Status (2)

Country Link
CN (1) CN117234412A (zh)
WO (1) WO2023241115A1 (zh)

Family Cites Families (4)

* 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
US9607004B2 (en) * 2014-06-18 2017-03-28 International Business Machines Corporation Storage device data migration
CN114064563A (zh) * 2020-07-30 2022-02-18 深圳市杉岩数据技术有限公司 一种基于对象存储的数据迁移方法和服务器
CN113836116A (zh) * 2021-09-29 2021-12-24 济南浪潮数据技术有限公司 数据迁移方法、装置、电子设备及可读存储介质

Also Published As

Publication number Publication date
WO2023241115A1 (zh) 2023-12-21

Similar Documents

Publication Publication Date Title
US8756199B2 (en) File level hierarchical storage management system, method, and apparatus
EP3408744B1 (en) Providing access to a hybrid application offline
US9971823B2 (en) Dynamic replica failure detection and healing
US11199985B2 (en) Tracking storage capacity usage by snapshot lineages using metadata in a multi-level tree structure
JP6077562B2 (ja) 分散型アプリケーション・オブジェクトに関するアップデート通知の提供
CN106446159B (zh) 一种存储文件的方法、第一虚拟机及名称节点
JP4773788B2 (ja) 記憶システムにおけるリモートコピー制御
JP2014513849A (ja) 参照カウント伝播
CN104113597A (zh) 一种多数据中心的hdfs数据读写系统及方法
WO2016148670A1 (en) Deduplication and garbage collection across logical databases
CN103312624A (zh) 一种消息队列服务系统和方法
US11288134B2 (en) Pausing and resuming copying of snapshots from a local snapshot lineage to at least one cloud snapshot lineage
US20210286677A1 (en) Recovering a storage volume associated with a snapshot lineage from cloud storage
US10152493B1 (en) Dynamic ephemeral point-in-time snapshots for consistent reads to HDFS clients
JP7355964B2 (ja) 外部ロケーションの同期
US11573923B2 (en) Generating configuration data enabling remote access to portions of a snapshot lineage copied to cloud storage
WO2014015782A1 (zh) 分布式文件系统、文件访问方法以及客户端
EP1313033A2 (en) File system, control method, and program
CN114281765A (zh) 分布式文件系统中的元数据处理方法及设备
CN117234412A (zh) 数据迁移方法及相关装置
CN111488324B (zh) 一种基于消息中间件的分布式网络文件系统及其工作方法
WO2023241116A1 (zh) 数据处理方法及相关装置
CN117290298A (zh) 数据处理方法及相关装置
US12056023B2 (en) Orchestration of storage system-based snapshot recovery
CN112578996B (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