收藏 分享(赏)

可信固态硬盘大数据安全的新基础.doc

上传人:无敌 文档编号:145572 上传时间:2018-03-22 格式:DOC 页数:22 大小:163.50KB
下载 相关 举报
可信固态硬盘大数据安全的新基础.doc_第1页
第1页 / 共22页
可信固态硬盘大数据安全的新基础.doc_第2页
第2页 / 共22页
可信固态硬盘大数据安全的新基础.doc_第3页
第3页 / 共22页
可信固态硬盘大数据安全的新基础.doc_第4页
第4页 / 共22页
可信固态硬盘大数据安全的新基础.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

1、可信固态硬盘:大数据安全的新基础 田洪亮 张勇 许信辉 李超 邢春晓 清华大学计算机科学与技术系 清华大学信息技术研究院 清华信息科学与技术国家实验室(筹) 摘 要: 大数据平台,因其数据多、价值高和存储集中的特点,已经成为对攻击者非常有吸引力的目标.因此,大数据安全是一个非常重要的研究课题.然而,当前保障大数据平台(如 Hadoop)数据安全的两种常见方法各有不足:(1)访问控制.存在被外部黑客攻破或内部管理员绕过的风险;(2)数据加密.虽然安全性较高,但加密解密海量数据会增加显著开销.为了同时满足大数据应用对数据存储的高安全和高性能要求,文中提出可信固态硬盘(TrustedSSD),它提供

2、安全增强的存储设备接口和协议,使得用户可以对存储中的数据施以细粒度的访问控制,从而保障存储中数据的安全.文中深入分析了可信固态硬盘的安全性,并详细介绍了系统设计与实现中的挑战和应对.实验结果表明,无论是在合成的还是真实的工作负载上,可信固态硬盘的运行开销不到 3%.因此,可信固态硬盘有望成为大数据安全的新基础.关键词: 大数据; 数据安全; 固态硬盘; 作者简介:田洪亮,男,1987 年生,博士研究生,主要研究方向为云数据安全、基于新硬件的数据处理.E-mail:.作者简介:张勇,男,1973 年生,博士,副研究员,主要研究方向为数据管理和数据分析.作者简介:许信辉,男,1990 年生,硕士研

3、究生,主要研究方向为数据管理.作者简介:李超,女,1978 年生,博士,副教授,主要研究兴趣包括存储系统和数据管理.作者简介:邢春晓,男,1967 年生,博士,研究员,博士生导师,主要研究领域为数字图书馆和数据库技术.收稿日期:2015-01-12基金:国家“九七三”重点基础研究发展规划项目基金(2011CB302302)TrustedSSD:New Foundation for Big Data SecurityTIAN Hong-Liang ZHANG Yong XU Xin-Hui LI Chao XING Chun-Xiao Abstract: Big data,known for i

4、ts characteristics of high volume,high value and centralized storage,is an attractive target for attackers.Thus,big data security is an important issue.However,the two most common data security measures used in big data platforms(e.g.Hadoop)are not satisfactory:(1)Access control mechanisms are prone

5、 to bugs and vulnerabilities;(2)Data encryption is provably secure but incurs considerable overheads during data processing.In this paper,we present TrustedSSD,a secure Solid State Drive(SSD)that efficiently guarantees the security of data-atrest by enforcing a fine-grained access control.We first a

6、nalysis the security of TrustedSSD,and then describe the design and implementation of the system,highlighting the challenges involved.We built a prototype of TrustedSSD on a commercially successful SSD controller.Experimental results on both synthetic and real-world workloads show that TrustedSSD in

7、curs less than 3%overhead.Therefore,we believe TrustedSSD is a promising approach to big data security.Keyword: big data; data security; solid-state drive(SSD); Received: 2015-01-121 引言大数据时代已经来临.为了将快速增长的信息转换为价值,企业和组织往往将各种类型的数据,包括个人、财务、医疗等敏感信息,整合到统一的大数据系统.这种集中存储的大量敏感信息,无疑将成为攻击者的理想目标.因此,保护大数据的安全性,尤其是数

