- 论坛徽章:
- 0
|
基于对象存储
1.1对象存储设备(OSD)模型
对象存储设备(OSD)标准是由INCITS(International Committee for Information Technology Standards)的T10技术委员会负责开发的(T10的主要工作是SCSI协议的标准化),2005年1月被ANSI批准,目前版本是2.0。经过多年努力,对象存储概念已被普遍接受,OSD标准也被工业界认可。一些研究者认为,对象存储将是存储系统,尤其是大规模存储系统的基石。
标准的OSD系统由五类成员组成,其中包括三类强制的成员和两类可选成员。两类可选的是安全管理器、策略/存储管理器。
三类强制的成员是:
(1) 基于对象的存储设备(OBSD) ,如磁盘、RAID、磁带、磁带库、光盘等;
(2) 服务传输子系统;
(3) 主机系统(启动器设备,initiator device)。
应用客户利用多个SCSI启动器端口,通过服务传输子系统,直接访问OBSD。
在OSD系统中,每个OBSD 都包括一个或多个逻辑单元,称为OSD逻辑单元,逻辑单元中的设备服务器称为OSD设备服务器。OBSD中的数据被OSD逻辑单元存储在抽象的容器中,这些抽象的容器称为对象。在抽象容器中的数据不是用逻辑块(LBA)寻址的。
OBSD的逻辑单元负责存储空间和对象的管理,其中的每个对象都有一个唯一的标识符。应用客户使用这个唯一的标志符来标识和访问OSD中的对象。
1.1.1 对象类型
OSD模型提供了四类对象,它们是根对象(Root Object)、分区对象(Partition)、集合对象(Collection)和用户对象(User Object)。
(1) 根对象(Root Object):每个OSD逻辑单元都包含且仅包含一个根对象,它的属性包括OSD逻辑单元的全局特征,如逻辑单元的总容量、包含的分区对象数等。根对象中还包括一个分区ID列表,表示包含在该逻辑单元中的所有分区。根对象是检索OSD逻辑单元上的各数据结构的起点,其标识符为。
(2) 分区对象(Partition)。分区对象是通过CREATE PARTITION命令创建的,它包含一组集合对象和用户对象。这些对象具有相同的安全要求和属性(如默认的安全方法和容量配额)。有些分区对象属性的默认值是从根对象中复制过来的。每个分区对象中都包含一个用户对象ID列表和一个集合对象列表,表示包含在该分区中的所有集合对象和用户对象。分区对象的标识符为(Partition_ID,0),一个Partition_ID唯一地标识一个分区对象,第0号分区对象就是根对象。分区对象是检索该分区上所有用户对象的起点。
(3) 集合对象(Collection)。集合对象是通过CREATE COLLECTION命令创建的,它是对用户对象的一个快速索引。一个集合对象只能包含在一个分区对象中,一个分区对象可包含0个或多个集合对象。一个用户对象可以是0个或多个集合对象的成员。是集合对象的标识符。一个Collection_Object_ID唯一地标识了一个分区对象中的一个集合对象。有些集合对象属性的默认值是从它所属的分区对象中复制来的。每个集合对象都包含一个User_Object_ID列表,表示该集合的所有用户对象。
(4) 用户对象(User Object)。用户对象中包含最终用户的数据,如文件或数据库数据,它的属性包括用户数据的逻辑大小、创建时间、存取时间和修改时间等。有些用户对象属性的默认值是从包含它的分区对象中复制来的。每个用户对象只能是一个分区对象的成员。用户对象由标识,一个User_Object_ID唯一地标识了一个分区中的一个用户对象。分区对象包括集合对象和用户对象,它们三者之间的标识符都不相同。
1.1.2 OSD对象属性
每个OSD对象上都可以关联一些属性,这些属性用来描述一个OSD对象的特征,如OSD对象占用的总字数(包括属性)、OSD对象的逻辑大小、OSD对象的最后一次修改时间等。
为了标识和引用的方便,属性被组织在页中。在一个属性页中,用属性号来标识单个的属性。同一页中的属性有相似的来源和用法。一个属性页可以与下列实体关联:根对象、分区对象、集合对象、用户对象、OSD对象类型。
为了标识的方便,给每个属性页都指定有一个编号。每个属性页都可以包含多个属性。每个属性都有一个唯一的属性号,属性号的范围在0到FFFF FFFFh之间。
第0号属性是一个特殊的属性,它表示属性页的名称。第FFFF FFFFh号属性也是一个特殊的属性,它通常用在查询请求中,表示查询一个属性页中的所有属性。
根对象、分区对象、集合对象和用户对象的属性页都关联到一个目录属性页,其内容是一个属性页的目录(数组)。
1.1.3 数据传递安全机制
应用客户在使用OBSD之前首先向安全管理器请求证书和权能密钥,在请求中需要指出将要执行的命令功能。安全管理器认证应用客户,并向策略/存储管理器请求权能数据结构,而后利用权能数据结构生成证书和权能密钥,并将生成后的证书发送给应用客户。获得证书之后,应用客户即可向OBSD发送命令,请求OBSD完成预定的操作。这种传输机制满足大规模集群系统需要的安全需要。
2.1对象存储系统
对象存储包括几个组成部分:对象(Object)、OSD、文件系统、元数据服务器(Metadata Server,MDS)和网络连接。Object包含了文件数据以及相关的属性信息,可以进行自我管理。OSD是一个智能设备,是Object的集合。文件系统运行在客户端上,将应用程序的文件系统请求传输到MDS和OSD上。MDS为系统提供元数据、Cache一致性等服务。网络连接将整个系统连接起来。
l 文件系统
OSD只是提供了Object的数据访问接口,而应用程序通常不直接使用Object接口。因此,对于对象存储系统来说,必须提供一种标准的文件访问接口。这种接口具有和通用文件系统相同的访问方式,同时为了提高性能,也具有对数据的Cache功能和文件的条带功能。
现有的应用对数据的访问大部分都是通过POSIX文件方式进行的,因此,对象存储系统提供给用户的也是标准的POSIX文件访问接口。文件系统对用户的文件操作进行解释,并在元数据服务器和OSD间通信,完成所请求的操作。以读为例,客户端发出读请求以后,文件系统首先向元数据服务器发送请求,获取要读取的数据所在的OSD,然后直接向每个OSD发送数据读取请求;OSD得到请求以后,判断要读取的Object,并根据此Object要求的认证方式,对客户端进行认证,如果此客户端得到授权,则将Object的数据返回给客户端;文件系统收到OSD返回的数据以后,读操作完成。
尽管存储系统的性能已经得到了极大提高,但和内存的缓冲器相比,其速度仍然较低。因此,文件系统中的Cache就成为提高性能的重要途径。此外,由于并行访问的特性,文件系统必须维护不同客户端上Cache的一致性,保证文件系统的数据一致。
l 元数据服务器
在集群系统中,元数据服务器(MDS)承担起了文件与OSD的映射,文件与目录的组织关系任务。它提供了所有文件系统名字域操作例如文件查找,文件创建,文件和目录属性处理。从客户端角度去看元数据服务器好似是文件的逻辑窗口,而OSD就是文件的物理窗口。当用户对某个文件进行操作,MDS则会映射到OSD,OSD便可与客户端直接文件输入输出,这些I/O操作都不需要元数据的操作,大大减少了MDS的负担,从而为系统的扩展提供了可能性。在传统的文件系统中,元数据由本机或文件服务器负责维护,每次对数据块的操作都要获取元数据。当操作频繁发生时,元数据操作就成为整个系统的瓶颈,限制了性能的扩展。所以,可通过增加元数据服务器,来增加并行,提高速度。
在对象存储系统中,为了提高性能,客户端采用Cache来缓存数据。当多个客户端同时访问某些数据时,MDS提供分布的锁机制来确保Cache的一致性。
元数据服务器也承担了数据传输的安全管理,在网络计算环境下,每个客户拥有的权限不同,执行的命令也不同,为了不使在大规模的网络环境下产生操作混乱和安全隐患,元数据服务器充当客户端和存储介质之间的安全认证中介。
l 网络连接
网络连接是对象存储系统的重要组成部分。它将客户端、MDS和OSD连接起来,构成了一个完整的系统。网络技术的不断进步使网络连接的方式有了更多选择。千兆以太网具有性能高、性价比高、易于管理等优点,因此成了构建对象存储系统的首选。随着光纤通道技术的成熟及成本的降低,应用也越来越广泛。此外,各种新的网络技术也不断出现,如Myrinet、Infiniband等,都具有较高的性能。尤其是Infiniband,不断扩展的性能使其具有很强的竞争力。
3.1对象存储的特性
OSD的结构特性使其在处理高性能计算环境中的存储请求时具有较大优势,主要体现在以下几方面。
l 性能优势。存储体系结构的最大竞争力在于存储性能。对象存储由于其存储设备的智能化以及访问的并行化,可以最大限度地利用网络的带宽,提高应用的存储能力。
l 存储设备的智能化。Object的自我管理功能大大增强了存储设备的智能化,降低了整个系统的管理负担,使其更高效。
l 数据的共享更容易。在对象存储系统中,任何客户端都可以通过标准文件接口来访问存储设备上的数据,其Cache策略保证了客户端访问数据的一致性,使得文件级的数据共享更容易。
l 管理更方便。OSD的自我管理减少了系统管理员的工作量,提高了管理质量。管理员只需要关注存储系统的逻辑视图,不需要知道设备的细节。此外,OSD的智能化使其可对应用访问模式进行统计,并根据统计结果更有效地组织Object,提高设备的空间利用效率和访问效率。
l 更好的安全性。同块设备不同,Object可利用自身的属性对用户访问进行验证,只有通过验证的请求才能执行。
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/100713/showart_2031806.html |
|