CN105100136A - 用于访问存储集群中的逻辑存储的方法和装置 - Google Patents

用于访问存储集群中的逻辑存储的方法和装置 Download PDF

Info

Publication number
CN105100136A
CN105100136A CN201410178088.6A CN201410178088A CN105100136A CN 105100136 A CN105100136 A CN 105100136A CN 201410178088 A CN201410178088 A CN 201410178088A CN 105100136 A CN105100136 A CN 105100136A
Authority
CN
China
Prior art keywords
website
storage
client
copy
response
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
CN201410178088.6A
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to CN201410178088.6A priority Critical patent/CN105100136A/zh
Priority to US14/644,420 priority patent/US20150310026A1/en
Publication of CN105100136A publication Critical patent/CN105100136A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9537Spatial or temporal dependent retrieval, e.g. spatiotemporal queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/52Network services specially adapted for the location of the user terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明的实施方式提供了用于访问存储集群中的逻辑存储的方法和装置。在本发明的一个实施方式中提供了一种用于访问存储集群中的逻辑存储的方法,存储集群包括位于不同位置的多个站点,多个站点中的每一个站点包括对应于逻辑存储的副本,方法包括:响应于接收到来自客户端的访问请求,获取客户端的位置;至少基于多个站点的位置与客户端的位置之间的距离,从多个站点中选择一站点;通过访问所选择的站点中的副本来访问逻辑存储。在本发明的一个实施方式中提供了一种用于访问存储集群中的逻辑存储的装置。采用本发明的技术方案,可以由在物理上或逻辑上较为靠近客户端的站点的存储控制器来响应于来自客户端的访问请求。

Description