8、据机密性,是一个重要的研究课题.在典型的大数据平台(比如 Apache Hadoop)中,海量数据是存储在廉价服务器集群中各个节点的本地硬盘中的.为了保护存储介质中的数据,防止敏感数据泄露,目前主要使用两种手段:访问控制和数据加密.但这两种方法都各有不足.访问控制,通常由系统软件实施,其安全性依赖于代码的安全性和健壮性.随着系统越来越庞大复杂,很难保证不存在软件错误或安全缺陷,即使像 Google 这样技术先进的公司也不能幸免.除了软件可能存在问题外,企业内部的管理员也可能利用特权绕开访问控制,窃取隐私数据,这从瑞士银行员工泄露用户资料事件可见一斑.为了弥补系统软件访问控制的不足,一个常见做法

9、是数据加密.基于密码学的方法虽然具有更高的安全性,但对海量数据加密解密不可避免地带来了显著的额外开销.以 Hadoop 为例,其在设计安全机制时的一大考虑因素是对性能的影响(不超过 7%)1.到目前为止最新的 2.4 版本,Hadoop 仍然没有提供默认的加密解密框架,部分原因是顾忌加密解密的开销.综上所述,现有方法难以在保护海量数据时既提供较高的机密性保证,又只产生可忽略不计的额外开销.通常来讲,服务器的本地存储介质(通常是硬盘)可以被主机任意读写,因此是不可信的,需要系统软件的访问控制或数据加密对其保护;但理想的情况是,硬盘是应该且可以增加安全机制的.近些年,固态硬盘,因其延迟低、吞吐量大

10、、能耗低、噪音小,在各种应用场景正逐渐取代传统的机械硬盘,包括企业级服务器市场.而且,最近的一些针对固态硬盘的存储内计算(In-Storage Processing)的一系列研究2-5表明,固态硬盘内有充足的资源(如 CPU 和内存等)支持额外的功能.基于以上观察,本文提出一种解决大数据平台数据存储安全的新思路存储内安全(In-Storage Security)把对数据的访问控制从主机上的系统软件下放到底层存储内部.更具体地说,我们设计并实现了可信固态硬盘(TrustedSSD),它提供安全增强的存储设备接口和协议,使得用户可以对存储中的数据施以细粒度的访问控制,保护存储中数据的安全性.访问控

11、制层(Access Control Layer,ACL)是可信固态硬盘的安全引擎,与普通固态硬盘具有存储引擎,即闪存转换层(Flash Translation Layer,FTL),紧密结合在一起,实现高效的用户认证和操作授权.结合用户库函数和操作系统支持,可信固态硬盘可以为数据密集型应用(比如 Apache Hadoop)提供安全的数据存储服务.本研究的主要贡献有:(1)我们为可信固态硬盘设计了安全增强的存储设备接口和协议,详细分析和论证了其安全性,展望了其在大数据平台中的应用前景(见第 3 节“存储内安全”).(2)我们在可信固态硬盘的设计与实现过程中解决了数项技术难点,包括提高硬件平台的

12、基准性能,设计高效的访问控制机制,修改复杂的操作系统 I/O 栈以及扩展硬盘接口(见第 4 节“设计与实现”).(3)我们在商用成功的固态硬盘控制器上实现了可信固态硬盘的原型系统.在合成的和实际的工作负载以及 HDFS 上测试了可信固态硬盘的性能,实验结果表明可信固态硬盘的安全机制带来的运行开销小于 3%(见第 5 节“实验结果”).传统的观点认为,存储是不可信的,大数据的安全保障应该由系统软件负责.但我们在可信固态硬盘上的工作表明,存储不仅可以信任,而且可以有效地保障数据安全,成为大数据安全的新基础.2 相关工作大数据系统的研究主要有 3 个方向:存储、管理和分析6.因而,其安全和隐私保护也

13、可以从这 3 个方面着手.数据分析层面的隐私保护技术,如匿名化7和差分隐私(Differential Privacy)8等,以及数据管理层面的安全保护技术,如加密数据查询9和可信硬件10等,可以加强大数据系统的安全性和隐私性,但无法完全替代在存储层面的安全措施的作用.业界对系统安全的共识是,没有一种安全措施能够防范所有安全威胁,多层次的安全机制才能最大限度地保证系统安全.可信固态硬盘位于大数据系统最底层,即存储层.本节将简述存储层面的各种安全技术,并与可信固态硬盘做比较.目前,业界针对硬盘本身的安全性增强技术主要有两种:全盘加密(Full-Disk Encryption)和作为硬盘接口标准 A

