(计算机系统结构专业论文)对象存储系统中数据通道的设计与实现.pdf_第1页
(计算机系统结构专业论文)对象存储系统中数据通道的设计与实现.pdf_第2页
(计算机系统结构专业论文)对象存储系统中数据通道的设计与实现.pdf_第3页
(计算机系统结构专业论文)对象存储系统中数据通道的设计与实现.pdf_第4页
(计算机系统结构专业论文)对象存储系统中数据通道的设计与实现.pdf_第5页
已阅读5页,还剩55页未读 继续免费阅读

(计算机系统结构专业论文)对象存储系统中数据通道的设计与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

华 中 科 技 大 学 硕 士 学 位 论 文 i 摘 要* 随着数字信息的爆炸式增长和应用需求的不断提高,传统的网络存储系统在容 量、性能、可扩展性、安全性、服务质量等方面面临着巨大挑战,对象存储技术采 用全新的对象接口,被认为是下一代网络存储技术的标准。设计高效的对象存储系 统,使其能充分发挥对象存储技术的优势,以满足日益增长的海量数据存储需求已 成为新的研究热点。对象存储系统由元数据服务器、对象存储设备、客户端文件系 统和互连网络四部分组成。 对象存储系统中客户端文件系统和对象存储设备之间的通信所经由的数据通道 是影响整个系统性能的关键之一,其包括二者之间通信所采用的传输协议及其内部 采用的缓冲策略。通过研究原有对象系统 hoss 关键部分的运行机制,采用更细粒 度的缓冲策略和开源的 unh iscsi 协议传输模块对 hoss 系统中的数据通道及缓冲 层进行重新设计与实现。 通过与对象存储系统 hoss 改进前后的读/写性能对比的结果表明,改进后的系 统写性能在文件大小为512k时提高最大, 提高了1.65倍; 读性能在文件大小为256m 时提高最大,提高了 85%。通过测试还分析了包长度和 osd 数量对系统读写性能的 影响。另外还提出了相关算法和思想用于解决 hoss 系统存在的缓存一致性问题。 关键词:对象存储,互联网小型计算机系统接口、缓冲策略,缓存一致性 * 本文的研究工作受国家重点基础研究发展计划(973 计划)资助项目(2004cb318201),湖北省自然 科学基金资助项目武汉市科技计划(20061002031, 200750730307) 资助 华 中 科 技 大 学 硕 士 学 位 论 文 ii abstract* with explosive growth of the digital information and continuous improvement of application requirements, the traditional network storage systems face a huge challenge in capacity, performance, scalability, security, quality of service and so. object storage technology ,which uses a new interface objects, is considered as the next generation network storage technology standards. it has become a new hotspot that how to design an efficient object storage technology systems ,which can give full play to the advantages of object storage technology to meet the growing needs of the mass data storage. the object storage technology systems is formed by four parts: mds ,osd, client and the internet. in the object storage systems, the data channel, where the communications between the file system of client and osd go through, is one of the keys which affects the whole system performance, which including the transmission protocol used by the communications between the two and the buffer strategy of internal use. after researching operating mechanism of key part of hoss, we use a smaller granularity of buffer strategy and revenue unh iscsi protocol modules to re- design and implement the data channel and the buffer. the comparison results of the between the object storage systems before and after the hoss improving shows, the improved system performance in the writing increased 1.65 times of the largest when file size is 52kb,as the reading increase of 85% when file size is 256mb. it also compares the impacts to the read / write performance by packet length and number of osd .it was also proposed algorithms and ideas to solve the cache consistency problem of existing system hoss. keywords: object storage, internet small computer system interface, buffer strategy, cache consistency * the research is supported by national basic research program of china (973 program) under grant no. 2004cb318201 and the national science foundation of china under grant no.60303032 独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他个人或 集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体,均已在 文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。 学位论文作者签名: 日期: 年 月 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校有 权保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借 阅。本人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数据库进 行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 保密?,在_年解密后适用本授权书。 本论文属于 不保密?。 (请在以上方框内打“”) 学位论文作者签名: 指导教师签名: 日期: 年 月 日 日期: 年 月 华 中 科 技 大 学 硕 士 学 位 论 文 1 1 绪 论 数字信息的爆炸性增长和网络及存储技术的进步使得高性能、高可扩展、高可 靠、高可用的海量分布式存储系统的构建成为迫切的需求。对象存储接口依其特有 的高可扩展性、高跨平台共享性、高安全性等诸多优点逐渐成为下一代存储技术的 标准。对象存储系统中客户端、元数据服务器和对象存储设备三部分通过网络互连 而成。因此,网络通道的性能对整个分布式对象存储系统的性能起着至关重要的作 用。 1.1 课题背景 信息技术正在改变着人们的生活方式,同时人们的需求也加快了信息技术的发 展。数字图书馆、电子商务、医学影像、生物工程、科学计算、虚拟现实、数字化 地球、网站等应用的不断发展,使信息资源呈几何级数爆炸性增长,对存储系统的 存储容量提出了越来越高的要求。1998 年,图灵奖获得者 jim gray提出了一个新的 经验定律:网络环境下每 18 个月产生的数据量等于有史以来数据量之和i。 数据的超速增长带来了对 i/o 速度的需求。高性能科学计算、 数字地球、 生物医 学、能源研究和模拟、高能物理研究、地震数据分析、地理信息系统、基因工程和 医学影像等领域,不仅是计算密集型应用,同时也是 i/o 密集型应用,需要大容量、 高聚合 i/o 吞吐量的网络存储系统的支持ii。网络上广泛传输的多媒体信息,其显 著特征就是要求实时性,例如,pal 制式的无压缩视频需要保证 25mb/s 的带宽, mpeg- 2压缩视频的传输带宽则至少要求0.5mb/s,对单个用户服务肯定不成问题, 但对于一个服务于成千上万用户的视频服务器而言,其传输带宽则面临着严重的挑 战。 源源不断的数据流和不断增长的应用需求,对存储系统的性能和服务质量都提 出了巨大挑战。主要表现在高性能、高可扩展性、高可共享性、较强的自适应性、 高可管理性、高可靠性、高可用性及智能性,这些需求也体现出存储技术未来的发 华 中 科 技 大 学 硕 士 学 位 论 文 2 展方向。 理想的网络存储体系结构应该具有下列四个特征:安全性、跨平台(即不同操作 系统之间)数据共享、高性能及可扩展性。目前主流的网络存储架构主要有附网存储 (network- attached storage,nas)和存储区域网(storage area network,san)。这两 种结构均存在不同程度的缺陷,难以同时满足上述四个特征的要求iii。 附网存储是一种特殊的专用数据存储服务器,通过 nfs (network file system) 或 cifs (common internet file system) 协议提供跨平台文件共享功能iv。以数据为 中心,将存储设备与服务器分离,集中管理数据,从而有效释放带宽,提高网络整 体性能。nas 文件服务器负责维护所有的元数据,访问的客户机不需要管理复杂的 元数据,因此nas 能很好的支持跨平台数据共享,在文件级别上建立安全机制也很 容易。但nas 服务器处于数据传输通路上,当服务请求激增时,服务器将成为性能 瓶颈。另外,nas 的协议开销大、带宽低、延迟大,不利于海量数据访问;在任何 情况下,客户端都受限于文件服务器,并对存储设备的总性能知之甚少。 存储区域网将存储设备从服务器中分离出来,进行集中管理v- vi。并通过网络 (光纤通道或ip网络)把所有客户机和存储区域网互接起来,从而使san 具有良好的 可扩展性,客户机和存储设备可直接加入到相应网络中;客户机可直接访问存储设 备,避开了传统服务器因“ 存储转发” 带来的延迟,使得 san 具有高吞吐量,同时以 网络为通道,充分利用网络带宽提高存取速度。另外,san 具有统一性,在逻辑上 是完全一体的,可实现数据集中管理,满足企业级用户的需求;san 还具有容错功 能,可利用网络容错单点故障。 虽然 san 具有良好的可扩展性、高吞吐量,存取速度也得到提高、具有一定的 容错功能,但基于块接口的存储模式为 san 带来了固有的缺陷。首先是 san 的安 全性非常有限,在块粒度上建立安全机制,必须记录每个数据块的安全属性信息(如 是否属于同一个文件,块的访问权限等),开销非常大。目前的做法是通过分区 (zoning)和逻辑单元掩码(logic unit number masking)提供粗粒度的安全支持(对某个 特定的逻辑单元,只有可访问与不可访问两种权限),如此就要求 san 中访问存储 设备的客户机首先必须是可信任的。其次,尽管 san 可以通过 ip 网络或者光纤网 华 中 科 技 大 学 硕 士 学 位 论 文 3 络进行扩展,但是其扩展性仍有限,主要在于 san 文件系统需要维护元数据 (metadata),用于将用户数据结构(文件和目录等)映射为对应的逻辑块号。随着存储 设备和客户机数目的激增,因访问块数目数量庞大,元数据服务器就可能成为系统 “ 瓶颈” 。 此外,虽然 san 中客户机可直接访问存储设备,使数据共享变得容易, 但在跨平台方面存在一定问题。不同的平台元数据格式是不一样的,客户机需要理 解元数据才能和设备进行数据交换。即使将元数据格式进行统一,也还存在其他问 题,如客户机间共享多个块时,相应的这些块的元数据也需要共享,而维护客户机 之间元数据的一致性,随着客户机数目的增长,将趋于复杂化。 基于文件接口的 nas 提供了良好的安全机制和跨平台共享;基于块接口的 san 具有快速访问和高性能的优势。二者都有各自的优劣势,考虑将二者的优势揉 和到一起,于是提出了基于对象接口的存储模式。以对象作为接口是一种的全新的 存储模式,它将更完美的诠释安全性、跨平台数据共享、高性能及可扩展性,成为 下一代网络存储的新宠。 正因如此,对象存储技术作为近几年来出现的一种新型存储方案,主要提供针 对nas和san都难以提供完美的存储解决方案:nas基于文件,san基于块,“ 文 件” 级别的接口提供了安全性和跨平台的互操作性;而“ 块” 级别接口在快速访问、高 性能方面有优势。将两种方式结合起来产生一种全新的接口 对象(object),并且 对象是一个富有表现力的接口,具有文件和块所不具备的独特优势。目前,对象存 储得到了越来越多的关注和重视,被认为是可能的下一代网络存储标准。而将基于 公共许可证发布的且性能表现不俗的 unh- iscsi 协议作为 obs 系统的 i/o 传输协 议,配合优化的缓冲策略是提高对象存储系统性能的有效方法。 1.2 iscsi 协议相关概念 iscsi(internet small computer system interface)是由 ieetf 开发的网络存储标 准,目的是为了用 ip 协议将存储设备连接在一起。通过在 ip 网上传送 scsi 命令和 数据,iscsi 推动了数据在网际之间的传递,同时也促进了数据的远距离管理。由 华 中 科 技 大 学 硕 士 学 位 论 文 4 于其出色的数据传输能力,iscsi 协议被认为是促进存储区域网(san)市场快速发 展的关键因素之一。因为 ip 网络的广泛应用,iscsi 能够在 lan、wan 甚至 internet 上进行数据传送,使得数据的存储不再受地域的限制。iscsi 技术的核心是在 tcp/ip网络上传输scsi协议,是指用 tcp/ip报文、和 iscsi报文封装scsi报文, 使得 scsi 命令和数据可以在普通以太网络上进行传输。 这几年来,iscsi 存储技术得到了快速发展, 随着千兆以太网的广泛部署甚至万 兆以太网技术也日渐成熟。iscsi 协议作为一个不断完善和充满生机活力的传输协 议,其作用日益凸显。iscsi 具有的开放性和廉价易于部署,相对于其它协议具有 一定优势。若将来的以太网传输速度进一步提高,那么iscsi代替fiber channel也是 可能的。2003 年 2 月,ieif(互联网工程任务小组)正式发布标准协议:iscsi。近几 年,iscsi在各大公司和一些高校科研机构里得到大力支持,各种版本的 iscsi协议 被实现和开源,极大的促进了 iscsi 的发展。以下则是一些比较有名的 iscsi 实现, 它们都遵守 iscsi 协议标准不过在实现上有区别。 1.2.1 微软 iscsi 在 iscsi正式标准化之后不久,微软十分看好iscsi的发展,毅然决然地挺身扮 演推动者的关键角色,在 2003 年 2 月间,也就是几乎在 snia 协会通过 iscsi 标准 的同时,便提供 iscsi beta 版驱动程序的在线下载服务。 接着同年 5 月,微软在发布 windows server 2003 时对外正式宣称会对 iscsi 加 以支持。到了 7 月,微软果然没有食言,紧接推出了支持 iscsi 标准的 windows 操 作系统更新程序,该程序完全免费下载,可同时支持 windows 2000/xp 与 windows server 2003 等不同操作系统。此外,微软还推出了代号 chimney的 tcp/ip offload 架构,并得到了 alacritech和 adaptec 等 iscsi hba 供应商的支持。 微软坚决支持 iscsi 似乎没有停竭之势,2003 年 11 月,在标志着微软积极跨入 企业存储市场的重头产品 windows storage server 2003(wss 2003)之中继续大力 支持iscsi。而2004年4月发表的microsoft exchange server 2003也同时对iscsi 及 华 中 科 技 大 学 硕 士 学 位 论 文 5 nas 加以支持。 在上述一连串的动作中,微软从个人端的 winxp,到企业服务器的 windows server 2003,到 e- mail server,再到中小企业storage server,全都加以支持,如此巨 细靡遗的动作,可以看出微软对 iscsi 前景的看好。 1.2.2 英特尔 iscsi 英特尔公司也早在 2003 年 2 月即推出型号为 pro/1000t ip 的 toe(tcp offload engine)hba 适配卡。比起微软或其它操作系统厂商提供的 iscsi initiator软件,intel pro/1000t ip 适配卡提供了 tcp 卸载(offload)的功能,可有效降低 cpu 的占用率, 从而使整体效能有所提升。 虽然公布源代码且能在 linux 平台运行,但和微软公司一样英特尔公司的 iscsi 不是以 gpl 公共许可证发布的。并且实现的 iscsi 标准也不是很完备,许多 iscsi 包还未实现,且没用登陆授权验证,没用错误恢复级别等重要的功能。 1.2.3 unh iscsi unh- iscsi 是 university of new hampshire s interoperability laboratory的一个 开源项目。它是少数几个以 gpl方式公开 target端源码的 iscsi 项目(一般 iscsi 只 公开 initiator 端的源码)。它完全支持 rfc 3720vii标准,几乎实现了其全部功能。 unh- iscsi项目viii包括initiator和 target端的全部实现。 它遵守最新的ietf 的 iscsi 草案,实现了绝大部分功能。并且在 linux 2.4.18 以上的版本都可运行。它支持运行 时参数的可调,模块相互独立,一个主机既可以作 initiator 也可以作 target,每一个 target可以与任一主机上的initiator相互通信而不受其它节点通讯的干扰。 每个target 可以支持多个 initiator连接, 每个 initiator 也可以支持与多个 target连接。 按照 iscsi 协议标准,它目前已经实现了以下功能: 1. 头部和数据摘要验证 2. 挑战握手认证协议ix (challenge handshake authentication protocol) 和 安 华 中 科 技 大 学 硕 士 学 位 论 文 6 全远程密码协议x (secure remote passwordprotocol) 3. 多个会话的并发 4. 每个会话的多个逻辑单元(lun)操作 5. 每个会话的多连接 6. 普通会话和发现会话 7. 登陆重定向 8. 支持等待传输包(initialr2t) 和立即数据(immediatedata)功能 9. 可调的最大接收或发送数据段长度参数 10. 任意数量的外出准备传输(r2t)包 11. 数据的有序与无序到达 12. 错误恢复级别 0, 1。 13. 可选的周期性的从 target 或到 target 的 nop ping探测 14. 除选择重传包之外的所有包类型 15. ipv6 寻址 16. 初级的简单网络管理协议(snmp)的 iscsi 管理信息库(mib)统计 还没有实现的: 1. 标记功能 2. 双向传输命令 3. 扩展头部段; (注:在 hossv2 中实现了这个功能) 4. 远程直接存储访问xi (rdma)功能(目前已在 infinibandxii上实现的功能) 最新版本的 unh- iscsi 已经更新到 1.7.0,hossv2 系统中 cfs 与 osd 之间的传输 协议就是以 1.7.0 为基础修改的。 1.3 对象存储系统的相关研究 对象存储 (object based storage,obs)xiii是以数据为中心的网络存储模式,以 华 中 科 技 大 学 硕 士 学 位 论 文 7 对象为基本存储和传输单位,将数据存储和元数据管理分离,突破了nas 中常见的 数据路径瓶颈和san 的文件共享限制,并在安全性、跨平台性、可用性和可扩展性 等特性中更胜一筹,已成为最有希望的下一代网络存储技术标准。 对象将 nas 和 san 的优势结合在一起。与块的固定大小不一样,对象的大小 是可变的,可包含任何类型的数据,如文件、数据库记录、图像以及多媒体视频音 频等,至于包含何种类型数据由应用决定。对象可动态的扩大和缩小。对象还具有 属性,用于描述对象的特征,如多媒体数据对象的 qos 属性xiv,xv描述了该对象的网 络延迟要求,对保密性要求高的数据对象的 qos 属性描述了该对象的安全性要求。 总之,对象由数据和元数据组成,由对象 id(oid)号标识。把保存对象的存储设备 称为对象存储设备(object- based storage device,osd)。在 osd 中,对象的存储建 立在一个“ 平坦” 文件系统基础上,实质上是一个平坦的一维id空间。osd与基于块 的设备在物理介质上没有区别,区别在于用户数据的处理、组织级别上。 obs 将存储空间的分配交由 osd 管理。传统的基于块的文件系统由两部分组 成:用户相关部分和存储相关部分。用户相关部分通过逻辑数据结构(如目录和文件) 向用户提供用户调用接口;存储相关部分则将这些目录和文件映射到底层物理设备 的逻辑块上。在osd构成的存储系统中,上层的用户相关部分不变,而下层的存储 相关部分下移到 osd 中,相应的设备接口也从基于块接口变为基于对象接口。这 样,文件系统的上层只负责把文件名等逻辑名称映射为对象 id(这部分工作仍由 metadata 服务器完成,但与传统的 metadata 服务器相比,负载大为减小),对象 id 与磁盘块的映射在各 osd 内完成。 对象的灵活性为 obs 带来一系列的优势,使其在数据共享、安全性、智能化方 面都取得突破。 1.数据共享 obs 的数据共享得益于对象级的接口和对象具有描述数据特征的属性。基于对 象的接口与文件系统的接口类似,可以像文件一样对对象进行删除、读、写、查询 属性等操作。对象级的接口易于理解和标准化,为跨平台共享提供了便利。元数据 服务器的全局性元数据较少,易于保持一致性,为数据共享提供了方便。 华 中 科 技 大 学 硕 士 学 位 论 文 8 描述数据性质的对象属性与文件的属性类似(如访问时间、大小、所属组及用户 等)。对象的数据及其属性一起保存在 osd 中,由 osd 负责维护属性与数据的一致 性以及对象内部数据的空间分配,从而把底层的元数据管理分散到各个 osd 上。 san file system中,块设备的元数据完全由文件系统管理,文件系统使用统一 的方法决定数据在存储设备中的分布,而存储设备对此一无所知。san 中客户机在 访问存储设备前必须获取有关的元数据及数据的分布信息,然后才能向存储设备发 命令。这种元数据与数据的彻底分离增加了一致性维护的难度。相比之下,obs 将 元数据分散,把存储相关的元数据下移到设备,减少了与应用的相关性,显著增强 了数据共享能力。例如,当外部客户机把数据写到对象里,osd 会相应的把该对象 的大小属性及时更改,随后对该对象的访问将获得正确的属性值。传统的san 中, 客户机将数据写入存储设备后,还必须通知 metadata 服务器更新相应的元数据。 2.安全性 因为对象具有属性,使得 obs 可以在以对象为基本单位的基础上建立灵活的安 全机制,正如传统文件服务器中的每个文件都具有不同的属性一样,obs 中可以对 整个设备、一组对象、单个对象、甚至对象内的部分数据赋予不同的安全属性,分 别实施认证访问;还可对整个设备进行分区,每个分区的安全属性及访问规则由存 储应用决定。obs 还可以对每一次 i/o 进行授权。 obs 将安全机制的实施(在 osd 端)从安全策略(在元数据服务器端)中分离出 来,osd 不必维护与用户(客户机)相关的安全信息,使得 osd 可以独立于客户机进 行扩展,而在网络上的客户机也不必假设是可信任的。 3.智能化 osd 自主的管理内部存储的对象,对数据块之间的逻辑关系不再一无所知,这 使得自主学习存储设备的出现成为可能。 对象属性有静态属性(如建立时间等),动态属性(如最后访问时间),与应用相关 属性(文件名、组、用户id等)。属性也可包含对象的当前用户访问的行为,如读/写 速率、qos 等。属性反映了对象的行为,osd 可利用这些属性对数据的组织进行优 化,使效率最高。osd 还可通过对象属性了解外部环境,合理的对资源进行预留和 华 中 科 技 大 学 硕 士 学 位 论 文 9 分配,显著提高 cache 的命中率和预取的效率。 可以进一步扩展对象的概念,除属性外还可在对象中引入“ 方法” ,方法是一段 代码,对对象内的数据进行操作。例如在数据挖掘和多媒体应用中,osd 将有用数 据筛选出来传给客户机,而不必向客户机传送所有数据。卡内基梅隆大学的 pdl 对 智能存储设备进行了研究,其中的 active disk 已体现了这一概念。 在国外已有一些大学和研究机构对面向对象的存储进行了一定的研究。如卡内 基梅隆大学(cmu)和加州大学圣克鲁兹分校(ucsc)都在这个方向上进行了深入的研 究和探索。cmu 在美国存储工业联盟(national storage industry consortium)发起一个 工作组,该组织包括了惠普、ibm、希捷、storagetek 以及昆腾等厂商。该工作组在 cmu nasd 研究的基础上,于 1999 年成立了全球网络存储工业协会(sotrage networking industry association,snia)的对象存储设备(object storage device)工作 组,发布了 ansi 的 x3 t10 标准。osd 工作组促进了对象存储设备接口的变革,众 多厂商纷纷在其实验室中开展了对该技术的研究。ibm haifa research lab 实现了一 个独立的控制器形式的 osd,称为 antar。 lustre 文件系统xvi将一组 osd 由一个 ost(object storage target)管理。lustre 是 cluster file system公司研发、对象存储的高性能分布式文件系统,是一个开放源 代码的项目。 lustre 由三个部分组成, 即客户端、 元数据服务器和 ost(object storage target)。其中,ost 负责管理保存在对象存储设备上的数据,并为客户端的访问提 供数据服务, mds为客户端提供元数据服务和分布式锁服务。 对于客户端而言, lustre 是一个透明的文件系统,无需知道具体数据所在的位置,可以透明地访问整个文件 系统中的数据。客户端同 ost 进行文件数据的交互,包括文件数据的读写、对象属 性的改变等;同 mds 进行元数据的交互,包括目录管理、命名空间管理等。三个组 成部分除了各自的独特功能以外,相互之间共享诸如锁、请求处理、消息传递等模 块。lustre 是一个高度模块化的系统,三个组成部分可以在一个节点上工作,也可以 在不同的节点上工作。 华 中 科 技 大 学 硕 士 学 位 论 文 10 1.4 本文研究的目的和内容 随着信息时代的到来,信息量的需求与日剧增。怎样用最经济最高效的手段在 基于现有网络体系架构满足未来的存储和传输需求是破在眉睫的任务。对象存储相 对于传统存储更智能更灵活,其独特的优势是未来存储发展的趋势。 数据通道是整个对象存储系统的关键之一,它包括实际数据传输模块和用于热 点数据的缓冲模块。本文分别从这两方面进行探讨和研究,并最后设计与实现出改 进的对象存储系统。 在对象存储中数据传输采用 iscsi 协议。 iscsi 协议作为能在现有以太网中工作 的传输协议相对于 fcxvii等其它专用网络协议具有非常明显的优势,这种易于推广 的特征将使得 obs 系统得到广泛应用,另外以太网的巨大成功也使我们有理由相信 iscsi 协议替代 fc 网络是有可能的。特别是近来出现的万兆以太网,infiniband 标 准以及 iser 协议(可以把 iscsi 映射到 infiniband 上)和 rdma 在某种程度上大幅提 高了其数据吞吐率,使得 iscsi 的普遍应用成为可能。因此,采用一个良好的 iscsi 传输协议对 obsxviii系统的性能将会有很大影响。 本文研究对象系统中缓冲层的策略,针对原有系统缓冲层存在的缺陷,重新设 计并实现一个更高效且更节省带宽的 cfs 缓冲层,这其中包括不采用创建内核线程 的精简传输接口方式和更细致的刷新数据策略。在 osd 端则以不牺牲性能的前提下 去掉原有的对象缓冲机制而节省内存资源。本文还初步研究了缓存一致性问题,针 对原系统存在的数据不一致问题,提出了相应的算法来实现智能的刷新机制。 华 中 科 技 大 学 硕 士 学 位 论 文 11 2 hossv2 系统及其关键技术 hossv2 是在原有对象存储系统的基础上改进的。 此系统与原系统的差别主要在 于数据通道实现机制的不同。本章介绍了此系统的相关概念、标准和体系结构等内 容。 2.1 obs 系统相关概念和标准 对象存储技术是未来网络存储系统发展的一个重要趋势。对象存储的技术将接 口的抽象层从块级提高到对象级,将部分存储管理功能下移到对象存储设备中完成, 使得对象存储设备具有一定的智能性和灵活性。 2.1.1 对象 对象是对象存储系统中数据存储和管理的基本单元。和传统存储系统中的基本 单元,文件(files)或块(blocks)不一样的是,对象(用户对象)同时包含数据和元数据。 其中元数据包含文件数据的分割策略(比如,文件数据以 raid5 或 raid10 的方式 来组织) 、数据布局策略和服务质量需求等。与传统的基于块的存储系统必须记录系 统中的每一个块的属性不同的是,对象只需维护其自身的属性,告诉存储系统如何 管理其所包含的数据。这就简化了存储系统的任务,通过把数据管理与数据本身分 开而增加了灵活性。在对象存储设备中,所有对象都是通过一个 128- bit 的对象标识 (id)被访问的。访问时用一个基于对象id的简单接口(object id,offset,length),其 中 offset 是对象内的起始字节地址,length 是要访问的数据字节长度。依据 osd- 2 草案中的定义,对象存储设备上存在四种不同类型的对象。 1. 根对象(root object),在存储设备上识别此存储设备及其本身的各种属性, 包括总大小及可用容量, 根对象是用来标示和管理 osd 的,它和 osd 一一 对应; 2. 分区对象(partition object)是用来管理 osd 上的空间以及该空间上的数据对 华 中 科 技 大 学 硕 士 学 位 论 文 12 象,相当于现在的磁盘分区的概念; 3. 集合对象(collection object)则是数据对象的一种逻辑集合,是和具体应用相 结合,对数据对象的逻辑集合抽象。 4. 用户对象(user object)包含终端用户数据(如文件或数据库数据)。它的属性中 包含由用户数据的逻辑大小,以及终端用户数据的创建、访问、修改的时间 戳。 2.1.2 属性 对象被看作是存放数据的容器,在 osd scsi 协议标准里提出了四种类型的对 象:根对象(root object),分区对象(partition object),集合对象(collection object), 用户对象(user object)。对象有三个基本要素:数据、对象属性和对象操作,对象 属性是对象数据的元数据,对象操作定义了对该对象所允许的所有操作,例如: read, write, getattribute 等。外部用户对对象的所有访问都是通过对象操作这个接 口进行的。另外,对象属性和对象操作还是可扩展的。 按照对象属性存在时间的相对长短,我们将它简单的可分为两类:永久属性和 临时属性。 1. 永久属性。随着对象的创建而建立,随着对象的删除才消亡,比如对象的 创建时间属性、对象的 uid 属性。 2. 临时属性。是在一段特定的时间内存在和有效,这类属性主要是用户的自 定义属性,是临时创建的,在不需要的时候就加以删除。临时属性充分体 现了对象属性的可扩展特性,这样,用户要定义一个属于自己的属性,比 如 qos 属性,就非常简单了。 2.1.3 osd- 2 协议简介 object- based storage device commands v2(osd- 2)xix由美国 t10 工作组指定和 修改。t10 工作组是美国信息技术标准国际委员会(international committee on 华 中 科 技 大 学 硕 士 学 位 论 文 13 information technology standards ,incits)旗下的一个标准制定组织,主要负责制 订 scsi 存储接口方面的标准。incits 隶属于美国国家标准局(america national standards institute,ansi)。 t10 工作组维护的 osd 命令集的最后一个版本xx于 2004 年 7 月 30 日做了最后 一次修改。该命令集已经于 2004 年 11 月 15 日由 incits 出版(ansi/incits 400- 2004)。目前 t10 工作组正在制定下一代 osd 命令集(information technology- scsi object- based storage device commands- 2,osd- 2)。osd 命令集定义了一组用 于对象存储的命令集,从而替代传统的“ 块” 一级的存储模式。osd命令集是 scsi- 3 命令集的扩充。它的指令主要用来定义一种能提供高效的输入/输出接口、可自我管 理、自我分配、可变长的数据存储容器 对象。 2.2 hossv2 体系结构 它主要由五部分组成:iscsi 驱动层组件,元数据服务器xxi,xxii(mds)、对象存 储设备(osd)、客户端文件系统(cfs)和互连网络。unh_obs 中的cfs和osd采用 修改后的开源 unh- iscsi 协议。此协议最大的优势是它是以公共许可证形式发布, 而不像其它 iscsi 属于公司所有,原 obs 系统采用的 intel iscsixxiii就是后者。 gnu目前是软件发展的新趋势,它允许开发者修改源代码,极大的提高了软件 开发的生产力:使用户能够定制自己的软件,能使软件得到最大范围的利用。软件 私有制度会将商业利益引入到软件开发中,这往往会带来恶性竞争。良性的竞争是 “ 使优秀的事物生存下来” ,而恶性竞争是“ 使自己存活下来,不管优秀与否” 。因此实 验室项目组采用自由软件 unh- iscsi 是十分必要的。 从另一方面看, unh- iscsi 在性能上并不输给 intel iscsi,从后文的对比测试也 可以清楚的反映这点。并且易于扩展和配置的参数使得它更适合实验室的研究工作; 良好的注释和文档说明使得其更易接受。最后由于它是开源的,自由的,它的未来 发展有很好的前景。rdma 功能未来也会在 unh- iscsi 上实现,使其 i/o 性能得到 进一步提升。到时会使得 iscsi 协议不再仅仅停留在研究阶段,而会走向实际应用。 华 中 科 技 大 学 硕 士 学 位 论 文 14 2.2.1 整体框架 图 2.1 hossv2 系统结构(不包括 mds) hossv2 是需要 mds 才能进行三方通信的。但相对于原有的 obs 系统,mds 部分未修改,因而未列出,但 mds 是作为整个可运行系统的一部分是必不可少的。 由图 2.1 可以看到,本文核心工作包括 cfs、osd 和基于 unh- iscsi 传输通道。 2.2.2 对象存储系统中的 unh- iscsi 组件 对象存储系统中的一大关键技术即 iscsi 协议xxiv , 它是影响系统性能的重要因 素之一,基于对象的存储离不开 osd- scsi 命令,iscsi 将 scsi 命令封装起来在以太 网上传输,使其具有普遍性和适应性,这也是 obs 的优势所在。另外一方面, unh- iscsi 实现了绝大多数 iscsi 标准,它提供的参数修改能力可以根据需要适应 华 中 科 技 大 学 硕 士 学 位 论 文 15 不同的网络,还支持 ipv6 和安全验证以及错误恢复级别 0 和 1,未来的项目还会加 入诸如 rdma 等新技术使得 iscsi 协议的性能进一步提高。 图 2.2 iscsi 低级驱动功能简介 iscsi 层作为 hossv2 系统的关键部分在 cfs 端和 osd 端都存在,在 cfs 端 作为 initiator 发起请求;在 osd 端作为 target 响应请求。由图 2.2 看到,cfs 将一 个对文件的操作转化为对象操作,而对象的属性则来自 mds。对象层即负责将文件 映射为对象,并封装各种操作码和相关的参数,然后传递给 iscsi initiator 端,iscsi 层有两个主要的线程为 tx_thread 和 rx_thread,分别发送和接收各种 iscsi pdu。 unh- iscsi 的 initiator 采用多重会话和连接的机制,如图2.3 所示。 每一个会话 代表一个 target,每个会话可以有多个连接,每个连接对应一个 tcp/ip 的连接;上 层传下来的命令被封装成 command 结构等待发送里面包裹的数据到 target 端。 华 中 科 技 大 学 硕 士 学 位 论 文 16 图 2.3 initiator 传输机制 2.2.3 对象存储设备(osd) 根据 unh- iscsi 原来的架构,它实现了一个模拟的 scsi target,这个模块仿 真 stml(scsi target mid- level),用于对 scsi 命令的解析和处理。而 hossv2 中的 osdxxv层则置于这个模拟的 scsi target 之下。 通过 handle_osd_cmd()将 scsi 层数 据传给 osd 层并处理。osd 层完成以下功能: (1) 数据存储 像任何传统的存储设备那样,它必须管理布局在标准的磁道和扇区上的数据。 这些数据只能通过它们的对象id(包括分区 id和用户 id,即pid 与 uid)来访问,不能在 osd之外以块(block)格式被访问。计算节点需要有一个特定的对象 id,一个在对象 内读或写数据的起始地址(offset)以及请求的数据块长度(length),才能去访问对象中 的数据。在目前已实现的 osd 中,数据是以文件的形式存放,即通过将 pid 和 uid 以及预设的root字段组合成一个完整路径的文件名, 然后以文件的形式存放在ext2 系统中。 (2) 数据访问 osd 用它的内存和处理器去优化数据在磁盘上的布局, 从磁盘上预取 华 中 科 技 大 学 硕 士 学 位 论 文 17 (pre- fetching)数据。对象及其协议提供了关于数据的附加信息,可以用来帮助做出 布局决策,如判断热点问题等。同样,osd 能智能地提前读(read- ahead)或预取 (pre- fetching)一个对象的数据块,把它们放在缓存中随时可用,以达到最大的性 能。在目前的基于文件的存储策略中,linux 对其能自动的优化,它会把经常要读写 的文件置于缓冲层中从而加快操作速度xxvi。 (3) 安全性 安全性主要是指两方面,一方面是指针对外部攻击的安全,osdv2 标准中提供 了 40 字节的安全字段用于存放授权和验证信息。相对与传统存储可以很大程度上防 止恶意的监听和攻击,保护数据的传输不会受到干扰和窃取。另一方面是指操作的 有效性和完整性得到了保证,200 字节的 cdb 预留了选项字段可以用来设置事物处 理的状态和行为,保证数据操作的原子性和无歧义。这对于一个分布式系统来说是 非常重要的,分布式系统既要完全保证一个读/写操作的完整,又要尽量减少开销。 obs 系统将事物状态信息随 cdb 传出,可以最大限度的减少网络开销。 2.2.4 客户端文件系统(cfs) cfs 作为 vfs 之下的一个文件系统,负责将文件操作转化为对象操作,并以 osd- 2 的封装形式传递给下方的 iscsi initiator,让它发送出去。cfs 同时跟 mds 和 osd 进行交互。元数据直接提交给 mds,而数据本身只传给或接收至 osd。cfs 为客户端提供了一个可以交互的文

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论