背景技术
当前,大多数的信息系统都是以服务器和客户端为中心,存储系统被定位于周边设备。但是,近年来随着社会信息化进程的加快,信息量急剧增加,网页数量以亿为单位,各企业的存储容量呈几何级数量增长。
分布式存储系统(DistributeStorage),就是将数据分散存储在多台独立的物理存储设备(例如,磁盘)上。与此相比较,传统的网络存储系统采用集中的存储服务器存储所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。
当前,大多数的分布式存储系统都是基于文件系统(FileSystem)的,无论是数据的读取还是写入,都要通过文件系统,造成文件系统成为瓶颈,影响了数据传输速度。
因此,需要提供一种改进的存储系统,在任何操作系统或者文件系统的情况下,能够方便地将新加入的存储设备纳入管理,并且使得数据的读取及写入不再通过文件系统这一层,来相应地加快数据传输速度,满足更大规模的数据存储的需求。
发明内容
本发明的目的在于,提供一种块级分布式存储系统及其数据读写方法,从而能够至少部分地克服上面提及的缺陷。
根据本发明的一个方面,提供了一种块级分布式存储系统。所述存储系统包括:客户端,由用户发起各种应用;元服务器,与所述客户端相连,向所述客户端提供从物理存储设备虚拟出的虚拟磁盘,并转发来自所述客户端的I/O给物理存储设备;块服务器,与所述元服务器进行通信,并提供以块为单位的物理存储空间;以及至少一个物理存储设备,用于提供实际的物理存储空间。
优选的,所述块服务器提供的物理存储空间来源于不同类型的存储设备。
优选的,所述块服务器的数目是多个,并且每个块服务器提供实际上限的存储空间。
优选的,在所述客户端上设置用户界面,以使得用户能够输入所设定的块的大小。
优选的,当用户通过所述客户端发出写入请求时,所述客户端的数据流通过所述元服务器,按照所设定的块的大小随机地写入到不同的物理存储设备中。
根据本发明的另一方面,提供了一种根据上述存储系统的数据读写方法。所述方法包括:用户发出数据的读取或写入请求;在用户发出数据的写入请求的情况下,来自客户端的写入数据流通过元服务器,按照所设定的块的大小随机地存储到不同的物理存储设备中,或是在用户发出数据的读取请求的情况下,从不同的物理存储设备,按照所设定的块的大小随机地读取数据。
因此,根据本发明实施例的分布式存储系统是基于物理存储设备(例如,磁盘)的,也就是块(block)级别的。所以无论是什么操作系统或者文件系统,都可以方便地纳入管理,而且数据不通过文件系统这一层,从而加快了数据传输的速度。
具体实施方式
接下来,将结合附图进行详细描述本发明的实施例。只要可能,在整个附图中,相同的附图标记将指示相同的部件。
硬件配置
下面,参照图1来说明根据本发明实施例的块级分布式存储系统的硬件配置。图1是描绘了根据本发明实施例的块级分布式存储系统的系统架构配置的示意图。
如图1所示,根据本发明实施例的块级分布式存储系统100包括客户端或应用服务器1000、元服务器2000、块服务器3000、以及多台由不同厂商提供的性能不同的物理存储设备4000。
如图1所示,应用服务器(客户端)1000、元服务器2000的数目都是一台,而块服务器3000和物理存储设备4000的数目都是三台。然而,本领域技术人员可以理解的是,根据需要,这些组成部件的数目还可以被适当地设定,本发明并不局限于此。
这里,根据本发明实施例的元服务器2000提供给客户端1000从虚拟存储设备到物理存储设备(例如,磁盘)之间的映射,并且可以管理各种磁盘阵列(RAID)或物理存储设备。
另外,根据本发明实施例的块服务器3000的作用在于提供以块为单位的物理存储空间,例如128MB/每块。当然,本领域技术人员可以理解的是,根据实际需要,块的大小可以被任意地设置。
另外,在客户端1000上还可以设置用户界面(UI),在用户界面上具有向用户提供设置块大小的表项,从而用户能够预先根据需要设置块的大小,甚至来修改块的大小。
因此,根据本发明实施例的块级分布式存储系统的特点包括:
第一,通过元服务器,而非通过文件系统这一层,从而加快了数据传输的速度。
第二,通过块服务器,不仅能够以块为单位来随机地读取并写入数据,而且还能够定位存储信息,从而提高了存储系统的可靠性、可用性和存储效率,并且还易于扩展系统。
数据写入方法
接下来,参考图2来详细地描述根据本发明实施例的块级分布式存储系统的数据写入方法。图2是描绘了根据本发明实施例的块级分布式存储系统的数据写入方法的流程图。
如上所述,用户可通过在客户端1000上设置的用户界面,来预先设定块的大小,或是通过用户界面来更改所设定的块的大小。
首先,用户通过客户端1000发起数据的写入请求(步骤S201)。
在接受到数据的写入请求之后,通过元服务器2000,将来自客户端1000的写入数据流按照预先设定的块的大小随机地存储到不同的物理存储设备4000中(步骤S202)。
因此,与传统的网络存储系统采用集中的存储服务器存储所有数据相比较,根据本发明实施例的块级分布式存储系统能够将写入数据随机地、分散地存储到由不同厂商制造的不同类型的物理存储设备中,从而实现以块为单位的存储空间的管理。
数据读取方法
接下来,参考图3来详细地描述根据本发明实施例的块级分布式存储系统的数据读取方法。图3是描绘了根据本发明实施例的块级分布式存储系统的数据读取方法的流程图。
同样,用户可通过在客户端1000上设置的用户界面,来预先设定块的大小,或是通过用户界面来更改所设定的块的大小。
首先,用户通过客户端1000发起数据的读取请求(步骤S301)。
在接受到数据的读取请求之后,通过元服务器2000,从不同的物理存储设备中,按照预先设定的块的大小随机地读取数据(步骤S302)。
因此,与传统的网络存储系统采用从集中的存储服务器读取所有数据相比较,根据本发明实施例的块级分布式存储系统能够随机地、分散地从由不同厂商制造的不同类型的物理存储设备中读取相应的数据,从而实现以块为单位的存储空间的管理。
有益效果
因此,根据本发明实施例的分布式存储系统是基于物理存储设备(例如,磁盘)的,也就是块(block)级别的。所以无论是什么操作系统或者文件系统,都可以方便地纳入管理,而且数据不通过文件系统这一层,从而加快了数据传输的速度。
尽管给出一些实施例,但本发明并不限于此。本领域技术人员基于本发明实施例的任何变形、修改,都不会背离本发明所限定的权利要求的范围。