14、TA 一部分的安全特性集11.全盘加密是一种对硬盘上所有数据的、对用户透明的加密技术.全盘加密的硬盘在启动时会要求用户输入密码,密码匹配后,后续的读/写操作都以用户密码对应的密钥解密/加密硬盘中的数据.这样,若硬盘本身不慎丢失或被恶意窃取,硬盘中的数据由于已加密就不会泄露.除了在存储中做数据加密,存储接口标准也可以增强安全性.广泛使用的存储接口标准 ATA 有可选的安全特性集,能够锁住存储设备(拒绝任何读写请求),直到用户用密码解除锁定.前述的全盘加密或 ATA 安全特性集都有助于提升硬盘的安全性,它仍然有明显不足.这是因为,这两种硬盘保护方法在用户输入完密码之后就在安全性方面与普通硬盘无异了

15、,入侵者或恶意程序可以在用户输入密码之后(通常就是开机之后),窃取、篡改或删除硬盘中数据.此前,有许多针对传统硬盘的增强安全性的研究工作,但它们在目的、方法和适用范围上都与本研究不同.自安全存储(Self-Securing Storage)12在一段时间内保留数据的历史版本,以应对入侵者在未发觉的情况下篡改或删除数据.网络安全硬盘(Network-Attached Secure Disks)13通过把访问控制下放到各个硬盘,从而消除了在传统网络文件系统中访问控制完全集中在文件服务器这一系统瓶颈.可存活存储系统(Survivable Storage System)14把一个文件的每个片段打散分布

16、到多个存储节点,这样即使单个存储节点被入侵,也可以保证数据的隐私性、可靠性和可用性.前面提到的硬盘方面的研究都假设存储设备的接口是基于块的,基于块的接口最早可以追溯到 20 世纪 50 年代,而 2000 年左右基于对象的存储设备接口开始得到产业界和学术界的兴趣,继而产生了一种新的存储类型,即对象存储(Object Storage)15.就本文所关注的安全方面而言,对象存储的最大优点是以对象为单元的访问控制.虽然对象存储的思想被广泛接受,比如 Google File System 中文件元数据和文件数据块的分开存储的架构16,再如 Amazon Web Service S3的基于对象的存储接口

17、,但在硬盘层面基于对象的接口仅停留在标准化阶段17,没有大规模产品化,而基于块的接口仍然是硬盘设备的绝对主流.可信固态硬盘在保持块接口的前提下实现了数据的细粒度访问控制.无论是分布式文件系统Google File System,还是云存储系统 Amazon Web Service S3,这些借鉴了对象存储思想的大数据系统均可以通过采用更安全的底层存储设备,如可信固态硬盘,来提高系统整体的安全性.最近几年,有不少研究工作探索如何为固态硬盘增加额外的功能.文献2在固态硬盘内增加硬件逻辑以更高效地处理数据扫描操作.文献3研究把关系型数据库的部分运算下推到固态硬盘内部完成.文献4扩展了 Hadoop,

18、使得部分 Map任务可以在固态硬盘内部完成.文献5提出了事务型闪存转换层(Transaction FTL),把 SQLite 保证事务原子性(Transaction Atomicity)的功能放到了固态硬盘中.与上述针对固态盘的存储内处理(In-Storage Processing)的研究工作不同的是,可信固态盘是一种存储内安全(In-Storage Security)的尝试.伴随着闪存技术的不断成熟,固态硬盘得到了市场越来越广泛的接受,与其有关的安全方面的问题也引起了学术界的兴趣.文献18研究了固态硬盘特有的闪存转换层(Flash Translation Layer)对实现可靠擦除(Reli

19、able Erasing)的挑战.文献19探讨了闪存单元的允许操作次数有限而带来的安全风险(如拒绝服务攻击).与上述研究不同的是,本研究的焦点是固态硬盘层面的访问控制.从思路上看,与本研究最接近的是 Butler 等人20-21的工作,其中也涉及了基于闪存的硬盘访问控制机制,但 Bulter 等人的工作仅停留在框架性描述的层面,缺乏接口协议的完整分析、系统实现的详细讨论,和实验数据的有效支撑.而这些正是本研究工作的主要贡献.3 存储内安全存储内安全(In-storage Security)是指一种在存储设备内部实现安全机制的做法.安全界的一项共识是,没有一种安全措施能够防范所有安全威胁,多层次

