CN111399763A - 数据存储的方法、装置、系统、设备及存储介质 - Google Patents

数据存储的方法、装置、系统、设备及存储介质 Download PDF

Info

Publication number
CN111399763A
CN111399763A CN201911349200.7A CN201911349200A CN111399763A CN 111399763 A CN111399763 A CN 111399763A CN 201911349200 A CN201911349200 A CN 201911349200A CN 111399763 A CN111399763 A CN 111399763A
Authority
CN
China
Prior art keywords
data
storage
storage device
server
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201911349200.7A
Other languages
English (en)
Other versions
CN111399763B (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.)
Hangzhou Hikvision System Technology Co Ltd
Original Assignee
Hangzhou Hikvision System 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 Hangzhou Hikvision System Technology Co Ltd filed Critical Hangzhou Hikvision System Technology Co Ltd
Priority to CN201911349200.7A priority Critical patent/CN111399763B/zh
Publication of CN111399763A publication Critical patent/CN111399763A/zh
Application granted granted Critical
Publication of CN111399763B publication Critical patent/CN111399763B/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/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Computer And Data Communications (AREA)

Abstract

本申请公开了一种数据存储的方法、装置、系统、设备及存储介质,属于数据处理技术领域。所述方法包括:接收管理服务器在确定云存储系统中存在需要迁移的第一数据的情况下发送的第一迁移任务消息,第一迁移任务消息包括第二存储服务器的服务器信息和用于存储第一数据的第一存储设备的设备信息;根据服务器信息,向第二存储服务器发送第一数据获取请求,该第一数据获取请求用于指示反馈至少一个第二存储设备中需要迁移的第一数据;获取第二存储服务器发送的第一数据,将第一数据存储至设备信息指示的第一存储设备中。如此,可以在第二存储设备出现问题之前,将第二存储设备上的第一数据迁移至第一存储设备上去,可以有效降低数据丢失的可能性。

Description

