块储存存取和网关模块、储存系统和方法与内容递送装置.pdf

上传人:r7 文档编号:20254 上传时间:2018-01-12 格式:PDF 页数:19 大小:1.11MB
返回 下载 相关 举报
摘要
申请专利号:

CN201410013954.6

申请日:

2014.01.13

公开号:

CN104750428A

公开日:

2015.07.01

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):G06F 3/06申请日:20140113|||公开

IPC分类号:

G06F3/06; H04L29/08

主分类号:

G06F3/06

申请人:

纬创资通股份有限公司

发明人:

陈志明

地址:

中国台湾新北市汐止区新台五路一段88号21楼

优先权:

102148862 2013.12.27 TW

专利代理机构:

北京嘉和天工知识产权代理事务所(普通合伙)11269

代理人:

严慎; 支媛

PDF下载: PDF下载
内容摘要

本发明提供一种块储存存取和网关模块、储存系统和方法与内容递送装置。该块储存网关模块包括:一接收单元以及一存取单元;该接收单元用于拦截对一操作系统的一系统呼叫,以产生一近端存取指令,该系统呼叫指示对一储存体进行一本机存取;该存取单元用于依据该近端存取指令,对一储存阵列进行一近端存取,该储存阵列对应该储存体,该近端存取对应该本机存取。本发明可以成本平价便易的大宗硬件架构出满足负载平衡、高可用性和可伸缩的云端储存,且由于本发明纯以软件定义储存,不依赖任何的特殊硬件设计,在管理上具有灵活性与机敏性。

权利要求书

1.  一种块储存网关模块,该块储存网关模块包括:
一接收单元,该接收单元用于拦截对一操作系统的一系统呼叫,以产生一近端存取指令,该系统呼叫指示对一储存体进行一本机存取;以及
一存取单元,该存取单元用于依据该近端存取指令,对一储存阵列进行一近端存取,该储存阵列对应该储存体,该近端存取对应该本机存取。

2.
  如权利要求1所述的块储存网关模块,其中该接收单元形成至少部分的该操作系统中用于处理该系统呼叫的程序代码。

3.
  如权利要求2所述的块储存网关模块,其中该操作系统的一系统呼叫表中关联于该系统呼叫的一条目指向该接收单元。

4.
  如权利要求1所述的块储存网关模块,其中该近端存取指令是一输入输出控制,至少部分的该存取单元位于该操作系统的使用者空间。

5.
  如权利要求1所述的块储存网关模块,其中该近端存取指令是一进程间通信,该存取单元包括一驱动程序。

6.
  如权利要求1所述的块储存网关模块,还包括:
一编解码单元,该编解码单元耦接该存取单元,用于产生对应一原始数据的一可容错数据;
其中若该本机存取是将该原始数据写入该储存体,则该近端存取是将该可容错数据写入该储存阵列。

7.
  如权利要求6所述的块储存网关模块,其中当该编解码单元产生该可容错数据时,该编解码单元以一错误更正码编码该原始数据。

8.
  如权利要求7所述的块储存网关模块,其中当该编解码单元以该错误更正码编码该原始数据时,该编解码单元依据该原始数据和该错误更正码产生m个数据块,m是正整数,该m个数据块形成至少部分的该可容错数据。

9.
  如权利要求8所述的块储存网关模块,其中该储存阵列包括多个储存节点,且当该存取单元将该可容错数据写入该储存阵列时,该存取单元将该m个数据块分别选择性地写入该些储存节点。

10.
  如权利要求8所述的块储存网关模块,其中该编解码单元还用于自该可容错数据还原出该原始数据,且若该本机存取是自该储存体读取该原始数据,则该近端存取是自该 储存阵列读取该可容错数据。

11.
  如权利要求10所述的块储存网关模块,其中当该编解码单元自该可容错数据还原出该原始数据时,该编解码单元依据该m个数据块中的任k个数据块产生该原始数据,k是正整数且不大于m。

12.
  如权利要求1所述的块储存网关模块,还包括:
一编解码单元,该编解码单元耦接该存取单元,用于自对应一原始数据的一可容错数据还原出该原始数据;
其中若该本机存取是自该储存体读取该原始数据,则该近端存取是自该储存阵列读取该可容错数据。

13.
  一种提供对块储存的存取的方法,该提供对块储存的存取的方法包括:
拦截对一操作系统的一系统呼叫,以产生一近端存取指令,该系统呼叫指示对一储存体进行一本机存取;以及
依据该近端存取指令,对一储存阵列进行一近端存取,该储存阵列对应该储存体,该近端存取对应该本机存取。