20、的安全机制才能最大限度地保证系统安全.传统上,普通存储介质(如硬盘)被认为是不可信任的;而本文认为,存储介质的不可信正是大数据安全的缺失环节.存储内安全可以有效地增强存储中数据的安全性.本文主要关注于利用可信固态硬盘保护存储中数据的机密性.本节首先介绍可信固态硬盘应对的安全威胁,然后讨论如何设计可信固态硬盘的接口和协议以有效地保证数据机密性,最后以 Hadoop 为例说明可信固态硬盘在大数据平台中的应用.3.1 安全威胁假设攻击者:(1)可以获得主机的特权.他们既可能是恶意的外部入侵者,也可能是好奇的内部管理员.他们可能在服务器上运行恶意程序直接读取数据文件,也可能修改操作系统或数据库管理系统

21、的权限.无论手段如何,结果都是他们可以成功地绕开所有系统软件对存储中数据的访问控制.(2)企图获取存储中的敏感数据,但对篡改或销毁数据并不感兴趣.作者认为这个假设是比较符合实际的,因为读取数据很难被检测到,而篡改或删除数据相对容易被发现,作案风险大、利益小.(3)只能通过定义良好接口访问存储中的数据,即假设攻击者不能物理攻击(比如盗窃或拆解).可信固态硬盘主要是用作集群中数据节点上的直连存储设备,通过常见的存储接口(SCSI、SATA 和 SAS 等)与主机连接.这个定义良好的存储接口是存储与主机交互的唯一途径,也是对存储设备的唯一攻击面(Attack Surface).(4)攻击者无法篡改可

22、信固态硬盘的固件程序(Firmware),因为固件程序是受到保护的.一个比较理想的保护方式是,可信固态硬盘的新固件必须在能被验证是合法的(比如有生产厂家数字签名)之后才能替换原来的固件.另一个可能的方式是,由可信固态硬盘上的一个物理开关决定固件是否处于可更新的状态.可信固态硬盘的原型系统采用了第 2 种方式.由于攻击者不能物理接触可信固态硬盘,也就无法篡改固件.3.2 安全协议本小节讨论如何设计一个安全增强的存储接口和协议,使得在不可信的主机上对存储安全地访问成为可能.可信固态硬盘的接口是主机与它交互的唯一途径;主机必须按照这个接口的协议、通过发送合法命令,才能读取或改变存储内部的状态.我们希

23、望扩展普通的存储接口,使其具备用户验证、操作授权等功能,成为一个安全增强的存储接口.然而,设计安全增强的存储接口和协议是有多重挑战的.首先,攻击者可以监听主机和存储之间的所有交互;重放攻击(Replay attack)、伪装攻击(Impersonation attack)和中间人攻击(Man-in-the-middle attack)等各种攻击都是可能的.其次,存储器每秒钟处理的 I/O 操作数可以高达 10 000,而其内部的计算资源有限,因此协议对每个 I/O 操作的验证授权开销必须很小.最后,安全增强的存储协议必须与原有的软硬件接口尽量兼容,使得驱动程序的改动尽可能的小,并且不需要任何硬