数据存储的方法、装置、系统、设备及存储介质
技术领域
本申请涉及数据处理技术领域,特别涉及一种数据存储的方法、装置、系统、设备及存储介质。
背景技术
随着互联网技术的发展,云存储成为人们存储数据的一种重要方式。云存储系统中可以运行多种不同类型、不同性能的存储服务器,这些存储服务器可以接入存储设备,用户可以将数据存储在存储设备中。但随着时间的推移,存储设备可能会出现一些问题,如此可能导致该存储设备上的数据丢失。
在云存储系统中,向存储设备中存储数据时,不仅要存储该数据,还要存储该数据的校验信息,如此,当存储设备出现问题时,可以采用RAID(Redundant Arrays ofIndependent Drives,磁盘阵列)策略,根据存储的该数据的校验信息对该数据进行重构。
但这种方法需要存储数据的校验信息,而校验信息会占用部分存储空间,如此导致浪费一定的存储空间,使得云存储系统的利用效率较低。
发明内容
本申请实施例提供了一种数据存储的方法、装置、系统、设备及存储介质,可以解决存储设备出现问题时,可能导致该存储设备上的数据丢失的问题。所述技术方案如下:
一方面,提供了一种数据存储的方法,应用于云存储系统的第一存储服务器中,所述第一存储服务器接有至少一个第一存储设备,所述云存储系统还包括管理服务器和接有至少一个第二存储设备的第二存储服务器,其中,所述至少一个第一存储设备和所述至少一个第二存储设备均处于可使用状态,所述方法包括:
接收来自所述管理服务器的第一迁移任务消息,所述第一迁移任务消息是由所述管理服务器在确定所述云存储系统中存在需要迁移的第一数据的情况下发送的,所述第一迁移任务消息包括所述第二存储服务器的服务器信息以及用于存储所述第一数据的第一存储设备的设备信息;
根据所述服务器信息,向所述第二存储服务器发送第一数据获取请求,所述第一数据获取请求用于指示反馈所述至少一个第二存储设备中需要迁移的第一数据;
获取所述第二存储服务器发送的第一数据,将所述第一数据存储至所述设备信息指示的第一存储设备中。
在本申请一种可能的实现方式中,当所述云存储系统的存储空间通过若干个对象块存储数据时,所述将所述第一数据存储至所述设备信息指示的第一存储设备中,包括:
接收所述第二存储服务器发送的对象块信息,所述对象块信息用于指示所述第一数据在所述至少一个第二存储设备中所在的对象块位置;
从所述设备信息指示的第一存储设备中确定所述对象块信息对应的对象块;
将所述第一数据存储至所确定的对象块中。
在本申请一种可能的实现方式中,所述方法还包括:
在数据迁移过程中,将所述第一数据的实际存储位置进行上报。
在本申请一种可能的实现方式中,所述云存储系统还包括第三存储服务器,所述方法还包括:
接收所述第三存储服务器发送的第二数据获取请求,所述第二数据获取请求用于指示向所述第三存储服务器反馈所述至少一个第一存储设备中需要迁移的第二数据;
从所述至少一个第一存储设备中获取需要迁移的第二数据;
将获取的第二数据发送给所述第三存储服务器。
在本申请一种可能的实现方式中,所述从所述至少一个第一存储设备中获取需要迁移的第二数据,包括:
获取需要进行数据迁移的第一存储设备的设备信息,其中,所获取的设备信息由所述第二数据获取请求携带或者由所述云存储系统中的管理服务器发送;
从所获取的设备信息指示的第一存储设备中获取所述第二数据。
在本申请一种可能的实现方式中,所述方法还包括:
当在数据迁移过程中接收到数据写入请求时,若待写入数据是需要迁移的数据,则确定用于存储待写入数据的对象块信息;
将所述待写入数据和所确定的对象块信息发送给所述第三存储服务器,由所述第三存储服务器根据所述对象块信息存储所述待写入数据。
在本申请一种可能的实现方式中,按照如下至少一种迁移策略进行数据迁移:
优先迁移数据存储时间与当前时间之间的差值小于参考时间阈值的数据;
优先迁移所述第一存储设备中的关键数据;
仅迁移所述第一存储设备中的关键数据;
优先迁移所述第一存储设备中的参考通道数据;
仅迁移所述第一存储设备中的参考通道数据;
优先迁移所述第一存储设备中的用户锁定数据;
仅迁移所述第一存储设备中的用户锁定数据;
优先迁移所述第一存储设备中的参考时间段内的数据;
仅迁移所述第一存储设备中的参考时间段内的数据。
另一方面,提供了一种数据存储的装置,应用于云存储系统的第一存储服务器中,所述第一存储服务器接有至少一个第一存储设备,所述云存储系统还包括管理服务器和接有至少一个第二存储设备的第二存储服务器,其中,所述至少一个第一存储设备和所述至少一个第二存储设备均处于可使用状态,所述装置包括:
第一接收模块,用于接收来自所述管理服务器的第一迁移任务消息,所述第一迁移任务消息是由所述管理服务器在确定所述云存储系统中存在需要迁移的第一数据的情况下发送的,所述第一迁移任务消息包括所述第二存储服务器的服务器信息以及用于存储所述第一数据的第一存储设备的设备信息;
发送模块,用于根据所述服务器信息,向所述第二存储服务器发送第一数据获取请求,所述第一数据获取请求用于指示反馈所述至少一个第二存储设备中需要迁移的第一数据;
第一存储模块,用于获取所述第二存储服务器发送的第一数据,将所述第一数据存储至所述设备信息指示的第一存储设备中。
在本申请一种可能的实现方式中,当所述云存储系统的存储空间通过若干个对象块存储数据时,所述第一存储模块用于:
接收所述第二存储服务器发送的对象块信息,所述对象块信息用于指示所述第一数据在所述至少一个第二存储设备中所在的对象块位置;
从所述设备信息指示的第一存储设备中确定所述对象块信息对应的对象块;
将所述第一数据存储至所确定的对象块中。
在本申请一种可能的实现方式中,所述第一存储模块还用于:
在数据迁移过程中,将所述第一数据的实际存储位置进行上报。
在本申请一种可能的实现方式中,所述云存储系统还包括第三存储服务器,所述第一存储模块还用于:
接收所述第三存储服务器发送的第二数据获取请求,所述第二数据获取请求用于指示向所述第三存储服务器反馈所述至少一个第一存储设备中需要迁移的第二数据;
从所述至少一个第一存储设备中获取需要迁移的第二数据;
将获取的第二数据发送给所述第三存储服务器。
在本申请一种可能的实现方式中,所述第一存储模块还用于:
获取需要进行数据迁移的第一存储设备的设备信息,其中,所获取的设备信息由所述第二数据获取请求携带或者由所述云存储系统中的管理服务器发送;
从所获取的设备信息指示的第一存储设备中获取所述第二数据。
在本申请一种可能的实现方式中,所述第一存储模块还用于:
当在数据迁移过程中接收到数据写入请求时,若待写入数据是需要迁移的数据,则确定用于存储待写入数据的对象块信息;
将所述待写入数据和所确定的对象块信息发送给所述第三存储服务器,由所述第三存储服务器根据所述对象块信息存储所述待写入数据。
在本申请一种可能的实现方式中,所述发送模块还用于按照如下至少一种迁移策略进行数据迁移:
优先迁移数据存储时间与当前时间之间的差值小于参考时间阈值的数据;
优先迁移所述第一存储设备中的关键数据;
仅迁移所述第一存储设备中的关键数据;
优先迁移所述第一存储设备中的参考通道数据;
仅迁移所述第一存储设备中的参考通道数据;
优先迁移所述第一存储设备中的用户锁定数据;
仅迁移所述第一存储设备中的用户锁定数据;
优先迁移所述第一存储设备中的参考时间段内的数据;
仅迁移所述第一存储设备中的参考时间段内的数据。
另一方面,提供了一种云存储系统,所述云存储系统包括接有至少一个第一存储设备的第一存储服务器、接有至少一个第二存储设备的第二存储服务器,以及管理服务器,其中,所述至少一个第一存储设备和所述至少一个第二存储设备均处于可使用状态;
所述管理服务器,用于在确定所述云存储系统中存在需要迁移的第一数据的情况下,向所述第一存储服务器发送第一迁移任务消息,所述第一迁移任务消息包括所述第二存储服务器的服务器信息以及用于存储所述第一数据的第一存储设备的设备信息;
所述第一存储服务器,用于根据所述服务器信息,向所述第二存储服务器发送第一数据获取请求,所述第一数据获取请求用于指示反馈所述至少一个第二存储设备中需要迁移的第一数据;
所述第一存储服务器,用于获取所述第二存储服务器发送的第一数据,将所述第一数据存储至所述设备信息指示的第一存储设备中。
另一方面,提供一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,所述指令被处理器执行时实现上述一方面所述的数据存储的方法。
另一方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述一方面所述的数据存储的方法。
另一方面,提供了一种数据存储的方法,应用于云存储系统的存储服务器中,所述存储服务器接有需要进行数据迁移的旧存储设备以及用于存储迁移后数据的新存储设备,所述旧存储设备和所述新存储设备均处于可使用状态,所述云存储系统还包括管理服务器,所述方法包括:
接收来自所述管理服务器的第二迁移任务消息,所述第二迁移任务消息是由所述管理服务器在确定所述云存储系统中存在需要迁移的目标数据的情况下发送的,所述第二迁移任务消息中携带用于指示所述旧存储设备的旧设备信息和用于指示所述新存储设备的新设备信息;
根据所述旧设备信息和所述新设备信息,将所述旧存储设备中的目标数据存储至所述新存储设备中。
在本申请一种可能的实现方式中,当所述云存储系统的存储空间通过若干个对象块存储数据时,所述将所述旧存储设备中的目标数据存储至所述新存储设备中,包括:
确定所述目标数据在所述旧存储设备中所在对象块的对象块信息;
从所述新存储设备中确定所述对象块信息对应的对象块;
将所述目标数据存储至所确定的对象块中。
在本申请一种可能的实现方式中,所述方法还包括:
在数据迁移过程中,当接收到数据写入请求时,若待写入数据为需要迁移的数据,从所述旧存储设备中确定用于存储待写入数据的对象块信息;
根据所确定的对象块信息,从所述新存储设备中确定对应的对象块;
将所述待写入数据存储至所确定的对象块中。
在本申请一种可能的实现方式中,按照如下至少一种迁移策略进行数据迁移:
优先迁移数据存储时间与当前时间之间的差值小于参考时间阈值的数据;
优先迁移所述旧存储设备中的关键数据;
仅迁移所述旧存储设备中的关键数据;
优先迁移所述旧存储设备中的参考通道数据;
仅迁移所述旧存储设备中的参考通道数据;
优先迁移所述旧存储设备中的用户锁定数据;
仅迁移所述旧存储设备中的用户锁定数据;
优先迁移所述旧存储设备中的参考时间段内的数据;
仅迁移所述旧存储设备中的参考时间段内的数据。
在本申请一种可能的实现方式中,所述方法还包括:
在数据迁移过程中,将所述目标数据的实际存储位置进行上报。
另一方面,提供了一种数据存储的装置,应用于云存储系统的存储服务器中,所述存储服务器接有需要进行数据迁移的旧存储设备以及用于存储迁移后数据的新存储设备,所述旧存储设备和所述新存储设备均处于可使用状态,所述云存储系统还包括管理服务器,所述装置包括:
第二接收模块,用于接收来自所述管理服务器的第二迁移任务消息,所述第二迁移任务消息是由所述管理服务器在确定所述云存储系统中存在需要迁移的目标数据的情况下发送的,所述第二迁移任务消息中携带用于指示所述旧存储设备的旧设备信息和用于指示所述新存储设备的新设备信息;
第二存储模块,用于根据所述旧设备信息和所述新设备信息,将所述旧存储设备中的目标数据存储至所述新存储设备中。
在本申请一种可能的实现方式中,当所述云存储系统的存储空间通过若干个对象块存储数据时,所述第二存储模块用于:
确定所述目标数据在所述旧存储设备中所在对象块的对象块信息;
从所述新存储设备中确定所述对象块信息对应的对象块;
将所述目标数据存储至所确定的对象块中。
在本申请一种可能的实现方式中,所述第二存储模块还用于:
在数据迁移过程中,当接收到数据写入请求时,若待写入数据为需要迁移的数据,从所述旧存储设备中确定用于存储待写入数据的对象块信息;
根据所确定的对象块信息,从所述新存储设备中确定对应的对象块;
将所述待写入数据存储至所确定的对象块中。
在本申请一种可能的实现方式中,所述第二存储模块还用于按照如下至少一种迁移策略进行数据迁移:
优先迁移数据存储时间与当前时间之间的差值小于参考时间阈值的数据;
优先迁移所述旧存储设备中的关键数据;
仅迁移所述旧存储设备中的关键数据;
优先迁移所述旧存储设备中的参考通道数据;
仅迁移所述旧存储设备中的参考通道数据;
优先迁移所述旧存储设备中的用户锁定数据;
仅迁移所述旧存储设备中的用户锁定数据;
优先迁移所述旧存储设备中的参考时间段内的数据;
仅迁移所述旧存储设备中的参考时间段内的数据。
在本申请一种可能的实现方式中,其特征在于,所述第二存储模块还用于:
在数据迁移过程中,将所述目标数据的实际存储位置进行上报。
另一方面,提供了一种云存储系统,所述云存储系统包括存储服务器和管理服务器,其中,所述存储服务器接有需要进行数据迁移的旧存储设备以及用于存储迁移后数据的新存储设备,所述旧存储设备和所述新存储设备均处于可使用状态;
所述管理服务器,用于在确定所述云存储系统中存在需要迁移的目标数据的情况下,向所述存储服务器发送第二迁移任务消息,所述第二迁移任务消息中携带用于指示所述旧存储设备的旧设备信息和用于指示所述新存储设备的新设备信息;
所述存储服务器,用于根据所述旧设备信息和所述新设备信息,将所述旧存储设备中的目标数据存储至所述新存储设备中。
另一方面,提供一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,所述指令被处理器执行时实现上述另一方面所述的数据存储的方法。
另一方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述另一方面所述的数据存储的方法。
另一方面,提供了一种设备,所述设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为实现上述数据存储的方法。
本申请实施例提供的技术方案带来的有益效果是:
第一存储服务器接收来自管理服务器的第一迁移任务消息,该第一迁移任务消息是由管理服务器在确定云存储系统中存在需要迁移的第一数据的情况下发送的。第一存储服务器可以根据第一迁移任务消息携带的第二存储服务器的服务器信息,向第二存储服务器发送第一数据获取请求,该第一数据获取请求用于指示反馈至少一个第二存储设备中需要迁移的第一数据,可以获取第二存储服务器发送的第一数据,并将第一数据存储至第一迁移任务消息携带的设备信息指示的第一存储设备中。如此,可以在第二存储设备出现问题之前,将第二存储设备上的第一数据迁移至第一存储设备上去,可以有效降低第二存储设备出现问题时数据丢失的可能性,而且不需要额外存储校验信息,提高了云存储系统的空间利用率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例示出的一种实施环境的示意图;
图2是根据一示例性实施例示出的一种存储设备的逻辑布局示意图;
图3是根据另一示例性实施例示出的一种实施环境的示意图;
图4是根据一示例性实施例示出的一种数据存储的方法流程图;
图5是根据另一示例性实施例示出的一种数据存储的方法流程图;
图6是根据一示例性实施例示出的一种数据迁移的过程示意图;
图7是根据另一示例性实施例示出的一种数据迁移的过程示意图;
图8是根据另一示例性实施例示出的一种数据存储的方法流程图;
图9是根据另一示例性实施例示出的一种数据存储的方法流程图;
图10是根据另一示例性实施例示出的一种数据迁移的过程示意图;
图11是根据另一示例性实施例示出的一种数据存储的方法流程图;
图12是根据另一示例性实施例示出的一种数据存储的方法流程图;
图13是根据一示例性实施例示出的一种按对象块迁移数据的示意图;
图14是根据一示例性实施例示出的一种数据存储的装置的结构示意图;
图15是根据另一示例性实施例示出的一种数据存储的装置的结构示意图;
图16是根据一示例性实施例示出的一种设备的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在对本申请实施例提供的数据存储的方法进行详细介绍之前,先对本申请实施例涉及的实施环境予以说明。
请参考图1,该图1是根据一示例性实施例示出的一种实施环境的示意图,该实施环境包括云存储系统,该云存储系统可以包括管理服务器101、第一存储服务器102和第二存储服务器103。该管理服务器101、第一存储服务器102和第二存储服务器103之间可以互相进行通信。
该管理服务器101可以用于整个云存储系统的资源调度,主要功能包括服务管理、集群空间管理、存储调度管理。
其中,服务管理指的是管理服务器101可以维护整个系统中所有存储服务器的在线状态与状态信息,存储服务器的状态信息主要包括整个云存储系统的负载、整个云存储系统的总存储空间、剩余存储空间和已经存储的数据路数;集群空间管理指的是管理服务器101可以维护整个系统中所有存储设备的状态,并维护虚拟存储空间,每个虚拟存储空间都有一个存储周期,该存储周期指的是数据存储的有效期,超过存储周期的数据可以被自动删除,用户向虚拟存储空间写入数据时,首先向管理服务器101申请合适的存储服务器,然后由该存储服务器分配存储设备及对象块,再将数据写入到存储设备的对象块中;存储调度管理指的是管理服务器101可以根据一定的策略将用户视频数据分配到合适的存储服务器上存储。
另外,管理服务器可以在数据迁移过程中接收迁移指示,并向第一存储服务器102发送第一迁移任务消息。
该第一存储服务器102可以接有至少一个第一存储设备,该至少一个第一存储设备可以为不同类型的存储设备,如NAS(Network Attached Storage,网络附属存储)、SSD(Solid State Drive,固态硬盘)、IP SAN(IP Storage Area Network,存储局域网络)、RAID等。该第一存储服务器102的主要功能包括存储空间管理、存储空间分配、状态信息上报和数据读写。
其中,存储空间管理指的是可以对该第一存储服务器102接入的至少一个第一存储设备的存储空间进行分块管理;存储空间分配指的是在写入数据时,合理分配存储设备写入数据;状态信息上报指的是该第一存储服务器102可以定期向管理服务器101上报自身的状态信息,以供管理服务器101分配数据;数据读写指的是该第一存储服务器102可以为用户提供数据写入与读取功能。
作为一种示例,对该第一存储服务器102接入的至少一个第一存储设备的存储空间进行分块管理时,可以按照流式文件系统的格式对至少一个第一存储设备中的每个第一存储设备进行分块,将每个第一存储设备分为启动块和对象块,启动块包括主启动块和备启动块,也可以只包括主启动块,用于存储该存储设备的特征信息,包括该存储设备的存储空间大小、对象块的存储空间大小、信息块的存储空间大小等,主、备启动块互为备份。对象块可以包括主信息块、数据区和备信息块,也可以只包括主信息块和数据区,信息块记录数据区数据的关键信息,例如数据关键帧的时间信息等,主、备信息块互为备份。流式文件系统将第一存储设备按照对象块进行划分,更细粒度实现存储空间管理与虚拟化,防止数据反复读写、删除过程中产生的存储设备碎片。示例性地,参见图2,该图2为单个第一存储设备的逻辑布局示意图。
另外,第一存储服务器102还可以根据服务器信息,向第二存储服务器103发送第一数据获取请求,并获取第二存储服务器103发送的第一数据,将第一数据存储至设备信息指示的第一存储设备中。
该第二存储服务器103可以接有至少一个第二存储设备,该至少一个第二存储设备可以为不同类型的存储设备,如SSD、RAID、IP SAN、NAS等。该第二存储服务器103的主要功能包括存储空间管理、存储空间分配、状态信息上报和视频数据读写。该第二存储服务器103的具体功能与该第一存储服务器102的功能相同,具体可参见上述对第一存储服务器102的描述,本申请在此不再赘述。
另外,该第二存储服务器103还可以接收第一存储服务器102发送的数据获取请求,并获取第一数据,将第一数据发送给第一存储服务器102。
作为一种示例,在云存储系统中,管理服务器101可以为一台服务器,也可以为多台服务器组成的服务器集群,本申请实施例对此不做限定。当管理服务器101为多台服务器组成的服务器集群时,该多台服务器之间互相冗余备份且起到负载均衡的目的。
另外,管理服务器还可以根据第一存储服务器102包括的至少一个存储设备的存储状态、存储性能等信息确定是否存在需要进行数据迁移的第一数据。
需要说明的是,在云存储系统中,可以包括至少一个第一存储服务器102,以及至少一个第二存储服务器103。
请参考图3,该图3是根据另一示例性实施例示出的一种实施环境的示意图,该实施环境包括云存储系统,该云存储系统可以包括管理服务器301和存储服务器302。该管理服务器301和存储服务器302之间可以进行通信。
其中,该管理服务器301可以用于整个云存储系统的资源调度,主要功能包括服务管理、集群空间管理、存储调度管理。
其中,服务管理指的是管理服务器301可以维护整个系统中所有存储服务器的在线状态与状态信息,存储服务器的状态信息主要包括整个云存储系统的负载、整个云存储系统的总存储空间、剩余存储空间和已经存储的数据路数;集群空间管理指的是管理服务器301可以维护整个系统中所有存储设备的状态,并维护虚拟存储空间,每个虚拟存储空间都有一个存储周期,该存储周期指的是数据存储的有效期,超过存储周期的数据可以被自动删除,用户向虚拟存储空间写入数据时,可以首先向管理服务器301申请合适的存储服务器,然后由该存储服务器分配存储设备及对象块,再将数据写入到存储设备的对象块中;存储调度管理指的是管理服务器301可以根据一定的策略将用户视频数据分配到合适的存储服务器上存储。
另外,管理服务器还可以在数据迁移过程中接收迁移指示,并向存储服务器发送第二迁移任务消息。
该存储服务器302可以接有需要进行数据迁移的至少一个旧存储设备以及用于存储迁移后数据的至少一个新存储设备,该至少一个旧存储设备和该至少一个新存储设备可以为不同类型的存储设备,如旧存储设备可以为SSD、RAID,新存储设备可以为IP SAN、NAS等。该存储服务器302的主要功能包括存储空间管理、存储空间分配、状态信息上报和数据读写。
其中,存储空间管理指的是可以对该存储服务器302接入的至少一个旧存储设备和至少一个新存储设备的存储空间进行分块管理;存储空间分配指的是在写入数据时,合理分配存储设备写入数据;状态信息上报指的是该存储服务器302可以定期向管理服务器301上报自身的状态信息,以供管理服务器301分配数据;数据读写指的是该存储服务器302可以为用户提供数据写入与读取功能。
作为一种示例,对该存储服务器302接入的至少一个旧存储设备和至少一个新存储设备的存储空间进行分块管理时,可以按照流式文件系统的格式对至少一个旧存储设备和至少一个新存储设备中的每个存储设备进行分块,将每个存储设备分为启动块和对象块,启动块包括主启动块和备启动块,也可以只包括主启动块,用于存储该存储设备的特征信息,包括该存储设备的存储空间大小、对象块的存储空间大小、信息块的存储空间大小等,主、备启动块互为备份。对象块可以包括主信息块、数据区和备信息块,也可以只包括主信息块和数据区,信息块记录数据区数据的关键信息,例如数据关键帧的时间信息等,主、备信息块互为备份。流式文件系统将存储设备按照对象块进行划分,更细粒度实现存储空间管理与虚拟化,防止数据反复读写、删除过程中产生的存储设备碎片。
另外,该存储服务器302还可以根据旧设备信息和新设备信息,将旧存储设备中的目标数据存储至新存储设备中。
作为一种示例,在云存储系统中,管理服务器301可以为一台服务器,也可以为多台服务器组成的服务器集群,本申请实施例对此不做限定。当管理服务器301为多台服务器组成的服务器集群时,该多台服务器之间互相冗余备份且起到负载均衡的目的。
另外,管理服务器还可以根据存储服务器302包括的旧存储设备的存储状态、存储性能等信息确定是否存在需要进行数据迁移的目标数据。
图4是根据一示例性实施例示出的一种数据存储的方法流程图,以该方法应用于上述图1所示实施环境中为例进行说明,该方法可以包括如下几个步骤:
步骤401:接收来自管理服务器的第一迁移任务消息,该第一迁移任务消息是由管理服务器在确定云存储系统中存在需要迁移的第一数据的情况下发送的,该第一迁移任务消息包括第二存储服务器的服务器信息以及用于存储第一数据的第一存储设备的设备信息。
步骤402:根据服务器信息,向第二存储服务器发送第一数据获取请求,该第一数据获取请求用于指示反馈至少一个第二存储设备中需要迁移的第一数据。
步骤403:获取第二存储服务器发送的第一数据,将第一数据存储至设备信息指示的第一存储设备中。
在本申请实施例中,第一存储服务器接收来自管理服务器的第一迁移任务消息后,该第一迁移任务消息是由管理服务器在确定云存储系统中存在需要迁移的第一数据的情况下发送的。第一存储服务器可以根据第一迁移任务消息携带的第二存储服务器的服务器信息,向第二存储服务器发送第一数据获取请求,该第一数据获取请求用于指示反馈至少一个第二存储设备中需要迁移的第一数据,可以获取第二存储服务器发送的第一数据,并将第一数据存储至第一迁移任务消息携带的设备信息指示的第一存储设备中。如此,可以在第二存储设备出现问题之前,将第二存储设备上的第一数据迁移至第一存储设备上去,可以有效降低第二存储设备出现问题时数据丢失的可能性,而且不需要额外存储校验信息,提高了云存储系统的空间利用率。
图5是根据另一示例性实施例示出的一种数据存储的方法流程图,以该方法应用于上述图1所示实施环境中为例进行说明,该方法可以包括如下几个步骤:
步骤501:管理服务器在确定云存储系统中存在需要迁移的第一数据的情况下,向第一存储服务器发送第一迁移任务消息,该第一迁移任务消息包括第二存储服务器的服务器信息以及用于存储第一数据的第一存储设备的设备信息。
其中,第二存储服务器可以接有至少一个第二存储设备,至少一个第二存储设备中存储有需要进行数据迁移的第一数据。另外,第一存储设备和至少一个第二存储设备均处于可使用状态。也就是说,数据迁移是在第二存储设备出现问题之前进行的。
其中,服务器信息可以为服务器标识或服务器地址信息。
其中,设备信息可以用于指示对应的存储设备接在哪个存储服务器上,以及该存储设备在该存储服务器上的编号。例如,某第一存储设备A接在第一存储服务器Ⅰ上,该第一存储设备A的设备信息可以为Ⅰ-A。
在实施中,管理服务器在确定云存储系统中存在需要迁移的第一数据的情况下,向第一存储服务器发送第一迁移任务消息的步骤可以包括以下两种实现方式:
第一种实现方式:当管理服务器接收到迁移指示时,确定云存储系统中存在需要迁移的第一数据,向第一存储服务器发送第一迁移任务消息。
其中,迁移指示是由用户通过云存储系统的对外接口向管理服务器发送的,用于指示进行数据迁移。
作为一种示例,管理服务器可以将整个云存储系统中所有存储设备的状态信息发送给用户设备,该状态信息可以包括存储设备的设备信息和设备状态,设备状态可以包括该存储设备的总空间、剩余空间、在线状态等,当某个存储设备可能要出现问题时,管理服务器也可以将该存储设备可能出现问题的预警信息发送给用户。用户可以根据预警信息及所有存储设备的状态信息选择可能要出现问题的存储设备作为将数据往外迁移的存储设备,可以称为第二存储设备,选择一个存储空间不小于第二存储设备的存储设备作为存储迁移后数据的存储设备,可以称为第一存储设备,或者,用户可以接入一个存储设备作为用于存储迁移后数据的第一存储设备。
作为另一种示例,可以在云存储系统外接一个可视化界面,用户可以通过该界面获取到云存储系统中所有存储设备的情况,并根据存储设备的情况,选择第一存储设备和第二存储设备。
作为一种示例,选择好第一存储设备和第二存储设备之后,用户可以通过云存储系统的对外接口,如SDK(Software Development Kit,软件开发工具包)接口,向管理服务器发送迁移指示,该迁移指示中可以包括第一存储设备和第二存储设备的设备信息。管理服务器接收到迁移指示后,根据第一存储设备和第二存储设备的设备信息,可以确定第一存储服务器和第二存储服务器的服务器信息,该第一存储服务器上接入至少一个第一存储设备。管理服务器向第一存储服务器发送第一迁移任务消息,该第一迁移任务消息可以包括第二存储服务器的服务器信息和第一存储设备的设备信息。
第二种实现方式:管理服务器根据第二存储设备的存储状态、存储性能、使用时长等信息确定第二存储设备出现老化的情况时,确定云存储系统中存在需要迁移的第一数据,向第一存储服务器发送第一迁移任务消息。
作为一种示例,第二存储服务器可以将第二存储设备的存储状态、存储性能、使用时长等信息实时上报给管理服务器,管理服务器可以存储这些信息,并按照一定的方法对这些信息进行分析,当根据这些信息分析结果确定第二存储设备出现老化的情况时,可以认为第二存储设备后续很可能会出现问题,需要将第二存储设备中的数据迁移出去,进而可以确定云存储系统中存在需要迁移的第一数据。
在实施中,管理服务器可以确定需要将出现老化的情况的第二存储设备中的第一数据进行迁移,将第二存储设备确定为需要向外迁移数据的存储设备,根据第二存储设备的设备信息确定第二存储服务器的服务器信息,根据一定的策略在云存储系统中选择存储迁移后的第一数据的第一存储设备,确定第一存储设备的设备信息,并根据第一存储设备的设备信息确定第一存储服务器。向第一存储服务器发送第一迁移任务消息,第一迁移任务消息可以包括第二存储服务器的服务器信息和第一存储设备的设备信息。
需要说明的是,管理服务器还可以将需要进行数据迁移的第二存储设备的设备信息发送给第二存储服务器。或者,该第一迁移任务消息还可以包括需要进行数据迁移的第二存储设备的设备信息。
步骤502:第一存储服务器根据服务器信息,向第二存储服务器发送第一数据获取请求,该第一数据获取请求用于指示反馈至少一个第二存储设备中需要迁移的第一数据。
第一存储服务器接收到管理服务器发送的第一迁移任务消息后,根据第一迁移任务消息中包括的第二存储服务器的服务器信息,向第二存储服务器发送第一数据获取请求。
进一步地,当第一迁移任务消息中包括需要进行数据迁移的第二存储设备的设备信息时,第一数据获取请求中还可以包括需要进行数据迁移的第二存储设备的设备信息。
步骤503:第二存储服务器接收第一存储服务器发送的第一数据获取请求,根据第一数据获取请求获取至少一个第二存储设备中需要迁移的第一数据,将获取的第一数据发送给第一存储服务器。
作为一种示例,当第一数据获取请求中包括需要进行数据迁移的第二存储设备的设备信息时,第二存储服务器可以根据该第一数据获取请求中携带的第二存储设备的设备信息,从设备信息指示的第二存储设备中获取需要迁移的第一数据。或者,当第二存储服务器接收管理服务器发送的需要进行数据迁移的第二存储设备的设备信息,并从该设备信息指示的第二存储设备中获取需要迁移的第一数据。
当云存储系统的存储空间通过若干个对象块存储数据时,需要确定第一数据所在的对象块信息,即需要迁移的第一数据在设备信息指示的第二存储设备中所在的对象块位置。
作为一种示例,第二存储服务器可以记录所有存入第二存储设备中的数据的属性信息,该属性信息可以包括该数据属于哪一路数据、该数据在这一路数据中所处的时间段、存储该数据的时间以及存储该数据的对象块信息中的至少一项。第二存储服务器可以确定需要迁移的第一数据所在的对象块信息,获取该对象块信息对应的对象块中的数据,作为第一数据,并将该第一数据和该对象块的对象块信息一起发送给第一存储服务器。
作为一种示例,可以根据如下迁移策略中的至少一种对第二存储设备中的数据进行迁移:优先迁移数据存储时间与当前时间之间的差值小于参考时间阈值的数据;优先迁移第二存储设备中的关键数据;仅迁移第二存储设备中的关键数据;优先迁移第二存储设备中的参考通道数据;仅迁移第二存储设备中的参考通道数据;优先迁移第二存储设备中的用户锁定数据;仅迁移第二存储设备中的用户锁定数据;优先迁移第二存储设备中的参考时间段内的数据;仅迁移第二存储设备中的参考时间段内的数据。
其中,关键数据可以为用户认为比较重要的数据;参考通道数据可以为某一路数据,即某一个摄像设备拍摄的视频数据;用户锁定数据可以为用户认为非常重要,需要保密且不能删除的数据。另外,参考通道可以由用户根据实际需要进行设置,用户可以将某一路比较重要的数据确定为参考通道数据。
需要说明的是,参考时间阈值和参考时间段可以由设备默认设置,也可以由用户根据实际需要进行设置,本申请实施例对此不作限定。
示例性地,优先迁移数据存储时间与当前时间之间的差值小于参考时间阈值的数据时,第二存储服务器可以查询存储在第二存储设备中的所有数据的数据存储时间,确定数据存储时间与当前时间较近的数据,再确定这些数据存储时间与当前时间较近的数据所在的对象块信息,获取该对象块信息指示的对象块中的数据,作为第一数据,将该第一数据和该对象块的对象块信息发送给第一存储服务器。
步骤504:第一存储服务器获取第二存储服务器发送的第一数据,将第一数据存储至设备信息指示的第一存储设备中。
作为一种示例,第一存储服务器接收第二存储服务器发送的对象块信息,从设备信息指示的第一存储设备中确定对象块信息对应的对象块,将第一数据存储至所确定的对象块中。
也就是说,第一存储服务器接收第二存储服务器发送的对象块信息和第一数据,然后可以根据第一迁移任务消息包括的第一存储设备的设备信息确定第一存储设备,再结合对象块信息,可以在该第一存储设备中确定对象块信息对应的对象块,将第一数据存储至所确定的对象块中。
进一步地,在数据迁移过程中,可以将第一数据的实际存储位置进行上报。
在一些实施例中,在数据迁移的过程中,当第二存储设备中某些对象块的数据已经迁移到第一存储设备中对应的对象块中之后,第一存储服务器可以将已经迁移的第一数据的实际位置上报给管理服务器,如此,管理服务器可以掌握所有数据的存储位置。
作为一种示例,当管理服务器在数据迁移过程中接收到第一数据读取请求时,该第一数据读取请求中可以携带第一数据属性信息,该第一数据属性信息可以包括用于指示该第一数据属于哪一路数据的信息,还可以包括其他信息,如用于指示该第一数据在这一路数据中所处的时间段的信息。管理服务器可以根据第一数据属性信息,确定第一数据实际所在的存储服务器,进而将第一数据读取请求发送给所确定的存储服务器,该存储服务器可以根据第一数据属性信息确定该第一数据所在的对象块信息,并从所确定的对象块中获取该第一数据,将该第一数据发送给用户。也就是说,若该第一数据已经被迁移至第一存储设备中,管理服务器可以将第一数据获取请求发送给第一存储服务器,由第一存储服务器获取第一数据,并将第一数据发送给用户;若该第一数据尚未被迁移至第一存储设备中,管理服务器可以将第一数据获取请求发送给第二存储服务器,由第二存储服务器获取第一数据,并将第一数据发送给用户。
作为一种示例,当管理服务器在数据迁移过程中接收到数据删除请求时,可以根据上述同样的方法确定需要删除的数据的实际存储位置,并由实际位置对应的存储服务器进行删除操作。
示例性地,参见图6,图6为上述第一存储设备与第二存储设备进行数据迁移的过程示意图。
示例性地,当整个第二存储服务器的第二存储设备都进行迁移时,参见图7,图7为整个第二存储服务器中的所有存储设备进行迁移的过程示意图。
需要说明的是,在上述步骤中,第一存储服务器为用于存储迁移后数据的第一存储设备接入的存储服务器,第二存储服务器为需要迁移数据的第二存储设备接入的存储服务器。在实际实现中,第一存储服务器也可以为需要迁移数据的第一存储设备接入的存储服务器。
进一步地,当第一存储服务器也可以为需要迁移数据的第一存储设备接入的存储服务器时,云存储系统中还可以包括第三存储服务器,第一存储服务器和第三存储服务器之间进行数据迁移时,第一存储服务器接收第三存储服务器发送的第二数据获取请求,该第二数据获取请求可以用于指示向第三存储服务器反馈至少一个第一存储设备中需要迁移的第二数据;第一存储服务器从至少一个第一存储设备中获取需要迁移的第二数据,第一存储服务器可以获取需要进行数据迁移的第一存储设备的设备信息,其中,所获取的设备信息可以由第二数据获取请求携带或者由云存储系统中的管理服务器发送;从所获取的设备信息指示的第一存储设备中获取第二数据,将获取的第二数据发送给第三存储服务器,第三存储服务器将第二数据存储在第三存储设备中。
需要说明的是,在第一存储服务器与第三存储服务器之间,第一存储服务器与需要将数据迁移出去的第一存储设备相连,第三存储服务器与需要存储迁移后的数据的第三存储设备相连。这里具体地数据迁移过程与上述第一存储设备和第二存储设备之间进行数据迁移的过程一致,具体可参见上述步骤,本申请实施例在此不再赘述。
进一步地,当在数据迁移过程中接收到数据写入请求时,若待写入数据是需要迁移的数据,则确定用于存储待写入数据的对象块信息;将待写入数据和所确定的对象块信息发送给第三存储服务器,由第三存储服务器根据对象块信息存储待写入数据。
作为一种示例,在数据迁移过程中,用户通过云存储对外接口向管理服务器发送数据写入请求,该数据写入请求中可以包括待写入的数据属于哪一路这一信息。管理服务器接收到数据写入请求后,可以根据该数据属于哪一路这一信息为待写入数据分配存储服务器,若分配到第一存储服务器,管理服务器将第一存储服务器的服务器信息发送给云存储对外接口,云存储对外接口将待写入数据及数据写入请求发送给服务器信息指示的第一存储服务器,第一存储服务器接收到待写入数据后,可以根据待写入数据属于哪一路这一信息,查询第一存储服务器中是否有存储着与待写入数据属于同一路且未写满的数据块,若是,判断该数据块是否属于第一存储设备,若是,说明该待写入数据为需要迁移的数据,再根据第一存储设备的设备状态,确定存储待写入数据的对象块,将待写入数据和所确定的对象块信息发送给第三存储服务器,第三存储服务器根据对象块信息在第三存储设备上确定对应的对象块,将待写入数据存储在第三存储设备中所确定的对象块中。
在本申请实施例中,第一存储服务器接收来自管理服务器的第一迁移任务消息,该第一迁移任务消息是由管理服务器在确定云存储系统中存在需要迁移的第一数据的情况下发送的。第一存储服务器可以根据第一迁移任务消息携带的第二存储服务器的服务器信息,向第二存储服务器发送第一数据获取请求,该第一数据获取请求用于指示反馈至少一个第二存储设备中需要迁移的第一数据,可以获取第二存储服务器发送的第一数据,并将第一数据存储至第一迁移任务消息携带的设备信息指示的第一存储设备中。如此,可以在第二存储设备出现问题之前,将第二存储设备上的第一数据迁移至第一存储设备上去,可以有效降低第二存储设备出现问题时数据丢失的可能性,而且不需要额外存储校验信息,提高了云存储系统的空间利用率。
图8是根据另一示例性实施例示出的一种数据存储的方法流程图,以该方法应用于上述图3所示实施环境中为例进行说明,该方法可以包括如下几个步骤:
步骤801:接收来自管理服务器的第二迁移任务消息,该第二迁移任务消息是由管理服务器在确定云存储系统中存在需要迁移的目标数据的情况下发送的,该第二迁移任务消息中携带用于指示旧存储设备的旧设备信息和用于指示新存储设备的新设备信息。
步骤802:根据旧设备信息和新设备信息,将旧存储设备中的目标数据存储至新存储设备中。
在本申请实施例中,存储服务器接收来自管理服务器的第二迁移任务消息,该第二迁移任务消息是由管理服务器在确定云存储系统中存在需要迁移的目标数据的情况下发送的。存储服务器可以根据第二迁移任务消息中携带的旧存储设备的旧设备信息和新存储设备的新设备信息,将旧存储设备中的目标数据存储至新存储设备中。如此,可以在旧存储设备出现问题之前,将旧存储设备上的目标数据迁移至新存储设备上去,可以有效降低旧存储设备出现问题时数据丢失的可能性,而且不需要额外存储校验信息,提高了云存储系统的空间利用率。
图9是根据另一示例性实施例示出的一种数据存储的方法流程图,以该方法应用于上述图2所示实施环境中为例进行说明,该方法可以包括如下几个步骤:
步骤901:管理服务器在确定云存储系统中存在需要迁移的目标数据的情况下,向存储服务器发送第二迁移任务消息,该第二迁移任务消息中携带用于指示旧存储设备的旧设备信息和用于指示新存储设备的新设备信息。
在本实施例中,旧存储设备和新存储设备与相同的存储服务器相连。
其中,旧设备信息可以用于指示对应的旧存储设备接在哪个存储服务器上,以及该旧存储设备在该存储服务器上的编号;新设备信息可以用于指示对应的新存储设备接在哪个存储服务器上,以及该新存储设备在该存储服务器上的编号。例如,某旧存储设备A接在存储服务器Ⅰ上,该旧存储设备A的设备信息可以为Ⅰ-A,某新存储设备D接在存储服务器Ⅰ上,该旧存储设备D的设备信息可以为Ⅰ-D。
其中,旧存储设备和新存储设备均处于可使用状态。也就是说,数据迁移是在旧存储设备出现问题之前进行的。
在实施中,管理服务器在确定云存储系统中存在需要迁移的目标数据的情况下,向存储服务器发送第二迁移任务消息的步骤可以包括以下两种实现方式:
第一种实现方式:当管理服务器接收到迁移指示时,确定云存储系统中存在需要迁移的目标数据,向存储服务器发送第二迁移任务消息。
其中,迁移指示是由用户通过云存储系统的对外接口向管理服务器发送的,用于指示进行数据迁移。
作为一种示例,管理服务器可以将整个云存储系统中所有存储设备的状态信息发送给用户设备,该状态信息可以包括存储设备的设备信息和设备状态,设备状态可以包括该存储设备的总空间、剩余空间、在线状态等,当某个存储设备可能要出现问题时,管理服务器也可以将该存储设备可能出现问题的预警信息发送给用户。用户可以根据预警信息及所有存储设备的状态信息选择可能要出现问题的存储设备作为将数据往外迁移的存储设备,可以称为旧存储设备,选择一个存储空间不小于旧存储设备的存储设备作为存储迁移后数据的存储设备,可以称为新存储设备,或者,用户可以接入一个存储设备作为用于存储迁移后数据的新存储设备。
作为另一种示例,可以在云存储系统外接一个可视化界面,用户可以通过该界面获取到云存储系统中所有存储设备的情况,并根据存储设备的情况,选择旧存储设备和新存储设备。
作为一种示例,选择好新存储设备和旧存储设备之后,用户可以通过云存储系统的对外接口,如SDK接口,向管理服务器发送迁移指示,该迁移指示中可以包括新存储设备和旧存储设备的设备信息。管理服务器接收到迁移指示后,根据新存储设备和旧存储设备的设备信息,可以确定存储服务器的服务器信息。管理服务器向服务器信息指示的存储服务器发送第二迁移任务消息,该第二迁移任务消息可以包括旧存储设备的旧设备信息和新存储设备的新设备信息。
第二种实现方式:管理服务器根据旧存储设备的存储状态、存储性能、使用时长等信息确定旧存储设备出现老化的情况时,确定云存储系统中存在需要迁移的目标数据,向存储服务器发送第二迁移任务消息。
作为一种示例,存储服务器可以将存储设备的存储状态、存储性能、使用时长等信息实时上报给管理服务器,管理服务器可以存储这些信息,并按照一定的方法对这些信息进行分析,当根据这些信息分析结果确定旧存储设备出现老化的情况时,可以认为旧存储设备后续很可能会出现问题,需要将旧存储设备中的数据迁移出去,进而可以确定云存储系统中存在需要迁移的目标数据。
在实施中,管理服务器可以确定需要将出现老化的情况的旧存储设备中的目标数据进行迁移,将旧存储设备确定为需要向外迁移数据的存储设备,根据旧存储设备的旧设备信息确定存储服务器的服务器信息,根据一定的策略在存储服务器中选择存储迁移后的目标数据的新存储设备,确定新存储设备的新设备信息。然后向存储服务器发送第二迁移任务消息,第二迁移任务消息可以包括旧存储设备的旧设备信息和新存储设备的新设备信息。
步骤902:存储服务器根据旧设备信息和新设备信息,将旧存储设备中的目标数据存储至新存储设备中。
其中,目标数据为需要进行数据迁移的数据。
存储服务器接收到第二迁移任务消息后,从旧设备信息指示的旧存储设备中获取目标数据,将旧存储设备中的目标数据存储至新设备信息指示的新存储设备中。
在一些实施例中,当云存储系统的存储空间通过若干个对象块存储数据时,需要确定目标数据在旧存储设备中所在对象块的对象块信息,再从新存储设备中确定对象块信息对应的对象块,将目标数据存储至所确定的对象块中。
作为一种示例,存储服务器可以记录所有存入该存储服务器接入的存储设备中的数据的属性信息,该属性信息可以包括该数据属于哪一路数据、该数据在这一路数据中所处的时间段、存储该数据的时间以及存储该数据的对象块信息中的至少一项。该存储服务器可以确定需要迁移的目标数据所在的对象块信息,获取该对象块信息对应的对象块中的数据,作为目标数据。存储服务器根据对象块信息可以在新存储设备中确定对象块信息对应的对象块,将目标数据存储至所确定的对象块中。
作为一种示例,可以根据如下迁移策略对旧存储设备中的数据进行迁移:优先迁移数据存储时间与当前时间之间的差值小于参考时间阈值的数据;优先迁移旧存储设备中的关键数据;仅迁移旧存储设备中的关键数据;优先迁移旧存储设备中的参考通道数据;仅迁移旧存储设备中的参考通道数据;优先迁移旧存储设备中的用户锁定数据;仅迁移旧存储设备中的用户锁定数据;优先迁移旧存储设备中的参考时间段内的数据;仅迁移旧存储设备中的参考时间段内的数据。
其中,关键数据可以为用户认为比较重要的数据;参考通道数据可以为某一路数据,即某一个摄像设备拍摄的视频数据;用户锁定数据可以为用户认为非常重要,需要保密且不能删除的数据。另外,参考通道可以由用户根据实际需要进行设置,用户可以将某一路比较重要的数据确定为参考通道数据。
需要说明的是,参考时间阈值和参考时间段可以由设备默认设置,也可以由用户根据实际需要进行设置,本申请实施例对此不作限定。
示例性地,优先迁移数据存储时间与当前时间之间的差值小于参考时间阈值的数据时,存储服务器可以查询存储在旧存储设备中的所有数据的数据存储时间,确定数据存储时间与当前时间较近的数据,再确定这些数据存储时间与当前时间较近的数据所在的对象块信息,获取该对象块信息指示的对象块中的数据,作为目标数据。存储服务器根据对象块信息可以在新存储设备中确定对象块信息对应的对象块,将目标数据存储至所确定的对象块中。
示例性地,参见图10,图10为上述实施例中旧存储设备与新存储设备之间进行数据迁移的过程。
进一步地,在数据迁移过程中,当接收到数据写入请求时,若待写入数据为需要迁移的数据,可以从旧存储设备中确定用于存储待写入数据的对象块信息,根据所确定的对象块信息,从新存储设备中确定对应的对象块,将待写入数据存储至所确定的对象块中。
作为一种示例,在数据迁移过程中,用户通过云存储对外接口向管理服务器发送数据写入请求,该数据写入请求中可以包括待写入的数据属于哪一路这一信息。管理服务器接收到数据写入请求后,可以根据该数据属于哪一路这一信息为待写入数据分配存储服务器,若分配到需要进行数据迁移的存储服务器,管理服务器将该存储服务器的服务器信息发送给云存储对外接口,云存储对外接口将待写入数据及数据写入请求发送给服务器信息指示的存储服务器,存储服务器接收到待写入数据后,可以根据待写入数据属于哪一路这一信息,查询存储服务器中是否有存储着与待写入数据属于同一路且未写满的数据块,若是,判断该数据块是否属于旧存储设备,若是,说明该待写入数据为需要迁移的数据,可以根据旧存储设备的设备状态,确定存储待写入数据的对象块,存储服务器根据对象块信息在新存储设备中确定对象块信息对应的对象块,将待写入数据存储在新存储设备中所确定的对象块中。
进一步地,在数据迁移过程中,可以将目标数据的实际存储位置进行上报。
在一些实施例中,在数据迁移的过程中,当旧存储设备中某些对象块的数据已经迁移到新存储设备中对应的对象块中之后,存储服务器可以将已经迁移的目标数据的实际位置上报给管理服务器,如此,管理服务器可以掌握所有数据的存储位置。
作为一种示例,当管理服务器在数据迁移过程中接收到目标数据读取请求时,管理服务器可以将该目标数据读取请求发送给存储服务器,若该目标数据已经被迁移至新存储设备中,存储服务器可以从新存储设备中获取目标数据,并将目标数据发送给用户;若该目标数据尚未被迁移至新存储设备中,存储服务器可以从旧存储设备中获取目标数据,并将目标数据发送给用户。
作为一种示例,当管理服务器在数据迁移过程中接收到目标数据删除请求时,管理服务器可以将该目标数据删除请求发送给存储服务器,若该目标数据已经被迁移至新存储设备中,存储服务器可以从新存储设备中获取目标数据,并将目标数据删除;若该目标数据尚未被迁移至新存储设备中,存储服务器可以从旧存储设备中获取目标数据,并将目标数据删除。
在本申请实施例中,存储服务器接收来自管理服务器的第二迁移任务消息,该第二迁移任务消息是由管理服务器在确定云存储系统中存在需要迁移的目标数据的情况下发送的。存储服务器可以根据第二迁移任务消息中携带的旧存储设备的旧设备信息和新存储设备的新设备信息,将旧存储设备中的目标数据存储至新存储设备中。如此,可以在旧存储设备出现问题之前,将旧存储设备上的目标数据迁移至新存储设备上去,可以有效降低旧存储设备出现问题时数据丢失的可能性,而且不需要额外存储校验信息,提高了云存储系统的空间利用率。
图11是根据另一示例性实施例示出的一种数据存储的方法流程图,以该方法应用于上述图1所示实施环境中为例进行说明,该方法可以包括如下几个步骤:
步骤1101:接收来自管理服务器的第三迁移任务消息,该第三迁移任务消息是由管理服务器在确定云存储系统中存在需要迁移的第三数据的情况下发送的,该第三迁移任务消息包括第二存储服务器的服务器信息以及需要进行数据迁移的第一存储设备的设备信息。
步骤1102:从设备信息指示的第一存储设备中获取需要迁移的第三数据。
步骤1103:向第二存储服务器发送第一数据迁移请求,该第一数据迁移请求携带第三数据,用于指示第二存储服务器存储第三数据。
在本申请实施例中,第一存储服务器接收来自管理服务器的第三迁移任务消息,该第三迁移任务消息是由管理服务器在确定云存储系统中存在需要迁移的第三数据的情况下发送的。第一存储服务器可以从第三迁移任务消息中携带的设备信息指示的第一存储设备中获取需要迁移的第三数据,并将第三数据携带在第一数据迁移请求中发送给第二存储服务器,第一数据迁移请求用于指示第二存储服务器存储第三数据。如此,可以在第一存储设备出现问题之前,将第一存储设备上的第三数据迁移至第二存储设备上去,可以有效降低第一存储设备出现问题时数据丢失的可能性,而且不需要额外存储校验信息,提高了云存储系统的空间利用率。
图12是根据另一示例性实施例示出的一种数据存储的方法流程图,以该方法应用于上述图1所示实施环境中为例进行说明,该方法可以包括如下几个步骤:
步骤1201:管理服务器在确定云存储系统中存在需要迁移的第三数据的情况下,向第一存储服务器发送第三迁移任务消息,该第三迁移任务消息包括第二存储服务器的服务器信息以及需要进行数据迁移的第一存储设备的设备信息。
其中,第二存储服务器可以接有至少一个第二存储设备,至少一个第二存储设备用于存储数据迁移后的第三数据。另外,第一存储设备和至少一个第二存储设备均处于可使用状态。也就是说,数据迁移是在第以存储设备出现问题之前进行的。
其中,服务器信息可以为服务器标识或服务器地址信息。
其中,设备信息可以用于指示对应的存储设备接在哪个存储服务器上,以及该存储设备在该存储服务器上的编号。例如,某第一存储设备A接在第一存储服务器Ⅰ上,该第一存储设备A的设备信息可以为Ⅰ-A。
在图5对应的实施例中,管理服务器向第一存储服务器发送第一迁移任务消息,由第一存储服务器发起数据迁移,即数据迁移是由存储迁移后数据的存储设备接入的存储服务器主动发起的。而本实施例中,数据迁移也可以是由需要进行数据迁移的存储设备接入的存储服务器主动发起。
在实施中,管理服务器在确定云存储系统中存在需要迁移的第三数据的情况下,向第一存储服务器发送第三迁移任务消息的步骤可以包括如下两种实现方式:
第一种实现方式:当管理服务器接收到迁移指示时,确定云存储系统中存在需要迁移的第三数据,向第一存储服务器发送第三迁移任务消息。
作为一种示例,用户通过云存储系统的对外接口向管理服务器发送迁移指示,该对外接口可以为SDK接口,该迁移指示可以包括需要进行数据迁移的第一存储设备的设备信息和用于存储迁移后的第三数据的第二存储设备的设备信息。管理服务器接收到迁移指示后,根据第一存储设备和第二存储设备的设备信息,可以确定第一存储服务器和第二存储服务器的服务器信息。管理服务器可以向第一存储服务器发送第三迁移任务消息,该第三迁移任务消息可以包括第二存储服务器的服务器信息和第一存储设备的设备信息。
第二种实现方式:管理服务器根据第一存储设备的存储状态、存储性能、使用时长等信息确定第一存储设备出现老化的情况时,确定云存储系统中存在需要迁移的第三数据,向第一存储服务器发送第三迁移任务消息。
作为一种示例,管理服务器可以存储有第一存储设备的存储状态、存储性能、使用时长等信息,按照一定的方法对这些信息进行分析后,根据分析结果确定第一存储设备出现老化的情况时,可以认为第一存储设备后续很可能会出现问题,需要将第一存储设备中的数据迁移出去,进而可以确定云存储系统中存在需要迁移的第三数据。然后将第一存储设备确定为需要向外迁移数据的存储设备,根据第一存储设备的设备信息确定第一存储服务器,根据一定的策略在云存储系统中选择存储迁移后的第三数据的第二存储设备,确定第二存储设备的设备信息,并根据第二存储设备的设备信息确定第二存储服务器的服务器信息。然后向第一存储服务器发送给第三迁移任务消息,该第三迁移任务消息可以包括第二存储服务器的服务器信息和第一存储设备的设备信息。
需要说明的是,管理服务器还可以将存储迁移后的第三数据的第二存储设备的设备信息发送给第一存储服务器。或者,该第一迁移任务消息还可以包括存储迁移后的第三数据的第二存储设备的设备信息。
步骤1202:第一存储服务器从设备信息指示的第一存储设备中获取需要迁移的第三数据。
作为一种示例,第一存储服务器接收到第三迁移任务消息后,可以从设备信息指示的第一存储设备中获取需要迁移的第三数据时,可以按照如下至少一种迁移策略进行数据迁移:优先迁移数据存储时间与当前时间之间的差值小于参考时间阈值的数据;优先迁移第一存储设备中的关键数据;仅迁移第一存储设备中的关键数据;优先迁移第一存储设备中的参考通道数据;仅迁移第一存储设备中的参考通道数据;优先迁移第一存储设备中的用户锁定数据;仅迁移第一存储设备中的用户锁定数据;优先迁移第一存储设备中的参考时间段内的数据;仅迁移第一存储设备中的参考时间段内的数据。
其中,关键数据可以为用户认为比较重要的数据;参考通道数据可以为某一路数据,即某一个摄像设备拍摄的视频数据;用户锁定数据可以为用户认为非常重要,需要保密且不能删除的数据。另外,参考通道可以由用户根据实际需要进行设置,用户可以将某一路比较重要的数据确定为参考通道数据。
需要说明的是,参考时间阈值和参考时间段可以由设备默认设置,也可以由用户根据实际需要进行设置,本申请实施例对此不作限定。
作为一种示例,当云存储系统的存储空间通过若干个对象块存储数据时,可以按照上述一种迁移策略确定需要进行数据迁移的第三数据,由第一存储服务器确定第三数据所在的对象块信息,该对象块信息用于指示第三数据在至少一个第一存储设备中所在的对象块位置,获取对象块信息对应的对象块中的数据,作为第三数据。
步骤1203:第一存储服务器向第二存储服务器发送第一数据迁移请求,该第一数据迁移请求携带第三数据,用于指示第二存储服务器存储第三数据。
作为一种示例,第一数据迁移请求中还可以携带对象块信息和需要进行数据迁移的第二存储设备的设备信息。
进一步地,当在数据迁移过程中接收到数据写入请求时,若待写入数据是需要迁移的数据,则确定用于存储待写入数据的对象块信息,将待写入数据和对象块信息发送给第二存储服务器,由第二存储服务器根据对象块信息存储待写入数据。
也就是说,当在数据迁移过程中接收到数据写入请求时,若管理服务器确定将待写入数据存储在第一存储服务器中,且第一存储服务器确定将待写入数据存储至第一存储设备中,可以由第一存储服务器根据第一存储设备的设备状态,确定存储待写入数据的对象块,将待写入数据和所确定的对象块信息发送给第二存储服务器,由第二存储服务器根据对象块信息在第二存储设备上确定对应的对象块,将待写入数据存储在第二存储设备中所确定的对象块中。
步骤1204:第二存储服务器接收第一数据迁移请求,确定用于存储第三数据的第二存储设备,将第三数据存储至所确定的第二存储设备中。
作为一种示例,当第一数据迁移请求中还携带需要进行数据迁移的第二存储设备的设备信息时,可以根据设备信息确定第二存储设备;或者,接收云存储系统中的管理服务器发送的需要进行数据迁移的第二存储设备的设备信息,根据设备信息确定第二存储设备。
作为一种示例,当第一数据迁移请求中还携带对象块信息时,从所确定的第二存储设备中确定对象块信息对应的对象块,将第三数据存储至所确定的对象块中。示例性地,参见图13,该图13为将需要迁移数据的第一存储设备中对象块的第三数据存储至第二存储设备中对应的对象块中的示意图。
需要说明的是,在上述步骤中,第一存储服务器为需要迁移数据的第一存储设备接入的存储服务器,第二存储服务器为用于存储迁移后数据的第二存储设备接入的存储服务器。在实际实现中,第一存储服务器也可以为存储迁移后数据的第一存储设备接入的存储服务器。
进一步地,当第一存储服务器也可以为存储迁移后数据的第一存储设备接入的存储服务器时,云存储系统中还可以包括第三存储服务器,在第一存储服务器和第三存储服务器之间进行数据迁移时,接收第三存储服务器发送的第二数据迁移请求,该第二数据迁移请求携带需要迁移的第四数据;确定用于存储第四数据的第一存储设备;将第四数据存储至所确定的第一存储设备中。
需要说明的是,在第一存储服务器与第三存储服务器之间,第三存储服务器与需要将数据迁移出去的第三存储设备相连,第一存储服务器与需要存储迁移后的数据的第一存储设备相连。这里具体地数据迁移过程与上述第一存储设备和第二存储设备之间进行数据迁移的过程一致,具体可参见上述步骤,本申请实施例在此不再赘述。
进一步地,在数据迁移过程中,可以将第三数据的实际存储位置进行上报,以使管理服务器可以掌握所有数据的存储位置,当在数据迁移过程中接收到数据读取或数据删除请求时,可以确定数据的实际位置,由实际位置对应的存储服务器对数据进行相应的读取或删除操作。
在本申请实施例中,第一存储服务器接收来自管理服务器的第三迁移任务消息,该第三迁移任务消息是由管理服务器在确定云存储系统中存在需要迁移的第三数据的情况下发送的。第一存储服务器可以从第三迁移任务消息中携带的设备信息指示的第一存储设备中获取需要迁移的第三数据,并将第三数据携带在第一数据迁移请求中发送给第二存储服务器,第一数据迁移请求用于指示第二存储服务器存储第三数据。如此,可以在第一存储设备出现问题之前,将第一存储设备上的第三数据迁移至第二存储设备上去,可以有效降低第一存储设备出现问题时数据丢失的可能性,而且不需要额外存储校验信息,提高了云存储系统的空间利用率。
图14是根据一示例性实施例示出的一种数据存储的装置的结构示意图,该装置可以由软件、硬件或者两者的结合实现。参见图14,该装置应用于云存储系统的第一存储服务器中,该第一存储服务器接有至少一个第一存储设备,该云存储系统还包括管理服务器和接有至少一个第二存储设备的第二存储服务器,其中,该至少一个第一存储设备和该至少一个第二存储设备均处于可使用状态,该装置可以包括:第一接收模块1401、发送模块1402和第一存储模块1403。
第一接收模块1401,用于接收来自管理服务器的第一迁移任务消息,该第一迁移任务消息是由管理服务器在确定云存储系统中存在需要迁移的第一数据的情况下发送的,第一迁移任务消息包括第二存储服务器的服务器信息以及用于存储第一数据的第一存储设备的设备信息;
发送模块1402,用于根据服务器信息,向第二存储服务器发送第一数据获取请求,第一数据获取请求用于指示反馈至少一个第二存储设备中需要迁移的第一数据;
第一存储模块1403,用于获取第二存储服务器发送的第一数据,将第一数据存储至设备信息指示的第一存储设备中。
在本申请一种可能的实现方式中,当云存储系统的存储空间通过若干个对象块存储数据时,第一存储模块1403用于:
接收第二存储服务器发送的对象块信息,对象块信息用于指示第一数据在至少一个第二存储设备中所在的对象块位置;
从设备信息指示的第一存储设备中确定对象块信息对应的对象块;
将第一数据存储至所确定的对象块中。
在本申请一种可能的实现方式中,第一存储模块1403还用于:
在数据迁移过程中,将第一数据的实际存储位置进行上报。
在本申请一种可能的实现方式中,云存储系统还包括第三存储服务器,第一存储模块1403还用于:
接收第三存储服务器发送的第二数据获取请求,第二数据获取请求用于指示向第三存储服务器反馈至少一个第一存储设备中需要迁移的第二数据;
从至少一个第一存储设备中获取需要迁移的第二数据;
将获取的第二数据发送给第三存储服务器。
在本申请一种可能的实现方式中,第一存储模块1403还用于:
获取需要进行数据迁移的第一存储设备的设备信息,其中,所获取的设备信息由第二数据获取请求携带或者由云存储系统中的管理服务器发送;
从所获取的设备信息指示的第一存储设备中获取第二数据。
在本申请一种可能的实现方式中,第一存储模块1403还用于:
当在数据迁移过程中接收到数据写入请求时,若待写入数据是需要迁移的数据,则确定用于存储待写入数据的对象块信息;
将待写入数据和所确定的对象块信息发送给第三存储服务器,由第三存储服务器根据对象块信息存储待写入数据。
在本申请一种可能的实现方式中,发送模块1402还用于按照如下至少一种迁移策略进行数据迁移:
优先迁移数据存储时间与当前时间之间的差值小于参考时间阈值的数据;
优先迁移第一存储设备中的关键数据;
仅迁移第一存储设备中的关键数据;
优先迁移第一存储设备中的参考通道数据;
仅迁移第一存储设备中的参考通道数据;
优先迁移第一存储设备中的用户锁定数据;
仅迁移第一存储设备中的用户锁定数据;
优先迁移第一存储设备中的参考时间段内的数据;
仅迁移第一存储设备中的参考时间段内的数据。
在本申请实施例中,第一存储服务器接收来自管理服务器的第一迁移任务消息,该第一迁移任务消息是由管理服务器在确定云存储系统中存在需要迁移的第一数据的情况下发送的。第一存储服务器可以根据第一迁移任务消息携带的第二存储服务器的服务器信息,向第二存储服务器发送第一数据获取请求,该第一数据获取请求用于指示反馈至少一个第二存储设备中需要迁移的第一数据,可以获取第二存储服务器发送的第一数据,并将第一数据存储至第一迁移任务消息携带的设备信息指示的第一存储设备中。如此,可以在第二存储设备出现问题之前,将第二存储设备上的第一数据迁移至第一存储设备上去,可以有效降低第二存储设备出现问题时数据丢失的可能性,而且不需要额外存储校验信息,提高了云存储系统的空间利用率。
需要说明的是:上述实施例提供的数据存储的装置在存储数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据存储的装置与数据存储的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图15是根据另一示例性实施例示出的一种数据存储的装置的结构示意图,该装置可以由软件、硬件或者两者的结合实现。参见图15,该装置应用于云存储系统的存储服务器中,该存储服务器接有需要进行数据迁移的旧存储设备以及用于存储迁移后数据的新存储设备,旧存储设备和新存储设备均处于可使用状态,该云存储系统还包括管理服务器,该装置可以包括:第二接收模块1501和第二存储模块1502。
接收模块1501,用于接收来自管理服务器的第二迁移任务消息,该第二迁移任务消息是由管理服务器在确定云存储系统中存在需要迁移的目标数据的情况下发送的,第二迁移任务消息中携带用于指示旧存储设备的旧设备信息和用于指示新存储设备的新设备信息;
存储模块1502,用于根据旧设备信息和新设备信息,将旧存储设备中的目标数据存储至新存储设备中。
在本申请一种可能的实现方式中,当云存储系统的存储空间通过若干个对象块存储数据时,第二存储模块1502用于:
确定目标数据在旧存储设备中所在对象块的对象块信息;
从新存储设备中确定对象块信息对应的对象块;
将目标数据存储至所确定的对象块中。
在本申请一种可能的实现方式中,第二存储模块1502还用于:
在数据迁移过程中,当接收到数据写入请求时,若待写入数据为需要迁移的数据,从旧存储设备中确定用于存储待写入数据的对象块信息;
根据所确定的对象块信息,从新存储设备中确定对应的对象块;
将待写入数据存储至所确定的对象块中。
在本申请一种可能的实现方式中,第二存储模块1502还用于按照如下至少一种迁移策略进行数据迁移:
优先迁移数据存储时间与当前时间之间的差值小于参考时间阈值的数据;
优先迁移旧存储设备中的关键数据;
仅迁移旧存储设备中的关键数据;
优先迁移旧存储设备中的参考通道数据;
仅迁移旧存储设备中的参考通道数据;
优先迁移旧存储设备中的用户锁定数据;
仅迁移旧存储设备中的用户锁定数据;
优先迁移旧存储设备中的参考时间段内的数据;
仅迁移旧存储设备中的参考时间段内的数据。
在本申请一种可能的实现方式中,其特征在于,第二存储模块1502还用于:
在数据迁移过程中,将目标数据的实际存储位置进行上报。
在本申请实施例中,存储服务器接收来自管理服务器的第二迁移任务消息,该第二迁移任务消息是由管理服务器在确定云存储系统中存在需要迁移的目标数据的情况下发送的。存储服务器可以根据第二迁移任务消息中携带的旧存储设备的旧设备信息和新存储设备的新设备信息,将旧存储设备中的目标数据存储至新存储设备中。如此,可以在旧存储设备出现问题之前,将旧存储设备上的目标数据迁移至新存储设备上去,可以有效降低旧存储设备出现问题时数据丢失的可能性,而且不需要额外存储校验信息,提高了云存储系统的空间利用率。
需要说明的是:上述实施例提供的数据存储的装置在存储数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据存储的装置与数据存储的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图16是根据一示例性实施例示出的一种设备1600的结构示意图,该设备1600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessing units,CPU)1601和一个或一个以上的存储器1602,其中,所述存储器1602中存储有至少一条指令,所述至少一条指令由所述处理器1601加载并执行以实现上述各个方法实施例提供的数据存储的方法。
当然,该设备1600还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该设备1600还可以包括其他用于实现设备功能的部件,在此不做赘述。
本申请实施例还提供了一种非临时性计算机可读存储介质,当所述存储介质中的指令由移动终端的处理器执行时,使得移动终端能够执行上述图4、图5、图8、图9、图11或图12所示实施例提供的数据存储的方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各个实施例提供的数据存储的方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (18)

