组合all
2020-03-01 148浏览
- 1.数据存储系统与技术 翁楚良https://chuliangweng.github.io2016 秋 ECNU
- 2.绪论 • 数据存储的基本概念 • 数据存储系统的历史 • 数据存储技术的发展 • 课程提纲及考核安排
- 3.数据生态 • 数据产生 • 数据收集 • 数据处理 • 数据服务 • 数据归档
- 4.数据类型 • 数据 (Data) 是未经处理的文字、数字 (Raw Fact)的集合 • • 模拟数据(Analog Data)是由传感器采集到的连 续变化的值,例如流量、压力、液位等 数字数据(Digital Data)是模拟数据经量化后得 到的离散值,在计算机中用代码表示的字符、图形、 音频和视频数据 • 结构化与非结构化数据 • • 结构化数据可以严格地按行和列进行组织,并进行 高效处理,如数据库管理系统 非结构化数据则是其元素无法按行和列进行存储、 访问,以及进行高效处理,如电子邮件等
- 5.信息与数据 统计分析 用户行为 统计分析 市场策略 • 信息(Information)是从数据表达出来的知 识(knowledge)和情报(intelligence) Data • 同一组数据可以依据不同的目的,通过数据 分析(Data Analytics)产生有不同的解释和 意义 • 数据存储关注数据本身(0和1的序列),不用 关注数据所代表的意义(如是数据库还是影 片) 数据 分析 数据 分析 信息 数据 数据 分析
- 6.数据存储载体 10~100 ns 100k ns 10M ns 1~10 ns 内存管理 fread/fwrite 文件系统 10k ns 易失性 load/store 非易失性
- 7.存储系统基本架构 • 本地存储系统 • 个人电脑、工作站服务器等 • 网络存储系统 • 通过网络接口访问专属的存 储设备
- 8.数据中心架构 • 数据中心基础设施包括计算、存储、网络和其它资源,为用户提供数据处 理和存储服务 • 数据中心主要组成 • • • • • • 业务应用 数据库系统 计算节点 互连网络 存储节点 供电制冷
- 9.云数据中心 • 云计算(Cloud Computing), 是一种基于互联网的计算方式,通 过这种方式,共享的软硬件资源和 信息可以按需求提供给计算机和其 他设备 • 用户不再需要了解“云”中基础设 施的细节,不必具有相应的专业知 识,也无需直接进行控制 • 云计算描述了一种基于互联网的新 的IT服务增加、使用和交付模式, 通常涉及通过互联网来提供动态易 扩展而且经常是虚拟化的资源
- 10.绪论 • 数据存储的基本概念 • 数据存储系统的历史 • 数据存储技术的发展 • 课程提纲及考核安排
- 11.存储介质简史 甲骨、竹简、纸张 穿孔卡片及其阅读器 磁带及磁带机
- 12.存储介质简史(续) 硬盘 IBM Model 350 Disk File 软盘 IBM 3380
- 13.存储介质简史(续) Flash SSD 新型NVM介质: RRAM、MRAM等
- 14.存储介质简史(续) $9 $2 $1 $0.4 存储介质的两个发展趋势:大容量(单个HDD 10TB),高性能+非易失(MRAM、PCM、NVMe SSD)
- 15.存储系统 磁盘阵列 全Flash阵列
- 16.绪论 • 数据存储的基本概念 • 数据存储系统的历史 • 数据存储技术的发展 • 课程提纲及考核安排
- 17.数据存储重要性的日益突出 Growth of Global Data Zettabytes of Data 35 30 25 20 15 10 5 0 2009 2010 2015 2020 Global internet device forecast • 当前的IT热点应用均不同程度受数据规模和处理速度影响 • • • • • • Social networks Real-time security and risk assessment On-line retail Gaming FinTech Mobile and IoT platforms 持久性à容量à带宽à IOPS à时延
- 18.数据存储性能瓶颈 容量 性能 寄存器 Cache RAM SSD/HDD 离线存储 p 硬件访问性能相差近100000倍 p 字节访问方式/块访问方式 p 易失性/持久化 目前,I/O是系统的主要性能瓶颈
- 19.数据存储之硬盘:大容量、低成本 容量 性能 寄存器 Cache RAM SSD/HDD 离线存储 p 硬件访问性能相差近100000倍 p 字节访问方式/块访问方式 p 易失性/持久化 硬盘访问时间
- 20.数据存储之Flash:快速、容量较大 容量 性能 寄存器 Cache RAM SSD/HDD 离线存储 p 硬件访问性能相差近100000倍 p 字节访问方式/块访问方式 p 易失性/持久化 有一定的使用寿命、读写不均衡…
- 21.存储层次的性能Gap 容量 性能 寄存器 Cache RAM SSD/HDD 离线存储 p 硬件访问性能相差近100000倍 p 字节访问方式/块访问方式 p 易失性/持久化
- 22.新型NVM存储或SCM:未来存储新技术
- 23.存储/内存架构的变革
- 24.存储传统架构 iL1 CPU L2 Memory Bus (e.g. PC133) Main Memory dL1 Software Stack Appln. File System Buffer Manager Device Driver I/O Bus (e.g. PCI) Disk Ctrller e.g. SCSI Controller(ASIC) Device Firmware Cache DMA engine Platters Actuator Motors Electronics
- 25.存储架构发展趋势 Lower R/W Latency Higher Bandwidth DDR DDR CPU DRAM NVDIMM Higher Endurance NAND Flash DRAM • 针对数据的访问性能要求,模式如下: DDR/PCIe NVMs • 数据直接存储在大内存DRAM中 • 数据存储在DRAM+NVMs混合存储中 PCIe PCH Lower cost per bit SATA SATA NVMe SSD NAND Flash SATA SSD NAND Flash Disk • 数据存储在NVMs存储系统中 • 数据存储在Flash SSD • 数据存储在HDD Disk中
- 26.绪论 • 数据存储的基本概念 • 数据存储系统的历史 • 数据存储技术的发展 • 课程提纲及考核安排
- 27.课程提纲 • 绪论 • 存储技术基础 • 存储系统的组成:存储硬件组成、存储软件过程 • 磁盘及RAID技术:磁盘基本原理、盘阵系统结构 • 性能优化基础技术:缓存调度算法、并行存取技术 • 新型固态存储技术 • 闪存技术、闪存转换层 • 新型NVM技术
- 28.课程提纲 • 网络存储与云存储 • 网络存储 • 存储虚拟化与云存储 • 新型存储系统结构 • 文件系统与大规模存储管理 • 分布式磁盘文件系统 • 分布式内存文件系统 • 数据存储管理系统 • 数据安全与存储容灾 • 数据存储安全机制 • 数据存储容灾技术
- 29.课程参考材料 • S. Gnanasundaram and A. Shrivastava. Information Storage andManagement:Storing, Managing, and Protecting Digital Information in Classic, Virtualized, and Cloud Environments. John Wiley & Sons, Inc. 2012 • P. Manijak, M. Stewart, and P. Vild. Storage Concepts, HDS Academy, Hitachi Data Systems, 2012 • J.L. Hennessy and D. A. Patterson. ComputerArchitecture:A Quantitative Approach. Fifth Edition, 2012 • 张江陵、冯丹. 海量信息存储,科学出版社, 2003 • B. Jacob, S. Ng, D. Wang. MemorySystems:Cache, DRAM, Disk. Morgan Kaufmann Publishers, September 2007 • 参考论文及相关材料将课堂提供 •ftp://58.198.176.92, username &passwd:dsst2016
- 30.课程考核 • 总分100分 • 课程考试:60分 • 研究报告:30分 • 上课情况:10分
- 31.第二章 存储技术基础 翁楚良https://chuliangweng.github.io2016 秋 ECNU 1
- 32.提纲 • 存储硬件组成 • 存储软件过程 • 磁盘基本原理 • 盘阵系统结构 • 缓存调度算法 • 并行存取技术 2
- 33.数据存取路径 • 数据存取途径是指从数 据源到目的地数据和命 令传输的路径。 • 数源据和目的地通常是 存储器或存储设备。 • 介于两端之间的物理器 件便组成了存取途径的 硬件系统。 3
- 34.总线 • 总线是连接设备的通信通道,包括数据总线、地址总线、控制总线和电源线等。 • 系统总线是一条致密的高速总线、连接CPU/Cache和系统内存。通过总线仲裁获得总线使用权,然后在两 个硬件模块间进行通信。 • 外围设备总线(IO总线),与系统总线桥接,由于桥控制器控制,连接外围设备。桥接控制器中包含高速缓 存,用以调节两条总线的速度差。 • PCI (Peripheral Component Interconnect)总线是目前台式机与服务器所普遍使用的一种南桥与外设连接的总线技术。 • PCI 总线的地址总线与数据总线是分时复用的。一方面可以节省接插件的管脚数,另一方面便于实现突发数据传输。 • 在数据传输时,一个 PCI 设备作为发起者(主控,Initiator或 Master),而另一个 PCI 设备作为目标(从设备、Target 或 Slave)。 • 总线上所有时序的产生与控制,都由 Master 来发起。PCI 总线在同一时刻只能供一对设备完成传输,这就要求有一个仲 裁机构(Arbiter),来决定谁有权力拿到总线的主控权。 • PCI Express (PCIE)是INTEL提出的新一代的总线接口,PCI Express采用了目前业内流行的点对点串行连接,比起PCI以 及更早期的计算机总线的共享并行架构,每个设备都有自己的专用连接,不需要向整个总线请求带宽,而且可以把数据传 输率提高到一个很高的频率,达到PCI所不能提供的高带宽。 4
- 35.总线适配器 • 主机总线适配器(HBA):一种将存储设备或其它外围设备接入I/O总线,并对存储设备和外 围设备进行控制的硬件。 • 因主机I/O总线的不同和接口协议的不同有多种HBA,主要包括IDE、SCSI等。 • IDE( Integrated Drive Electronics ) 常用的磁盘适配器。 • 也称之为ATA接口。ATA的英文拼写为“Advanced Technology Attachment”,含义是“高级技术附 加装置”。2003年推出SATA(Serial ATA)后,原有的ATA改名为PATA(并行高技术配置,Parallel ATA)。2013年12月29日,西部数据正式停止PATA硬盘供应,而希捷科技则已停售产多年,这意味着 1986年设计的PATA接口在经历27年后正式退出历史舞台。 • SCSI(Small Computer System Interface)适配器。 • 小型计算机系统接口(SCSI,Small Computer System Interface)是一种用于计算机及其周边设备之 间(硬盘、软驱、光驱、打印机、扫描仪等)系统级接口的独立处理器标准。 • 串行SCSI(SAS:Serial Attached SCSI)是由并列SCSI物理存储接口演化而来,是由ANSI INCITS T10技术委员会开发的新的存储接口标准。与并列方式相比,串行方式提供更快速的通信传输速度以及 更简易的配置。 5
- 36.I/O总线与网络接口适配器 • SCSI的局限性 • 只适用于存储子系统与主机的连接,单一点对点,且有距离限制 • 网络存储 • 可以实现距离延伸、数据共享和高速传输 • 因网络结构不同,网络适配器亦不同 • 以太网,TCP/IP协议 • 光纤网,FCP通信协议 • 网络适配器的主要功能: • 数据的发送和接收 • 信号的编码和译码 • 数据流的处理和控制 • 通过网络接口适配器,可以实现NAS(Network Attached Storage,提供独立的文件服务),也可以组成SAN(Storage Area Network,提供存储数据网络) 6
- 37.提纲 • 存储硬件组成 • 存储软件过程 • 磁盘基本原理 • 盘阵系统结构 • 缓存调度算法 • 并行存取技术 7
- 38.本地数据存取过程 • 数据存取的发起源 • 用户驱动的应用、操作系统内部调用、数据库产生的I/O请求等 • 数据存取的过程 • 通过文件系统发出的I/O请求被放置在操作系统的进程队列中, 等待系统提供包括内存空间、CPU处理、通信及I/O等资源;一 旦条件具备,便执行I/O服务请求 • 若操作系统具有卷管理器功能,或在操作系统中集成有卷管理器。 • 则文件系统发出的I/O请求被输入到卷管理器。经卷管理进行某些处 理,例如镜像、分块、软件盘阵列、连接、分配磁盘缓存等等。 • 将I/O请求依次发送到由卷管理器创建的磁盘驱动器分区的逻辑驱动 器中,通过调用设备驱动程序,与固化在总线适配器中的部分控制 软件一起完成对磁盘驱动器的读/写操作。 8
- 39.网络存取过程(客户端) • 当应用出现时,同样由操作系统将请求放置在 队列中等待处理。但是,对于网络服务器需要 经过I/O重定向,使远程网络服务器和文件系 统如同本地一样地为客户服务。 • I/O重定向后,系统将用户(或应用)的I/O请求 从文件系统的本地I/O途径重新定向到使用网 络资源的路径,即传输到网络文件协议处理程 序,并经网络接口适配器的驱动程序驱动网卡 进入网络。 • 网络文件协议由多个协议层组成,网络文件协 议处理程序可视为一系列有序的设备驱动程序, 在操作系统的协同下完成用户的I/O请求。 9
- 40.网络存取过程(服务端) • 当数据从用户端网卡送到网络服务器后, 首先由网络接口控制器(网卡)的设备驱动 程序解析数据,并将信息传送到网络文件 协议处理程序,由该程序产生客户与服务 器连接所必需的信息。 • 将客户请求送到服务器的文件系统,完成 在本地文件服务时所应做的工作,发出 I/O请求。 • I/O请求被送到卷管理器(有数据库的服务 器则由数据库管理系统发出I/O请求并处 理),由设备驱动程序完成以后的存取文件 的任务。 10
- 41.存取系统软件 • 操作系统 • 数据的存取过程都是由操作系统控制的。它既控制连接在服务器、工 作站上的设备或子系统的运行,同时也是组成存储子系统,如RAID, NAS和SAN的核心软件。 操作系统 • 操作系统的主要任务之一是管理存储系统,包括管理内存,组织虚拟 存储和管理外存储系统,而这些功能正是操作系统的核心,可以说它 是构造存储子系统的核心软件。 文件系统 • 文件系统 • 管理和调度文件的存储空间,提供文件的逻辑结构、物理结构和存储 方法 • 实现文件从标识到实际地址的映射(即按名存取),实现文件的控制操 作和存取操作(包括文件的建立、撤销、打开、关闭,对文件的读、写、 修改、复制、转储等) • 实现文件信息的共享并提供可靠的文件保密和保护措施,提供文件的 安全措施(文件的转储和恢复能力)。 网络协议 卷管理器 设备驱动程序 11
- 42.存取系统软件 • 网络文件协议 • 网络文件协议常见的有CIFS, NFS, FTP等。 • 网络文件协议位于TCP/IP或UDP/IP协议之上,用以处 理客户I/O请求,如产生所有的必要的连接和跟踪远程 客户交换数据的信息,并将客户请求传输给文件系统。 • 通用的网络文件协议栈(分层软件)如下 操作系统 文件系统 网络协议 卷管理器 设备驱动程序 12
- 43.存取系统软件(续) • 卷管理器 • 卷管理器是在文件系统之下的一个软件模块,它所涉及的设备 操作比文件系统的层次低。 • 文件系统通过逻辑驱动器进行文件的存取操作,它将数据放置 在逻辑驱动器上,最大限度地保证数据的可靠性和一致性。 • 卷管理器则创建实际的磁盘驱动器分区,并将其设置为逻辑驱 动器,通常具备以下功能: • 镜像。卷管理器将由文件系统发生的I/O请求镜像到它所创建的分区, 由相应的逻辑驱动器实现镜像存储。 • 分块。卷管理器通过一个轮转进程,将I/O操作指令和数据轮流发送到 相应的多个驱动器,实现分块存取。 • 软件RAID。卷管理器可以实现RAID技术,这种RAID与由独立的硬件实 现的RAID相比,具有价格便宜的优点,但是其存取速度相对较慢。 • 高速磁盘缓存。卷管理器可以将没有占用的内存空间作为缓存,临时存 储数据。 操作系统 文件系统 网络协议 卷管理器 设备驱动程序 13
- 44.存取系统软件(续) • 设备驱动程序 • 它是操作系统中管理输入输出设备的管理程序。无论是 存储设备或子系统都离不开设备驱动程序。在网络存储 中,设备驱动程序是服务器将数据和指令传输到网络的 软件的最后一步,也是进入用户终端的软件的最先一步。 • 在磁盘阵列中,设备驱动程序介于阵列到控制器的两端。 主机是起始者(Initiator),而阵列控制器则是目标 (Target)。阵列控制器对于它挂接的磁盘驱动器是 Initiator,而驱动器则是Target。 • 设备驱动程序的代码少,且有一部分固化在适配器中 (firmware),因此很难作进一步开发和排除其中的故障。 设备驱动程序常由适配器集成电路和设备供应商提供。 操作系统 文件系统 网络协议 卷管理器 设备驱动程序 14
- 45.思考:硬件性能不断增强,存取系统软件的发展? 存储硬件 15
- 46.从操作系统层面优化性能 • Linux Kernel在这个 IO过程中开销过大 16
- 47.从操作系统层面优化性能(续) 17
- 48.从操作系统层面优化性能(续) 18
- 49.从文件系统层面优化性能 文件系统的开销 NVMs 19
- 50.从文件系统层面优化性能(续) 用户态文件系统:kernel保持最基本的部分,其它功能以库的方式上移至用户态 20
- 51.从文件系统层面优化性能(续) 用户态文件系统:kernel保持最基本的部分,其它功能以库的方式上移至用户态 21
- 52.从设备驱动层面优化性能 SATA HDD是性能瓶颈 SATA SDD性能得到改进 NVMe Flash性能突破 22
- 53.NVMe协议驱动 • NVM Express is an open collection of standards and information to fully expose the benefits of non-volatile memory in all types of computing environments from mobile to data center. • NVMe is designed from the ground up to deliver high bandwidth and low latency storage access for current and future NVM technologies. 23
- 54.NVMe主要技术 24
- 55.网络协议层面优化性能:DPDK技术 Packet processing in Linux Packet processing with DPDK App User space Kernel space NIC User space Socket Driver RX/TX queues Ring buffers App DPDK Ring buffers UIO driver Kernel space NIC RX/TX queues 25
- 56.网络协议层面优化性能:DPDK技术(续) Updating a register in Linux User space ioctl() Updating a register with DPDK User space assign syscall VFS copy_from_user() iowrite() Kernel space HW Register HW Register 26
- 57.网络协议层面优化性能:DPDK技术(续) What is used inside DPDK? Linux kernel overhead • • • • System calls Context switching on blocking I/O Data copying from kernel to user space Interrupt handling in kernel • • • • • Processor affinity (separate cores) Huge pages (no swap, TLB) UIO (no copying from kernel) Polling (no interrupts overhead) Lockless synchronization (avoid waiting) • Batch packets handling • SSE, NUMA awareness 27
- 58.进一步阅读 • 张江陵、冯丹. 海量信息存储,科学出版社, 2003 • 第一章 • Simon Peter, Jialin Li, Irene Zhang, Dan R. K. Ports, Doug Woos, Arvind Krishnamurthy, Thomas Anderson, Timothy Roscoe.Arrakis:The Operating System is the Control Plane. In ACM Transactions on Computer Systems, 33(4), November 2015. • Antoine Kaufmann, Simon Peter, Naveen Kr. Sharma, Thomas Anderson, Arvind Krishnamurthy. High Performance Packet Processing with FlexNIC. In 21st International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), Atlanta, GA, USA, April 2016. • Haris Volos, Sanketh Nalli, Sankaralingam Panneerselvam, Venkatanathan Varadarajan, Prashant Saxena, Michael M. Swift.Aerie:Flexible File-System Interfaces to Storage-Class Memory. EuroSys '14, April 2014 • NVMe.http://www.nvmexpress.org• DPDK.http://www.dpdk.org28
- 59.第二章 存储技术基础 翁楚良https://chuliangweng.github.io2016 秋 ECNU 1
- 60.提纲 • 存储硬件组成 • 存储软件过程 • 磁盘基本原理 • 盘阵系统结构 • 缓存调度算法 • 并行存取技术 2
- 61.磁盘硬件 • 硬盘是以盘片表面磁介质薄膜每个记录区域的磁化 方向来表示数据,通过磁头读写元件来读取或改变 磁记录区域的磁化方向实现硬盘数据的读写 • 硬盘大致由盘片、读写头、马达、底座、电路板等 几大项组成 • 硬盘工作方式:密封、固定并高速旋转的镀磁盘片, 磁头沿盘片径向移动,磁头悬浮在高速转动的盘片 上方,而不与盘片直接接触 3
- 62.磁盘硬件 • 盘片的基板由金属或玻璃材质制成,为达到高密度、高 稳定性的要求,基板要求表面光滑平整。磁粉被溅镀到 基板表面上,并涂上保护润滑层 • 盘片存储密度在1Tb/in2的记录条件下,数据磁道的宽 度被压缩到 30~50nm;在 10Tb/in2的条件下,磁道 宽度更是被压缩到10nm 以下 • 各种新技术也在不断的涌现,如热辅助磁记录、微波辅 助磁记录、图案化磁记录(BMP)、瓦记录 (Shingled Magnetic recording) • 主轴电机带动盘片以恒定的转速(7200-20000rpm) 旋转。硬盘转速越快,磁头滑过相应存储区域的时间就 越短,因而其读写速度会高,但是这也对硬盘制造技术 的要求也越高 4
- 63.硬盘类型及接口 硬盘类型 ATA/IDE SCSI FC SATA SAS 接口视图 SC LC 5
- 64.ATA/IDE接口硬盘简介 • ATA( Advanced Technology Attachment)高级技术附加装置 • ATA硬盘是传统的桌面级硬盘,主要应用于个人PC机,也经常称 为IDE( Integrated Drive Electronics )硬盘 • ATA接口为并行ATA技术,下一代的产品将转向串行ATA(SATA) 40-pin 主/从盘 连接器 Power 跳线 连接器 6
- 65.SATA接口硬盘介绍 • SATA:Serial ATA (Serial Advanced Technology Attachment ) • 串行ATA • SATA采用串行方式进行数据传输,接口速率比 IDE接口高,最低为150MB/s,并且第二代 (SATA Ⅱ)300MB/s接口硬盘已经形成商用, 规划内的最高速率可达600MB/s • SATA硬盘采用点对点连接方式,支持热插拔, 即插即用 7
- 66.SAS接口硬盘介绍 • SAS(Serial Attached SCSI) • 串行连接SCSI • SAS是一种点对点、全双工、双端口的接 口 • SAS专为满足高性能企业需求而设计,并 且兼容SATA硬盘,为企业用户带来前所未 有的灵活性 8
- 67.企业级硬盘与桌面级硬盘的区别 参数 桌面级 企业级 上电时间 8小时/天 24小时/天 Duty Cycle(工作负荷) 低 30%(西数RE2系列硬盘可 达100%) MTBF 六十万小时 一百二十万小时 SCT 不支持 支持 错误纠正功能 不支持 支持 负载管理(用于控制机体温度及保 不支持 支持 证长时间工作可靠性) 9
- 68.盘面密度 • Determines both capacity and performance • Density Metrics BPI TPI • Linear density (Bits/inch or BPI) • Track density (Tracks/inch or TPI) • Areal Density = BPIxTPI 10
- 69.盘面密度 11
- 70.磁盘硬件 • 在磁头驱动电路的控制下,音圈电机驱动磁头在盘 片径向方向上作往复运动使磁头定位在需要的数据 磁道上 • 磁头滑块及其内部的读写元件通过半导体制作工艺 整体制作出来。滑块的外形经过特殊设计,具备优 良的空气动力学特性,能够利用滑块和高速旋转的 盘片产生一个稳定的空气升力,从而托起滑块,使 其悬浮在磁盘片的上方 • 在正常运行时,磁头是悬浮在盘片上空的。这个悬 浮的高度,即磁头的飞高,是影响硬盘面密度的一 个重要的参数。硬盘的面密度越高,意味着每一个 磁记录位所占的区域越小,它所产生的磁信号强度 也越弱,读写头需要与其更近的距离才能读出或者 写入信号 12
- 71.磁盘实例 13
- 72.磁盘IO性能 • 读写一个磁盘块需要的时间由下面三个因素决定: • 寻道时间(将磁头臂移动到相应的柱面所需的时间) • 3 ~ 15 ms • 旋转延迟(相应的扇区旋转到磁头下面所需的时间) • 2 ~ 5 ms • 数据传输时间 14
- 73.硬盘的寻址模式 Physical Address = CHS • 柱面(Cylinder),磁头(Header)和扇区(Sector), Logical Block Address = Block# • 即C/H/S地址 • 磁头读取扇区头标中的CHS可获得当前位置; • 磁头最多255(8位二进制) • 柱面最多1023(10个二进制位) • 扇区最多63(6个二进制) LBA编址方式:直线性,扇区为等长,0编 号 • 实际磁头、磁道、扇区信息都保存在硬盘 控制电路的ROM芯片中(有更多的磁道、 扇区),在访问磁盘的时候硬盘控制器将 这种逻辑地址转化为物理地址 15
- 74.硬盘的寻址模式(续) • 如左图,硬盘中每个磁道8个扇区,8个盘 面,4相柱面,则总共 8 × 8 × 4 = 256 块,块号从0至255。 16
- 75.磁盘IO时间 • 由于柱面定位时间在访问时间中占主要部分,合理组织磁盘数据的存储位置 可提高磁盘I/O性能 • 例子:读一个128KB大小的文件: • (1)文件由8个连续磁道(每个磁道32个扇区)上的256个扇区构成: • 20ms+(8.3ms+16.7ms)*8=220ms; • 其中,柱面定位时间为20ms,旋转延迟时间为8.3ms,32扇区数据传送时间为16.7ms; • (2)文件由256个随机分布的扇区构成: • (20ms+8.3ms+0.5ms)*256=7373ms; • 其中,1扇区数据传送时间为0.5ms; • 随机分布时的访问时间为连续分布时的33.5倍 17
- 76.磁头臂调度算法--FCFS算法 • 如果磁盘驱动程序每次接收一个请求并按照接收顺序执行,即先来先 服务(FCFS) • 考虑一个具有四十个柱面的磁盘。假设一个请求到达请求读柱面11上的一 个数据块,当对柱面11寻道时,又顺序到达了新请求要求寻道1 、36 、 16 、34 、9 和12,则它们被安排进入请求等待表,每一个柱面对应一个 单独的链表。 • 该算法中磁盘臂分别需要移动 10 、35 、20 、18 、25和3个柱面,总共 需要移动111个柱面。 18
- 77.磁头臂调度算法--最短寻道算法 • 在寻道时,选择与磁盘臂最接近的柱面请求,即最短寻道算法(SSF) • 考虑一个具有四十个柱面的磁盘。假设一个请求到达请求读柱面11上的一个数据块, 当对柱面11寻道时,又顺序到达了新请求要求寻道1 、36 、16 、34 、9 和12,则 它们被安排进入请求等待表,每一个柱面对应一个单独的链表。 • 该算依次为12 、9 、16 、1 、34和36。按照这个顺序,磁盘臂分别需要移动1 、3 、 7 、15 、33和2个柱面,总共需要移动61个柱面。 19
- 78.磁头臂调度算法-- 电梯算法 • SCAN模式,在寻道时,类似于电梯模型,从一 端到另一端,然后折返,再折返,这样循环下去。 磁头从最内侧磁道依次向外圈磁道寻道,磁头也 要触及到之后才能折返。 • SCAN 模式不会饿死任何 IO,每个 IO都有机会搭乘磁 头这个电梯。然而,SCAN 模式也会带来不必要的开销, 因为磁头从来不会在中途折返,而只能触及到终点之后 才能折返。但中心部分的柱面得到的服务比内、外的边 缘柱面好。 • LOOK 模式相对于 SCAN 模式的区别在于,磁头 不必达到终点之后才折返,而只要完成最两端的 IO 即可折返。同样,C-LOOK 也是一样的道理, 只不过是单向扫描。 20
- 79.Mysql doublewrite • 在Mysql的innodb存储引擎中,有一个doublewrite模块。 • innodb的数据页一般大小是16KB,MySQL存取数据的最小 单位也是页,而操作系统并不能保障一个数据页的原子性, 也就是说当写入数据时,有可能在一个页中写入一半时(比 如8K)数据库宕机,这种情况称为部分写失效(partial page write),从而导致数据丢失。 • 当触发数据缓冲池中的脏页进行刷新时,并不直接写磁盘, 而是通过memcpy函数将脏页先复制到内存中的 doublewrite buffer,之后通过doublewrite buffer再分两 次、每次1MB顺序写入共享表空间的物理磁盘上。 • 马上调用fsync函数,同步脏页进磁盘 。由于在这个过程中, doublewrite页的存储时连续的,因此写入磁盘为顺序写, 性能很高。 • 完成doublewrite后,再将脏页写入实际的各个表空间文件, 这时写入就是离散的。 21
- 80.理论性能分析:A Little Queuing Theory • 在I/O系统设计需要理论工具指导:Little队列理论 • 这种方法较理想状态分析会复杂和精确,但较系统仿真会简单些。 • Producer-server model • producer creates tasks to be performed and places them in a buffer; • server takes tasks from the FIFO buffer and performs them; • Response time / Latency • the time a task from the moment it is placed in the buffer until the server finishes the task • Throughput / Bandwidth • the average number of tasks completed by the server over a time period 22
- 81.Throughput vs Response Time Competing demands • Highest possible throughput requires server never be idle, thus the buffer should never be empty • Response time counts time spent in the buffer, so an empty buffer shrinks it Utilization 23
- 82.Introduction to Queueing Theory I/O Device We focus on the long term and steady system :Arrivals = Departures Little’s Law:Mean number tasks in system = arrival rate x mean response time Applies to any system in equilibrium, as long as nothing in black box is creating or destroying tasks 24
- 83.Little’s Law • Queuing models assume state ofequilibrium:input rate = output rate • Observe a system for Timeobserve minutes • Sum the times for each task to be serviced Timeaccumulated • Numbertask completed during Timeobserve • Timeaccumulated≥Timeobserve because tasks can overlap in time 25
- 84.Single-Server Model • • • Queue / Waiting line • the area where the tasks accumulate, waiting to be serviced • Server the device performing the requested service is called the server • Timeserver average time to service a task average servicerate:1/Timeserver Timequeue average time per task in the queue Timesystem average time/task in the system, or the response time; the sum of Timequeue and Timeserver Arrival rate average # of arriving tasks per second 26
- 85.Server Utilization • Server utilization the mean number of tasks being serviced divided by the service rate Example: Suppose an I/O system with a single disk gets on average 50 I/O requests per second. Assume the average time for a disk to service an I/O request is 10 ms. What is the utilization of the I/O system? Answer • Server utilization =Arrival rate x Timeserver (little’s law again) 27
- 86.Response time …… …… • The response time increases slowly with added load on the queue and increases exponentially when the utilization exceeds 70 percent. • For performance-sensitive applications, it is common to utilize disks below their 70 percent of I/O serving capability. 28
- 87.进一步阅读 • C. Ruemmler and J. Wilkes. An Introduction to Disk Drive Modeling, IEEE Computer, 27(3):17-29, March, 1994. • S. Gnanasundaram and A. Shrivastava. Information Storage andManagement:Storing, Managing, and Protecting Digital Information in Classic, Virtualized, and Cloud Environments. John Wiley & Sons, Inc. 2012. • Section 2.6 • Section 2.7 • John L. Hennessy and David A. Patterson. ComputerArchitecture:A Quantitative Approach. Fifth Edition, 2012 • Appendix-D.5 29
- 88.第二章 存储技术基础 翁楚良https://chuliangweng.github.io2016 秋 ECNU 1
- 89.提纲 • 存储硬件组成 • 存储软件过程 • 磁盘基本原理 • 盘阵系统结构 • 缓存调度算法 • 并行存取技术 2
- 90.磁盘阵列 控制器和磁盘柜分离 = + 控制器 磁盘扩展柜(JBOD) 磁盘阵列 控制器和磁盘柜一体 = + 控制器模块 磁盘柜 磁盘阵列 3
- 91.RAID(独立冗余磁盘阵列) • Redundant Arrays of Independent (Inexpensive) Disks • • D.A. Patterson, G. Gibson, and R.H. Katz, ‘‘A Case for Redundant Arrays of Inexpensive Disks(RAID),’’ tech. report, CS Division, Univ. of California Berkley, 1987. Katz, R.H.,RAID:A personal recollection of how storage became a system. IEEE Annals of the History of Computing, 2010. 32(4): p. 82-86. 容量:计算机发展初期大容量的硬盘价格非常高,而需要存储的数据量越来越大 性能:CPU的运算速度飞速提高,数据读写避免成为计算机系统的处理瓶颈 安全性:数据对企业和个人的重要性也越来越大,数据存储安全需要保障 4
- 92.RAID基本原理与特征 • 数据以条块化(stripe)分布于多个磁盘 • 存储容量扩展,I/O性能提升 • 冗余机制获得较高的数据可用性 • 可用性(Availability): 即使某些部件故障仍能够为用户提供服务 • 通过冗余信息实现数据恢复(Reconstructed & Rebuild) • 所引入的开销 • 容量开销:存储冗余信息 • 带宽开销:冗余信息的读写 • 计算资源开销:冗余信息的更新、恢复 5
- 93.RAID定义 • RAID 即独立磁盘冗余阵列,RAID技 术将多个单独的物理硬盘以不同的方 式组合成一个逻辑硬盘,从而提高了 硬盘的读写性能和数据安全性。 • 根据不同的组合方式可以分为不同的 RAID级别 RAID 0 数据条带化,无校验 RAID 1 数据镜像,无校验 RAID 2 海明码错误校验及校正 RAID 3 数据条带化读写,校验信息存放于专用硬盘 RAID 4 单次写数据采用单个硬盘,校验信息存放于专用硬盘 RAID 5 数据条带化,校验信息分布式存放 RAID 6 数据条带化,分布式校验并提供两级冗余 6
- 94.RAID基本原理——条带 分条 条带 硬盘0 硬盘1 硬盘2 硬盘3 7
- 95.RAID基本原理——校验 异或 XOR 的校验原理 A0值 A1值 P值 0 0 0 1 0 1 0 1 1 1 1 0 P= A0 XOR A1 异或运算 A0 A1 P 数据盘 数据盘 校验盘 数据A0和A1通过异或运算进行奇偶 校验得到校验位P 8
- 96.RAID基本原理 ——重建(Rebuild) XOR A0 XOR 故障 更换 A0 A1 A2 数据盘 数据盘 数据盘 P 校验盘 9
- 97.RAID组状态 RAID组 创建 RAID组 失效 RAID组 降级 10
- 98.物理卷和逻辑卷 • RAID由几个硬盘组成 ,从整体上看相当于一个物理卷 • 在物理卷的基础上可以按照指定容量创建一个或多个逻辑卷,通过LUN (Logic Unit Number)来标识 逻辑卷 LUN1 逻辑卷 LUN2 LUN3 物理卷 物理卷 RAID10 RAID5 单个物理卷上创建1个逻辑卷 单个物理卷上创建2个逻辑卷 11
- 99.物理卷和逻辑卷(续) LUN1 LUN2 LUN3 逻辑卷 分割 物理卷 (RAID) 物理磁盘 12
- 100.RAID级别 —— RAID 0 RAID0即没有容错设计的条带硬盘阵列(Striped Disk Array without Fault Tolerance), 以条带形式将RAID组的数据均匀分布在各个硬盘中 数据 A B C D E F G H …… 优点 ü极高的读写效率 ü速度快,由于不存在校验,所以不占用 cpu资源 ü部署简单 A B C D E F G H I J K L 缺点 û无冗余,通常和其他RAID级别混合使用 û不适合用于关键数据环境 最小硬盘数 2 13
- 101.RAID级别 —— RAID 1 RAID 1又称镜像(Mirror),数据同时一致写到主硬盘和镜像硬盘 数据 A B C D E …… 优点 ü提供了很高的数据安全性和可用性 ü100%的数据冗余 ü设计、使用简单 ü不作校验计算,CPU占用资源少 A B C D E = A B C D E 缺点 û空间利用率只有1/2 û相对于单个硬盘,无法提高写性能 硬盘数 2 14
- 102.RAID级别 —— RAID 2 RAID 2 采用早期的海明码校验组成硬盘阵列,RAID中第1个、第2个、第4个……第2 的n次幂个硬盘都是校验盘。RAID2的硬盘利用率很低,目前基本不再使用 A0 A1 A2 A3 B0 B1 B2 B3 C0 ECC/Ax ECC/Ay A0 ECC/Az A1 A2 A3 ECC/Bx ECC/By B0 ECC/Bz B1 B2 B3 ECC/Cx ECC/Cy C0 ECC/Cz C1 C2 C3 ECC/Dx ECC/Dy D0 ECC/Dz D1 D2 D3 数据盘 校验盘 C1 C2 15
- 103.RAID级别 —— RAID 3 RAID 3即有校验的并行数据传输(Paralleled transfer with parity),数据条带化分布在数据盘中,同 时使用专用校验硬盘存放校验数据 A B C D …… 优点 ü数据分布式存储在连续的硬盘上, 具有较高的读速率,适合大文件连续 读操作的应用 ü如果有一个硬盘损坏,数据的有效 异或运算 性没有影响 A0 A1 A2 PA B0 B1 B2 PB C0 C1 C2 PC D0 D1 D2 PD 数据盘 校验盘 缺点 û校验盘是整个硬盘阵列系统的瓶颈 û有数据盘故障时,每次读操作时都 需要进行校验计算,读性能大幅度下 降 最小硬盘数 3 16
- 104.RAID级别 —— RAID 4 RAID 4是独立的数据硬盘与共享的校验硬盘( Independent data disks with shared parity disk),与 RAID 3类似,不同在于对数据访问是每次一个盘,而RAID 3是每次一个条带,RAID4的读写性能较差, 目前较少使用 A0 A1 A2 A3 B0 B1 B2 B3 C0 …… 异或运算 A0 B0 C0 D0 P0 A1 B1 C1 D1 P1 A2 B2 C2 D2 P2 A3 B3 C3 D3 P3 数据盘 校验盘 17
- 105.RAID级别 —— RAID 5 RAID 5与RAID 3机制类似,但校验数据均匀分布在各数据硬盘上,RAID成员硬盘上同时保存数 据和校验信息,数据块和对应的校验信息保存在不同硬盘上。RAID 5是最常用的RAID方式之一 数据 A0 异或运算 A0 A1 A2 A3 P4 B0 C0 D0 A1 B1 B0 B1 B2 P3 B4 C1 E1 A2 B2 C0 C1 P2 C3 C4 校验信息Px分布式存储 D0 P1 D2 D3 D4 D2 …… P0 E1 E2 E3 E4 优点 ü高读取速率,中等写速率 ü提供一定程度的数据安全 缺点 ûRAID组里单块硬盘的故障, 会导致其他硬盘读写性能大 幅度下降 最小硬 3 盘数 18
- 106.常用RAID比较 RAID级别 RAID 0 RAID 1 RAID 3 RAID 5 别名 条带 镜像 专用奇偶位条带 分布奇偶位条带 容错性 无 有 有 有 冗余类型 无 复制 奇偶校验 奇偶校验 热备盘选项 无 有 有 有 读性能 高 低 高 高 随机写性能 高 低 最低 低 连续写性能 高 低 低 低 最小硬盘数 2块 2块 3块 3块 可用容量 N * 单块硬盘容量,N为 (N /2) * 单块硬盘容量, N为 (N -1) * 单块硬盘容量, N为 (N -1) * 单块硬盘容量, N为 RAID组成员数量,一般 RAID组成员数量,一般不大 RAID组成员数量,一般不大于 RAID组成员数量,一般不大 不大于16 于16 16 于16 迅速读写,安全性要求 随机数据写入,安全性要求高, 连续数据传输,安全性要求高, 随机数据传输,安全性要求高, 不高,如图形工作站等 如服务器、数据库存储领域 典型应用环境 如视频编辑、大型数据库等 19 如金融、数据库、存储等
- 107.RAID硬盘失效处理 • 热备:HotSpare • 定义:当冗余的RAID组中某个硬盘失效时,在不干扰 当前RAID系统的正常使用的情况下,用RAID系统中另 外一个正常的备用硬盘自动顶替失效硬盘,及时保证 RAID系统的冗余性 全局热备示例 磁盘阵列 热备盘 • 全局式:备用硬盘为系统中所有的冗余RAID组共享 • 专用式:备用硬盘为系统中某一组冗余RAID组专用 磁盘1 磁盘2 RAID 5 • 热插拔:HotSwap • 定义:在不影响系统正常运转的情况下,用正常的硬 盘物理替换RAID系统中失效硬盘 磁盘3 磁盘4 磁盘5 磁盘6 RAID 5 该热备盘由系统中两个RAID组共享, 可自动顶替任何一个RAID中的一个失效硬盘 • 关键在于热插拔时电子器件的保护机制 20
- 108.RAID的发展 • The authors of the 1988 original RAID paper (Patterson, Gibson and Katz) all moved on longago:• Patterson to scale-out object storage and much more; • Gibson to Panasas, a scale-out object storage company he co-founded; • Katz has been working on Hadoop among many other projects. • RAID uses erasure coding to create parity information that protects a RAID array from 1 (RAID5) or 2 (RAID6) uncorrectable read errors. 21
- 109.Erasure coding示例 • How to store a 12GB video 22
- 110.Erasure coding示例(续) • How to store a 12GB video 23
- 111.Erasure coding是RAID的通式 File or data object A m=2 A B A A B B A+B A+B (2+1) erasure coding, used in RAID 5 A+2B B (2+2) erasure coding. Tolerates any 2 failures Used in RAID 6 24
- 112.Erasure coding定义 • Erasure coding是一种技术:可以将n份原始数据,增加m份数据,并 能通过n+m份中的任意n份数据,还原为原始数据。 • 包括encode和decode两个过程,将原始的n份数据变为n+m份是 encode,之后这n+m份数据可存放在不同的device上,如果有任意小 于m份的数据失效,仍然能通过剩下的数据还原出来。 • Reed-Solomon Codes是最基本的一种。RS codes是基于有限域的一 种编码算法,有限域又称为Galois Field,是以法国著名数学家Galois命 名的,在RS codes中使用GF(2^w),其中2^w >= n + m. 25
- 113.Reed-Solomon Codes 分发矩阵(Distribution Matrix) 需要考虑的问题: 1) 如何构造Distribution Matrix – B 2) B'是否一定存在可逆矩阵 3) 矩阵运算的CPU开销 4) 分布式环境下数据传输的开销 26
- 114.进一步阅读 • Cheng Huang, Huseyin Simitci, Yikang Xu, Aaron Ogus, Brad Calder, Parikshit Gopalan, Jin Li, and Sergey Yekhanin. Erasure Coding in Windows Azure Storage, USENIX ATC, Boston, MA, June 2012 • James S. Plank, Cheng Huang.Tutorial:Erasure Coding for Storage Applications. FAST'13, 2013 • Mingyuan Xia, Mohit Saxena, Mario Blaum, and David A. Pease. A Tale of Two Erasure Codes in HDFS. FAST'15, 2015 27
- 115.第二章 存储技术基础 翁楚良https://chuliangweng.github.io2016 秋 ECNU 1
- 116.提纲 • 存储硬件组成 • 存储软件过程 • 磁盘基本原理 • 盘阵系统结构 • 缓存管理技术 • 并行存取技术 2
- 117.Cache介绍 • Cache的工作方式 • The cache goes between the processor and the slower, dynamic main memory. • It keeps a copy of the most frequently used data from the main memory. • Cache的作用 • Reads and writes to the most frequently used addresses will be serviced by the cache. • We only need to access the slower main memory for less frequently used data. CPU A little static RAM (cache) Lots of dynamic RAM 3
- 118.扩展的Memory系统 Processor Control Memory MemorySpeed:FastestSize:SmallestCost:Highest Memory Memory Datapath Memory Slowest Biggest Lowest 4
- 119.层次化存储结构 Upper Level Capacity Access Time Cost CPU Registers 100s Bytes <10s ns Cache K Bytes 10-100 ns $.01-.001/bit Main Memory M Bytes 100ns-1us $.01-.001 Disk G Bytes ms 10-3- 10-4cents Tape infinite sec-min 10 -6 Staging Xfer Unit faster Registers Instr. Operands prog./compiler 1-8 bytes Cache Blocks cache cntl 8-128 bytes Memory Pages OS 512-4K bytes Files user/operator Mbytes Disk Tape Larger Lower Level 5
- 120.The principle of locality § It’s usually difficult or impossible to figure out what data will be “most frequently accessed” before a program actually runs, which makes it hard to know what to store into the small, precious cache memory. § But in practice, most programs exhibit locality, which the cache can take advantage of. — The principle of temporal locality says that if a program accesses one memory address, there is a good chance that it will access the same address again. — The principle of spatial locality says that if a program accesses one memory address, there is a good chance that it will also access other nearby addresses. 6
- 121.Temporal locality in programs § The principle of temporal locality says that if a program accesses one memory address, there is a good chance that it will access the same address again. § Loops are excellent examples of temporal locality in programs. — The loop body will be executed many times. — The computer will need to access those same few locations of the instruction memory repeatedly. § Forexample:Loop:lw add sw addi bne $t0, $t0, $t0, $s1, $s1, 0($s1) $t0, $s2 0($s1) $s1, -4 $0, Loop — Each instruction will be fetched over and over again, once on every loop iteration. 7
- 122.Temporal locality in data § Programs often access the same variables over and over, especially within loops. Below, sum and i are repeatedly read and written. sum = 0; for (i = 0; i < MAX; i++) sum = sum + f(i); § Commonly-accessed variables can sometimes be kept in registers, but this is not always possible. — There are a limited number of registers. — There are situations where the data must be kept in memory, as is the case with shared or dynamically-allocated memory. 8
- 123.Spatial locality in programs § The principle of spatial locality says that if a program accesses one memory address, there is a good chance that it will also access other nearby addresses. sub sw sw sw sw $sp, $ra, $s0, $a0, $a1, $sp, 16 0($sp) 4($sp) 8($sp) 12($sp) § Nearly every program exhibits spatial locality, because instructions are usually executed in sequence—if we execute an instruction at memory location i, then we will probably also execute the next instruction, at memory location i+1. § Code fragments such as loops exhibit both temporal and spatial locality. 9
- 124.Spatial locality in data § Programs often access data that is stored contiguously. § Arrays, like a in the code on the top, are stored in memory contiguously. § The individual fields of a record or object like employee are also kept contiguously in memory. sum = 0; for (i = 0; i < MAX; i++) sum = sum + a[i]; employee.name = “Homer Simpson”; employee.boss = “Mr. Burns”; employee.age = 45; 10
- 125.Cache作用 •Hit:data appears in some block in the upper level (example:Block X) • HitRate:the fraction of memory access found To Processor Upper Level (Cache) Lower Level (Memory) Blk X From Processor Blk Y in the upper level • HitTime:Time to access the upper level which consists of RAM access time + Time to determine hit/miss •Miss:data needs to be retrieve from a block in the lower level (Block Y) • Miss Rate = 1 - (Hit Rate) • Miss Penalty = Time to replace a block in the upper level + Time to deliver the block the processor • Hit Time << Miss Penalty Typical Values Block (line) size Hit time Miss penalty (access time) (transfer time) Miss rate Cache Size 4 - 128 bytes 1 - 4 cycles 8 - 32 cycles (and increasing) (6-10 cycles) (2 - 22 cycles) 1% - 20% 1 KB - 256 KB 11
- 126.Cache机制的广泛应用 12
- 127.Cache设计问题 • Cache数据结构 • Cache里的数据组织结构, 如队列、数组等 • 数据进入Cache的映射方式 等 • Cache内容管理 • 哪些数据要进行缓存,哪些 数据可不缓存 • Cache满了怎么处理 • Cache一致性管理 • 缓存与主存数的一致性管理 • 多个缓存间数据一致性管理 13
- 128.Cache数据结构 – 处理器高速缓存 • Cache line • Cache Metadata • Cache Data • Cache的映射方式 • 直接映射: (块地址) MOD (Cache中的块数) • 组映射: (块地址) MOD (Cache中的组数) • 全映射: 一个块可以放到Cache中的任何位置 14
- 129.Cache的内容管理 – 处理器高速缓存 • 内容管理确定哪些数据块需要在Cache中缓存,理想状态下Cache中缓存未 来一段时间内需要访问的数据块 • 理想情况在实际中并不存在,因此实际采用启发式方法(Heuristic Methods) • 在处理器高速缓存中通过硬件机制缓存最近刚刚访问过的数据块 • 当Cache中数据块满了之后,新需要注入的数据块如何替换已有的数据块 • 随机替换策略 • 最近最少使用替换策略(LRU) • 先进先出替换策略(FIFO) 15
- 130.Cache一致性管理 – 处理器高速缓存 • 由于Cache的存在,数据可能存在于 Cache和/或下一级存储层次中,当数 据写入时 • 写命中:写入的数据在高速缓存中 • 确认命中,才可以对Cache块写入,写入 后可能导致与主存内容不一致 • 要解决主存内容更新问题,保持数据的正 确性 • 写未命中:指令对主存进行写入的操作数 没有在高速缓存中 • 写入的数据是否还要将其读回Cache呢? • 写直达:写入Cache的同时也写入下一级存储 层次中 • 写回法:只写入Cache,在被替换时才写回下 一级存储层次中 • 写分配法( write allocate ):先把数据所在的 块调入Cache,然后再进行写入 • 类似读失效的方式,也称fetch on write • 不写分配法( no-write allocate ):直接把数 据写入下一级存储器,不将相应的块调入 Cache • 也称write around 16
- 131.Cache数据结构 – 阵列控制器缓存 • 阵列控制器中的Cache不同于主机中的Cache • 主机Cache的下一级存储器是主存,而阵列控制器的Cache 的下一级存储器是磁盘驱动器 • 主存的容量远小于磁盘驱动器的容量,而速度则比磁盘存储 器的速度快得多 • 控制器Cache的调度算法可参考主存Cache的调度算法,但 应考虑磁盘驱动器的性能而加以调整 m n+k • 2 个磁盘构成的阵列,每个盘存储2 个数据块, Cache的容量为2 m+s 个块,采用组映射,每组4个块。 17
- 132.Cache一致性管理 – 阵列控制器缓存 • 由于Cache的存在,数据可能存在于Cache和/或磁盘中, 当数据写入时,除了考虑数据的一致性,同时需要结合 磁盘的特性,考虑I/O合并等,减少磁盘操作,可显著 提升性能。 • 写回法:可以将回写到同一磁盘驱动器(对于磁盘阵列或 其他多盘系统)的数据进行合并以减少对磁盘驱动器的 I/O操作次数,从而减少回写操作。 • 在Cache-主存层次结构中,两个存储层次的速度差很小, 而在Cache一磁盘驱动器层次结构中,两者读、写速度差 别很大 • 写直达(写穿):在系统中实现要简单许多,但通常比写 回法性能较差 18
- 133.Cache的内容管理 – 阵列控制器缓存 • 当一块数据装入Cache时,可能遇到 三种情况之一: • 有空间可以存放该块(命中) • 未命中,但仍有空间 • 未命中,且无存放空间(失效),必须腾空 Cache中的某块,将修改过的数据回写到 磁盘驱动器 • 腾空是替换数据的前提,替换算法有 许多种,无论哪种替换算法都是基于 判断现存数据块目前是否使用,以便 腾出有限空间调入未命中的数据块。 • LRU替换算法只考虑替换近期最少被访问的行, 仅考虑了同组数据的相关性,却未曾考虑组间数 据的相关性. • 纵横LRU替换算法 • 当出现Cache失效时,一次性地淘汰在近期 最少使用的且在物理位置上相邻的数据块, 这样在下一次操作时只发生“不命中”而不 会发生“失效”. • 当主机访问时,若数据量很大,对磁盘阵列 可能出现:当第i块数据在j驱动器上,第i+1 块数据必定在( j+l)mod N驱动器上;此时在 驱动器上若j组的i块失效,则( j+ 1) modN组 的i+1块数据也可能失效,即组与组之间的数 据块具有相关性。因此采取组内与组间同时 替换的LRU替换算法 19
- 134.Memcached • Memcached是一种高性能分布式内存缓存服务 器,用来缓存数据库的查询结果,减少数据库 的访问,从而减轻数据库压力。 • Memcached最早是被LiveJournal的开发团队 所开发使用,目前已被世界很多大负载网站所 采用。 • Memcache的工作机制:Memcache的工作机 制是在内存中开辟一块空间,然后建立起一个 HashTable,Memcached自管理这个 HashTable。 20
- 135.Cache数据结构 – Memcached • Memcached存取的对象 • key<—>value的形式存储在服务器端内存中 • 存储的数据不是持久的,一旦服务器停止数据就会丢 • Memcache采用C/S模式,使用TCP链接与服务器通信 • Memcached 是以守护程序方式运行于一个或多个服务器中,随时接受客户端的连接 操作 • 客户端与 Memcached 服务建立连接后进行对象存取,每个被存取的对象都有一个唯一的 标志key,存取操作都是通过这个key进行的 • 存储数据对象时,key 的值通过 hash 进行转换,根据 hash 值把 value 传递到对应的 具体的某个 Server 上 • 获取对象数据时,同样根据 key 进行。首先对 key 进行 hash,通过获得的值可以确 定它被保存在了哪台 Server 上,然后再向该 Server 发出请求 21
- 136.Cache数据结构 – Memcached • Slab Allocator的基本原理是按照预先规 定的大小,将分配的内存分割成特定长 度的块,以完全解决内存碎片问题 • Slab Allocation的原理相当简单。 将分 配的内存分割成各种尺寸的块(chunk), 并把尺寸相同的块分成组(chunk的集合) 22
- 137.Cache数据结构 – Memcached • Page:分配给Slab的内存空间,默认是1MB。 分配给Slab之后根据slab的大小切分成chunk • Chunk:用于缓存记录的内存空间 • Slab Class:特定大小的chunk的组 • memcached根据收到的数据的大小,选择最适 合数据大小的slab。 • memcached中保存着slab内空闲chunk的列表, 根据该列表选择chunk,然后将数据缓存于其中 23
- 138.Cache的内容管理 – Memcached • Lazy Expiration • Memcached内部不会监视记录是否过期,而是在get时查看记录的时间戳,检 查记录是否过期,这种技术称为lazy expiration。因此,Memcached不会在 过期监视上耗费CPU时间。Memcache的默认最大数据过期时间是30天。 • LRU • Memcached会优先使用已超时的记录的空间,但即使如此,也会发生追加新 记录时空间不足的情况,此时就要使用名为 Least Recently Used(LRU)机 制来分配空间。顾名思义,这是删除“最近最少使用”的记录的机制。因此, 当Memcached的内存空间不足时(无法从slab class 获取到新的空间时), 就从最近未被使用的记录中搜索,并将其空间分配给新的记录。 24
- 139.Cache一致性管理 – Memcached • Memcached允许多个 Server 协同工作,但这些 Server 之间是没有任何通 讯联系的,每个Server只是对自己的数据进行管理 • Memcached默认存储的数据不是持久的,一旦服务停止,数据会丢失,数 据更新由客户端负责 • Cache AsidePattern:直接更新下一级存储(如数据库),成功后使memcached中的数 据失效(如果在缓存中) • WriteThrough:当有数据更新的时候,如果没有命中缓存,直接更新数据库,然后返 回。如果命中了缓存,则更新缓存,然后再由Cache自己更新数据库(同步操作) • WriteBack:在更新数据的时候,只更新缓存,不更新数据库,而异步地批量更新至下 一级存储 25
- 140.进一步阅读 • Bruce Jacob, Spencer Ng, David Wang. MemorySystems:Cache, DRAM, Disk. Morgan Kaufmann Publishers, September 2007. • Chapter 1 • John L. Hennessy and David A. Patterson. ComputerArchitecture:A Quantitative Approach. Fifth Edition, 2012 • Appendix-B.1 • 张江陵、冯丹. 海量信息存储,科学出版社, 2003 • Chapter 7.4 • Memcached.http://memcached.org26
- 141.第二章 存储技术基础 翁楚良https://chuliangweng.github.io2016 秋 ECNU 1
- 142.提纲 • 存储硬件组成 • 存储软件过程 • 磁盘基本原理 • 盘阵系统结构 • 缓存管理技术 • 存储性能优化 2
- 143.并行存取与聚散操作 • 灵活利用底层硬件特性提高性能 • 并行存取研究多磁盘驱动器串的串间和串内的并行处理 • 数据聚散研究在命令集合和减少I/O次数后如何利用Cache管理实现数据聚/散 (Gather/Scatter) • 并行存取 • 包括存储系统体系结构的并行性,高速并行通道及其连接技术(总线、网络等并 行连接技术)、控制器对多任务并行调度的硬件配置、多串磁盘驱动器(或其他 存储设备)的并行调度方法和串内的并发操作以及容错、编译码的并行性等等. • 数据聚散 • 主要是讨论利用控制器和适配器中的缓存,实现数据的集中写和分散读,以达 到I/O命令的合并,节省系统开销,从而提高数据的存取速度. 3
- 144.并行存储系统 系统框图 • 并行存储系统. • 3个串控制器:SC(1),SC(2),SC(3) • 3串磁盘驱动器:SD(1),SD(2),SD(3) • 主控制器 • 由主处理器(CPU)、缓存(RAM)和固化并行 程序与嵌人式操作系统的只读存储器(ROM) 组成. • 串控制器 • 磁盘驱动器的适配器,因使用的设备接口的 不同而异,可以是SCSI适配器、FC适配器 或SSA适配器中的一种 • 也可以是具有更强的独立工作能力的专门设 计的串控制器 存取路径 4
- 145.并行存储系统 系统框图 • 并行存取的基本要求: • 主处理器具有足够的运算能力 • 运行实时操作系统 • 管理和并行化存取操作 • 外部设备总线具有高的带宽 • 多串同时复用总线,应当具有更高的带 宽,避免总线成为系统“瓶颈” • 串控制器(或适配器)具有一定的独立 处理能力 • 只有具有这种独立性,才能达到多磁盘 驱动器串的重叠运行 • 通过重叠运行隐藏磁盘驱动器过长的寻 道时间和旋转等待延迟,实现存取的并 行处理 存取路径 5
- 146.并行存储系统 • 处理流程 • 系统初始化主要完成与适配器执行相关的内存及 变量设置 • 为适配器程序分配内存,记录其入口调用地址 • 初始化适配器寄存器内容,设置其工作方式,如 是否允许失连,设置数据传送方式(同步或异步), 中断使能等 • 设置适配器Scripts程序中的绝对地址、相对地址 和表地址的内容和参数 • 其他一些参数的设置. • 根据来自主机的SCSI命令,派生一组可并行执行 的命令 • 镜像派生,即每个串执行的命令相同于主机SCSI 命令 • 按一定规则派生,如将来自主机的SCSI命令按阵 列结构派生出相应驱动器上的I/O命令 系统初始化 接收主机命令 命令链派生 初始化适配器参数 启动适配器1 启动适配器2 启动适配器3 适配器执行IO 操作 适配器执行IO 操作 适配器执行IO 操作 产生发送中断 产生发送中断 产生发送中断 中断服务例程 中断服务例程 中断服务例程 收集串状态信息,并返回 6
- 147.并行存储系统性能分析 • 一次存取操作的时间开销 • • • • 控制器主处理器的接收命令、初始化存取调度 -启动适配器时间 -具体的I/O操作时间 -中断服务等待时间 – • 一次单串存取操作的时间 7
- 148.并行存储系统性能分析 通过同步并 行调度( 流水 重叠)消除多个磁盘I/O的 时间,提高总的存取性能 8
- 149.并行存储系统性能分析 • 同步方式 :每一轮中因同 步而等待,以及由主处理器 串行地初始化适配器,造成 时间上的浪费 9
- 150.并行存储系统性能分析 • 异步操作的并行调度 • 每个适配器从被动接受转变为 主动发中断接收命令,相互之 间j异步的操作 • 每个适配器独立地进行I/O操 作,完成一组命令中的一人后 自动执行下一条可执行命令 10
- 151.并行存储系统性能分析 • 同步与异步的性能对比 • 异步调度比同步调度的时间少百分比为 11
- 152.并行存储系统性能分析 磁盘利用率 12
- 153.IO数据聚散 • 合并I/O操作(Combination I/O Operation)是对存储设 备的I/O操作从多次合并为少数几次或一次的操作 • 它将分解到存储设备上的子命令队列按其属性加以归并,同时对 命令的操作数据也相应地加以处理 • I/O操作的合并通常合并同类命令和操作的数据,以减少I/O次 数和增加传输数据的长度 • 合并I/O操作必须了解主机I/O命令的结构 13
- 154.IO数据聚散性能分析 • 设存储系统有n个磁盘驱动器,在分解主机I/O请求命令,形成多 驱动器的子命令队列,合并子命令和数据时有附加系统开销 • 在不作I/O操作合并的一般方式下,平均I/O响应时间 • 在I/O操作合并的一般方式下,平均I/O响应时间 14
- 155.IO数据聚散性能分析 • 当主机I/O请求的数据块大小为L(KB),分块大小为B(KB),L/B=n • 当主机I/O请求的数据块大小为L(KB)小于分块B • 当主机I/O请求的数据块大小为L(KB) > L*n,且 ( )–( )> 合并操作的方式优于一般方式的性能 15
- 156.优化实例分析 Reducing Seek Overhead with Application-Directed Prefetching 16
- 157.IO数据预取(Readahead) • Generally applies to sequential workloads • Harsh penalties for mispredicting accesses • Hard to predict nonsequential access patterns • Some workloads are nonsequential • Databases • Image / Video processing • Scientificworkloads:simulations, experimental data, etc. 17
- 158.非顺序访问(Nonsequential Access) ● ● ● Why so slow? ● Seek costs Possible solutions ● More RAM ● More spindles ● Disk scheduling Why are nonsequential access patterns often scheduled poorly? ● Painful to get right 18
- 159.预取策略 Determining future accesses ● ● Historic access patterns ● Static analysis ● Speculative execution ● Application-directed Using future accesses to influence I/O ● 19
- 160.IO访问举例 Accesspattern:1, 6, 2, 8, 4, 7 No prefetching CPU I/O 1 →6 →2 →8 →4 →7 Traditional prefetching – Overlap I/O & CPU CPU I/O 1 →6 →2 →8 →7 →4 Traditional prefetching – Fast CPU CPU I/O Time 1 →6 →2 →8 →4 → 7 20
- 161.寻道性能 21
- 162.重排降低寻道开销 ● ● ● Minimizing expensive seeks with disk scheduling – reordering Accesspattern:1, 6, 2, 8, 4, 7 Inorder:1 6 2 8 4 ● Reorder:1 2 4 7 6 7 8 22
- 163.重新排序缓存 6 1 CPU Dependency I/O 1 →6 1 CPU Dependency I/O 1 →2 →4 2 →2 6 2 8 →8 4 →4 7 →7 8 4 7 →6 →7 →8 Time ● ● Must buffer out of order requests Reordering limited by buffer space 23
- 164.重排预取(Reorder Prefetching) Accesspattern:1, 6, 2, 8, 4, 7 Traditional prefetching – Fast CPU CPU I/O 1 →6 →2 →8 →4 →7 Reorder prefetching – Buffer size = 3 CPU I/O 1 2 →6 →7 →4 8 Reorder prefetching – Buffer size = 6 CPU I/O 1 2 Time →4 →6 7 8 24
- 165.缓存大小(buffer size) Random access to a 256MB file with varying amounts of reordering allowed 25
- 166.Buffer Size 26
- 167.随机IO访问实测性能 ● SQLite secondary key query RAM 27
- 168.进一步阅读 • 张江陵、冯丹. 海量信息存储,科学出版社, 2003 • Chapter 8.1-8.2 • Steve VanDeBogart, Christopher Frost, and Eddie Kohler. Reducing Seek Overhead with Application-Directed Prefetching. Proceedings of the 2009 USENIX Annual Technical Conference (USENIX 2009), 2009 • Yanlong Yin, Surendra Byna, Huaiming Song, Xian-He Sun and Rajeev Thakur, Boosting Application-Specific Parallel I/O Optimization Using IOSIG, in the Proc. of the 12th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (CCGrid'12), May 2012. • Babak Behzad, Surendra Byna, Stefan M. Wild, Prabhat, Marc Snir. Dynamic Model-driven Parallel I/O Performance Tuning. IEEE International Conference on Cluster Computing, 2015 28
- 169.第三章 新型固态存储技术 翁楚良https://chuliangweng.github.io2016 秋 ECNU 1
- 170.提纲 • 闪存技术基础 • 闪存转换层 • 新型NVM存储 2
- 171.闪存 • 闪存(Flash Memory)是一种电可擦 除可编程只读存储器(EEPROM)变种, 由日本东芝公司最先开发 • 闪存是一种纯粹的电子设备,不包含 任何机械部件,靠电路控制进行存取 操作 • 电路以浮栅是否带电来表示存储 1 或者存储 0 3
- 172.闪存基本原理 • 闪存的存储单元为三端器件 • 源极、漏极和栅极 • 栅极与硅衬底之间有二氧化硅绝缘层, 用来保护浮置栅极中的电荷不会泄漏 • 控制栅极接某一电压,通过变化电压 进行操作 • 若为正电压,浮置栅极与漏极之间产生 隧道效应,使电子注入浮置栅极,即编 程写入。 • 若为负电压,浮置栅极的电子散失,即 擦除。擦除后可重新写入。 4
- 173.闪存读写特征 • 擦除是在源极加正电压利用浮置栅极与源极之间的隧道效应,把注 入至浮空栅的负电荷吸引到源极 • 擦除将有所数据归1 • 由于利用源极加正电压擦除,因此各单元的源极联在一起,这样擦除存储器 不能按字节擦除,而是全片或分块擦除(NAND) • 读取数据时,向栅电极施加一定的电压 • 电流大为1,电流小则定为0 • 写入时只有数据为0时才进行写入,数据为1时则什么也不做 • 写入0时,向栅电极和漏极施加高电压,增加在源极和漏极之间传导的电子 能量,使得电子突破氧化膜绝缘体,进入浮动栅 5
- 174.闪存分类 • 闪存通常包括 NOR 和 NAND 两种类型 • NOR闪存 闪存是一种随机访问设备,具有专用的地址和数据线(和 SRAM 类似),以字节的 • NOR 方式进行读写,允许对存储器当中的任何位置进行访问 NOR 闪存是传统的只读存储器(ROM)的一种很好的替代方案,比如计算机的 BIOS 芯 • 片。 • NAND闪存 I/O 的接口 • NAND闪存没有专用的地址线,不能直接寻址,是通过一个间接的、类似 来发送命令和地址来进行控制的 • NAND 闪存只能够以页的方式进行访问,存储密度高 6
- 175.两种闪存技术对比 属性 NOR 闪存 NAND 闪存 访问模式 线性随机访问 以页的方式进行访问 存储密度 存储能力比较低 单元存储密度高 擦写次数 10~100 万次 1~10 万次 擦写速度 写入和擦除速度较慢 写入和擦除速度很快 主要用途 适用程序存储 适用存储数据 7
- 176.NAND闪存 • 目前存储产品多数采用NAND闪存 • NAND闪存又可分为两种类型 • SLC, Single-Level Cell:每个存储单元中存储1位 • MLC,Multi-Level Cell:每个存储单元中存储2位(不同级别电压) • 可进一步提高单位容量,降低单位成本,但可靠性受多电压影响相对低些 • TLC, Trinary-Level Cell:每个存储单元中存储3位 • NAND闪存的读写操作单元通常是一个页的大小(即512KB) • 与传统磁盘的行为非常类似 • 写代价和擦除代价都要明显高于读代价,都需要进行“写前擦除”操作 • 有一定的使用寿命(读写次数有限) 8
- 177.闪存的组织结构 • 闪存芯片由一组数据存储单元阵列组成的, 包含许多个块。 • 每个块又包含许多个页(如是 32 个页) • 一个页是 512 字节 (早期与磁盘的扇区保 持一致) • 三星公司的闪存芯片产品 (K9G8G08UOM芯片)的阵列组织结构 图 • 这款闪存芯片一共包含4096个块,每个块 包含128个页,每个页的数据区域大小是 2KB,备用区域的大小是64B • 其容量是8448MB 9
- 178.闪存操作特征 • 三种操作 • 闪存页状态:有效、无效、自由/擦除 • 读操作: 返回被读取目标页的所有位 • 写操作: 把目标页中选中的一些位从1变成0 • 擦除操作:把目标块的所有位都设置为1 • 当没有数据被写入一个页时,这个页就处于“擦 除”状态,这时,页中的所有位都是1 • 一个写操作只能针对处于擦除状态的页,然后把 这个页的状态改变为“有效” • 异地更新会导致一些页面不再有效,它们被称为 “无效页” • 三种操作开销对比、与其它介质的操作开销对比 读操作 写操作 擦除操作 闪存 25微秒/512字节 200微秒/512字节 2毫秒/2KB DRAM 100纳秒/字节 100纳秒/字节 无 磁盘 12.4毫秒/512字节 12.4毫秒/512字节 无 10
- 179.闪存的特性小结 • 无机械延迟 • 是一种电子设备,通过电路实现直接寻址 • 读取数据,不需机械寻址,都可以获得较快的速度 • 操作单元是页 • 对于不同的产品,一个页的大小可能是2KB或者 4KB • 写前擦除 • 磁盘采用“就地更新”方式,在更新一个数据项时, 首先找到这个数据项的存储位置,然后,就在原地 执行更新操作,直接覆盖原来数据 • 闪存一般采用“异地更新”方式,即在更新数据时, 把更新操作引导到其他空闲页执行,原来旧数据所 在的页可以暂时不擦除,简单设置为“无效”,等 到垃圾回收时统一执行擦除操作 11
- 180.闪存的特性小结(续) • 擦除操作粒度通大于写操作粒度 • 写操作的最小单元是页 • 擦除操作是通常是对一组置为无效的页进行、同时 擦除次数是有限的 • 读写速度不对称 • 读取数据时只需要获得闪存中某个存储单元的状态 即可 • 写入数据时需要向相应的存储单元中填充电子直到 达到一个稳定的状态 • 读取数据和写入数据的速度前者要比后者快一个数 量级 • 如读操作和写操作的访问延迟分别为25微秒和200微秒 12
- 181.固态盘SSD • 固态盘(SSD:Solid State Disk)是指用固态电子 存储芯片阵列而制成的硬盘,由控制单元和存储 单元组成 • 固态盘的接口规范和定义、功能及使用方法上与 机械式硬盘完全相同,在产品外形和尺寸上也完 全与机械式硬盘一致 • 主要组成包括NAND存储芯片、组主控制芯片 • 主控芯片是固态盘的核心部件,负责合理调配数据 在各个闪存芯片上的存取,承担了整个数据中转任 务,连接闪存芯片和外部接口 • 主控芯片之间在数据处理能力、算法、对闪存芯片 的读取写入控制上,存在差异,最终性能上也有相 应差异 13
- 182.固态盘结构 • I/O接口 • 负责接收来自外部的读写请求,并返回结果。I/O接口一般采用和机械 式硬盘类似的标准接口,比如SATA、PATA或PCMCIA接口,因此,固 态盘可以直接被集成到那些原来采用机械式硬盘的系统中。 • 控制器 • 负责管理闪存空间,完成数据读写请求 • 控制器中包含处理器、缓冲区管理器和闪存存储器控制器 • 处理器负责从ROM中读取加载FTL,实现FTL各种功能 • 缓冲区管理器负责管理内置缓冲区; • 闪存存储器控制器负责闪存存储器的连接、控制、读写命令传输、地址传输 和数据传输 • FTL(闪存转换层) • FTL被固化到ROM中,当系统启动时控制器从ROM中加载FTL • FTL是最核心的组件,隐藏了闪存的特性,可以让线性的闪存设备看起 来像一个虚拟磁盘 • FTL的功能包括提供逻辑地址到物理地址的映射、断电恢复、垃圾回收 和磨损均衡等 14
- 183.固态盘结构 • 内置缓冲区 • 用来存储地址映射表等信息,加快地址转换过程 • 有些固态盘采用专用的DRAM作为内置缓冲区来保存元数据或数据 • 有些固态盘则采用成本相对低一些的SRAM, SRAM读写速度比闪存芯 片快许多 • 通常一个固态盘配置的SRAM容量为闪存空间的3%到5%左右。此外, SRAM是易失性存储,一旦断电就会丢失信息 • NAND闪存芯片 • 是最终用来存储数据的物理介质,包含许多个块,一个块中又包含许多 个页 • 固态盘的工作基本流程 • 固态盘在接收到读写命令、逻辑地址和数据大小等信息以后,FTL会把 读写命令转换成一系列的闪存内部命令(读、写、擦除),并通过查找 保存在SRAM中的映射表来实现逻辑地址到物理地址的转换 • 这个SRAM中的映射表,最初是通过对闪存可用的空间进行扫描后构建 起来的,此后,更新操作会不断修改映射表条目,记录最新版本数据的 物理存储位置 15
- 184.固态硬盘的并行特性 • Channel级别并行性 • 在一个固态盘中会通过多个通道连接到控制器上,每个通道都可以独立并行操作。有些固态盘会采用多个ECC(Error Correction Code)引 擎和闪存控制器,给每个通道都分配一个,从而可以获得更好的性能 • Package级并行性(或Chip级并行性) • 一个通道会被多个Flash package所共享,每个闪存存储器包可以独立操作。附加在同一个通道上的闪存存储器包,也可以交叉工作 • Die级并行性 • 一个闪存存储器包通常包含两个或者多个Die,每个Die可以被单独选择,并且独立于其他Die而执行自己的命令 • Plane级并行性 • 一个闪存存储器Die通常包含两个或者多个Plane,大多数闪存存储器支持在多个Plane上并行执行相同的操作,包括读、写和擦除操作 16
- 185.固态盘访问特性分析 • 固态盘内部结构特性,对于设计高效的数据存取策略很重要 • 数据块大小、 Interleaving degree、映射策略等 • 但是,这些信息不会公开 • 可以通过运行特定的程度进行分析获取内部结构特征 • • • Chunk size – the size of the largest unit of data that is continuously mapped within an individual domain. Interleaving degree – the number of domains at the same level. The interleaving degree is essentially determined by the redundancy of the resources (e.g. channels). Mapping policy – the method that determines the domain to which a chunk of logical data is mapped. This policy determines the physical data layout. Interleaving degree Chunk Domain 17
- 186.Chuck Size • SSD architects often adopt a RAID-0 like striping mechanism • As a basic mapping unit, a chunk can be mapped in only one domain, and two continuous chunks are mapped in two separate domains • Suppose the chunk size is S. For any read that is aligned to S with a request size no larger than S, only one domain would be involved. • With an offset of S from an aligned position, a read would split into two domains equally. The latter case would be faster. The chunk size is the interval between the bottoms of two consecutive valleys. In this case, the detected chunk size is 8 sectors. 18
- 187.Interleaving Degree accesses to data in multiple domains without resource sharing can achieve a higher • Parallel bandwidth than doing that congested in one domain. the number of domains is D and the data is interleavingly placed across the domains. • Suppose When the stride distance, d, is D × n − 1, where n ≥ 1, every data access would exactly skip over D − 1 domains from the previous position and fall into the same domain. • Since we issue two I/O jobs simultaneously, the parallel data accesses would compete for the same resource and the bandwidth is only around 33MB/sec. With other stride distances, the two parallel jobs would be distributed across two domains and thus could achieve a higher bandwidth (around 40MB/sec). 19
- 188.Pseudocode of uncovering SSD internals 20
- 189.Mapping Policy • Two mapping policies are widely used in practice • LBA-based mapping – for a given logical block address (LBA) with an interleaving degree, D, the block is mapped to a domain number (LBA mod D) • Write-order-based mapping – for the ith write, the block is assigned to a domain number (i mod D). • To determine which mapping policy is adopted, we first randomly overwrite the first 1024MB data with a request size of 4KB, the chunk size. • we repeat the experiment in above page, and we find after randomization, the pattern (repeatedly appearing dips) disappears, which means that the random over writes have changed the block mapping, and LBA-based mapping is not used. 21
- 190.固态盘性能特征 • 固太盘的写特性:随机写与顺序写 因随机写操作会带来代价高昂的块擦除操作, 随机写操作以后,闪存的吞吐量明显下降 闪存设备的性能高度依赖于 IO 历史,随机写操作会引起响应时间上的巨大 变化,导致性能恶化,即使在随机写操作停止后的一段时间内也会如此 22
- 191.固态盘性能特征 • 读写性能与块大小 • 在块大小小于 64 KB 时,读写速度 会随着块大小的增加而显著提高 • 当块大小超过 64KB 时,读写速度 的增幅明显减小 • 读与写操作存在比较大的速度差距 23
- 192.进一步阅读 • Nitin Agrawal, Vijayan Prabhakaran, Ted Wobber, John D. Davis, Mark Manasse, Rina Panigrahy. Design Tradeoffs for SSD Performance.In:'>In: