CN104301430B - 软件定义存储系统、方法及其集中控制设备 - Google Patents
软件定义存储系统、方法及其集中控制设备 Download PDFInfo
- Publication number
- CN104301430B CN104301430B CN201410594511.0A CN201410594511A CN104301430B CN 104301430 B CN104301430 B CN 104301430B CN 201410594511 A CN201410594511 A CN 201410594511A CN 104301430 B CN104301430 B CN 104301430B
- Authority
- CN
- China
- Prior art keywords
- stores service
- unit
- control equipment
- common control
- service
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种软件定义存储系统的实现方法及其集中控制设备,集中控制设备包括控制单元、与前端虚拟机连接的前端接口、以及与后端分布式的存储服务单元连接的后端接口,所述控制单元用于根据存储服务配置单元发送的用户存储服务配置参数进行如下处理:将所述存储服务配置单元发送给所述集中控制设备的对所述存储服务单元的存储服务请求进行相应处理;和/或将所述虚拟机发送给所述集中控制设备的对所述存储服务单元的存储服务请求进行相应处理;所述存储服务单元具有计算单元,所述计算单元用于完成所述集中控制设备转发的与所述存储服务请求对应的存储服务。本发明可以实现高效的软件定义存储,可以动态调整分配虚拟机之间的存储服务质量。
Description
【技术领域】
本发明涉及存储领域,具体涉及存储系统、方法及其集中控制设备。
【背景技术】
随着虚拟化技术以及云技术的发展,现在以及未来的数据中心将向成千上万的用户提供服务。数据中心的基础架构进化到软件定义时代。软件定义数据中心包括软件定义计算,软件定义网络和软件定义存储。数据中心运营商向租户提供计算服务及存储服务。不同的租户有不同的存储服务需求及不同的应用场景,同一个租户下面不同的子账户(用户)有不同的存储服务需求及不同的应用场景。这些不同的存储服务需求包括但不限于容量、性能(IOPS,BandWidth)、延迟、备份级别、耐久度、加密、去重、压缩、快照、物理隔离。并且这些存储服务服务需求是根据需要可动态变化的。能够满足这些巨量的、动态变化的、个性化的存储服务需求的存储系统被称为软件定义存储系统。当前的存储系统架构(图1A和图1B)不能满足软件定义存储需求的多样化要求和性能要求。图1A所示的集中式存储系统中,集中存储系统有存储控制机头104和存储资源103组成,存储资源103不具有计算能力,所有和数据服务相关的计算工作都由存储控制机头104完成,来自控制集群106的存储服务策略(或称为软件定义存储需求)全部通过通道101传递给存储控制机头104。集中式存储系统存在两个主要问题,一个问题是受限于104存储控制机头的计算能力,104存储机头能够提供的存储服务需求类型有限,同时每一个虚拟机105的IO操作都会在存储控制机头104上产生大量的计算工作,存储控制机头104能够提供的性能(IOPS、Bandwidth)有限;另一个问题是没有横向扩展能力。这两个问题导致集中存储系统不具备软件定义存储系统要求的个性化服务质量控制能力和无缝扩容能力。图1B所示的分布式存储系统中,存储集群由具有计算资源的存储单元113组成,具有横向扩展能力,存储单元113可以是商用的x86服务器。多个存储单元113并行的接收来自虚拟机115的IO请求,没有集中存储系统控制机头104计算能力的限制,能够提供较高的性能。来自于控制集群(116)的存储服务策略通过通道111交给各个虚拟机115。分布式存储系统的主要问题是存储服务策略的执行分散在各个虚拟机115中,不能够提供基于租户,逻辑盘和虚拟机组的服务级别的区分,不能满足软件定义存储针对不同服务级别的存储服务选项控制。
随着半导体技术的发展,高速非易失性存储器件NANDFlash的存储密度越来越高,目前已经作为数据访问加速设备在数据中心中被广泛使用。和机械磁盘相比,NANDFlash具有更快的随机访问速度。和DRAM相比,NANDFlash是非易失性存储器件,能够在电源关闭后继续保持数据。为了发挥NANDFlash高速访问的特性,针对NANDFlash的新的模组规范,新的连结规范及新的访问协议都陆续被开发出来。因为和机械磁盘(HDD)特性本质上的不同,例如需要块擦除等,传统基于x86的服务器不能够更好的发挥以NandFlash作为存储媒介的存储资源的性能,需要设计新的存储架构和存储设备。
【发明内容】
为了克服现有存储系统不能满足软件定义存储的要求,本发明提供了软件定义存储系统、方法及其集中控制设备,以实现软件定义存储系统对软件定义存储多样性的软件定义存储需求,以及性能的要求。
一种软件定义存储系统的集中控制设备,包括:控制单元、与前端虚拟机连接的前端接口、以及与后端分布式的存储服务单元连接的后端接口,所述控制单元用于根据存储服务配置单元发送的用户存储服务配置参数进行如下处理:
将所述存储服务配置单元发送给所述集中控制设备的对所述存储服务单元的存储服务请求进行相应处理;
和/或将所述虚拟机发送给所述集中控制设备的对所述存储服务单元的存储服务请求进行相应处理;
其中,所述存储服务单元具有计算单元,所述计算单元用于完成所述集中控制设备转发的与所述存储服务请求对应的存储服务。
在一个实施例中,所述存储服务配置参数包括用户权限参数,所述控制单元用于根据所述用户权限参数,将所述存储服务配置单元发送给所述集中控制设备的对所述存储服务单元的存储服务请求进行相应处理。
在一个实施例中,所述存储服务配置参数包括存储服务质量参数,所述控制单元根据所述存储服务质量参数,对所述虚拟机与所述存储服务单元之间的存储服务的质量进行控制。
在一个实施例中,所述存储服务质量参数包括:所述虚拟机与所述存储服务单元之间的带宽、每秒读写操作次数,存储服务单元的容量或数据分层,数据加密、去重、压缩和物理隔离。
在一个实施例中,所述控制单元还用于根据所述存储服务质量参数,在多个虚拟机之间动态分配存储服务质量。
在一个实施例中,还包括缓存,所述控制单元还用于根据所述存储服务配置参数决定:
是否将所述虚拟机完成存储服务所需的数据存储到所述缓存;
或者所述缓存存储的所述虚拟机完成存储服务所需的数据的老化速度;
或者是否将所述缓存的部分空间作为固定的分层存储空间,以存储所述虚拟机完成存储服务所需的数据。
在一个实施例中,所述控制单元利用所述缓存中的所述虚拟机完成存储服务所需的数据,提高所述虚拟机与所述存储服务单元之间的每秒读写操作次数。
本发明还提供了一种软件定义存储系统,包括虚拟机,还包括分布式的存储服务单元、存储服务配置单元、以及所述的集中控制设备;
所述存储服务配置单元用于,产生用户的存储服务配置参数,并将所述存储服务配置参数发送给所述集中控制设备;
所述虚拟机用于,向所述集中控制设备发送存储服务请求;
所述存储服务单元用于,接收所述集中控制设备发送的与所述存储服务请求对应的存储服务任务,完成所述存储服务任务。
在一个实施例中,所述存储服务配置单元还用于,向所述集中控制设备查询当前存储服务配置参数和运行信息。
在一个实施例中,所述存储服务配置参数包括用户权限参数,所述控制单元用于根据所述用户权限参数,将所述存储服务配置单元发送给所述集中控制设备的对所述存储服务单元的存储服务请求进行相应处理。
在一个实施例中,所述存储服务配置参数包括存储服务质量参数,所述控制单元根据所述存储服务质量参数,对所述虚拟机与所述存储服务单元之间的存储服务的质量进行控制。
在一个实施例中,所述控制单元还用于根据所述存储服务质量参数,在多个虚拟机之间动态分配存储服务质量。
本发明还提供了一种软件定义存储系统实现方法,包括如下步骤:
集中控制设备接收存储服务配置单元产生的用户存储服务配置参数;
所述集中控制设备根据所述存储服务配置参数,生成对应的服务控制参数;
所述集中控制设备接收虚拟机或存储服务配置单元发送的存储服务请求;
所述集中控制设备根据所述服务控制参数对所述存储服务请求进行相应处理;
若所述存储服务请求合法,所述集中控制设备将所述存储服务请求对应的存储服务转发给存储服务单元,其中,所述存储服务单元具有计算单元,所述计算单元用于完成所述集中控制设备转发的与所述存储服务请求对应的存储服务。
集中控制设备根据存储服务配置单元发送的存储服务配置参数,对虚拟机和存储服务配置单元发送的存储服务请求进行控制,将具体的存储服务发送给具有完成相应存储服务的分布式存储服务单元(集群)完成,不仅可以满足用户多种多样的定义存储需求,而且集中控制设备因为没有大量具体的存储服务,也难以成为整个软件定义存储系统的瓶颈节点,因此也能保证整个软件定义存储系统具有较优的软件定义存储服务处理能力。
集中控制设备根据存储服务配置参数,对多个虚拟机的存储服务质量进行动态调整分配,尽可能保证该多个虚拟机整体的存储服务质量的利用。
集中控制设备根据存储服务配置参数,可以对虚拟机与分布式存储服务单元(集群)之间的存储服务质量进行控制,通过集中控制设备的缓存,也尽可能保证虚拟机实现较高的存储服务质量。
【附图说明】
图1a是现有技术中集中存储系统构架示意图;
图1b是现有技术中分布式存储系统构架示意图;
图2是本发明一种实施例的软件定义存储系统的构架示意图;
图3是本发明一种实施例的存储服务配置参数的构成示意图;
图4a是现有技术分布式存储系统中存储服务过程示意图;
图4b是本发明一种实施例的软件定义存储系统在一种情形下的存储服务过程示意图;
图4c是本发明一种实施例的软件定义存储系统在另种情形下的存储服务过程示意图;
图5是本发明一种实施例的软件定义存储系统的组成示意图;
图6是本发明一种实施例的集中控制设备的组成示意图;
图7是本发明一种实施例的存储服务单元的组成示意图;
图8是本发明一种实施例的软件定义存储的总体流程示意图;
图9是本发明一种实施例的存储服务配置单元提供存储服务配置的流程示意图。
【具体实施方式】
以下对发明的较佳实施例作进一步详细说明。
如图2所示,一种实施例的软件定义存储系统的系统构架,可以称为集中分布式存储系统构架,包括存储服务配置集群(或者称为控制集群)、集中控制设备204、分布式存储服务集群和计算集群,其中,存储服务配置集群包括多个存储服务配置单元,计算集群包括多个虚拟机,分布式存储服务集群包括多个存储服务单元,集中控制设备分别与存储服务配置单元、分布式存储服务单元(集群)和虚拟机(集群)连接。
其中,存储服务配置单元产生存储服务配置参数(或者称为软件定义存储需求),存储服务配置单元将存储服务配置参数发送给集中控制设备204,集中控制设备204接收存储服务配置参数,并根据这些参数,来控制虚拟机对分布式存储服务集群的访问,或者对虚拟机发送过来的存储服务请求,依据存储服务配置参数而做出相应的处理;也可以对从存储服务配置单元发送过来的存储服务请求,依据存储服务配置参数进行相应处理。若虚拟机发送来的存储服务请求符合存储服务配置参数,集中控制设备可以将该存储服务请求发送给分布式存储服务集群,而分布式存储服务集群中的存储服务单元具有完成所述存储服务请求对应的具体存储服务的计算能力,集中控制设备204本身并不需要提供复杂的存储服务计算,因此,集中控制设备204难以成为整个软件定义存储系统的性能瓶颈节点。
存储服务配置参数可以分为用户权限参数和存储服务质量参数,权限可以是拥有虚拟机和逻辑盘的多少,访问某个虚拟机或逻辑盘的权限、克隆(例如克隆一个虚拟机)、对虚拟机、逻辑盘存储的快照(例如数量、名字)等,例如,基本的用户权限包括具有一个虚拟机和一个逻辑盘,较高级的用户权限为多个虚拟机(虚拟机组)和多个逻辑盘(逻辑盘组),具有多个虚拟机和多个逻辑盘的用户权限可以称为一个租户。
存储服务质量参数可以包括但不限于:存储的容量或数据分层,所述虚拟机与所述分布式存储服务集群之间的带宽、每秒读写操作次数(IOPS),延时(例如数据从虚拟机至存储服务单元之间的延时),备份级别(例如逻辑盘内数据备份的数量),存储数据加密、数据去重、数据压缩、物理隔离等。所述集中控制设备可以根据所述存储服务质量参数,在同一个租户下的多个虚拟机之间动态分配存储服务质量,以提高租户某个时刻的存储服务质量的利用效率。
如图3所示,是存储服务配置参数一种分类方法,其包括存储服务级别和存储服务选项。存储服务级别主要依据具有虚拟机和逻辑盘来进行划分,存储服务选项包括但不限于容量、性能(例如IOPS和带宽)、延迟、备份级别、加密、快照、克隆、去重、压缩和物理隔离。几个具体的存储服务配置参数的例子如下:例一,租户A的容量为100T,性能为500KIOPS,2GB/s的带宽,三备份,加密选项关闭,快照选项打开,克隆选项关闭,去重选项关闭,压缩选项关闭,物理隔离选项打开;例二,属于租户B的虚拟机I的性能为100KIOPS,3备份,加密选项打开,快照选项打开,克隆选项关闭,去重选项关闭,压缩选项打开。
在一个实施例中,集中控制设备可以根据从存储服务配置单元发送的存储服务配置参数,对用户的存储服务请求进行判断是否合法,若不合法,则阻止对分布式存储服务集群进行数据操作,或者对集中控制设备附加的缓存中的相应数据进行操作。例如,用户通过存储服务配置单元,向集中控制设备发送克隆某个虚拟机的存储服务请求,若集中控制设备判断出该用户具有该权限,则将克隆服务请求发送给分布式存储服务集群,并由分布式存储服务集群完成克隆虚拟机的服务;若判断出该用户并不具有该权限,则集中控制设备不向分布式存储服务集群发送对应请求,并可以向存储服务配置单元反馈相关信息,例如警告。
在一个实施例中,集中控制设备还可以根据存储服务质量参数,对所述虚拟机与所述分布式存储服务集群之间的存储服务的质量进行控制。例如,虚拟机A向集中控制设备发送存储服务请求,集中控制设备查询到虚拟机A的相关服务质量参数,然后给虚拟机A分配相应的服务质量,例如对应的IOPS,在存储容量等。
在一个实施例中,集中控制设备还可以根据存储服务质量参数,对多个虚拟机的存储服务质量(包括IOPS、带宽、容量等等)进行动态调整、分配,尽可能保证多个虚拟机整体的存储服务质量不会下降。
例如,某个租户具有两个虚拟机,该租户拥有一个设定的总IOPS(即任意时刻两个虚拟机的总IOPS上限),当两个虚拟机分别向集中控制设备发送存储服务请求,且两者需要对应的IOPS时,集中控制设备根据该总IOPS,分配相应的IOPS给对应的虚拟机,以避免租户浪费IOPS,提高该租户整体的IOPS利用率。集中控制设备可以根据不同时刻两个虚拟机的不同存储服务质量需求,从而动态调整分配相应的IOPS给对应的虚拟机。
如图4a至4c所示,给出了一个IO访问在分布式存储系统和本软件定义存储系统上的应用对比示意图。如图4a所示,是分布式存储系统中虚拟机与存储服务单元之间的IO访问,虚拟机A和虚拟机B都是租户NetBric的子账户,在物理服务器A上的虚拟机A经过计算或查表,需要访问的内容在存储服务单元A上,虚拟机A直接向存储服务单元A发起IO请求;在物理服务器B上的虚拟机B经过计算或查表,需要访问的内容在存储服务单元B上,虚拟机B直接向存储服务单元B发起IO请求。如果租户NetBric总的IOPS额度为500K,那么虚拟机A和虚拟机B各自的IOPS只能做静态的分配,例如虚拟机A分配为300KIOPS,虚拟机B分配为200KIOPS,在某一时刻,虚拟机B的IOPS需求只有100K,而虚拟机A的IOPS需求为400K时,虚拟机A实际只能分配300KIOPS,因此租户NetBric能够实现的IOPS仅为400K,相比500KIOPS的总量,有100K被闲置浪费了。
如图4b所示,是在本实施例的软件定义存储系统中的IO访问,假设虚拟机A和虚拟机B也都是租户NetBric的子账户,租户NetBric总的IOPS额度为500K,虚拟机A和虚拟机B的IO请求都送到了集中控制设备,集中控制设备再将IO请求分发到对应的存储服务单元A和存储服务单元B,集中控制设备经过判断,可以在总的500KIOPS范围内动态的调整虚拟机A和虚拟机B的IOPS分配,在虚拟机B的IOPS只有100K的时候,允许虚拟机A的IOPS达到400K,在虚拟机B的IOPS为200K时,限制虚拟机A的IOPS为300K。从而实现了在同一个租户下的多个虚拟机之间动态分配存储服务质量,提高了租户某个时刻的存储服务质量的利用效率。
如果租户NetBric将自己总IOPS额度升级为5M,并且分配给虚拟机A的IOPS为1M时,集中控制设备经过统计判断,发现后端分布式存储服务集群不能提供1MIOPS给虚拟机A时,IO访问路径可以如图4c所示,集中控制设备会通过相应的算法,加速虚拟机A的访问,尽量保证虚拟机A的IO访问内容在集中控制设备中的缓存中可以找到,从而对虚拟机A的IO访问提供加速。
在一个实施例中,集中控制设备还可以包括缓存,集中控制设备的控制单元可以根据所述存储服务配置参数决定,是否将虚拟机完成存储服务所需的数据存储到所述缓存;例如,某租户的权限较高或者服务质量较高时,则需要集中控制设备缓存相关数据,以减少延时。例如,某租户的延时参数较低,当某一次集中控制设备完成向某租户的虚拟机转发相关数据后,将这些相关数据存储到所述缓存中,以备下次使用。
在一个实施例中,集中控制设备的控制单元可以根据所述存储服务配置参数进一步决定,所述缓存存储的所述虚拟机完成存储服务所需的数据的老化速度;例如,某租户的权限较高或者服务质量较高时,相关数据的老化速度较慢,反之老化速度可以较快,以在减少存储服务时延的同时,保证缓存的剩余空间。
在一个实施例中,集中控制设备的控制单元可以根据所述存储服务配置参数进一步决定,是否将所述缓存的部分空间作为固定的分层存储空间,以存储所述虚拟机完成存储服务所需的数据。例如,某租户的权限较高或者服务质量较高时,可以在所述缓存中开辟一部分空间作为固定的分层存储空间,以供缓存该租户的虚拟机进行存储服务产生的数据。
如图5所示,是一个实施例的软件定义存储系统的组成示意图。如图6所示,是一个实施例的集中控制设备的结构示意图。存储服务客户端用于给虚拟机提供数据接口,虚拟机将数据发送给存储服务客户端,存储服务客户端与集中控制设备之间通过S5协议完成数据交换,集中控制设备与存储服务单元之间通过S5协议完成数据交换,存储服务配置单元通过软件定义存储协议,将存储服务配置参数发送给集中控制设备。
集中控制设备的功能包括但不限于提供高性能(高IOPS和高带宽)的数据存储服务,根据存储服务配置参数进行存储服务质量控制,根据存储服务配置参数及具体的存储服务请求分发具体的存储操作到后端分布式存储服务集群。
本集中控制设备可以包括:计算和总控制模块801、前端接口模块802、后端接口模块803、加速模块804、服务质量(QoS)控制模块805、存储控制交换模块806、MegaNAND控制模块807、NANDFlash模组模块808。
计算和总控制模块801和存储服务配置单元通过软件定义存储协议进行信息交换,接收来自存储配置单元配置的存储服务配置参数,通过计算将生成的控制参数发送到集中控制单元内部的相应模块。此模块运行有集中控制设备的守护软件,负责监控集中控制设备的状态,及处理集中控制设备发向后端分布式存储服务集群的数据处理请求。同时此模块运行有分布式存储系统的客户端软件。
前端接口模块802可以通过以太网口、FC网口、iSCSI网口等接口和存储服务客户端集群相互通信,接收来自于存储服务客户端的存储服务请求。前端接口模块可以实现硬件解析TCP/IP,FC,iSCSI等协议,并且将解析出来的存储服务协议包传递给加速模块804。
后端接口模块803可以通过以太网口、FC网口、iSCSI网口等和存储服务单元集群相互通信。后端接口模块可以实现硬件解析TCP/IP,FC,iSCSI等协议,并且将解析出来的存储服务协议包传递给加速模块804。
加速模块804负责硬件解析S5协议包,生成相应的硬件操作控制指令,送入后续模块。
服务质量(QoS)控制模块805负责根据来自于计算和总控制模块801的控制参数,服务质量(QoS)控制模块805产生的统计信息,及S5协议包中包含的信息(例如身份ID),调整对来自于不同服务级别的存储服务的服务质量。服务质量包括但不限于IOPS,数据带宽(Bandwidth),容量和数据分层处理等。
存储控制交换模块806接收来自于服务质量(QoS)控制模块805和加速模块804的硬件控制指令,产生相应的动作,或将数据直接传递给后端分布式存储服务集群,或产生对MegaNAND控制模块807的硬件操作请求。
MegaNAND控制模块807将大量NANDFlash模组模块808(例如上百TB)虚拟化为NANDFlash的存储资源池,作为后端存储服务单元集群的智能缓存使用,并完成数据冗余,去重,加密等操作。此模块是提高集中控制设备IOPS和数据带宽的主要模块。智能缓存的特性包括:根据服务质量控制模块的信息决定是否要缓存相关数据;根据服务质量控制模块的信息决定被缓存的数据的老化速度;根据服务质量控制模块的信息决定是否将部分缓存空间作为固定的分层存储空间使用。
NANDFlash模组模块808负责将NANDFlash器件组织为基本的NANDFlash存储功能单元,提供基本的NANDFlash存储服务。
图8是本发明一种实施例的存储服务单元组成结构,包括网络接口901、计算单元902和存储媒介903。网络接口901实现计算存储服务单元和网络的连接;计算单元902可以是x86CPU也可以是ARMCPU,运行简单的计算;存储媒介903可以是SSD,也可以是HDD等。大量存储服务单元组成存储服务单元集群,通过运行在计算单元902的软件组成分布式的存储服务集群(系统)。此分布式的存储服务集群完成具体的数据存储服务。
如图9所示,是本发明一种实施例的软件定义存储系统的工作流程,包括如下步骤:
步骤501:管理账户在存储服务配置单元上配置存储服务配置参数(软件定义存储需求)。
步骤502:存储服务配置单元通过软件定义存储协议将存储服务配置参数发送给集中控制设备。本步骤使用的是软件定义存储协议中的一部分。软件定义存储协议用于在存储服务配置单元(例如Openstack的控制台,VMWare控制台)和本发明公开的集中控制设备之间的消息传输。软件定义存储协议包括但不限于以下内容:
设置性能、延迟、服务等级、加密、压缩、去重、备份数量、物理位置分布相关参数。
查询存储服务配置单元或集中控制设备当前的设置状态,即上面设置的各个参数状态。
查询当前统计信息,例如基于虚拟机的IOPS,带宽(Bandwidth),延时(Latency),对虚拟机访问加速的命中率(Hitrate)(对于存储服务质量较高的用户的虚拟机,集中控制设备可以给虚拟机提供加速访问,集中控制设备可以统计对该虚拟机加速成功的比例,也就是上述的命中率)等。
对租户以及租户的子账户进行管理,以便进行计费。
查询系统的运行状态,包括整个系统各个节点的CPU、内存、磁盘负载情况、健康情况。
按租户以及租户的子账户的资源占用数量进行统计查询,以进行计费。
虚拟磁盘操作,包括建立虚拟磁盘,删除虚拟磁盘,设置虚拟磁盘的参数,执行快照,克隆,复制等动作。
软件定义存储协议使用TCP/HTTP网络协议作为传输协议,在存储服务配置单元和集中控制设备之间进行传输。可以使用XML作为基础描述格式。
步骤503:集中控制设备根据存储服务配置参数生成相对应的软件和硬件控制参数。此步骤可以由计算和总控制模块801计算生成。
步骤504:存储服务客户端或存储服务配置单元通过S5协议向集中控制设备发出存储服务请求。在一些实施例中,具体的存储服务请求可以通过本发明公开的客户端代理软件或本发明公开的存储服务应用程序接口(API)完成。存储服务客户端代理软件或应用程序接口可以提供基于块设备(block)、对象(object)和文件(file)的存储服务。存储配置单元代理软件或应用程序接口(API)可以提供克隆、快照等存储服务请求。
步骤505:集中控制设备查询存储服务策略生成的软件和硬件控制参数,确定存储服务请求的合法性与合理性,并进行服务质量控制。此步骤可以由服务质量(QoS)控制模块805来完成。
步骤506:集中控制设备根据存储服务请求产生相应的数据处理请求。
步骤507:集中控制设备确认此次存储服务请求是否会产生和后端分布式存储服务集群之间的数据处理请求。
步骤508:集中控制设备通过S5协议和后端分布式存储服务集群完成数据处理操作。
步骤509:集中控制设备向存储服务客户端返回存储服务响应,包括但不限于非法请求、延迟重试、正常完成等。
其中步骤501,步骤502,步骤503是非经常性步骤,这些步骤通常是在用户的账户设立,或者存储服务配置参数改变的时候进行。步骤504,步骤505,步骤506,步骤507,步骤508,步骤509是经常性步骤,这些步骤通常在用户每次进行存储服务操作时进行。
在一些实施例中,S5协议是集中控制设备和存储服务客户端及分布式存储服务集群之间使用的协议。协议内容包括但不限于:
具体的读写操作指令,用于指示集中控制设备进行加速的指令,用于检查网络的心跳指令,用于指示逻辑盘操作的指令。
用于获取快照、统计、数据长度、数据位置、数据用途等信息的指令。
用于确定数据身份的信息(包括但不限于传输ID,用户ID,资源池ID,ImageID)的指令。
用于确定数据版本、修改时间等信息的指令。
用于建立会话的相关信息(例如状态,监听端口等)的指令。
用于提高传输可靠性的检验信息的指令。
如图9所示,本发明一种实施例的存储服务配置参数配置流程。整个配置过程由运行在存储服务配置单元上的软件(属于本发明公开的软件定义存储系统的一部分)提供。
步骤701:超级管理员(例如S5管理员)根据租户需求,创建租户账户,并设置租户需要存储服务配置参数,例如权限参数和存储服务质量参数,例如容量,IOPS,带宽,加密,去重,压缩。
步骤702:租户账户根据需要创建具有不同管理权限管理账户。不同权限包括但不限于是否可以创建逻辑盘,是否可以设置备份属性等。步骤702不是必须步骤。
步骤703:租户账户或租户的管理账户根据租户内部需求,创建不同的虚拟机和逻辑盘,可以设定某些虚拟机和逻辑盘只能由一个租户中的某些账户使用。
步骤704:租户账户或租户的管理账户根据租户内部需求种类,创建不同的服务选项集。包括但不限于IOPS,带宽,备份数,是否物理隔离。可供选择的服务选型的种类受到租户账户的存储服务选项的限制。
步骤705:租户账户或租户的管理账户将步骤704配置的存储服务选项集和步骤703配置的虚拟机、虚拟机组、逻辑盘、逻辑盘组等关联起来,形成完整的存储服务配置参数。
运行在存储服务配置单元上的软件还提供统计结果以及状态信息。例如当前容量消耗,IOPS消耗等。
在一个实施例中,软件定义存储系统在图4c的应用流程如下。
数据中心供应商通过存储配置单元创建租户NetBric账户,关联的软件定义存储选项为,500KIOPS,2GB/s带宽,100T容量,最多允许3备份,允许数据加密,允许快照,允许克隆,允许去重,允许压缩,允许物理隔离。NetBric账户通过存储服务配置单元创建虚拟机A和虚拟机B,虚拟机A关联的软件定义存储选项为400KIOPS,1GB/s带宽,20T容量,3备份,数据加密,快照,去重,压缩,物理隔离。NetBric账户试图给虚拟机B关联的软件定义选项为300KIOPS,1GB/s带宽,20T容量,4备份,数据加密,快照,去重,压缩,不做物理隔离,存储服务配置单元查询NetBrick的软件定义存储选项后,建议将虚拟机B非法的软件定义存储选项300KIOPS,4备份修改为100KIOPS,3备份,并给出警告。在NetBric账户确认后,存储配置单元通过软件定义存储协议将软件定义存储需求发送给集中控制设备。计算和总控制模块801接收到租户NetBric的软件定义存储需求后,产生相应的控制参数(例如IOPS配额,身份标识信息,带宽配额)。
虚拟机A的读数据请求和虚拟机B的写数据请求经过前端接口模块802和加速模块804的处理,最终到达服务质量(QoS)控制模块805。服务质量(QoS)控制模块805检查之前的统计结果以及相应的控制参数,确认虚拟机B的IOPS额度没有耗尽,并且后端分布式存储服务集群能够满足虚拟机B100KIOPS的服务要求,NANDFlash模组模块808中没有虚拟机B需要的数据。服务质量(QoS)控制模块805产生控制指令给存储控制交换模块806和后端接口模块803,将虚拟机B的写数据请求及部分软件定义存储选项(包括不限于3备份,数据加密,快照序列号,压缩)分发到后端分布式存储系统,由后端分布式存储系统完成相对应的数据加密,压缩,主数据更新及备份数据更新。针对虚拟机A的读数据请求,服务质量(QoS)控制模块805检查之前的统计结果以及相应的控制参数,确认虚拟机A的IOPS额度没有耗尽,并且NANDFlash模组模块808中已经存有虚拟机A这次读数据请求相关的数据,服务质量(QoS)控制模块805会产生相应的控制指令给存储控制交换模块806,由存储控制交换模块806、MegaNAND控制模块807、NANDFlash模组模块808共同完成读数据的搬移,返回给虚拟机A。
租户账户NetBric也可以通过存储服务配置单元发出克隆虚拟机A的存储服务请求到集中控制器的计算和总控制模块801,计算和总控制模块801通过加速模块804和后端接口模块803将克隆服务请求发送给后端分布式存储服务集群,由后端分布式存储服务集群完成克隆服务。
本发明公开的软件定义存储服务不限于上述实例,本发明公开的软件定义存储需求中存储服务级别和存储服务选项的任意组合都包含在本发明公开的软件定义存储服务的范围之内。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明由所提交的权利要求书确定的专利保护范围。
Claims (13)
1.一种软件定义存储系统的集中控制设备,其特征是,包括:控制单元、与前端虚拟机连接的前端接口、以及与后端分布式的存储服务单元连接的后端接口,所述控制单元用于根据存储服务配置单元发送的存储服务配置参数进行如下处理:
将所述存储服务配置单元发送给所述集中控制设备的对所述存储服务单元的存储服务请求进行相应处理;
和/或将所述虚拟机发送给所述集中控制设备的对所述存储服务单元的存储服务请求进行相应处理;
其中,所述存储服务单元具有计算单元,所述计算单元用于完成所述集中控制设备转发的与所述存储服务请求对应的存储服务。
2.如权利要求1所述的集中控制设备,其特征是,所述存储服务配置参数包括用户权限参数,所述控制单元用于根据所述用户权限参数,将所述存储服务配置单元发送给所述集中控制设备的对所述存储服务单元的存储服务请求进行相应处理。
3.如权利要求1所述的集中控制设备,其特征是,所述存储服务配置参数包括存储服务质量参数,所述控制单元根据所述存储服务质量参数,对所述虚拟机与所述存储服务单元之间的存储服务的质量进行控制。
4.如权利要求3所述的集中控制设备,其特征是,所述存储服务质量参数包括:所述虚拟机与所述存储服务单元之间的带宽、每秒读写操作次数,存储服务单元的容量或数据分层、数据加密、去重、压缩和物理隔离。
5.如权利要求3所述的集中控制设备,其特征是,所述控制单元还用于根据所述存储服务质量参数,在多个虚拟机之间动态分配存储服务质量。
6.如权利要求1所述的集中控制设备,其特征是,还包括缓存,所述控制单元还用于根据所述存储服务配置参数决定:
是否将所述虚拟机完成存储服务所需的数据存储到所述缓存;
或者所述缓存存储的所述虚拟机完成存储服务所需的数据的老化速度;
或者是否将所述缓存的部分空间作为固定的分层存储空间,以存储所述虚拟机完成存储服务所需的数据。
7.如权利要求6所述的集中控制设备,其特征是,所述控制单元利用所述缓存中的所述虚拟机完成存储服务所需的数据,提高所述虚拟机与所述存储服务单元之间的每秒读写操作次数。
8.一种软件定义存储系统,包括虚拟机,其特征是,还包括分布式的存储服务单元、存储服务配置单元、以及如权利要求1至7任一所述的集中控制设备;
所述存储服务配置单元用于,产生用户的存储服务配置参数,并将所述存储服务配置参数发送给所述集中控制设备;
所述虚拟机用于,向所述集中控制设备发送存储服务请求;
所述存储服务单元用于,接收所述集中控制设备发送的与所述存储服务请求对应的存储服务任务,完成所述存储服务任务。
9.如权利要求8所述的软件定义存储系统,其特征是,
所述存储服务配置单元还用于,向所述集中控制设备查询当前存储服务配置参数和运行信息。
10.如权利要求8所述的软件定义存储系统,其特征是,所述存储服务配置参数包括用户权限参数,所述控制单元用于根据所述用户权限参数,将所述存储服务配置单元发送给所述集中控制设备的对所述存储服务单元的存储服务请求进行相应处理。
11.如权利要求8所述的软件定义存储系统,其特征是,所述存储服务配置参数包括存储服务质量参数,所述控制单元根据所述存储服务质量参数,对所述虚拟机与所述存储服务单元之间的存储服务的质量进行控制。
12.如权利要求11所述的定义存储系统,其特征是,所述控制单元还用于根据所述存储服务质量参数,在多个虚拟机之间动态分配存储服务质量。
13.一种软件定义存储方法,其特征是,包括如下步骤:
集中控制设备接收存储服务配置单元产生的存储服务配置参数;
所述集中控制设备根据所述存储服务配置参数,生成对应的服务控制参数;
所述集中控制设备接收虚拟机或存储服务配置单元发送的存储服务请求;
所述集中控制设备根据所述服务控制参数对所述存储服务请求进行相应处理;
若所述存储服务请求合法,所述集中控制设备将所述存储服务请求对应的存储服务转发给存储服务单元,其中,所述存储服务单元具有计算单元,所述计算单元用于完成所述集中控制设备转发的与所述存储服务请求对应的存储服务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410594511.0A CN104301430B (zh) | 2014-10-29 | 2014-10-29 | 软件定义存储系统、方法及其集中控制设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410594511.0A CN104301430B (zh) | 2014-10-29 | 2014-10-29 | 软件定义存储系统、方法及其集中控制设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104301430A CN104301430A (zh) | 2015-01-21 |
CN104301430B true CN104301430B (zh) | 2016-04-13 |
Family
ID=52320993
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410594511.0A Active CN104301430B (zh) | 2014-10-29 | 2014-10-29 | 软件定义存储系统、方法及其集中控制设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104301430B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016065556A1 (zh) * | 2014-10-29 | 2016-05-06 | 北京麓柏科技有限公司 | 软件定义存储系统、方法及其集中控制设备 |
CN104636284B (zh) * | 2015-01-28 | 2018-12-11 | 置富科技(深圳)股份有限公司 | 一种闪存存储阵列的实现方法及装置 |
CN105354154B (zh) * | 2015-10-23 | 2018-12-28 | 贵州轩通大数据科技有限责任公司 | 零cpu负载实现存储系统命令传输的装置和方法 |
CN106612314A (zh) * | 2015-10-26 | 2017-05-03 | 上海宝信软件股份有限公司 | 基于虚拟机实现软件定义存储的系统 |
CN107346265B (zh) * | 2016-05-05 | 2021-05-18 | 北京忆恒创源科技有限公司 | 实现QoS的方法与装置 |
US10237201B2 (en) | 2016-05-30 | 2019-03-19 | Dell Products, L.P. | Quality of service (QoS) based device for allocating compute workloads to hosts providing storage and network services in software-based data center |
CN106230963A (zh) * | 2016-08-11 | 2016-12-14 | 江苏方天电力技术有限公司 | 基于电力系统私有云平台的软件定义存储方法 |
WO2018158808A1 (ja) * | 2017-02-28 | 2018-09-07 | 株式会社日立製作所 | 情報システム、管理プログラム及び情報システムのプログラム交換方法 |
US10616050B2 (en) * | 2017-05-05 | 2020-04-07 | VCE IP Holding Company LLC | Software defined storage (SDS) system with network tiering |
US11231958B2 (en) * | 2018-01-22 | 2022-01-25 | Siemens Aktiengesellschaft | Method and control system for controlling and/or monitoring devices |
TWI663556B (zh) * | 2018-01-30 | 2019-06-21 | 中華電信股份有限公司 | 具拆帳功能之資源權限管控系統及方法 |
CN108924186A (zh) * | 2018-06-04 | 2018-11-30 | 郑州云海信息技术有限公司 | 一种云管平台中文件存储的创建方法和系统 |
CN111291770B (zh) * | 2018-12-06 | 2023-07-25 | 华为技术有限公司 | 一种参数配置方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101004767A (zh) * | 2006-01-19 | 2007-07-25 | 联想(北京)有限公司 | 计算机系统及其i/o端口访问控制方法 |
CN103927127A (zh) * | 2013-01-03 | 2014-07-16 | 三星电子株式会社 | 可重新配置存储装置 |
-
2014
- 2014-10-29 CN CN201410594511.0A patent/CN104301430B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101004767A (zh) * | 2006-01-19 | 2007-07-25 | 联想(北京)有限公司 | 计算机系统及其i/o端口访问控制方法 |
CN103927127A (zh) * | 2013-01-03 | 2014-07-16 | 三星电子株式会社 | 可重新配置存储装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104301430A (zh) | 2015-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104301430B (zh) | 软件定义存储系统、方法及其集中控制设备 | |
US9898427B2 (en) | Method and apparatus for accessing multiple storage devices from multiple hosts without use of remote direct memory access (RDMA) | |
US10855602B2 (en) | Distributed policy-based provisioning and enforcement for quality of service | |
CN105549904B (zh) | 一种应用于存储系统中的数据迁移方法及存储设备 | |
JP3726484B2 (ja) | 記憶サブシステム | |
US20170364307A1 (en) | Switched direct attached shared storage architecture | |
US8462632B1 (en) | Network traffic control | |
US9400664B2 (en) | Method and apparatus for offloading storage workload | |
US20140317206A1 (en) | Switched direct attached shared storage architecture | |
CN106453360B (zh) | 基于iSCSI协议的分布式块存储数据访问方法及系统 | |
US9712427B1 (en) | Dynamic server-driven path management for a connection-oriented transport using the SCSI block device model | |
US20150263978A1 (en) | Coordinated admission control for network-accessible block storage | |
CN108268321A (zh) | 用于迁移工作负载的方法和机架系统 | |
CN108881348A (zh) | 服务质量控制方法、装置和存储服务器 | |
CA2882446A1 (en) | Methods, systems and devices for parallel network interface data structures with differential data storage service capabilities | |
US11379405B2 (en) | Internet small computer interface systems extension for remote direct memory access (RDMA) for distributed hyper-converged storage systems | |
CN104092756A (zh) | 一种基于dht机制的云存储系统的资源动态分配方法 | |
WO2016182756A1 (en) | Accessing multiple storage devices from multiple hosts without remote direct memory access (rdma) | |
CN110830574B (zh) | 一种基于docker容器实现内网负载均衡的方法 | |
US9232000B1 (en) | Method and system for balancing load across target endpoints on a server and initiator endpoints accessing the server | |
WO2015123225A1 (en) | Aggregating memory to create a network addressible storage volume for storing virtual machine files | |
US9591099B1 (en) | Server connection establishment over fibre channel using a block device access model | |
Kim et al. | Optimizing end-to-end big data transfers over terabits network infrastructure | |
CN104063281A (zh) | 一种调控虚拟机物理内存的方法和装置 | |
KR20140137573A (ko) | 데이터 분산 서비스 미들웨어의 쓰레드를 위한 메모리 관리 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20180702 Address after: 518057 room 791, 7 / F, JINDA science and technology center, 8 Nanshan District high tech Zone, Shenzhen, Guangdong. Patentee after: Shenzhen city's Computer Co. Ltd. Address before: 100083 B-602-017 5, 1 building, 18 Zhongguancun East Road, Haidian District, Beijing. Patentee before: NETBRIC TECHNOLOGY CO., LTD. |
|
TR01 | Transfer of patent right |