1.一种数据存储的方法,其特征在于,应用于云存储系统的第一存储服务器中,所述第一存储服务器接有至少一个第一存储设备,所述云存储系统还包括管理服务器和接有至少一个第二存储设备的第二存储服务器,其中,所述至少一个第一存储设备和所述至少一个第二存储设备均处于可使用状态,所述方法包括:
接收来自所述管理服务器的第一迁移任务消息,所述第一迁移任务消息是由所述管理服务器在确定所述云存储系统中存在需要迁移的第一数据的情况下发送的,所述第一迁移任务消息包括所述第二存储服务器的服务器信息以及用于存储所述第一数据的第一存储设备的设备信息;
根据所述服务器信息,向所述第二存储服务器发送第一数据获取请求,所述第一数据获取请求用于指示反馈所述至少一个第二存储设备中需要迁移的第一数据;
获取所述第二存储服务器发送的第一数据,将所述第一数据存储至所述设备信息指示的第一存储设备中。
2.如权利要求1所述的方法,其特征在于,当所述云存储系统的存储空间通过若干个对象块存储数据时,所述将所述第一数据存储至所述设备信息指示的第一存储设备中,包括:
接收所述第二存储服务器发送的对象块信息,所述对象块信息用于指示所述第一数据在所述至少一个第二存储设备中所在的对象块位置;
从所述设备信息指示的第一存储设备中确定所述对象块信息对应的对象块;
将所述第一数据存储至所确定的对象块中。
3.如权利要求1-2任一项所述的方法,其特征在于,所述方法还包括:
在数据迁移过程中,将所述第一数据的实际存储位置进行上报。
4.如权利要求1所述的方法,其特征在于,所述云存储系统还包括第三存储服务器,所述方法还包括:
接收所述第三存储服务器发送的第二数据获取请求,所述第二数据获取请求用于指示向所述第三存储服务器反馈所述至少一个第一存储设备中需要迁移的第二数据;
从所述至少一个第一存储设备中获取需要迁移的第二数据;
将获取的第二数据发送给所述第三存储服务器。
5.如权利要求4所述的方法,其特征在于,所述从所述至少一个第一存储设备中获取需要迁移的第二数据,包括:
获取需要进行数据迁移的第一存储设备的设备信息,其中,所获取的设备信息由所述第二数据获取请求携带或者由所述云存储系统中的管理服务器发送;
从所获取的设备信息指示的第一存储设备中获取所述第二数据。
6.如权利要求4所述的方法,其特征在于,所述方法还包括:
当在数据迁移过程中接收到数据写入请求时,若待写入数据是需要迁移的数据,则确定用于存储待写入数据的对象块信息;
将所述待写入数据和所确定的对象块信息发送给所述第三存储服务器,由所述第三存储服务器根据所述对象块信息存储所述待写入数据。
7.如权利要求4-6任一项所述的方法,其特征在于,按照如下至少一种迁移策略进行数据迁移:
优先迁移数据存储时间与当前时间之间的差值小于参考时间阈值的数据;
优先迁移所述第一存储设备中的关键数据;
仅迁移所述第一存储设备中的关键数据;
优先迁移所述第一存储设备中的参考通道数据;
仅迁移所述第一存储设备中的参考通道数据;
优先迁移所述第一存储设备中的用户锁定数据;
仅迁移所述第一存储设备中的用户锁定数据;
优先迁移所述第一存储设备中的参考时间段内的数据;
仅迁移所述第一存储设备中的参考时间段内的数据。
8.一种数据存储的方法,其特征在于,应用于云存储系统的存储服务器中,所述存储服务器接有需要进行数据迁移的旧存储设备以及用于存储迁移后数据的新存储设备,所述旧存储设备和所述新存储设备均处于可使用状态,所述云存储系统还包括管理服务器,所述方法包括:
接收来自所述管理服务器的第二迁移任务消息,所述第二迁移任务消息是由所述管理服务器在确定所述云存储系统中存在需要迁移的目标数据的情况下发送的,所述第二迁移任务消息中携带用于指示所述旧存储设备的旧设备信息和用于指示所述新存储设备的新设备信息;
根据所述旧设备信息和所述新设备信息,将所述旧存储设备中的目标数据存储至所述新存储设备中。
9.如权利要求8所述的方法,其特征在于,当所述云存储系统的存储空间通过若干个对象块存储数据时,所述将所述旧存储设备中的目标数据存储至所述新存储设备中,包括:
确定所述目标数据在所述旧存储设备中所在对象块的对象块信息;
从所述新存储设备中确定所述对象块信息对应的对象块;
将所述目标数据存储至所确定的对象块中。
10.如权利要求8所述的方法,其特征在于,所述方法还包括:
在数据迁移过程中,当接收到数据写入请求时,若待写入数据为需要迁移的数据,从所述旧存储设备中确定用于存储待写入数据的对象块信息;
根据所确定的对象块信息,从所述新存储设备中确定对应的对象块;
将所述待写入数据存储至所确定的对象块中。
11.如权利要求8所述的方法,其特征在于,按照如下至少一种迁移策略进行数据迁移:
优先迁移数据存储时间与当前时间之间的差值小于参考时间阈值的数据;
优先迁移所述旧存储设备中的关键数据;
仅迁移所述旧存储设备中的关键数据;
优先迁移所述旧存储设备中的参考通道数据;
仅迁移所述旧存储设备中的参考通道数据;
优先迁移所述旧存储设备中的用户锁定数据;
仅迁移所述旧存储设备中的用户锁定数据;
优先迁移所述旧存储设备中的参考时间段内的数据;
仅迁移所述旧存储设备中的参考时间段内的数据。
12.如权利要求8-11任一项所述的方法,其特征在于,所述方法还包括:
在数据迁移过程中,将所述目标数据的实际存储位置进行上报。
13.一种数据存储的装置,其特征在于,应用于云存储系统的第一存储服务器中,所述第一存储服务器接有至少一个第一存储设备,所述云存储系统还包括管理服务器和接有至少一个第二存储设备的第二存储服务器,其中,所述至少一个第一存储设备和所述至少一个第二存储设备均处于可使用状态,所述装置包括:
第一接收模块,用于接收来自所述管理服务器的第一迁移任务消息,所述第一迁移任务消息是由所述管理服务器在确定所述云存储系统中存在需要迁移的第一数据的情况下发送的,所述第一迁移任务消息包括所述第二存储服务器的服务器信息以及用于存储所述第一数据的第一存储设备的设备信息;
发送模块,用于根据所述服务器信息,向所述第二存储服务器发送第一数据获取请求,所述第一数据获取请求用于指示反馈所述至少一个第二存储设备中需要迁移的第一数据;
第一存储模块,用于获取所述第二存储服务器发送的第一数据,将所述第一数据存储至所述设备信息指示的第一存储设备中。
14.一种数据存储的装置,其特征在于,应用于云存储系统的存储服务器中,所述存储服务器接有需要进行数据迁移的旧存储设备以及用于存储迁移后数据的新存储设备,所述旧存储设备和所述新存储设备均处于可使用状态,所述云存储系统还包括管理服务器,所述装置包括:
第二接收模块,用于接收来自所述管理服务器的第二迁移任务消息,所述第二迁移任务消息是由所述管理服务器在确定所述云存储系统中存在需要迁移的目标数据的情况下发送的,所述第二迁移任务消息中携带用于指示所述旧存储设备的旧设备信息和用于指示所述新存储设备的新设备信息;
第二存储模块,用于根据所述旧设备信息和所述新设备信息,将所述旧存储设备中的目标数据存储至所述新存储设备中。
15.一种云存储系统,其特征在于,所述云存储系统包括接有至少一个第一存储设备的第一存储服务器、接有至少一个第二存储设备的第二存储服务器,以及管理服务器,其中,所述至少一个第一存储设备和所述至少一个第二存储设备均处于可使用状态;
所述管理服务器,用于在确定所述云存储系统中存在需要迁移的第一数据的情况下,向所述第一存储服务器发送第一迁移任务消息,所述第一迁移任务消息包括所述第二存储服务器的服务器信息以及用于存储所述第一数据的第一存储设备的设备信息;
所述第一存储服务器,用于根据所述服务器信息,向所述第二存储服务器发送第一数据获取请求,所述第一数据获取请求用于指示反馈所述至少一个第二存储设备中需要迁移的第一数据;
所述第一存储服务器,用于获取所述第二存储服务器发送的第一数据,将所述第一数据存储至所述设备信息指示的第一存储设备中。
16.一种云存储系统,其特征在于,所述云存储系统包括存储服务器和管理服务器,其中,所述存储服务器接有需要进行数据迁移的旧存储设备以及用于存储迁移后数据的新存储设备,所述旧存储设备和所述新存储设备均处于可使用状态;
所述管理服务器,用于在确定所述云存储系统中存在需要迁移的目标数据的情况下,向所述存储服务器发送第二迁移任务消息,所述第二迁移任务消息中携带用于指示所述旧存储设备的旧设备信息和用于指示所述新存储设备的新设备信息;
所述存储服务器,用于根据所述旧设备信息和所述新设备信息,将所述旧存储设备中的目标数据存储至所述新存储设备中。
17.一种设备,其特征在于,所述设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为实现权利要求1-7所述的任一项方法的步骤,或者实现权利要求8-12所述的任一项方法的步骤。
18.一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,其特征在于,所述指令被处理器执行时实现权利要求1-7所述的任一项方法的步骤,或者实现权利要求8-12所述的任一项方法的步骤。
CN201911349200.7A 2019-12-24 2019-12-24 数据存储的方法、装置、系统、设备及存储介质 Active CN111399763B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911349200.7A CN111399763B (zh) 2019-12-24 2019-12-24 数据存储的方法、装置、系统、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911349200.7A CN111399763B (zh) 2019-12-24 2019-12-24 数据存储的方法、装置、系统、设备及存储介质