14.
  如权利要求13所述的提供对块储存的存取的方法,其中若该本机存取是将一原始数据写入该储存体,则对该储存阵列进行该近端存取的步骤包括:
产生对应该原始数据的一可容错数据;以及
将该可容错数据写入该储存阵列。

15.
  如权利要求14所述的提供对块储存的存取的方法,其中产生该可容错数据的步骤包括以一错误更正码编码该原始数据。

16.
  如权利要求15所述的提供对块储存的存取的方法,其中以该错误更正码编码该原始数据的步骤包括依据该原始数据和该错误更正码产生m个数据块,m是正整数,该m个数据块形成至少部分的该可容错数据。

17.
  如权利要求16所述的提供对块储存的存取的方法,其中该储存阵列包括多个储存节点,且将该可容错数据写入该储存阵列的步骤包括将该m个数据块分别选择性地写入该些储存节点。

18.
  如权利要求16所述的提供对块储存的存取的方法,其中若该本机存取是自该储存体读取一原始数据,则对该储存阵列进行该近端存取的步骤包括:
自该储存阵列读取该可容错数据;以及
自该可容错数据还原出该原始数据。

19.
  如权利要求18所述的提供对块储存的存取的方法,其中自该可容错数据还原出该原始数据的步骤包括依据该m个数据块中任k个数据块产生该原始数据,k是正整数且不大于m。

20.
  如权利要求13所述的提供对块储存的存取的方法,其中若该本机存取是自该储存体读取该原始数据,则对该储存阵列进行该近端存取的步骤包括:
自该储存阵列读取对应该原始数据的一可容错数据;以及
自该可容错数据还原出该原始数据。

21.
  如权利要求13所述的提供对块储存的存取的方法,其中该近端存取指令是一输入输出控制或一进程间通信。

22.
  一种储存中介系统,该储存中介系统包括:
一或多个储存资源装置,每一该储存资源装置包括:
一伺服模块,伺服模块用于接收一远程访问指令,以产生一系统呼叫,该远程访问指令指示对该储存资源装置进行一远程访问;以及
一块储存网关模块,该块储存网关模块用于拦截该系统呼叫,并用于依据该系统呼叫,对一储存阵列进行一近端存取,该储存阵列对应该储存资源装置,该近端存取对应该远程访问;以及
一负载平衡装置,该负载平衡装置用于接收一远程访问要求,用于选择该或该些储存资源装置其中之一,以及用于传送一答允信息,该答允信息包括被选择的该储存资源装置的一地址。

23.
  如权利要求22所述的储存中介系统,其中若该远程访问是将一原始数据写入该储存资源装置,则该块储存网关模块还用于产生对应该原始数据的一可容错数据,该近端存取是将该可容错数据写入该储存阵列。

24.
  如权利要求22所述的储存中介系统,其中若该远程访问是自该储存资源装置读取一原始数据,则该近端存取是自该储存阵列读取对应该原始数据的一可容错数据,该块储存网关模块还用于自该可容错数据还原出该原始数据。

25.
  如权利要求22所述的储存中介系统,其中每一该储存资源装置还包括一维护模块,该维护模块用于周期性地传送一心跳信息,且该负载平衡装置选择该或该些储存资源装置其中之一依据来自每一该储存资源装置的该心跳信息。

26.
  如权利要求25所述的储存中介系统,其中当该负载平衡装置选择该或该些储存资源装置其中之一时,该负载平衡装置对每一该储存资源装置判断近期内是否接收到来自该储存资源装置的该心跳信息,其中若近期内已接收到来自该储存资源装置的该心跳信息,该负载平衡装置将该储存资源装置列入一候选范围。

27.
  如权利要求26所述的储存中介系统,其中被选择的该储存资源装置轮流被选择自该候选范围。

28.
  如权利要求22所述的储存中介系统,其中每一该储存资源装置所对应的该储存阵列包括一或多个储存节点,该或该些储存节点其中至少一被直接附加于该储存资源装置。

29.
  如权利要求28所述的储存中介系统,其中每一该储存资源装置还包括一近端存取模块,该近端存取模块用于对被直接附加于该储存资源装置的该储存节点进行至少部分的来自另一该储存资源装置的该近端存取。

30.
  如权利要求28所述的储存中介系统,其中该负载平衡装置还用于监测每一该储存资源装置的一负载量,该负载量关联于被直接附加于该储存资源装置的该储存节点,且当该储存中介系统包括多个储存资源装置,且该些储存资源装置中的一第一储存资源装置的该负载量显著多于该些储存资源装置中的一第二储存资源装置的该负载量时,该负载平衡装置还用于在该些储存资源装置中重新分配该第一储存资源装置的负载。