24、件上的改动.最终设计出来的可信固态硬盘的安全增强的接口和协议的概况如图 1 所示.用户对存储的访问分两个阶段:第 1 阶段,身份验证.这个阶段的目的是认证用户身份,并建立会话.每个用户都有一个 ID(uid)和密钥(pkey),在用户向可信固态硬盘注册账号的时候完成分配;用户 ID 是公开的,但用户密钥只由用户和可信固态硬盘(图 1(a)中的用户表)掌握.用户的身份验证采用密码学的经典方法挑战-应答协议(如图 1(b).挑战-应答协议,简单地说,就是通过让用户使用他的密钥加密一个随机数来证明它拥有这个密钥的事实,从而让服务方可以认证用户的身份.完成上述身份验证之后,用户和可信固态硬盘之间建立起

25、了一个会话,用户和可信固态硬盘(图 1(a)中的会话表)都拥有这个会话的密钥.第 2 阶段,授权读写.用户凭借会话密钥进行读写操作,可信固态硬盘只授权合法的读写操作.普通的块设备的读写操作,逻辑上可以简化地看成调用read(lpn,num_sectors)和 write(lpn,num_sectors,data)两个函数,其中 lpn是逻辑页地址(Logical Page Number),num_sectors 是读写的扇区数目,一个逻辑页包含数个扇区(比如 8 个),一个扇区的大小是 512 字节.为了验证读写操作的合法性,可信固态硬盘为 read 和 write 扩充了两个可选参数(如图

26、1(b),会话 ID(sid)和操作令牌(token),前者是公开的,后者是根据会话密钥生成(生成规则见下一小节“安全分析”).可信固态硬盘在接收到读写命令后,根据会话ID 和操作令牌检查操作是否属于一个合法的会话,如果不合法,则拒绝执行;如果合法,则用会话表(见图 1(a)查出发出这个操作的用户 ID.对于合法的写操作,页权限表中把涉及到的页标记成属于这个用户;对于合法的读操作,则检查涉及到的页是否全都属于这个用户,如果是,则继续执行这个读操作;否则,拒绝执行.图 可信固态硬盘的安全机制(图()中方角和圆角方框分别表示模块和元数据;灰色的方框表示与安全相关;圆角方框中的数值表示图 1(b)所

27、示的交互完成时的状态.图 1(a)中的 lpn、ppn、uid、pkey、rw、sid 和 skey 分别表示逻辑页地址、物理页地址、用户 ID、用户密钥、读写权限、会话 ID 和会话密钥.图 1(b)中(不在图 1(a)中)的 lpn、pkeys、num_sectors、rnd、Epkey和 token 分别表示起始逻辑页地址、用户表、读/写扇区数、随机数、对称加密算法和操作令牌)如上所述的根据操作用户是否为扇区拥有者来决定扇区是否可以访问是最基本的访问控制策略.为了允许数据更大程度的共享,还有多种方法可以扩展上述访问控制策略.比如,维护扇区的读写权限(图 1(a)中权限表的 rw 字段,长

28、度是 2个 bit):当 rw=00 时,表示只有扇区拥有者可以读写;当 rw=10 时,表示其他用户也可读,但不可写;当 rw=01 时,表示其他用户可以写,但不可读;而当 rw=11 时,表示所有用户都可以读写,相当于没有任何访问控制.除了读写权限外,增加用户组的概念也是一种可能性,类似于 UNIX 文件系统的访问控制策略,这里不再赘述.可信固态硬盘的访问控制完全与普通硬盘的使用模式兼容.当接收到普通读写命令,其会话 ID 和操作令牌等参数都是空,可信固态硬盘会认为这种读写命令来自公共用户(uid=0).权限表的用户 ID 字段 uid 的初始值都是 0,读写权限字段 rw为 11,也就是

29、说所有扇区默认属于公共用户,且可以被任意读写.私有用户(uid0)可以任意读写公共用户的扇区,而私有用户的扇区受到访问控制机制的保护.3.3 安全分析采用基于会话的安全机制是出于两方面的考虑.一方面,大数据应用的数据处理模式往往是把计算任务发送到数据源(在 Apache Hadoop 中是 Map/Reduce 任务发到数据节点).计算任务为了合法地读取可信固态硬盘中的数据必然需要某种凭证(在不可信主机上),如果凭证是用户密钥,则一旦丢失,危害很大;如果凭证是会话密钥,即使被窃取,攻击者也仅能在相对短暂的会话期间内冒充合法用户.另一方面,密钥越长安全性越好,但各种密码学操作的开销越大.把验证身

30、份的密钥(用户密钥,使用频率低)和授权读写操作的密钥(会话密钥,使用频率高)区分开,前者使用长位数(比如 128 个比特),后者使用短位数(比如 32 个比特),可以在保证安全性的前提下,把开销降到最低.为了防止短位数的会话密钥被暴力破解,可信固态硬盘一旦发现读写操作的会话密钥不合法,则终止会话.会话建立是在身份验证阶段.这里采用了挑战-应答协议,一种经典的密码学身份验证方法,其安全性得到了广泛的研究.挑战-应答协议保证了身份验证的安全性,因为:(1)用户密钥没有被明文传输,不会被泄露;(2)每次用户认证的应答由随机数决定,不受重放攻击影响;(3)会话密钥是加密的,并只有用户可以解密.这样,身

31、份验证阶段结束时,只有用户和可信固态硬盘了解会话密钥,保证了读写操作可以在会话中安全地进行.会话建立之后就进入授权读写阶段.读写操作的验证,是以其附带的操作令牌(token)为依据的.一个最直接的设计是把会话密钥作为令牌,只要查找会话表(图 1(a)就可以验证操作附带的会话密钥是否正确,从而完成操作的验证.但这样并不安全,因为任何可以监听用户进程与可信固态硬盘交互的进程都可以窃取会话密钥,从而利用会话密钥冒充合法用户.最终的设计是令操作令牌token=MACskey(lpn,num_sectors,sid)即操作令牌是用户操作命令的消息认证码(Message Authentication Co

32、de,MAC).这样有 3 个好处:(1)由于操作令牌的计算需要会话密钥(skey),因此只有合法用户的操作才有合法的令牌;(2)根据消息认证码的性质,攻击者是无法通过令牌的值推测出会话密钥的值的;(3)攻击者无法篡改用户发出的合法命令.从上面的分析可以看出,可信固态硬盘的安全协议保证只有合法用户才能被授权执行的合法操作,并且在这个过程中不泄露任何用户密钥的信息,即使攻击者(如拥有特权的外部黑客者或内部管理员)可以监听所有操作.即使设计再周全,如果实现有漏洞,那么最终系统也是不安全的.虽然可信固态硬盘中的固件程序也具有相当的复杂性(约 1 万行 C 代码),但相比操作系统(Linux的源代码有

33、约 1500 万行)和关系型数据管理系统库(MySQL 的源代码有约 150 万行),可信固态硬盘中的固件程序出现软件错误或安全漏洞的可能性大大低于这些大型系统软件.较小的代码量使得深入的代码检查,或形式验证(Formal Verification)更可行22.除了担忧固件程序的正确性外,用户可能还对信任可信固态硬盘的厂商有疑虑.这方面可以效法密码协处理器的做法,由可信权威的第三方机构评估产品的安全性,并对合格的产品授予证书23,打消或缓解用户的疑虑.综上所述,可信固态硬盘为数据提供安全、有效和可靠的隐私性保护,有望成为大数据安全的新基础.3.4 应用举例本小节以 HDFS(Hadoop Di

34、stributed File System)为例子简要介绍可信固态硬盘如何提高大数据系统的数据安全性.HDFS 的现有安全机制需要名字节点和数据节点协作保证(如图 2 左边).名字节点首先验证 HDFS 客户端发来的文件操作(比如读操作)是否来自一个权限足够的用户.核实用户身份的凭证是其提供的代理令牌(Delegation token).如果用户合法、权限足够,则把操作所要块的块令牌(Block token)返回给客户端,这个块令牌是加密过的,无法伪造,且过期即失效.随后客户端向数据节点调用块操作时,会把块令牌也发送给数据节点,后者检查块令牌的合法性.如果合法,才授权客户端的块操作.以上就是

35、HDFS 访问控制的基本原理.图 2 基于可信固态硬盘的安全增强型 HDFS 下载原图但上面的访问控制是有不足的.HDFS 块是在数据节点上以文件的方式存放的.这意味数据节点的内部管理员或获得特权的外部攻击者,可以绕开上述的 HDFS 访问控制机制,直接读取块所在的文件.可信固态硬盘可以防止这种情况发生.用户的可信固态硬盘秘钥可以存储在名字节点(认为是可信的),当他需要读取受可信固态硬盘保护的 HDFS 块时,按照 3.2 和 3.3 小节所描述的协议完成身份验证和操作授权即可(如图 2 右边);即使是拥有特权的攻击者,没有用户的可信固态硬盘秘钥,也无法从可信固态硬盘中非法读取数据.4 设计与

36、实现可信固态硬盘的原型系统主要包括固态硬盘的固件程序、操作系统的修改和用户库函数 3 个部分.在设计和实现原型系统的过程中,本工作主要解决了 4 个挑战:(1)提高固态硬盘的基准性能.可信固态硬盘是基于 OpenSSD Jasmine 平台开发,而后者已有的开源固件实现的是普通的页映射闪存转换层,存在写放大(Write amplification)、并行不充分等问题,因而性能不佳.(2)设计高效的访问控制机制.块设备最小的读写单元是扇区(512 个字节),因此访问控制应精确到扇区,即为每个扇区都记录权限信息.然而,OpenSSD 硬件支持的带外区域(Out-of-Band Area)除了纠错码

37、(Error Correction Code)外,无可用于记录权限信息的空闲空间.最直接的解决方法是用一个权限表,但表的大小很大,会导致很多缓存缺失,严重影响性能.(3)修改复杂的操作系统 I/O 栈.Linux 操作系统的 I/O 软件栈,包括系统调用、虚拟文件系统、缓冲区、通用块设备层和 SCSI 驱动程序层(其中又包括高层、中层和底层驱动)等等,是一个包含诸多组件的多层架构.这种结构虽然具有模块化、松耦合和灵活性等优点,但用户传递参数(如会话 ID 和操作令牌)到固态硬盘需要经过所有这些层次.尽量少改动就要达到目的,是很有挑战性的.(4)扩展现有的硬盘命令集.软件的数据结构容易扩展,硬件

38、的物理接口却难以改动了.硬盘的物理接口、协议和命令集等已经形成了若干既定的行业标准.在与现有硬盘接口标准兼容的情况下,支持可信固态硬盘的接口协议所需的新命令(如挑战和应答)也是一个挑战.这 4 项挑战的解决方法接下来将分别在“闪存转换层”、“访问控制层”、“操作系统 I/O 栈”和“硬盘接口”等 4 个小节中阐述.在详细介绍可信固态硬盘的设计与实现之前,有必要对 OpenSSD 固态硬盘开发平台做一个简略的介绍.OpenSSD Jasmine 开发平台是一个开放的固态硬盘参考实现,基于 Indilinx 公司的 Barefoot 控制器,后者已经成功应用于众多厂商的固态硬盘产品.OpenSSD

39、 Jasmine 开发板,包括基于 ARM7 处理器的闪存控制器;96KB 的 SRAM,作为程序的内存空间,存放程序和数据;64MB 的 DRAM,主要作为I/O 缓冲区;8 个 MLC NAND 闪存模块插口,至多达到 256GB 闪存容量.4.1 闪存转换层(FTL)闪存转换层(Flash Translation Layer,FTL)是基于 NAND 闪存的固态硬盘的核心控制逻辑.FTL 将来自上层的块设备命令(读、写操作)转换为对下层的 NAND闪存单元的命令(读、写和擦除操作).这种转换的必要性是源自因 NAND 闪存的物理特性而导致的读写不对称:闪存的读写操作均以页为单位(Open

40、SSD 的页大小是 32KiB),但写操作只能对空白页,非空白页必须擦除后才能写,而擦除比读写操作的时间长得多,且是以块为单位的(OpenSSD 的块大小是 4MiB,一个块包含128 个页).因此,固态硬盘放弃了传统硬盘的原地更新方式,而是采用异地更新(Out-of-Place Update)的策略,即要对一个逻辑页(或者逻辑块)更新,首先在一个空白页(块)写新数据,然后把旧数据所在的页标记为无效,最后更新映射表以反映逻辑页(块)与物理页(块)之间对应关系的变化,至此完成更新操作.FTL 的实现,根据映射表的颗粒度,可以分为页级 FTL24-25、块级 FTL26和混合型 FTL27-28.

41、目前学术界普遍看法是这 3 种类型的 FTL 中页级映射是性能最好的.顾名思义,页级 FTL 允许逻辑页地址(Logical Page Number,LPN)可以直接转换成物理页地址(Physical Page Number,PPN).为此,页级 FTL 需要维护一张页级映射表,为每个逻辑页都需要保存一条记录;整张表都要持久地保存在闪存中,正在使用的部分载入到 DRAM 中缓存起来,以加速读取.这张表的大小往往超出固态硬盘上的 DRAM 容量,但由于实际负载一般都具有较好的局部性,缓存的命中率一般都很高.OpenSSD 开源固件程序实现了页级 FTL,但性能不佳.OpenSSD 开发板装有 128GB闪存,写操作最高能达到 180MB/s 的吞吐量,读能达到 200MB/s.然而,对常见的4KiB 随机读写负载,性能则只有 10MB/s 左右.最终发现性能不佳的根源是写扩大(Write Amplification)和并行不充分.(1)写扩大

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 学术论文 > 期刊/会议论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报