Publications (2)

Publication Number Publication Date
CN111399763A true CN111399763A (zh) 2020-07-10
CN111399763B CN111399763B (zh) 2023-05-16

Family

ID=71436116

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911349200.7A Active CN111399763B (zh) 2019-12-24 2019-12-24 数据存储的方法、装置、系统、设备及存储介质

Country Status (1)

Country Link
CN (1) CN111399763B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105549904A (zh) * 2015-12-08 2016-05-04 华为技术有限公司 一种应用于存储系统中的数据迁移方法及存储设备
CN106951179A (zh) * 2016-01-07 2017-07-14 杭州海康威视数字技术股份有限公司 一种数据迁移方法及装置
CN107046810A (zh) * 2015-12-03 2017-08-15 华为技术有限公司 一种虚拟机备份信息迁移方法、装置和系统
CN109407964A (zh) * 2017-08-18 2019-03-01 阿里巴巴集团控股有限公司 一种数据的迁移方法、装置及设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107046810A (zh) * 2015-12-03 2017-08-15 华为技术有限公司 一种虚拟机备份信息迁移方法、装置和系统
CN105549904A (zh) * 2015-12-08 2016-05-04 华为技术有限公司 一种应用于存储系统中的数据迁移方法及存储设备
CN106951179A (zh) * 2016-01-07 2017-07-14 杭州海康威视数字技术股份有限公司 一种数据迁移方法及装置
CN109407964A (zh) * 2017-08-18 2019-03-01 阿里巴巴集团控股有限公司 一种数据的迁移方法、装置及设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
谢长生等: "统一存储网数据迁移系统的设计与实现", 《华中科技大学学报(自然科学版)》 *