31.
  一种储存中介方法,该储存中介方法包括:
接收一远程访问要求;
选择一或多个储存资源装置其中之一;
传送一答允信息,该答允信息包括被选择的该储存资源装置的一地址;
接收一远程访问指令,以产生一系统呼叫,该远程访问指令指示对被选择的该储存资源装置进行一远程访问;
拦截该系统呼叫;以及
依据该系统呼叫,对一储存阵列进行一近端存取,该储存阵列对应该储存资源装置,该近端存取对应该远程访问。

32.
  如权利要求31所述的储存中介方法,其中若该远程访问是将一原始数据写入被选择的该储存资源装置,则对该储存阵列进行该近端存取的步骤包括:
产生对应该原始数据的一可容错数据;以及
将该可容错数据写入该储存阵列。

33.
  如权利要求31所述的储存中介方法,其中若该远程访问是自被选择的该储存资源装置读取一原始数据,则对该储存阵列进行该近端存取的步骤包括:
自该储存阵列读取对应该原始数据的一可容错数据;以及
自该可容错数据还原出该原始数据。

34.
  如权利要求31所述的储存中介方法,还包括:
周期性地传送一心跳信息;
其中选择该或该些储存资源装置其中之一的步骤是依据来自每一该储存资源装置的该心跳信息,选择该或该些储存资源装置其中之一。

35.
  如权利要求34所述的储存中介方法,其中选择该或该些储存资源装置其中之一的步骤包括:
对每一该储存资源装置,判断近期内是否接收到来自该储存资源装置的该心跳信息;
其中若近期内已接收到来自该储存资源装置的该心跳信息,将该储存资源装置列入一候选范围。

36.
  如权利要求35所述的储存中介方法,其中被选择的该储存资源装置轮流被选择自该候选范围。

37.
  一种云端储存系统,该云端储存系统包括:
多个储存节点;
一或多个储存资源装置,每一该储存资源装置用于接收一远程访问指令,用于拦截对应该远程访问指令的一系统呼叫,以及用于依据该系统呼叫,对一储存阵列进行一近端存取,该远程访问指令指示对该储存资源装置进行一远程访问,该储存阵列对应该储存资源装置且包括该些储存节点其中一或多个;以及
一负载平衡装置,该负载平衡装置用于接收一远程访问要求,用于选择该或该些储存资源装置其中之一,以及用于传送一答允信息,该答允信息包括被选择的该储存资源装置的一地址。

38.
  如权利要求37所述的云端储存系统,其中每一该储存资源装置所对应的该储存阵列所包括的该或该些储存节点其中至少一被直接附加于该储存资源装置。

39.
  如权利要求38所述的云端储存系统,其中该负载平衡装置还用于监测每一该储存资源装置的一负载量,该负载量关联于被直接附加于该储存资源装置的该储存节点,且该负载平衡装置还用于重新分配该或该些储存资源装置其中之一的负载。

40.
  一种内容递送装置,该内容递送装置用于部署一计算机,使该计算机具有使该计算机执行多个指令的程序代码,该些指令包括:
拦截对一操作系统的一系统呼叫,以产生一近端存取指令,该系统呼叫指示对一储存体进行一本机存取;以及
依据该近端存取指令,对一储存阵列进行一近端存取,该储存阵列对应该储存体,该近端存取对应该本机存取。

41.
  如权利要求40所述的内容递送装置,其中若该本机存取是将一原始数据写入该储存体,则对该储存阵列进行该近端存取的指令包括:
产生对应该原始数据的一可容错数据;以及
将该可容错数据写入该储存阵列。

42.
  如权利要求41所述的内容递送装置,其中产生该可容错数据的指令包括以一错误更正码编码该原始数据。

43.
  如权利要求42所述的内容递送装置,其中以该错误更正码编码该原始数据的指令包括依据该原始数据和该错误更正码产生m个数据块,m是正整数,该m个数据块形成至少部分的该可容错数据。

44.
  如权利要求43所述的内容递送装置,其中该储存阵列包括多个储存节点,且将该可容错数据写入该储存阵列的指令包括将该m个数据块分别选择性地写入该些储存节点。

45.
  如权利要求43所述的内容递送装置,其中若该本机存取是自该储存体读取一原始数据,则对该储存阵列进行该近端存取的指令包括:
自该储存阵列读取该可容错数据;以及
自该可容错数据还原出该原始数据。

46.
  如权利要求45所述的内容递送装置,其中自该可容错数据还原出该原始数据的指令包括依据该m个数据块中的任k个数据块产生该原始数据,k是正整数且不大于m。

