论文部分内容阅读
理想的存储体系结构应该提供安全性、跨平台数据共享、高性能、以及可扩展性,然而当前广泛使用的三种存储结构(DAS,SAN和NAS)都不能兼顾所有这些需求。因此,工业界和学术界正在努力改变目前的存储技术,使存储设备从非智能的、外部管理发展成为智能的、自管理的设备,并且能够感知设备所服务的应用。基于对象的存储(Object-Based Storage)被认为是该问题的解决之道。一个存储对象是存储设备上的字节的逻辑集合,可以认为对象是“文件”和“块”这两种技术的融合。一方面,对象提供给用户应用一个类似文件的高层抽象,允许不同的操作系统平台之间安全地共享数据;同时还具有数据块技术的优点,提供快速、可扩展的数据访问途径。基于对象的存储的关键贡献就是提供了直接的、类似文件的存储设备访问。对象由数据、用户可访问属性和设备管理的元数据组成。存储对象的设备称为“基于对象的存储设备(OSD)”。OSD不仅存储数据,还具有传统文件系统的空间管理功能。属性包含了数据的描述信息,是存储设备“意识到”对象如何被访问的关键所在。因此,与块I/O相比,对象提供了更丰富的、更有表达力的接口。应用可以通过属性控制存储设备有针对性的选择存储策略,从而达到预期的目标。为了实现属性控制的存储策略,关键需要解决两个问题:第一,属性表达什么信息,怎样影响存储策略?第二,属性怎样从用户应用传递给存储设备?围绕这两个问题,磁盘阵列(RAID)被作为研究对象进行了深入研究。存储需求在快速增长,高性能磁盘阵列是很多大规模存储应用的关键组成部分。磁盘阵列将数据分条放置到多个磁盘,通过增加数据访问的并行性提高存储系统的性能,同时通过数据冗余提高数据可用性。RAID级别的选择是一个令人困扰的问题,因为没有哪一个级别能够做到对所有的负载都是最优的。RAID配置的自动化将大大有助于降低整个存储系统设计的难度和管理维护成本。因此,从研究磁盘阵列的数据布局和应用负载的特征入手,通过考察两者之间的关系,提出根据负载动态选择RAID级别和分条单元大小的数据放置策略。应用的特征以属性来表示,必须通过一定途径到达设备才能为设备所用。以SCSI OSD协议为基础,建立属性的两种传递机制。一种是调用专门的应用程序接口直接提供属性信息,存储设备根据属性直接做出存储策略选择。另一种是应用程序提供文件系统层的信息,设备内部根据文件的属性做出相关预测,并用于策略选择。比较而言,前者容易实现,而后者要求新的OSD文件系统,好处是不需要修改应用程序。同时还给出了三个属性页的定义作为OSD标准扩展提议。最后,设计实现了符合T10 OSD标准协议的原型系统(iSCSI-OSD-RAID)。iSCSI协议一直是IP存储的推动力量,已经发展比较成熟。这里利用iSCSI协议作为OSD命令的传输层,加快了系统的实现过程。同时,以一个正在进行的RAID控制器项目为基础,增加了新的对象存储管理模块,最终实现了OSD接口的磁盘阵列,并验证了属性控制的数据放置策略。