Also Published As

Publication number Publication date
CN111399763B (zh) 2023-05-16

Similar Documents

Publication Publication Date Title
US11327799B2 (en) Dynamic allocation of worker nodes for distributed replication
US10761765B2 (en) Distributed object replication architecture
US10585746B2 (en) Tracking status and restarting distributed replication
US11349915B2 (en) Distributed replication and deduplication of an object from a source site to a destination site
CN109582213B (zh) 数据重构方法及装置、数据存储系统
CN110096220B (zh) 一种分布式存储系统、数据处理方法和存储节点
US10552089B2 (en) Data processing for managing local and distributed storage systems by scheduling information corresponding to data write requests
CN110134338B (zh) 一种分布式存储系统及其数据冗余保护方法和相关设备
US10956990B2 (en) Methods and apparatuses for adjusting the distribution of partitioned data
CN111212111B (zh) 对象存储服务管理方法及电子设备
CN109144406B (zh) 分布式存储系统中元数据存储方法、系统及存储介质
CN108733311B (zh) 用于管理存储系统的方法和设备
US10936356B2 (en) Virtual machine management
US10254993B2 (en) Selecting first data sets in a first storage group to swap with second data sets in a second storage group
US9164856B2 (en) Persistent messaging mechanism
US20190347165A1 (en) Apparatus and method for recovering distributed file system
CN111225003B (zh) 一种nfs节点配置方法和装置
CN113687790A (zh) 数据重构方法、装置、设备及存储介质
CN107948229B (zh) 分布式存储的方法、装置及系统
US20150212847A1 (en) Apparatus and method for managing cache of virtual machine image file
IL295006A (en) Security for virtual machines
CN103685359B (zh) 数据处理方法及装置
EP4379543A1 (en) Cloud desktop data migration method, service node, management node, server, electronic device, and computer-readable storage medium
US9342419B2 (en) Persistent messaging mechanism
CN111399763B (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