47.
  如权利要求40所述的内容递送装置,其中若该本机存取是自该储存体读取该原始数据,则对该储存阵列进行该近端存取的指令包括:
自该储存阵列读取对应该原始数据的一可容错数据;以及
自该可容错数据还原出该原始数据。

48.
  如权利要求40所述的内容递送装置,其中该近端存取指令是一输入输出控制或一进程间通信。

说明书

块储存存取和网关模块、储存系统和方法与内容递送装置
技术领域
本发明涉及块储存存取和网关模块、储存系统和方法与内容递送装置,特别涉及提供对块储存(block storage)的可容错(fault-tolerant)存取和负载平衡的技术。
背景技术
块储存是硬盘、光盘、闪存和磁带等所有常见储存设备的实际操作方式,其中“块”意味着数据是以固定长度的位串(bit string)为单位在储存设备上被读写。然而,云端储存作为一种高级的概念,讲求的是负载平衡、极高的可用性和水平可伸缩性(scale-in/scale-out),并不处理底层储存设备的运作。因此业界面对巨量数据(big data)时代的来临,需要一种能包装或虚拟化块储存设备至抽象层,使之可视为云端的机制。
从而,需要提供一种块储存存取和网关模块、储存系统和方法与内容递送装置来解决上述问题。
发明内容
鉴于上述需求,本发明旨在提供一种块储存网关模块、包含前述模块的一种储存中介系统及其对应方法、包含前述系统的一种云端储存系统、对应前述模块的一种提供对块储存的存取的方法以及用于部署(deploy)可执行此方法的计算机的内容递送装置。所谓存取可以是读、写、开、关、擦除、扫描、格式化(format)、设定、验证、测试诊断等等操作,不一而足。
本发明提供一种块储存网关模块,其包含接收单元和存取单元。接收单元用于拦截(intercept)指示对储存体进行本机存取的对操作系统的系统呼叫(system call),以产生近端存取指令。存取单元用于依据近端存取指令,对对应储存体的储存阵列进行近端存取。在一实施例中,块储存网关模块还包含编解码单元,其用于产生对应原始数据的可容错数据和用于自可容错数据还原出原始数据。若前述本机存取指的是自储存体读取原始数据,则近端存取即自储存阵列读取可容错数据;若本机存取是指将原始数据写入储存体,则近端存取是将可容错数据写入储存阵列。
本发明亦提供一种块储存网关模块,该块储存网关模块包括:一接收单元,该接收单元用于拦截对一操作系统的一系统呼叫,以产生一近端存取指令,该系统呼叫指示对一储存体进行一本机存取;以及一存取单元,该存取单元用于依据该近端存取指令,对一储存 阵列进行一近端存取,该储存阵列对应该储存体,该近端存取对应该本机存取。
本发明亦提供一种提供对块储存的存取的方法,其步骤包含:拦截指示对储存体进行本机存取的对操作系统的系统呼叫,以产生近端存取指令;依据近端存取指令,对对应储存体的储存阵列进行近端存取。在一实施例中,若前述本机存取是指将原始数据写入储存体,则产生对应原始数据的可容错数据,并将可容错数据写入储存阵列;在另一实施例中,若本机存取指的是自储存体读取原始数据,则自储存阵列读取可容错数据,并自可容错数据还原出原始数据。
本发明亦提供一种提供对块储存的存取的方法,该提供对块储存的存取的方法包括:拦截对一操作系统的一系统呼叫,以产生一近端存取指令,该系统呼叫指示对一储存体进行一本机存取;以及依据该近端存取指令,对一储存阵列进行一近端存取,该储存阵列对应该储存体,该近端存取对应该本机存取。
本发明亦提供一种储存中介系统,其包含至少一个储存资源(storage resource)装置和负载平衡装置。储存资源装置包含伺服模块和块储存网关模块。伺服模块用于接收指示对储存资源装置进行远程访问的远程访问指令,以产生系统呼叫。块储存网关模块用于拦截此系统呼叫,并用于依据系统呼叫,对储存阵列进行近端存取。储存阵列对应储存资源装置,近端存取对应远程访问。负载平衡装置用于接收远程访问要求,用于选择储存资源装置其中之一,以及用于传送包含被选择的该储存资源装置的地址的答允信息。
本发明亦提供一种储存中介系统,该储存中介系统包括:一或多个储存资源装置,每一该储存资源装置包括:一伺服模块,伺服模块用于接收一远程访问指令,以产生一系统呼叫,该远程访问指令指示对该储存资源装置进行一远程访问;以及一块储存网关模块,该块储存网关模块用于拦截该系统呼叫,并用于依据该系统呼叫,对一储存阵列进行一近端存取,该储存阵列对应该储存资源装置,该近端存取对应该远程访问;以及一负载平衡装置,该负载平衡装置用于接收一远程访问要求,用于选择该或该些储存资源装置其中之一,以及用于传送一答允信息,该答允信息包括被选择的该储存资源装置的一地址。
本发明亦提供一种储存中介方法,该储存中介方法包含:接收一远程访问要求;选择一或多个储存资源装置其中之一;传送一答允信息,该答允信息包含被选择的该储存资源装置的一地址;接收指示对被选择的该储存资源装置进行一远程访问的一远程访问指令,以产生一系统呼叫;拦截该系统呼叫;以及依据该系统呼叫,对一储存阵列进行一近端存取,该储存阵列对应该储存资源装置,该近端存取对应该远程访问。
本发明还提供一种云端储存系统,其包含多个储存节点、一或多个储存资源装置和负载平衡装置。储存资源装置用于接收远程访问指令,用于拦截对应远程访问指令的系统呼叫,以及用于依据此系统呼叫,对储存阵列进行近端存取。远程访问指令指示对储存资源装置进行远程访问;储存阵列对应储存资源装置,且包含至少部分的前述储存节点。负载 平衡装置用于接收远程访问要求,用于选择储存资源装置其中之一,以及用于传送包含被选择的该储存资源装置的地址的答允信息。
本发明还提供一种云端储存系统,该云端储存系统包括:多个储存节点;一或多个储存资源装置,每一该储存资源装置用于接收一远程访问指令,用于拦截对应该远程访问指令的一系统呼叫,以及用于依据该系统呼叫,对一储存阵列进行一近端存取,该远程访问指令指示对该储存资源装置进行一远程访问,该储存阵列对应该储存资源装置且包括该些储存节点其中一或多个;以及一负载平衡装置,该负载平衡装置用于接收一远程访问要求,用于选择该或该些储存资源装置其中之一,以及用于传送一答允信息,该答允信息包括被选择的该储存资源装置的一地址。
本发明还提供一种内容递送装置,用于部署一台计算机,使之具有使之执行多道指令的程序代码,彼等指令包含:拦截指示对储存体进行本机存取的对操作系统的系统呼叫,以产生近端存取指令;依据近端存取指令,对对应储存体的储存阵列进行近端存取。在一实施例中,若前述本机存取是指将原始数据写入储存体,则产生对应原始数据的可容错数据,并将可容错数据写入储存阵列;在另一实施例中,若本机存取指的是自储存体读取原始数据,则自储存阵列读取可容错数据,并自可容错数据还原出原始数据。
本发明还提供一种内容递送装置,该内容递送装置用于部署一计算机,使该计算机具有使该计算机执行多个指令的程序代码,该些指令包括:拦截对一操作系统的一系统呼叫,以产生一近端存取指令,该系统呼叫指示对一储存体进行一本机存取;以及依据该近端存取指令,对一储存阵列进行一近端存取,该储存阵列对应该储存体,该近端存取对应该本机存取。
本发明可以成本平价便宜的大宗硬件架构出满足负载平衡、高可用性和可伸缩的云端储存,由于本发明纯以软件定义储存,不依赖任何的特殊硬件设计,在管理上具有灵活性与机敏性。
以上关于本发明内容及以下关于实施方式的说明用以示范与阐明本发明的精神与原理,并提供对本发明的权利要求书的范围更进一步的解释。
附图说明
图1A是依据本发明一实施例的关于块储存网关模块和储存资源装置的方框图。
图1B是依据本发明另一实施例的块储存网关模块的方框图。
图1C是依据本发明一实施例的关于储存阵列的方框图。
图2A与图2B是依据本发明一实施例的提供对块储存的存取的方法的部分流程图。
图3是依据本发明一实施例的关于储存中介系统的方框图。
图4A是依据本发明一实施例的储存中介方法的流程图。
图4B是依据本发明一实施例的负载平衡装置依据心跳信息选择储存资源装置其中之一的流程图。
图5是依据本发明一实施例的云端储存系统的方框图。
主要组件符号说明:
1               储存资源装置
10、11          块储存网关模块
101、111        接收单元
103、113        编解码单元
105、115        存取单元
12              伺服模块
2               储存阵列
21              直接附加储存节点
23              网络附加储存节点
25              储存局域网络
31              网络
32              用户端
4               储存中介系统
40              负载平衡装置
41、42          储存资源装置
410             块储存网关模块
412             伺服模块
414             维护模块
416             近端存取模块
5               云端储存系统
50              负载平衡装置
51、52          储存资源装置
53              储存节点母集
具体实施方式
以下在实施方式中叙述本发明的详细特征,其内容足以使任何本领域的技术人员了解本发明的技术内容并据以实施,且依据本说明书所公开的内容、权利要求书的范围及附图,任何本领域的技术人员可轻易地理解本发明相关的目的及优点。以下实施例进一步说明本发明的诸方面,但非以任何方面限制本发明的范畴。
请参见图1A。图1A是依据本发明一实施例的关于块储存网关模块和储存资源装置的方框图。如图1A所示,块储存网关模块10属于储存资源装置1并包含接收单元101、编解码单元103和存取单元105。存取单元105耦接储存阵列2。储存资源装置1另外还包 含伺服模块12。在此实施例中,伺服模块12、接收单元101、存取单元105与储存阵列2形成一条不中断的指令链(chain of command),而编解码单元103是为存取单元105取用的功能区块,但在另一实施例中,如图1B所示,块储存网关模块11中亦可以是接收单元111耦接编解码单元113,而后者再耦接存取单元115。
在实际操作的储存资源装置1的计算机所运行的操作系统中,接收单元101可以是插入性的(hooked或injected)一个核心模块(kernel module),用以接收伺服模块12为了在本机存取某个储存体产生的系统呼叫。储存体可以是逻辑卷(logical volume)等虚拟化的储存,在计算机中不一定实体存在,而此系统呼叫原应由操作系统内建的其他核心模块或驱动程序处理,但被接收单元101拦截,并产生相应的近端存取指令给存取单元105。换句话说,接收单元101扩展或部分取代了操作系统中用来处理关联于前述储存体的系统呼叫的目的码(object code)、可执行文件(executable)或机器码(machine code)等。在接收单元101前、中或后操作系统内建的程序代码仍可被执行。
插入接收单元101的一种方式是在操作系统的系统呼叫表(system call table,在Linux中可能是叫做syscall_table.S的文件)中使指示此系统呼叫如何处理的条目指向接收单元101所在的文件路径或存储器地址。在没有明显系统呼叫表的操作系统中,插入接收单元101可能涉及直接以接收单元101覆盖内建程序代码所在的输入输出区域(input/output area),并选择性地事先备份内建程序代码。
在一实施例中,前述近端存取指令是输入输出控制,如Linux或Mac操作系统中的ioctl,或Microsoft的Windows应用程序接口(application programming interface,简称API)中的DeviceIoControl,而存取单元105部分或全位于使用者空间(user space或userland)。在另一实施例中,近端存取指令是接收单元101对与之同在核心空间(kernel space)中且从属于存取单元105的驱动程序的进程间通信(inter-process communication,简称IPC)。近端存取指令用以指示存取单元105存取其所耦接的储存阵列2。此处的存取被称为近端存取,因为存取单元105和储存阵列2间可能是总线、缆线(cable)或局域网络。存取单元105与储存阵列2的近端关系请参见图1C。图1C是依据本发明一实施例的关于储存阵列的方框图。如图1C所示,储存阵列2是任意数量的直接附加储存(direct-attached storage,简称DAS)节点21、网络附加储存(network-attached storage,简称NAS)节点23或储存局域网络(storage area network,简称SAN)25的任意组合,其中网络附加储存节点23通过有线或无线的网络31耦接存取单元105。作为储存阵列2的基本单元,储存节点可以是块装置,如直接附加储存节点21或构成储存局域网络25。请注意储存阵列2对应于前述储存体或储存资源装置1,为存取单元105或块储存网关装置10所见,而存取单元115或块储存网关模块11看到的可能是另外一个储存阵列。当然储存阵列可以彼此分离或至少部分重叠,它们是本发明提及的所有储存节点的一个采集(collection)或集族(family of sets)。
近端存取对应前述系统呼叫所指示的对储存体的本机存取;换句话说,两种存取的操 作本质是一样的,如若伺服模块12的目的是将某笔原始数据写入储存体,则依据接收单元101的指令转换,存取单元105责成编解码单元103产生原始数据的可容错版本,并将之写入储存阵列2,或者编解码单元113产生可容错版本的数据,并将之与近端存取指令转交给存取单元115处理。
即使储存阵列2中部分节点损坏或失效,由于写入的是可容错数据,在大多情况下不会影响伺服模块12后续可能对原始数据的提取(retrieval)。可容错通常意味着在原始数据中引入一定程度的冗余(redundancy)。具体而言,在一实施例中,编解码单元103执行原始数据的前向错误更正(forward error correction,简称FEC),或者说编解码单元103以某种错误更正码(error-correcting code,简称ECC)对原始数据编码。错误更正码种类繁多,本发明所属技术领域中的普通技术人员应当能自由使用或设计。以抹除码(erasure code)为例,请参见图2A。图2A是依据本发明一实施例的提供对块储存的存取的方法的部分流程图。如图2A所示,在接收单元101拦截指示将原始数据写入储存体的系统呼叫(步骤S10)并产生近端存取指令(步骤S12)后,在步骤S14中,编解码单元103依据原始数据和所用的抹除码产生正整数m个数据块。数据块可能是部分的原始数据、用来更正错误的冗余或两者的组合。接着,存取单元105在步骤S16中选择储存阵列2的某些节点,并分别将数据块(和其他必要信息)写入这些节点。视节点和数据块的相对数量,储存阵列2中可能有节点并未储存m个数据块中的任何一个,每个节点都恰储存m分之一的可容错版本,或某些节点储存了m个中不只一个数据块。
依据抹除码的原理,只要有小于m的任正整数k个前述数据块,就可还原出原始数据;也就是说,假设储存阵列2中的每个节点都储存着m分之一的可容错数据,当损坏或失效的节点不多于m-k个时,原始数据的完整和正确性无虞。对应图2A,请参见图2B。图2B是另一张依据本发明一实施例的提供对块储存的存取的方法的部分流程图。如图2B所示,在接收单元101拦截指示自储存体读取原始数据的系统呼叫(步骤S11)并产生近端存取指令(步骤S13)后,在步骤S15中,存取单元105自储存阵列2中储存有m个数据块其中之一的节点读取至少k个数据块。接着,编解码单元103在步骤S17中依据所读取的数据块(和其他必要信息)还原出原始数据。
请参见图3。图3是依据本发明一实施例的关于储存中介系统的方框图。如图3所示,储存中介系统4包含储存资源装置41、42,以及负载平衡装置40。储存资源装置41包含块储存网关模块410、伺服模块412、维护模块414与近端存取模块416。储存资源装置41可以就是图1中的储存资源装置1,因此伺服模块412就是伺服模块12,块储存网关模块410和块储存网关模块10同样在存取单元105耦接储存阵列2。伺服模块412与可以网络耦接的用户端32沟通,尤其是自用户端32接收其对于储存资源装置41的远程访问指令。伺服模块412和用户端32的通信可以遵守因特网小型计算机系统接口(Internet Small Computer System Interface,简称iSCSI)或其以太网络对应(HyperSCSI)、光纤波道(Fibre Channel)或其以太网络或因特网协议上的(Internet Protocol,简称IP)变形(Fibre Channel over Ethernet(以太网络上的光纤通道)或Fibre Channel over IP(IP上的光纤通 道))或以太网络上的先进技术附件(ATA over Ethernet,ATA是Advanced Technology Attachment的缩写)等网络储存协议。在iSCSI的术语中,储存资源装置41和42可以代表同样的储存标的(target),而伺服模块412可以是等候SCSI指令的常驻程序(daemon),如常见的tgtd。
仍以iSCSI为例,用户端32、负载平衡装置40和储存资源装置41、42的互动请参见图4A。图4A是本实施例中储存中介方法的流程图。如图4A所示,在步骤S41中,用户端32传送远程访问要求,询问负载平衡装置40如何存取某储存标的。在步骤S43中,负载平衡装置40从储存资源装置41、42及储存中介系统4可能尚有的其他储存资源装置中选择其一。假设被选出的是储存资源装置41,则负载平衡装置40在步骤S45中将储存资源装置41的地址打包在答允信息中回复给用户端32。此处地址可能是包含域名或端口号的网络地址,或足以辨识储存资源装置41的某个代码。在这种意义上,负载平衡装置40亦具有类似域名服务器(domain name server,简称DNS)的功能。
在步骤S47中,用户端32依据步骤S45中所得的地址,以发起者(initiator)的身分对储存资源装置41发出远程访问指令。远程访问指令由伺服模块412转换为系统呼叫,并在步骤S49中为块储存网关模块410拦截,其后流程如图2A或图2B所阐明。
在一实施例中,正常运作的储存资源装置41和42会定期向负载平衡装置40以心跳信息报备,而负载平衡装置40即依据这些心跳信息的有无和内容执行步骤S43。具体而言,以储存资源装置41为例,请参见图4B。如图4B所示,周期性地,在步骤S402中,维护模块414传送心跳信息。在步骤S404中,负载平衡装置40因为刚才接收到储存资源装置41的心跳信息,判断出储存资源装置41仍正常运作,在步骤S406中将之列入候选范围,并预期下一循环的心跳信息在步骤S402中自维护模块414传来。在一实施例中,候选范围中的储存资源装置是因应对它们所代表的储存标的的远程访问要求在步骤S408中轮流被选择,如储存资源装置41和42交替。
如前所述,储存阵列2中可能有直接附加储存节点21,如实际操作储存资源装置41的计算机固有的硬盘。在一实施例中,储存资源装置41的心跳信息还包含其负载量,例如直接附加储存节点21尚余多少比例或多少单位的容量。在另一实施例中,负载平衡装置40通过其他通道,有源或无源地检测知道储存资源装置41的负载如何。在储存中介系统4中,假设储存资源装置41的负载显著多于储存资源装置42或可能存在的其他储存资源装置者,如其负载量超过所有储存资源装置的负载量的平均达一个标准差,则负载平衡装置40发出指令,重新分配储存资源装置41超额负载的部分,如将之转移至储存资源装置42。此处重新分配的指令依实际操作方式不同,可以传送至伺服模块412、维护模块414或前述其他通道。
如图3所示,储存资源装置41以块储存网关模块410及近端存取模块416耦接直接附加储存节点21。当然近端存取模块416可以但不一定和存取单元105共用程序代码。 在一实施例中,当储存资源装置42对其所见的储存阵列进行近端存取,而此储存阵列包含直接附加储存节点21时,储存资源装置42可通过近端存取模块416完成近端存取中与直接附加储存节点21有关的部分。具体而言,储存资源装置41的网络适配卡(network interface controller,简称NIC)的驱动程序可被修改或插入,以处理关联于储存中介系统4、如来自其他储存资源装置的特殊指令。
请参见图5。图5是依据本发明一实施例的云端储存系统的方框图。如图5所示,云端储存系统5包含负载平衡装置50、储存资源装置51、52以及形成储存节点母集(superset)53的多个储存节点。负载平衡装置50可以就是图3中的负载平衡装置40,储存资源装置51或52可以就是储存资源装置41,而储存节点母集53亦是储存阵列2的母集。外界用户端通过网络存取云端储存系统5首先是和负载平衡装置50,接着是和储存资源装置51、52或云端储存系统5中可能尚有的储存资源装置交谈,其中流程详如图4A中步骤S41至S47所述。
本发明提供的内容递送装置用于部署储存资源装置,特别是使之具有块储存网关模块。具体而言,内容递送装置可以提供将实际操作中的储存资源装置的计算机下载块储存网关模块的安装或修补(patch)文件,或内容递送装置可以将操作系统组态推送(push)至计算机。又者,内容递送装置可以单纯是文件服务器,供某云端储存系统的管理端下载实际操作中提供对块储存的存取的方法的程序代码,以配送给所管理的储存资源装置。管理端耦接一或多个储存资源装置的方式类似负载平衡装置者。
综上所述,依据本发明的中介用户端与块储存,可以成本平价便宜的大宗硬件架构出满足负载平衡、高可用性和可伸缩的云端储存。由于本发明纯以软件定义储存,不依赖任何的特殊硬件设计,在管理上具有灵活性与机敏性。
虽然本发明以前述的实施例公开如上,然而其并非用以限定本发明。在不脱离本发明的精神和范围的情况下,所为的更动与润饰,均属本发明的专利保护范围。关于本发明所界定的保护范围请参考所附的权利要求书的范围。

块储存存取和网关模块、储存系统和方法与内容递送装置.pdf_第1页
第1页 / 共19页
块储存存取和网关模块、储存系统和方法与内容递送装置.pdf_第2页
第2页 / 共19页
块储存存取和网关模块、储存系统和方法与内容递送装置.pdf_第3页
第3页 / 共19页
点击查看更多>>
资源描述

《块储存存取和网关模块、储存系统和方法与内容递送装置.pdf》由会员分享,可在线阅读,更多相关《块储存存取和网关模块、储存系统和方法与内容递送装置.pdf(19页珍藏版)》请在专利查询网上搜索。

本发明提供一种块储存存取和网关模块、储存系统和方法与内容递送装置。该块储存网关模块包括:一接收单元以及一存取单元;该接收单元用于拦截对一操作系统的一系统呼叫,以产生一近端存取指令,该系统呼叫指示对一储存体进行一本机存取;该存取单元用于依据该近端存取指令,对一储存阵列进行一近端存取,该储存阵列对应该储存体,该近端存取对应该本机存取。本发明可以成本平价便易的大宗硬件架构出满足负载平衡、高可用性和可伸缩。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1