CN111381766B - 一种磁盘动态加载的方法和云存储系统 - Google Patents
一种磁盘动态加载的方法和云存储系统 Download PDFInfo
- Publication number
- CN111381766B CN111381766B CN201811625675.XA CN201811625675A CN111381766B CN 111381766 B CN111381766 B CN 111381766B CN 201811625675 A CN201811625675 A CN 201811625675A CN 111381766 B CN111381766 B CN 111381766B
- Authority
- CN
- China
- Prior art keywords
- disk
- storage
- storage node
- node
- management
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000011068 loading method Methods 0.000 title claims abstract description 53
- 238000000034 method Methods 0.000 title claims abstract description 27
- 230000011664 signaling Effects 0.000 claims description 22
- 230000002457 bidirectional effect Effects 0.000 claims description 11
- 238000007726 management method Methods 0.000 description 82
- 101100121776 Arabidopsis thaliana GIG1 gene Proteins 0.000 description 48
- 101100267551 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) YME1 gene Proteins 0.000 description 48
- 230000002159 abnormal effect Effects 0.000 description 15
- 238000011084 recovery Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 102100039121 Histone-lysine N-methyltransferase MECOM Human genes 0.000 description 1
- 101001033728 Homo sapiens Histone-lysine N-methyltransferase MECOM Proteins 0.000 description 1
- 101001056394 Homo sapiens Myelodysplastic syndrome 2 translocation-associated protein Proteins 0.000 description 1
- 101150095599 MDS3 gene Proteins 0.000 description 1
- 102100026313 Myelodysplastic syndrome 2 translocation-associated protein Human genes 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种磁盘动态加载的方法和云存储系统,所述方法包括如下步骤:应用于云存储系统,所述系统包括管理节点以及多个存储节点,所述多个存储节点接入同一SAS交换机,所述方法包括:当所述管理节点检测到第一存储节点出现软件故障时,发送磁盘加载指令至第二存储节点;所述第二存储节点在接收到所述磁盘加载指令后,通过所述SAS交换机加载所述第一存储节点的磁盘;所述管理节点更新本地存储的所述磁盘对应的存储节点信息。本发明通过使用SAS交换机,存储节点可以访问交换机上面的所有存储节点的磁盘,从而实现通过其他存储节点加载故障存储节点的磁盘,实现磁盘的动态加载,减少系统重构的性能损耗,提高对象存储磁盘的可用性。
Description
技术领域
本发明涉及数据存储技术领域,尤其涉及一种磁盘动态加载的方法和云存储系统。
背景技术
随着社会的发展,安全日益成为人们关注的重点,平安城市等项目的推进为我们的安全生活提供了一定的保障。安防监控中存在大量录像数据,云存储为海量数据的存储提供了弹性的存储空间,云存储的存储空间需要维护存储集群,数据一般分散在存储集群中。
云存储可以采用副本模式或者EC模式,保证数据的完整性,在存储集群中,一台设备故障后,需要通过副本或者EC数据恢复出故障存储中的数据,也就是重构。当云存储的存储集群规模较大时,存储节点故障将变得频繁。尤其当存储节点的故障中有一部分为软件故障,如服务启动失败、操作系统异常等,虽然可以通过副本或者EC计算得到故障节点中的数据,却消耗了存储集群的计算能力,增加了集群负担。
发明内容
本发明实施例提供了一种磁盘动态加载的方法和云存储系统,可以减少因进行数据重构而造成的系统资源消耗。所述技术方案如下:
第一方面,提供了一种磁盘动态加载的方法,应用于云存储系统,所述系统包括管理节点以及多个存储节点,所述多个存储节点接入同一SAS交换机,所述方法包括:
当所述管理节点检测到第一存储节点出现软件故障时,发送磁盘加载指令至第二存储节点;
所述第二存储节点在接收到所述磁盘加载指令后,通过所述SAS交换机加载所述第一存储节点的磁盘;
所述管理节点更新本地存储的所述磁盘对应的存储节点信息。
优选的,所述方法还包括:
当所述管理节点接收到读取所述磁盘的数据的请求时,根据更新后的本地存储的所述磁盘对应的存储节点信息,将读取请求下发至第二存储节点;
所述第二存储节点根据接收到的所述读取请求,通过所述SAS交换机读取所述磁盘中的数据;
或者,
当所述管理节点接收到向所述磁盘写入数据的请求时,根据更新后的本地存储的所述磁盘对应的存储节点信息,将写入请求下发至第二存储节点;
所述第二存储节点根据接收到的所述写入请求,通过所述SAS交换机向所述磁盘写入数据。
优选的,所述通过所述SAS交换机加载所述第一存储节点的磁盘,包括:
所述第二存储节点将第一存储节点中的磁盘的索引信息更新至第二存储节点的数据库。
优选的,所述管理节点更新本地存储的所述磁盘对应的OSD信息,包括:
所述管理节点将所述磁盘与第二存储节点相对应的信息更新至本地数据库中。
优选的,在所述管理节点更新本地存储的所述磁盘对应的存储节点信息之前,还包括:
所述管理节点接收到所述第二存储节点发送的加载磁盘成功的消息。
根据本发明的另一个方面,还提供了一种云存储系统,所述系统包括:管理节点以及多个存储节点,所述多个存储节点接入同一SAS交换机,所述多个存储节点包括第一存储节点和第二存储节点,其中:
所述管理节点,用于在检测到第一存储节点出现软件故障时,发送磁盘加载指令至所述第二存储节点;
所述第二存储节点,用于在接收到所述磁盘加载指令后,通过所述SAS交换机加载所述第一存储节点的磁盘;
所述管理节点,还用于更新本地存储的所述磁盘对应的存储节点信息。
优选的,所述管理节点,还用于在接收到读取所述磁盘的数据的请求时,根据更新后的本地存储的所述磁盘对应的存储节点信息,将读取请求下发至第二存储节点;
所述第二存储节点,还用于根据接收到的所述读取请求,通过所述SAS交换机读取所述磁盘中的数据;
或者,
所述管理节点,还用于在接收到向所述磁盘写入数据的请求时,根据更新后的本地存储的所述磁盘对应的存储节点信息,将写入请求下发至第二存储节点;
所述第二存储节点,还用于根据接收到的所述写入请求,通过所述SAS交换机向所述磁盘写入数据。
优选的,所述第二存储节点,还用于将第一存储节点中的磁盘的索引信息更新至第二存储节点的数据库。
优选的,所述管理节点,还用于将所述磁盘与第二存储节点相对应的信息更新至本地数据库中。
优选的,所述管理节点,还用于接收所述第二存储节点发送的加载磁盘成功的消息。
本发明的磁盘动态加载的方法通过存储节点接入同一SAS交换机,存储节点可以访问所有存储节点的磁盘,从而实现在一个存储节点软件故障的情况下,通过其他存储节点加载故障存储节点的磁盘,实现磁盘的动态加载,减少系统重构的性能损耗,提高对象存储磁盘的可用性。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
附图1示出了根据本发明实施方式的磁盘动态加载的方法的第一种整体流程示意图。
附图2示出了根据本发明实施方式的存储节点接入SAS交换机的结构示意图。
附图3示出了根据本发明实施方式的磁盘动态加载的方法的第二种整体流程示意图。
附图4示出了根据本发明实施方式的MDS漂移磁盘的第一种流程示意图。
附图5示出了根据本发明实施方式的MDS漂移磁盘的第二种流程示意图。
附图6示出了根据本发明实施方式的MDS漂移磁盘的第三种流程示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施方式。虽然附图中显示了本公开的示例性实施方式,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明中,以下术语定义如下:
数据库:数据库(DataBase,DB)是指在计算机的存储设备上合理存放的相关联的有结构的数据集合。一个数据库含有各种成分,包括表、视图、存储过程、记录、字段、索引等。
录像定位:本发明指的是根据用户输入的时间,系统可以根据数据库中记录的相关信息,快速找到此时间所对应存储的录像数据。
Byte:数据存储是以“字节”(Byte)为单位,每8个位(bit,简写为b)组成一个字节(Byte,简写为B),是最小一级的信息单位。
视频流:是指视频数据的传输,它能够被作为一个稳定的和连续的流通过网络处理。
对象存储:对象存储系统是为用户提供的海量、安全、高可靠和易扩展的云存储服务。它并非将文件组织成一个目录层次结构,而是在一个扁平化的容器组织中存储文件,并使用唯一的ID来检索它们。其结果是对象存储系统相比文件系统需要更少的元数据来存储和访问文件,并且它们还减少了因存储元数据而产生的管理文件元数据的开销。对象存储系统通过与平台无关的RESTFUL协议为用户提供服务,支持通过web方便的存储和管理海量对象数据。对象存储系统可以在一个持久稳固且高度可用的系统中存储任意的对象,应用和用户可以在对象存储中使用简单的API访问数据;这些通常都基于表属性状态转移(REST)架构,但是也有面向编程语言的界面。
OSD:对象存储设备,本方案代表存储节点,是对象存储系统中的读写对象数据的模块。OSD将数据存放到磁盘的磁道和扇区,将若干磁道和扇区组合起来构成对象,并且通过此对象向外界提供对数据的访问。
MDS:对象存储系统中的管理节点,保存了对象的索引信息,包括对象名字,对象数据保存的具体位置信息,对象的最后修改时间等。
分配资源:本方案指MDS为对象数据的写入分配存储资源,具体的指分配OSD以及对象的磁盘。
文件对象:文件对象是对象存储保存数据的一种类型,文件对象是用户一次性上传到云存储的,是使用PUT协议一次交互完成上传的。
集群技术:集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。集群配置是用于提高可用性和可缩放性。
磁盘加载:云存储中存储用户数据的介质,云存储将数据持久化到多个磁盘中,用户可以随时请求下载数据,云存储从磁盘中读取数据返回给用户。在linux操作系统中,加载是指将一个设备(通常是存储设备)挂接到一个已存在的目录上。我们要访问存储设备中的文件,必须将文件所在的分区挂载到一个已存在的目录上,然后通过访问这个目录来访问存储设备。磁盘只有被云存储加载起来后,才能进行读写操作。
磁盘漂移:磁盘在OSD之间漂移,是指磁盘的读写控制从一个OSD,切换到另外一个OSD。
重构:EC中通过有效的数据块和校验块,可以计算恢复出损坏数据块的过程。
SAS交换机:使用SAS协议进行磁盘发现,模拟网络通信的交换机。存储节点接入SAS交换机后,可以发现并且使用交换机上接入的所有存储节点中的磁盘设备。
附图1所示为根据本实施例的磁盘动态加载的方法的整体流程示意图,下面分别对各个步骤进行详细说明。该一种磁盘动态加载的方法,应用于云存储系统,所述系统包括管理节点以及多个存储节点,所述多个存储节点接入同一SAS交换机。
附图2所示为根据本发明的存储节点接入SAS交换机的结构示意图。本发明的一种实施方式中,管理集群的各个管理节点MDS1、MDS2、MDS3…MDSN的信令口与普通千兆交换机互联,通过相互之间的互联实现信令交换。存储集群的各个存储节点OSD1、OSD2、0SD3…OSDN的信令口与普通千兆交换机互联,通过相互之间的互联实现信令交换,同时,存储集群的各个存储节点OSD1、OSD2、0SD3…OSDN的数据口通过SAS交换机互联,通过互联实现相互之间的数据交换。
其中,管理节点MDS与普通千兆交换机之间的信令交换为双向交换,信令在管理节点MDS与普通千兆交换机之间可双向传输;存储节点OSD与普通千兆交换机之间的信令交换为双向交换,信令在存储节点OSD与普通千兆交换机之间可双向传输;存储节点OSD与SAS交换机之间的数据交换也为双向交换,数据在存储节点OSD与SAS交换机之间可双向传输。
由于SAS交换机使用SAS协议进行磁盘发现,模拟网络通信,当存储节点接入SAS交换机后,可以发现并且使用交换机上接入的所有存储节点中的磁盘设备。通过将云存储中的存储节点OSD与SAS交换机连接,存储节点OSD可以访问其他存储节点的磁盘。
具体的,如图1所示,本发明的所述磁盘动态加载的方法包括:
S1、当管理节点检测到第一存储节点出现软件故障时,发送磁盘加载指令至第二存储节点。
假设某个存储节点软件层面故障,如服务启动失败、操作系统异常等。存储节点软件故障后,故障的存储节点无法正常上报心跳给管理节点MDS,管理节点MDS会认为故障存储节点离线,此时管理节点MDS会请求其他存储节点尝试加载故障存储节点的磁盘,其他存储节点加载成功后,故障节点中的磁盘数据可以通过其他存储节点正常读取,当然也可以写数据到磁盘中,由此避免了数据恢复的过程。
S2、所述第二存储节点在接收到所述磁盘加载指令后,通过SAS交换机加载所述第一存储节点的磁盘;
优选的,所述第二存储节点将第一存储节点中的磁盘的索引信息更新至第二存储节点的数据库。
具体实现方式例如,本申请通过利用SAS交换机,将第一存储节点中的磁盘索引信息发送到第二存储节点,第二存储节点将第一存储节点中的磁盘索引信息拷贝到本节点的数据库内以进行更新,目的是将来利用这个磁盘索引信息读取存在故障的第一存储节点对应的磁盘数据。
例如,管理节点MDS根据存储节点的状态,可以将磁盘动态调整到其他存储节点进行读写加载。若管理节点MDS未发现存储节点异常,则正常读写磁盘数据;而当管理节点MDS发现某个存储节点异常后,请求同一个交换机中的另一个存储节点加载故障存储节点的磁盘,通过该另一个存储节点正常读写故障存储节点的磁盘数据,实现磁盘漂移。
从上述流程可以看出,管理节点MDS根据存储节点的状态实现磁盘漂移。当某个存储节点的软件系统故障后,磁盘的读写权限从故障存储节点自动漂移到存储集群中的正常存储节点。
磁盘漂移后,磁盘的读写请求都通过正常存储节点进行,正常存储节点像使用本地磁盘一样使用漂移过来的磁盘。由此,另一个正常存储节点通过SAS交换机正常访问到故障存储节点中的磁盘,可以实现正常加载故障存储节点中的磁盘。
S3、所述管理节点更新本地存储的所述磁盘对应的存储节点信息。优选的,的,所述管理节点将所述磁盘与第二存储节点相对应的信息更新至本地数据库中。优选的,在所述管理节点更新本地存储的所述磁盘对应的存储节点信息之前,还可以包括:所述管理节点接收到所述第二存储节点发送的加载磁盘成功的消息。
具体实现方式例如,当第二存储节点加载第一存储节点对应的磁盘成功后,会发送相应的加载磁盘成功的消息给管理节点。管理节点接收到该成功的消息后,将所述磁盘与第二存储节点相对应的信息更新至管理节点的本地数据库中,以此作为记录,这样下一次如果第一存储节点再次故障并需要再加载该磁盘时,不必搜索或寻找新的存储节点加载该磁盘,可以直接分配第二存储节点加载该磁盘。
经过上述步骤,存储节点软件层面异常后,磁盘可以顺利被其他存储节点加载读写,数据读写不需要通过重构等来恢复数据,避免了不必要的计算。而且,存储节点异常后,整个云存储数据的读写不会有太大的性能影响。
故障存储节点恢复正常后,MDS可以请求其他存储节点卸载该被加载的磁盘。例如,在故障存储节点恢复正常后,管理节点MDS可以首先请求其他存储节点卸载已加载的故障存储节点的磁盘,再请求原故障存储节点加载所述磁盘,这样原故障存储节点的本地磁盘又可以由原故障存储节点自己接管读写,由此可以分散系统中存储节点的操作磁盘的压力。
如此,本发明通过磁盘在对象存储内部的存储节点之间漂移,实现磁盘的动态加载,在存储节点软件故障后,通过SAS交换机,实现存储节点的漂移,可以继续访问故障存储节点的磁盘数据,提高对象存储磁盘的可用性。
优选的,在本发明的另一个优选实施方案中,如图3所示,所述方法还可以进一步包括:
S4、当所述管理节点接收到读取所述磁盘的数据的请求时,根据更新后的本地存储的所述磁盘对应的存储节点信息,将读取请求下发至第二存储节点;
所述第二存储节点根据接收到的所述读取请求,通过所述SAS交换机读取所述磁盘中的数据;或者,
当所述管理节点接收到向所述磁盘写入数据的请求时,根据更新后的本地存储的所述磁盘对应的存储节点信息,将写入请求下发至第二存储节点;
所述第二存储节点根据接收到的所述写入请求,通过所述SAS交换机向所述磁盘写入数据。
由此,故障存储节点的磁盘,通过其他存储节点的加载后,实现正常读写。故障存储节点的磁盘被正常存储节点成功加载后,后续的磁盘数据的读写,都可以通过加载磁盘的存储节点进行,SAS交换机使得存储节点访问同一个交换机中其他存储节点的磁盘,就像访问本地磁盘一样。
对应的,本发明还提出一种云存储系统,所述系统包括:管理节点以及多个存储节点,所述多个存储节点接入同一SAS交换机,所述多个存储节点包括第一存储节点和第二存储节点,其中:
所述管理节点,用于在检测到第一存储节点出现软件故障时,发送磁盘加载指令至所述第二存储节点;
所述第二存储节点,用于在接收到所述磁盘加载指令后,通过所述SAS交换机加载所述第一存储节点的磁盘;
根据本发明的另一个优选实施例,所述管理节点,还用于更新本地存储的所述磁盘对应的存储节点信息。
根据本发明的另一个优选实施例,所述管理节点,还用于在接收到读取所述磁盘的数据的请求时,根据更新后的本地存储的所述磁盘对应的存储节点信息,将读取请求下发至第二存储节点;
根据本发明的另一个优选实施例,所述第二存储节点,还用于根据接收到的所述读取请求,通过所述SAS交换机读取所述磁盘中的数据;或者,
所述管理节点,还用于在接收到向所述磁盘写入数据的请求时,根据更新后的本地存储的所述磁盘对应的存储节点信息,将写入请求下发至第二存储节点;
所述第二存储节点,还用于根据接收到的所述写入请求,通过所述SAS交换机向所述磁盘写入数据。
根据本发明的另一个优选实施例,所述第二存储节点,还用于将第一存储节点中的磁盘的索引信息更新至第二存储节点的数据库。
根据本发明的另一个优选实施例,所述管理节点,还用于将所述磁盘与第二存储节点相对应的信息更新至本地数据库中。
根据本发明的另一个优选实施例,所述管理节点,还用于接收所述第二存储节点发送的加载磁盘成功的消息。
如图4所示,根据本实施例的MDS请求交换机中其他存储节点加载故障存储节点的磁盘的步骤,即MDS漂移磁盘的步骤,具体如下:
A1、存储节点OSD1异常。
假设存储节点OSD1软件层面故障,如服务启动失败、操作系统异常等,这种情况下磁盘和磁盘上的数据是正常的,磁盘依然可以访问。
A2、管理节点MDS请求存储节点OSD2加载存储节点OSD1的磁盘。
存储节点软件故障后,存储节点OSD1无法正常上报心跳给管理节点MDS,管理节点MDS会认为存储节点OSD1离线,此时管理节点MDS会请求其他存储节点OSD尝试加载存储节点OSD1的磁盘,其他存储节点OSD加载成功后,故障节点中的磁盘数据可以通过其他存储节点OSD正常读取,当然也可以写数据到磁盘中,由此避免了数据恢复的过程。
具体的,管理节点MDS根据存储节点的状态,可以将磁盘动态调整到其他存储节点进行读写加载。若管理节点MDS未发现存储节点异常,则正常读写磁盘数据;而当管理节点MDS发现存储节点OSD1异常后,请求同一个交换机中的存储节点OSD2加载存储节点OSD1的磁盘,通过存储节点OSD2正常读写存储节点OSD1的磁盘数据,实现磁盘漂移。
从上述流程可以看出,管理节点MDS根据存储节点的状态实现磁盘漂移。当存储节点OSD1的软件系统故障后,磁盘的读写权限从故障存储节点OSD1自动漂移到存储集群中的正常存储节点OSD2。
A3、存储节点OSD2成功加载OSD1的磁盘。
磁盘漂移后,磁盘的读写请求都通过正常存储节点OSD2进行,存储节点OSD2像使用本地磁盘一样使用漂移过来的磁盘。
由此,存储节点OSD2通过SAS交换机正常访问到OSD1中的磁盘,可以实现正常加载OSD1中的磁盘。
故障存储节点OSD1的磁盘,通过其他存储节点OSD2的加载后,实现正常读写。故障存储节点OSD1的磁盘被正常存储节点OSD2成功加载后,后续的磁盘数据的读写,都可以通过加载磁盘的存储节点OSD进行,SAS交换机使得存储节点OSD访问同一个交换机中其他存储节点OSD的磁盘,就像访问本地磁盘一样。
经过上述步骤,存储节点OSD软件层面异常后,磁盘可以顺利被其他存储节点OSD加载读写,数据读写不需要通过重构等来恢复数据,避免了不必要的计算。而且,存储节点OSD异常后,整个云存储数据的读写不会有太大的性能影响。
故障存储节点恢复正常后,MDS请求其他存储节点卸载该被加载的磁盘。例如,在故障存储节点OSD1恢复正常后,管理节点MDS可以首先请求其他存储节点OSD2卸载已加载的故障存储节点OSD1的磁盘,再请求存储节点OSD1加载所述磁盘,这样存储节点OSD1的本地磁盘又可以由存储节点OSD1自己接管读写,由此可以分散系统中存储节点OSD的操作磁盘的压力。
如图5所示,在另一可选的实施例中,当SAS交换机中多个存储节点软件故障后,MDS请求交换机中其他存储节点加载故障存储节点的磁盘,由此MDS漂移磁盘的步骤具体如下:
B1、存储节点OSD1、OSD3异常。
假设存储节点OSD1、OSD3软件层面故障,如服务启动失败、操作系统异常等,这种情况下磁盘和磁盘上的数据是正常的,磁盘依然可以访问。
B2、管理节点MDS请求存储节点OSD2加载存储节点OSD1、OSD3的磁盘。
存储节点软件故障后,存储节点OSD1、OSD3无法正常上报心跳给管理节点MDS,管理节点MDS会认为存储节点OSD1、OSD3离线,此时管理节点MDS会请求其他存储节点OSD尝试加载存储节点OSD1、OSD3的磁盘,其他存储节点OSD加载成功后,故障节点中的磁盘数据可以通过其他存储节点OSD正常读取,当然也可以写数据到磁盘中,由此避免了数据恢复的过程。
具体的,管理节点MDS根据存储节点的状态,可以将磁盘动态调整到其他存储节点进行读写加载。若管理节点MDS未发现存储节点异常,则正常读写磁盘数据;而当管理节点MDS发现存储节点OSD1、OSD3异常后,请求同一个交换机中的存储节点OSD2加载存储节点OSD1、OSD3的磁盘,通过存储节点OSD2正常读写存储节点OSD1、OSD3的磁盘数据,实现磁盘漂移。
从上述流程可以看出,管理节点MDS根据存储节点的状态实现磁盘漂移。当多个存储节点OSD1、OSD3的软件系统故障后,磁盘的读写权限从故障存储节点OSD1、OSD3自动漂移到存储集群中的正常存储节点OSD2。
B3、存储节点OSD2成功加载存储节点OSD1、OSD3的磁盘。
磁盘漂移后,磁盘的读写请求都通过正常存储节点OSD2进行,存储节点OSD2像使用本地磁盘一样使用漂移过来的磁盘。
由此,存储节点OSD2通过SAS交换机正常访问到OSD1、OSD3中的磁盘,可以实现正常加载OSD1、OSD3中的磁盘。
如图6所示,在另一可选的实施例中,当SAS交换机中多个存储节点软件故障后,MDS请求交换机中其他存储节点加载故障存储节点的磁盘,由此MDS漂移磁盘的步骤具体如下:
C1、存储节点OSD1、OSD3异常。
假设存储节点OSD1、OSD3软件层面故障,如服务启动失败、操作系统异常等,这种情况下磁盘和磁盘上的数据是正常的,磁盘依然可以访问。
C2、管理节点MDS请求存储节点OSD2、OSD4加载存储节点OSD1、OSD3的磁盘。
存储节点软件故障后,存储节点OSD1、OSD3无法正常上报心跳给管理节点MDS,管理节点MDS会认为存储节点OSD1、OSD3离线,此时管理节点MDS会请求其他存储节点OSD尝试加载存储节点OSD1、OSD3的磁盘,其他存储节点OSD加载成功后,故障节点中的磁盘数据可以通过其他存储节点OSD正常读取,当然也可以写数据到磁盘中,由此避免了数据恢复的过程。
具体的,管理节点MDS根据存储节点的状态,可以将磁盘动态调整到其他存储节点进行读写加载。若管理节点MDS未发现存储节点异常,则正常读写磁盘数据;而当管理节点MDS发现存储节点OSD1、OSD3异常后,请求同一个交换机中的存储节点OSD2、OSD4加载存储节点OSD1、OSD3的磁盘,通过存储节点OSD2、OSD4正常读写存储节点OSD1、OSD3的磁盘数据,实现磁盘漂移。
从上述流程可以看出,管理节点MDS根据存储节点的状态实现磁盘漂移。当多个存储节点OSD1、OSD3的软件系统故障后,磁盘的读写权限从故障存储节点OSD1、OSD3自动漂移到存储集群中的正常存储节点OSD2、OSD4。
C3、存储节点OSD2、OSD4成功加载存储节点OSD1、OSD3的磁盘。
磁盘漂移后,磁盘的读写请求都通过正常存储节点OSD2、OSD4进行,存储节点OSD2、OSD4像使用本地磁盘一样使用漂移过来的磁盘。
由此,存储节点OSD2、OSD4通过SAS交换机正常访问到OSD1、OSD3中的磁盘,可以实现正常加载OSD1、OSD3中的磁盘。
在本发明的其他实施方式中,提出了一种磁盘动态加载设备,包括:
一个或多个处理器、存储一个或多个程序的存储装置;
当所述一个或多个程序被所述一个或多个处理器执行时,所述一个或多个处理器实现所述的磁盘动态加载方法。
在本发明的其他实施方式中,还提出了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述的磁盘动态加载方法。
以上是对本发明所提供的一种磁盘动态加载的方法和装置进行详细介绍,本发明通过磁盘在对象存储内部的存储节点之间漂移,实现磁盘的动态加载,在存储节点软件故障后,通过SAS交换机,实现存储节点的漂移,可以继续访问故障存储节点的磁盘数据,提高对象存储磁盘的可用性。本文中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (4)
1.一种磁盘动态加载的方法,其特征在于,应用于云存储系统,所述系统包括管理集群和存储集群,所述管理集群的各个管理节点的信令口与千兆交换机互联,通过相互之间的互联实现信令交换;存储集群的各个存储节点的信令口与所述千兆交换机互联,通过相互之间的互联实现信令交换,同时,存储集群的各个存储节点的数据口通过SAS交换机互联,通过互联实现相互之间的数据交换;其中,管理节点与千兆交换机之间的信令交换为双向交换,存储节点与千兆交换机之间的信令交换为双向交换,存储节点与SAS交换机之间的数据交换也为双向交换;当存储节点接入SAS交换机后,可以发现并且使用SAS交换机上接入的所有存储节点中的磁盘设备;
所述方法包括:
所述存储集群包括第一存储节点和第二存储节点,当所述管理节点检测到第一存储节点出现软件故障时,通过千兆交换机将第一存储节点中的磁盘索引信息发送到第二存储节点,发送磁盘加载指令至第二存储节点;所述第二存储节点为除第一存储节点外的任一个节点;
所述第二存储节点在接收到所述磁盘加载指令后,将第一存储节点中的磁盘的索引信息更新至第二存储节点的数据库,通过所述SAS交换机加载所述第一存储节点的磁盘;
所述管理节点在接收到所述第二存储节点发送的加载磁盘成功的消息之后,更新本地存储的所述磁盘对应的存储节点信息;如果第一存储节点再次软件故障并需要再加载所述第一存储节点的磁盘时,直接分配第二存储节点加载该磁盘;
当所述管理节点接收到读取所述磁盘的数据的请求时,根据更新后的本地存储的所述磁盘对应的存储节点信息,将读取请求下发至第二存储节点;
所述第二存储节点根据接收到的所述读取请求,通过所述SAS交换机读取所述磁盘中的数据;
或者,
当所述管理节点接收到向所述磁盘写入数据的请求时,根据更新后的本地存储的所述磁盘对应的存储节点信息,将写入请求下发至第二存储节点;
所述第二存储节点根据接收到的所述写入请求,通过所述SAS交换机向所述磁盘写入数据。
2.根据权利要求1所述的方法,其特征在于,所述管理节点更新本地存储的所述磁盘对应的存储节点信息,包括:
所述管理节点将所述磁盘与第二存储节点相对应的信息更新至本地数据库中。
3.一种云存储系统,其特征在于,所述系统包括:
管理集群和存储集群,所述管理集群的各个管理节点的信令口与千兆交换机互联,通过相互之间的互联实现信令交换;存储集群的各个存储节点的信令口与所述千兆交换机互联,通过相互之间的互联实现信令交换,同时,存储集群的各个存储节点的数据口通过SAS交换机互联,通过互联实现相互之间的数据交换;其中,管理节点与千兆交换机之间的信令交换为双向交换,存储节点与千兆交换机之间的信令交换为双向交换,存储节点与SAS交换机之间的数据交换也为双向交换;当存储节点接入SAS交换机后,可以发现并且使用SAS交换机上接入的所有存储节点中的磁盘设备;
所述存储集群包括第一存储节点和第二存储节点,其中:
所述管理节点,用于在检测到第一存储节点出现软件故障时,通过千兆交换机将第一存储节点中的磁盘索引信息发送到第二存储节点,发送磁盘加载指令至所述第二存储节点;所述第二存储节点为除第一存储节点外的任一个节点;
所述第二存储节点,用于在接收到所述磁盘加载指令后,将第一存储节点中的磁盘的索引信息更新至第二存储节点的数据库,通过所述SAS交换机加载所述第一存储节点的磁盘;
所述管理节点,还用于在接收到所述第二存储节点发送的加载磁盘成功的消息之后,更新本地存储的所述磁盘对应的存储节点信息;如果第一存储节点再次软件故障并需要再加载所述第一存储节点的磁盘时,直接分配第二存储节点加载该磁盘;
所述管理节点,还用于在接收到读取所述磁盘的数据的请求时,根据更新后的本地存储的所述磁盘对应的存储节点信息,将读取请求下发至第二存储节点;
所述第二存储节点,还用于根据接收到的所述读取请求,通过所述SAS交换机读取所述磁盘中的数据;
或者,
所述管理节点,还用于在接收到向所述磁盘写入数据的请求时,根据更新后的本地存储的所述磁盘对应的存储节点信息,将写入请求下发至第二存储节点;
所述第二存储节点,还用于根据接收到的所述写入请求,通过所述SAS交换机向所述磁盘写入数据。
4.根据权利要求3所述的系统,其特征在于:
所述管理节点,还用于将所述磁盘与第二存储节点相对应的信息更新至本地数据库中。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811625675.XA CN111381766B (zh) | 2018-12-28 | 2018-12-28 | 一种磁盘动态加载的方法和云存储系统 |
PCT/CN2019/130169 WO2020135889A1 (zh) | 2018-12-28 | 2019-12-30 | 一种磁盘动态加载的方法和云存储系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811625675.XA CN111381766B (zh) | 2018-12-28 | 2018-12-28 | 一种磁盘动态加载的方法和云存储系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111381766A CN111381766A (zh) | 2020-07-07 |
CN111381766B true CN111381766B (zh) | 2022-08-02 |
Family
ID=71129699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811625675.XA Active CN111381766B (zh) | 2018-12-28 | 2018-12-28 | 一种磁盘动态加载的方法和云存储系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111381766B (zh) |
WO (1) | WO2020135889A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111880751B (zh) * | 2020-09-28 | 2020-12-25 | 浙江大华技术股份有限公司 | 一种硬盘迁移方法、分布式存储集群系统和存储介质 |
TWI784750B (zh) * | 2021-10-15 | 2022-11-21 | 啟碁科技股份有限公司 | 終端裝置的資料處理方法及終端裝置的資料處理系統 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012039989A2 (en) * | 2010-09-24 | 2012-03-29 | Hitachi Data Systems Corporation | System and method for enhancing availability of a distributed object storage system during a partial database outage |
CN103067485A (zh) * | 2012-12-25 | 2013-04-24 | 曙光信息产业(北京)有限公司 | 云存储系统的磁盘监控方法 |
CN104967577A (zh) * | 2015-06-25 | 2015-10-07 | 北京百度网讯科技有限公司 | Sas交换机和服务器 |
CN105657066A (zh) * | 2016-03-23 | 2016-06-08 | 天津书生云科技有限公司 | 用于存储系统的负载再均衡方法及装置 |
CN107046575A (zh) * | 2017-04-18 | 2017-08-15 | 南京卓盛云信息科技有限公司 | 一种云存储系统及其高密度存储方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101969465A (zh) * | 2010-10-13 | 2011-02-09 | 北京神州融信信息技术股份有限公司 | 集群读写方法、装置、系统及控制器 |
CN103152397B (zh) * | 2013-02-06 | 2017-05-03 | 浪潮电子信息产业股份有限公司 | 一种多协议存储系统设计方法 |
CN103608784B (zh) * | 2013-06-26 | 2015-06-10 | 华为技术有限公司 | 网络卷创建方法、数据存储方法、存储设备和存储系统 |
CN107124469B (zh) * | 2017-06-07 | 2020-07-24 | 苏州浪潮智能科技有限公司 | 一种集群节点通信方法及系统 |
-
2018
- 2018-12-28 CN CN201811625675.XA patent/CN111381766B/zh active Active
-
2019
- 2019-12-30 WO PCT/CN2019/130169 patent/WO2020135889A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012039989A2 (en) * | 2010-09-24 | 2012-03-29 | Hitachi Data Systems Corporation | System and method for enhancing availability of a distributed object storage system during a partial database outage |
CN103067485A (zh) * | 2012-12-25 | 2013-04-24 | 曙光信息产业(北京)有限公司 | 云存储系统的磁盘监控方法 |
CN104967577A (zh) * | 2015-06-25 | 2015-10-07 | 北京百度网讯科技有限公司 | Sas交换机和服务器 |
CN105657066A (zh) * | 2016-03-23 | 2016-06-08 | 天津书生云科技有限公司 | 用于存储系统的负载再均衡方法及装置 |
CN107046575A (zh) * | 2017-04-18 | 2017-08-15 | 南京卓盛云信息科技有限公司 | 一种云存储系统及其高密度存储方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111381766A (zh) | 2020-07-07 |
WO2020135889A1 (zh) | 2020-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11153380B2 (en) | Continuous backup of data in a distributed data store | |
US10956601B2 (en) | Fully managed account level blob data encryption in a distributed storage environment | |
US11755415B2 (en) | Variable data replication for storage implementing data backup | |
US10659225B2 (en) | Encrypting existing live unencrypted data using age-based garbage collection | |
US7406473B1 (en) | Distributed file system using disk servers, lock servers and file servers | |
EP3002672B1 (en) | Apparatus for increasing data storage capacity | |
US9582213B2 (en) | Object store architecture for distributed data processing system | |
US8386707B2 (en) | Virtual disk management program, storage device management program, multinode storage system, and virtual disk managing method | |
US9262087B2 (en) | Non-disruptive configuration of a virtualization controller in a data storage system | |
US7702757B2 (en) | Method, apparatus and program storage device for providing control to a networked storage architecture | |
US10628298B1 (en) | Resumable garbage collection | |
US8266285B2 (en) | Method and program for supporting setting of access management information | |
US9760457B2 (en) | System, method and computer program product for recovering stub files | |
CN103037004A (zh) | 云存储系统操作的实现方法和装置 | |
JP2015509235A (ja) | 記憶階層化のためのコンテンツ選択 | |
US20090024768A1 (en) | Connection management program, connection management method and information processing apparatus | |
CN111381766B (zh) | 一种磁盘动态加载的方法和云存储系统 | |
US7539838B1 (en) | Methods and apparatus for increasing the storage capacity of a storage system | |
US20130275670A1 (en) | Multiple enhanced catalog sharing (ecs) cache structure for sharing catalogs in a multiprocessor system | |
CN107346209B (zh) | 一种多磁盘聚合式数据存储系统及其实现方法与应用方法 | |
US20230205638A1 (en) | Active-active storage system and data processing method thereof | |
US11334456B1 (en) | Space efficient data protection | |
CN115391303A (zh) | 一种分布式文件系统 | |
CN114490540A (zh) | 数据存储方法、介质、装置和计算设备 | |
US8850132B1 (en) | Method and system for providing a shared data resource coordinator within a storage virtualizing data processing system |
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 |