用于访问存储集群中的逻辑存储的方法和装置
技术领域
本发明的各实施方式涉及存储管理,更具体地,涉及用于访问存储集群(storagecluster)中的逻辑存储(logicalstorage)的方法和装置。
背景技术
随着数据存储技术的发展,各种数据存储设备已经能够向用户提供越来越高的数据存储能力,并且数据访问速度也有了很大程度的提高。另外,网络技术的发展为数据存储开拓了新方向,数据存储设备不再局限于被部署在访问设备的本地,而是可以位于经由网络可访问的任何物理位置。
目前,已经提出了由存储集群向广大用户提供数据存储功能的技术方案。在此技术方案中,存储集群可以包括分布于多个物理位置的多个存储服务器。而对于存储集群的用户而言,用户可以不必关心正在访问的存储服务器的物理位置,而是可以简单地通过访问存储集群向外部展现的逻辑存储,来执行数据读写操作。
为了提高数据的可靠性,存储集群可以在多个物理位置部署存储服务器,并且在多个存储服务器中针对相同数据来提供多个副本,以便当存储集群中的一个或者多个存储服务器出现故障时,可以由其他的存储服务器来向用户提供服务。例如,存储服务的提供者可以将存储服务器分别部署在例如北京和上海等多个城市,而当用户经由客户端来针对逻辑存储进行读写操作时,用户无需知晓存储集群内部的拓扑结构。
在客户端处,逻辑存储可以逻辑单元号(LogicalUnitNumber,LUN),具体地,可以表现为逻辑盘的形式(假设用户的客户端设备中存在物理存储“C:盘”和“D:盘”,逻辑盘例如可以单独呈现为“F:盘”的形式)。此时用户仅需点击该“F:盘”即可使用存储集群提供的存储服务。通常而言,逻辑存储被指定了优选节点(即,存储集群中的存储控制器),该优选节点用于控制允许客户端设备与逻辑存储被映射至的物理存储之间的通信。
在分布式的存储集群中可能会出现一种情况,例如,位于北京的用户希望访问特定的虚拟存储(例如,“F:盘”),并且该虚拟存储的优选节点是位于上海的存储控制器,因而需要在北京和上海之间经由网络来传输数据。此时,将会由于北京和上海的物理位置相距过远或者之间的网络通信带宽并不理想,而出现存储集群对于来自用户的数据访问的响应时间变长、数据访问效率下降等问题。因而,在存储集群中如何提高数据访问效率成为一项研究热点。
发明内容
因而,期望能够开发并实现一种能够缩短存储集群的响应时间、进而提高数据访问效率的技术方案。另外,还期望该技术方案仅涉及存储集群内部的修改,而对于客户端而言是透明的,进而使得客户端在无需了解存储集群内部的细节的情况下执行高效的数据访问操作。
根据本发明的一个方面,提供了一种用于访问存储集群中的逻辑存储的方法,存储集群包括位于不同位置的多个站点,多个站点中的每一个站点包括对应于逻辑存储的副本,方法包括:响应于接收到来自客户端的访问请求,获取客户端的位置;至少基于多个站点的位置与客户端的位置之间的距离,从多个站点中选择一站点;通过访问所选择的站点中的副本来访问逻辑存储。
根据本发明的一个方面,至少基于多个站点的位置与客户端的位置之间的距离,从多个站点中选择一站点包括:按照从近到远的顺序从多个站点中选择一站点;或者按照从近到远的顺序从多个站点中选择一站点,以及响应于所选择的站点为异常,按照从近到远的顺序从多个站点中选择下一站点。
根据本发明的一个方面,多个站点中的站点是基于存储集群的网络拓扑结构,按照存储集群中的存储控制器的位置而划分的。
在本发明的一个实施方式中,提供了一种用于访问存储集群中的逻辑存储的装置,存储集群包括位于不同位置的多个站点,多个站点中的每一个站点包括对应于逻辑存储的副本,装置包括:获取模块,配置用于响应于接收到来自客户端的访问请求,获取客户端的位置;选择模块,配置用于至少基于多个站点的位置与客户端的位置之间的距离,从多个站点中选择一站点;访问模块,配置用于通过访问所选择的站点中的副本来访问逻辑存储。
在本发明的一个实施方式中,选择模块包括:第一选择模块,配置用于按照从近到远的顺序从多个站点中选择一站点;或者第二选择模块,配置用于按照从近到远的顺序从多个站点中选择一站点,以及响应于所选择的站点为异常,按照从近到远的顺序从多个站点中选择下一站点。
在本发明的一个实施方式中,多个站点中的站点是基于存储集群的网络拓扑结构,按照存储集群中的存储控制器的位置而划分的。
可以在尽量不改变存储集群的现有配置的情况下实现根据本发明的各个实施方式的方法和装置。具体地,基于存储集群中的存储控制器和存储服务器的位置关系,将存储集群划分为不同的站点,并且由靠近客户端的站点中的存储控制器和存储服务器,来响应于来自客户端的请求。以此方式,可以大大降低由于网络传输延迟等因素造成的响应延迟,进而提高数据访问效率。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其他目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示意性示出了适于用来实现本发明实施方式的示例性计算机***/服务器12的框图;
图2示意性示出了根据一个技术方案的存储集群的架构的示意图;
图3示意性示出了根据本发明一个实施方式的存储集群的架构的示意图;
图4示意性示出了根据本发明一个实施方式的用于访问存储集群中的逻辑存储的方法的流程图;
图5示意性示出了根据本发明一个实施方式的针对存储集群中的逻辑存储执行读取操作的示意图;
图6示意性示出了根据本发明一个实施方式的针对存储集群中的逻辑存储执行写入操作的示意图;以及
图7示意性示出了根据本发明一个实施方式的用于访问存储集群中的逻辑存储的装置的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
图1示出了适于用来实现本发明实施方式的示例性计算机***/服务器12的框图。图1显示的计算机***/服务器12仅仅是一个示例,不应对本发明实施方式的功能和使用范围带来任何限制。
如图1所示,计算机***/服务器12以通用计算设备的形式表现。计算机***/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,***存储器28,连接不同***组件(包括***存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,***总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及***组件互连(PCI)总线。
计算机***/服务器12典型地包括多种计算机***可读介质。这些介质可以是任何能够被计算机***/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
***存储器28可以包括易失性存储器形式的计算机***可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机***/服务器12可以进一步包括其他可移动/不可移动的、易失性/非易失性计算机***存储介质。仅作为举例,存储***34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其他光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施方式的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作***、一个或者多个应用程序、其他程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施方式中的功能和/或方法。
计算机***/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机***/服务器12交互的设备通信,和/或与使得该计算机***/服务器12能与一个或多个其他计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机***/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机***/服务器12的其他模块通信。应当明白,尽管图中未示出,可以结合计算机***/服务器12使用其他硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
图2示意性示出了根据一个技术方案的存储集群的架构的示意图200。如图2所示,为了提高存储集群的可靠性,可以在存储集群内提供逻辑存储的多个副本,在客户端(例如,第一客户端210和第二客户端212)处的用户可以经由存储集群220提供的多个路径来访问逻辑存储。例如,存储集群220可以分布在北京、上海等多个城市,例如,第一控制器230可以部署在北京,而第二控制器240可以部署在上海。
在此实施方式中,当位于北京(例如,在第一客户端210处)的用户被分配有逻辑存储(例如,“F:盘”),并且该逻辑存储的优选节点为第二控制器240时,则用户必须经由第一客户端210-第二控制器240-逻辑存储(例如,第一存储服务器242或第M存储服务器244)的路径,来访问逻辑存储中的数据。由于第一客户端210和第二控制器240分别位于北京和上海,因而必须经由网络在北京和上海之间远距离地传输数据,以支持用户对逻辑存储的访问。由于网络带宽的限制以及各种网络设备中可能出现的延迟,图2所示的存储集群220的数据访问效率并不令人满意。
另外,同一虚拟存储(LUN)需要同时为位于不同物理位置的客户端提供服务。然而在传统的实现方法中,一个LUN只能提供单一的控制器作为优选路径,因而导致必然有些客户端无法通过距离最近的控制器访问数据。
针对上述技术方案中的不足,本发明提供了一种可以使得同一LUN为不同物理位置的客户端自动提供不同的优选路径,从而缩短存储集群的响应时间、进而提高数据访问效率的技术方案。具体地,根据本发明所述的各个实施方式,可以考虑客户端以及存储集群中的各个存储控制器之间的位置关系,并且基于该位置关系来由较为靠近客户端的存储控制器来响应于来自客户端的访问请求。
图3示意性示出了根据本发明一个实施方式的存储集群的示意图300。如图3所示,在本发明的实施方式中提出了站点的概念,站点是基于存储集群的网络拓扑结构,按照存储集群中的存储控制器的位置而划分的。如图3所示,图3中存在两个存储控制器,分别为第一控制器230(位于北京)和第二控制器240(位于上海),因而可以基于这两个控制器的位置而将整个存储集群220划分为两个站点。此时,第一站点310包括第一控制器230以及由该第一控制器230所管理的第一存储服务器232、...、第N存储服务器234,第二站点320包括第二控制器240以及由该第二控制器240所管理的第一存储服务器242、...、第M存储服务器244。应当注意,尽管图3中仅示出了两个站点,本领域技术人员还可以根据具体应用环境而设置其他数量的站点。另外,尽管在图3中以城市作为划分站点的依据,在其他实施方式中,还可以基于其他标准来进行划分。
图4示意性示出了根据本发明一个实施方式的用于访问存储集群中的逻辑存储的方法的流程图400。具体地,图4提供了一种用于访问存储集群中的逻辑存储的方法,存储集群包括位于不同位置的多个站点,多个站点中的每一个站点包括对应于逻辑存储的副本,方法包括:响应于接收到来自客户端的访问请求,获取客户端的位置;至少基于多个站点的位置与客户端的位置之间的距离,从多个站点中选择一站点;通过访问所选择的站点中的副本来访问逻辑存储。
具体地,存储集群包括位于不同位置的多个站点,为了提高数据可靠性,还可以在多个站点中的每个站点中维护逻辑存储的副本,以便在某个站点出现故障时可以由其他站点来提供存储服务。例如对于如图3所示的存储集群220,可以在第一站点310和第二站点320中分别维护两个副本。
在步骤S402中,响应于接收到来自客户端的访问请求,获取客户端的位置。本领域技术人员可以采用多种方式来获取客户端的位置,例如,可以从访问请求中解析指示客户端的位置的信息,可以基于客户端的标识符来查找客户端的位置,等等。
在步骤S404中,至少基于多个站点的位置与客户端的位置之间的距离,从多个站点中选择一站点。由于已知存储集群中的多个站点的存储控制器的位置,在通过步骤S402获取了客户端的位置的情况下,可以从多个站点中按照与客户端的位置关系来选择适当的站点。例如对于上文图3所示的示例,在存储集群220接收到来自第一客户端210的请求、并且已经知晓第一客户端210位于北京的情况下,由于第一站点310的第一控制器230同样位于北京,因而可以选择第一站点310。
在步骤S406中,通过访问所选择的站点中的副本来访问逻辑存储。对于附图3所述的示例,假设用户期望访问的逻辑存储被映射至第一站点310中的第一存储服务器232时,则可以经由第一站点310来访问该第一存储服务器232,以便向用户提供数据访问服务。
此时,用户基于逻辑存储即可访问存储集群内的存储空间,而存储集群内部的信息对于用户而言是透明的。实际上,用户是经由第一客户端210-第一站点310内的第一存储服务器232的路径来访问逻辑存储被映射至的物理存储设备。根据上文所述的技术方案,在提供多条访问路径以提供可靠的数据存储服务的基础上,还可以基于客户端的位置,由存储集群中较为靠近客户端的站点来响应于来自客户端的访问请求。
在本发明的一个实施方式中,至少基于多个站点的位置与客户端的位置之间的距离,从多个站点中选择一站点包括:按照从近到远的顺序从多个站点中选择一站点;或者按照从近到远的顺序从多个站点中选择一站点,以及响应于所选择的站点为异常,按照从近到远的顺序从多个站点中选择下一站点。
应当注意,由于客户端与站点之间的距离可以影响客户端访问站点中的逻辑存储的速度,因而优选地可以按照从近到远的顺序来首先选择距离最短的站点。
另外,由于存储集群中可能会出现故障,因而当所选择的距离最近的站点中的设备出现异常时,还可以从其余的站点中选择距离最近的站点来响应于来自客户端的访问请求。具体地,可以提供多种选择策略,例如,可以按照站点与客户端之间的距离提供备选站点的列表,当优先级最高的站点出现故障时按照该列表来依次选择下一优先级的站点;或者还可以仅提供当前最优的站点,当该站点出现故障时再从其余的站点中选择最优的站点。
具体地,针对图3所示的存储集群,当与第一客户端210的距离最近的第一站点310内的设备出现故障时,可以由第二站点320来响应于第一客户端210(如虚线所示),以将来自第一客户端320的访问请求引导至第二站点320中的相应存储服务器。
在本发明的一个实施方式中,其中客户端与站点之间的距离包括物理距离和逻辑距离中的至少任一项。通常而言,当客户端与站点之间的物理位置越远时,两者之间的访问路径的物理长度越长,在不考虑网络中各个设备的延迟的情况下,在两者之间传输数据的时间通常越长。因而,由物理位置最为靠近客户端的站点来响应于客户端的访问请求可以缩短访问时间。
另一方面,当考虑到网络设备的带宽以及传输期间各个网络设备的延迟时,还可能会出现这样的情况:尽管客户端和站点的距离可能并不遥远,然而由于网络拥堵造成误码率较高进而出现重传等严重影响传输效率的状况,此时还可以考虑选择在逻辑上与客户端最为靠近的站点(例如,“跳数”最少的站点)来响应于客户端的访问请求。
在本发明的一个实施方式中,多个站点中的站点是基于存储集群的网络拓扑结构,按照存储集群中的存储控制器的位置而划分的。应当注意,每个站点可以包括一个存储控制器,用于管理该站点中的一个或者多个存储服务器。在本发明的各个实施方式中,由于存储控制器所管理的存储服务器通常与存储控制器位于邻近的物理位置,因而可以将存储控制器所管理的存储服务器与存储控制器划分至相同的站点。以此方式,可以由靠近客户端的存储控制器来响应于来自客户端的请求,进而对同样靠近客户端的存储服务器进行访问以提供数据读写服务。由于所选择的站点的位置与客户端在物理上较为靠近,因而可以降低网络传输时间进而提高数据访问效率。
在本发明的一个实施方式中,客户端的位置与客户端的标识符、以及地址映射关系相关联地存储,地址映射关系描述逻辑存储的访问地址与存储集群中的站点中的至少一个存储服务器的物理地址之间的关系。
在此实施方式中,可以存储客户端的位置,并且以任何方式将该位置与客户端的标识符、以及向该客户端分配的逻辑存储在存储集群中的物理位置(即,逻辑存储与物理地址之间的地址映射关系)相关联。在本发明的一个实施方式中,例如可以通过向现有的映射配置中加入“客户端的位置”的字段来实现。
在本发明的一个实施方式中,通过访问所选择的站点中的副本来访问逻辑存储包括:基于地址映射关系以及访问请求中的逻辑存储的访问地址,通过所选择的站点中的存储控制器访问所选择的站点中的副本。
在此实施方式中,存储控制器充当客户端与存储集群中的物理存储的中介,来引导客户端实现数据读写操作。具体地,存储控制器可以基于逻辑存储与物理地址的映射关系,来将来自客户端的访问请求中的用于访问逻辑存储的访问地址映射至物理地址,进而通过存储控制器来在客户端和该物理地址之间转发数据。
在本发明的一个实施方式中,基于地址映射关系以及访问请求中的逻辑存储的访问地址,通过所选择的站点中的存储控制器访问所选择的站点中的副本包括:响应于访问请求为读取请求,由存储控制器在副本中查找与访问地址相关联的数据;以及向客户端返回数据。
在下文中将参见图5来详细描述如何实现读取操作,图5示意性示出了根据本发明一个实施方式的针对存储集群中的逻辑存储执行读取操作的示意图500。如图5所示,首先如箭头1所示,来自第一客户端210的访问请求被引导至与该第一客户端210距离最近的第二控制器30。继而采用上文所述的方法,基于逻辑存储的访问地址和地址映射关系可以知晓第一客户端210期望访问的物理地址为第一存储服务器232中的物理地址。此时,第一控制器230则将该访问请求引导至第一存储服务器232,并查找与访问地址相关联的数据(如箭头2所示)。继而从第一存储服务器232向第一控制器230返回与访问请求相关联的数据(如箭头3所示),并且接着所请求的数据被返至回第一客户端210(如箭头4所示)。以此方式,通过图5中以箭头1-4示出的步骤,即可实现数据读取操作。
在本发明的一个实施方式中,基于地址映射关系以及访问请求中的逻辑存储的访问地址,通过所选择的站点中的存储控制器访问所选择的站点中的副本包括:响应于访问请求为写入请求,由存储控制器向副本中的访问地址处写入与写入请求相关联的数据;以及在所选择的站点与多个站点中的其他站点之间进行同步。
在下文中将参见图6来详细描述如何实现读操作,图6示意性示出了根据本发明一个实施方式的针对存储集群中的逻辑存储执行写入操作的示意图600。在图6中,第一控制器230接收到来自第一客户端210的写入请求(如箭头1所示),并且向第一存储服务器232(逻辑存储被映射至的物理存储设备)写入相关数据(如箭头2所示),继而第一存储服务器232向第一控制器230返回信息指示写入成功(如箭头3所示)。
由于写入操作将会影响存储集群中的副本的内容,当存储集群中存在多个副本时还需保持该多个副本之间的一致性,因而还需要执行如箭头4-7所示的步骤,来在各个站点中的副本之间执行同步。具体地,第一控制器230向第二控制器240发送同步消息(如箭头4所示),第二控制器240向第一存储服务器242写入数据(如箭头5所示),第一存储服务器242向第二控制器240发送指示写入成功的信号(如箭头6所示),继而由第二控制器240向第一控制器230发送同步成功的信号(如箭头7所示)。经过上述步骤,此时存储集群中的第一站点310和第二站点320中的副本是一致的。之后,即可向第一客户端210发送指示写入成功的信号(如箭头8所示)。
在本发明的一个实施方式中,进一步包括:响应于多个站点之间的通信故障,从多个站点中选举一站点处于激活状态,以响应于访问请求;以及将被选举的站点以外的其他站点设置为未激活状态。
应当注意,由于需要确保存储集群中的多个站点中的副本之间的一致性,必须确保各个站点之间能够进行数据通信,否则当一个站点中的副本被修改之后,由于无法向其他站点同步数据而可能导致各个副本之间出现不一致。在此实施方式中,可以在检测到站点之间出现通信故障时,从多个站点中选举出一个站点保持激活状态,而将其他站点设置为未激活状态。以此方式,由于存储集群中仅存在唯一站点处于激活状态,因而此时无需执行数据同步操作。
在本发明的一个实施方式中,进一步包括:响应于多个站点之间的通信恢复,利用激活的站点中的副本来更新未激活的站点中的副本;以及将未激活的站点设置为激活状态。以此方式,可以在恢复通信时将其他副本更新至最新状态。
在本发明的一个实施方式中,逻辑存储是逻辑单元号。LUN是用于将逻辑存储映射至物理存储的一个具体实施方式,本领域技术人员还可以采用其他方式来实现逻辑存储与物理存储之间的映射。
前面已经参考附图描述了实现本发明的方法的各个实施方式。本领域技术人员可以理解的是,上述方法既可以以软件方式实现,也可以以硬件方式实现,或者通过软件与硬件相结合的方式实现。并且,本领域技术人员可以理解,通过以软件、硬件或者软硬件相结合的方式实现上述方法中的各个步骤,可以提供一种基于相同发明构思的一种设备。即使该设备在硬件结构上与通用处理设备相同,由于其中所包含的软件的作用,使得该设备表现出区别于通用处理设备的特性,从而形成本发明的各个实施方式的设备。本发明中所述设备包括若干装置或模块,所述装置或模块被配置为执行相应步骤。本领域的所述技术人员通过阅读本说明书可以理解如何编写程序实现所述装置或模块执行的动作。由于所述设备与方法基于相同的发明构思,因此其中相同或相应的实现细节同样适用于与上述方法对应的装置或模块,由于其在上文中已经进行了详细和完整的描述,因此在下文中可能不再进行赘述。
图7示意性示出了根据本发明一个实施方式的用于访问存储集群中的逻辑存储的装置的示意图700。如图7所示,提供了一种用于访问存储集群中的逻辑存储的装置,存储集群包括多个站点,多个站点中的每一个站点包括与逻辑存储具有映射关系的副本,装置包括:获取模块710,配置用于响应于接收到来自客户端的访问请求,获取客户端的位置;选择模块720,配置用于至少基于多个站点与位置之间的距离,从多个站点中选择一站点;访问模块730,配置用于通过访问站点中的副本来访问逻辑存储。
在本发明的一个实施方式中,选择模块720包括:第一选择模块,配置用于按照从近到远的顺序从多个站点中选择一站点;或者第二选择模块,配置用于按照从近到远的顺序从多个站点中选择一站点,以及响应于选择的站点为异常,从多个站点中选择下一站点。
在本发明的一个实施方式中,多个站点中的站点是基于存储集群的网络拓扑结构,按照存储集群中的存储控制器的位置而划分的。
在本发明的一个实施方式中,位置与客户端的标识符、以及逻辑存储的访问地址与存储集群中的站点中的至少一个存储服务器的物理地址之间的地址映射关系相关联地存储。
在本发明的一个实施方式中,访问模块730包括:副本访问模块,配置用于基于访问请求中的逻辑存储的访问地址以及地址映射关系,来通过站点中的存储控制器访问站点中的副本。
在本发明的一个实施方式中,距离包括物理距离和逻辑距离中的至少任一项。
在本发明的一个实施方式中,副本访问模块包括:写入模块,配置用于响应于访问请求为写入请求,由存储控制器向副本中的访问地址处写入与写入请求相关联的数据;以及同步模块,配置用于在站点与多个站点中的其他站点之间进行同步。
在本发明的一个实施方式中,进一步包括:选举模块,配置用于响应于多个站点之间的通信故障,从多个站点中选举一站点处于激活状态,以响应于访问请求;以及第一设置模块,配置用于将被选举的站点以外的其他站点设置为未激活状态。
在本发明的一个实施方式中,进一步包括:更新模块,配置用于响应于多个站点之间的通信恢复,利用激活的站点中的副本来更新未激活的站点中的副本;以及第二设置模块,配置用于将未激活的站点设置为激活状态。
在本发明的一个实施方式中,逻辑存储是逻辑单元号。
本发明可以是***、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是——但不限于——电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施方式中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施方式的方法、装置(***)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其他可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其他可编程数据处理装置、或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施方式的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施方式,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施方式。在不偏离所说明的各实施方式的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施方式的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其他普通技术人员能理解本文披露的各实施方式。

Claims (20)

1.一种用于访问存储集群中的逻辑存储的方法,所述存储集群包括位于不同位置的多个站点,所述多个站点中的每一个站点包括对应于所述逻辑存储的副本,所述方法包括:
响应于接收到来自客户端的访问请求,获取所述客户端的位置;
至少基于所述多个站点的位置与所述客户端的所述位置之间的距离,从所述多个站点中选择一站点;
通过访问所选择的站点中的副本来访问所述逻辑存储。
2.根据权利要求1所述的方法,其中至少基于所述多个站点的位置与所述客户端的所述位置之间的距离,从所述多个站点中选择一站点包括:
按照从近到远的顺序从所述多个站点中选择一站点;或者
按照从近到远的顺序从所述多个站点中选择一站点,以及响应于所选择的站点为异常,按照从近到远的顺序从所述多个站点中选择下一站点。
3.根据权利要求1或2所述的方法,其中所述多个站点中的站点是基于所述存储集群的网络拓扑结构,按照所述存储集群中的存储控制器的位置而划分的。
4.根据权利要求3所述的方法,其中所述客户端的所述位置与所述客户端的标识符、以及地址映射关系相关联地存储,所述地址映射关系描述所述逻辑存储的访问地址与所述存储集群中的站点中的至少一个存储服务器的物理地址之间的关系。
5.根据权利要求4所述的方法,其中通过访问所选择的站点中的副本来访问所述逻辑存储包括:
基于所述地址映射关系以及所述访问请求中的所述逻辑存储的访问地址,通过所选择的站点中的所述存储控制器访问所选择的站点中的副本。
6.根据权利要求1或2所述的方法,其中所述距离包括物理距离和逻辑距离中的至少任一项。
7.根据权利要求5所述的方法,其中基于所述地址映射关系以及所述访问请求中的所述逻辑存储的访问地址,通过所选择的站点中的所述存储控制器访问所选择的站点中的副本包括:响应于所述访问请求为写入请求,
由所述存储控制器向所述副本中的所述访问地址处写入与所述写入请求相关联的数据;以及
在所选择的站点与所述多个站点中的其他站点之间进行同步。
8.根据权利要求1或2所述的方法,进一步包括:
响应于所述多个站点之间的通信故障,从所述多个站点中选举一站点处于激活状态,以响应于所述访问请求;以及
将所选举的站点以外的其他站点设置为未激活状态。
9.根据权利要求8所述的方法,进一步包括:
响应于所述多个站点之间的通信恢复,利用激活的站点中的副本来更新未激活的站点中的副本;以及
将未激活的站点设置为激活状态。
10.根据权利要求1或2所述的方法,其中所述逻辑存储是逻辑单元号。
11.一种用于访问存储集群中的逻辑存储的装置,所述存储集群包括位于不同位置的多个站点,所述多个站点中的每一个站点包括对应于所述逻辑存储的副本,所述装置包括:
获取模块,配置用于响应于接收到来自客户端的访问请求,获取所述客户端的位置;
选择模块,配置用于至少基于所述多个站点的位置与所述客户端的所述位置之间的距离,从所述多个站点中选择一站点;
访问模块,配置用于通过访问所选择的站点中的副本来访问所述逻辑存储。
12.根据权利要求11所述的装置,其中所述选择模块包括:
第一选择模块,配置用于按照从近到远的顺序从所述多个站点中选择一站点;或者
第二选择模块,配置用于按照从近到远的顺序从所述多个站点中选择一站点,以及响应于所选择的站点为异常,按照从近到远的顺序从所述多个站点中选择下一站点。
13.根据权利要求11或12所述的装置,其中所述多个站点中的站点是基于所述存储集群的网络拓扑结构,按照所述存储集群中的存储控制器的位置而划分的。
14.根据权利要求13所述的装置,其中所述客户端的所述位置与所述客户端的标识符、以及地址映射关系相关联地存储,所述地址映射关系描述所述逻辑存储的访问地址与所述存储集群中的站点中的至少一个存储服务器的物理地址之间的关系。
15.根据权利要求14所述的装置,其中所述访问模块包括:
副本访问模块,配置用于基于所述地址映射关系以及所述访问请求中的所述逻辑存储的访问地址,通过所选择的站点中的所述存储控制器访问所选择的站点中的副本。
16.根据权利要求11或12所述的装置,其中所述距离包括物理距离和逻辑距离中的至少任一项。
17.根据权利要求15所述的装置,其中所述副本访问模块包括:
写入模块,配置用于响应于所述访问请求为写入请求,由所述存储控制器向所述副本中的所述访问地址处写入与所述写入请求相关联的数据;以及
同步模块,配置用于在所选择的站点与所述多个站点中的其他站点之间进行同步。
18.根据权利要求11或12所述的装置,进一步包括:
选举模块,配置用于响应于所述多个站点之间的通信故障,从所述多个站点中选举一站点处于激活状态,以响应于所述访问请求;以及
第一设置模块,配置用于将所选举的站点以外的其他站点设置为未激活状态。
19.根据权利要求18所述的装置,进一步包括:
更新模块,配置用于响应于所述多个站点之间的通信恢复,利用激活的站点中的副本来更新未激活的站点中的副本;以及
第二设置模块,配置用于将未激活的站点设置为激活状态。
20.根据权利要求11或12所述的装置,其中所述逻辑存储是逻辑单元号。
CN201410178088.6A 2014-04-29 2014-04-29 用于访问存储集群中的逻辑存储的方法和装置 Pending CN105100136A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201410178088.6A CN105100136A (zh) 2014-04-29 2014-04-29 用于访问存储集群中的逻辑存储的方法和装置
US14/644,420 US20150310026A1 (en) 2014-04-29 2015-03-11 Accessing logical storage in a storage cluster

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410178088.6A CN105100136A (zh) 2014-04-29 2014-04-29 用于访问存储集群中的逻辑存储的方法和装置

Publications (1)

Publication Number Publication Date
CN105100136A true CN105100136A (zh) 2015-11-25

Family

ID=54334964

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410178088.6A Pending CN105100136A (zh) 2014-04-29 2014-04-29 用于访问存储集群中的逻辑存储的方法和装置

Country Status (2)

Country Link
US (1) US20150310026A1 (zh)
CN (1) CN105100136A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109144529A (zh) * 2018-08-02 2019-01-04 郑州市景安网络科技股份有限公司 操作***模板下刷方法、装置、设备及可读存储介质
CN113190625A (zh) * 2021-05-25 2021-07-30 中国工商银行股份有限公司 请求处理方法、装置、电子设备、介质和程序产品

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106850556A (zh) * 2016-12-22 2017-06-13 北京小米移动软件有限公司 服务访问方法、装置及设备
US10997216B1 (en) * 2017-04-18 2021-05-04 United Services Automobile Association (Usaa) Systems and methods for centralized database cluster management

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030033273A1 (en) * 2001-08-13 2003-02-13 Wyse James Edmund System and method for retrieving location-qualified site data
CN100343793C (zh) * 2004-11-19 2007-10-17 国际商业机器公司 存储区域网络知晓的文件***上的自治数据缓存和拷贝
CN101697160A (zh) * 2009-09-18 2010-04-21 苏州工业园区石猴数码科技有限公司 一种在移动终端显示实时地图的方法
CN102291450B (zh) * 2011-08-08 2014-01-15 浪潮电子信息产业股份有限公司 一种集群存储***内部的数据在线分级存储方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7827279B2 (en) * 2004-01-30 2010-11-02 Hewlett-Packard Development Company, L.P. Selecting nodes close to another node in a network using location information for the nodes
US7383406B2 (en) * 2004-11-19 2008-06-03 International Business Machines Corporation Application transparent autonomic availability on a storage area network aware file system
US7793148B2 (en) * 2007-01-12 2010-09-07 International Business Machines Corporation Using virtual copies in a failover and failback environment
US8456982B2 (en) * 2010-08-26 2013-06-04 Verizon Patent And Licensing Inc. System and method for fast network restoration
US9152684B2 (en) * 2013-11-12 2015-10-06 Netapp, Inc. Snapshots and clones of volumes in a storage system
US9348714B2 (en) * 2014-03-20 2016-05-24 Netapp Inc. Survival site load balancing

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030033273A1 (en) * 2001-08-13 2003-02-13 Wyse James Edmund System and method for retrieving location-qualified site data
CN100343793C (zh) * 2004-11-19 2007-10-17 国际商业机器公司 存储区域网络知晓的文件***上的自治数据缓存和拷贝
CN101697160A (zh) * 2009-09-18 2010-04-21 苏州工业园区石猴数码科技有限公司 一种在移动终端显示实时地图的方法
CN102291450B (zh) * 2011-08-08 2014-01-15 浪潮电子信息产业股份有限公司 一种集群存储***内部的数据在线分级存储方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109144529A (zh) * 2018-08-02 2019-01-04 郑州市景安网络科技股份有限公司 操作***模板下刷方法、装置、设备及可读存储介质
CN113190625A (zh) * 2021-05-25 2021-07-30 中国工商银行股份有限公司 请求处理方法、装置、电子设备、介质和程序产品
CN113190625B (zh) * 2021-05-25 2024-06-25 中国工商银行股份有限公司 请求处理方法、装置、电子设备、介质和程序产品

Also Published As

Publication number Publication date
US20150310026A1 (en) 2015-10-29

Similar Documents

Publication Publication Date Title
JP5128708B2 (ja) 持続型ポートコンフィギュレーションを備えたsasコントローラ
US11544001B2 (en) Method and apparatus for transmitting data processing request
CN110673941B (zh) 多机房中微服务的迁移方法、电子设备及存储介质
US10216514B2 (en) Identification of a component for upgrade
KR101231563B1 (ko) 실시간 데이터 복제
CN108733506A (zh) 用于数据同步的方法、设备和计算机可读介质
CN104881333A (zh) 一种存储***及其使用的方法
CN104954271A (zh) Sdn网络中的数据包处理方法和装置
CN104811392A (zh) 用于处理网络中的资源访问请求的方法和***
CN104169897B (zh) Pci高速地址解码的方法
US9176917B2 (en) SAS latency based routing
US10534541B2 (en) Asynchronous discovery of initiators and targets in a storage fabric
CN109302466A (zh) 数据处理方法、相关设备及计算机存储介质
JP2012108905A (ja) 決定論的sasディスカバリ及びコンフィギュレーションの方法
CN110633175B (zh) 基于微服务的多机房数据处理方法、电子设备及存储介质
US10452502B2 (en) Handling node failure in multi-node data storage systems
WO2019047026A1 (zh) 数据迁移的方法、***及智能网卡
CN104750428A (zh) 块储存存取和网关模块、储存***和方法与内容递送装置
CN105100136A (zh) 用于访问存储集群中的逻辑存储的方法和装置
US9442672B2 (en) Replicating data across controllers
CN106605217B (zh) 用于将应用从一个站点移动到另一站点的方法和***
US10884886B2 (en) Copy-on-read process in disaster recovery
CN109445687A (zh) 一种数据存储方法以及协议服务器
US9569317B2 (en) Managing VIOS failover in a single storage adapter environment
CN104917800A (zh) 建立用于虚拟机的冗余连接的方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20151125

WD01 Invention patent application deemed withdrawn after publication