介绍二级存储与磁盘调度技术。
Overview of Mass Storage Structure
secondary storage:
- HDDs: hard disk drives
- NVM: nonvolatile memory
HDD
磁盘驱动器被视为由逻辑块组成的大型一维数组,逻辑块是数据传输的最小单位。低级格式化在物理介质上创建逻辑块,这些逻辑块按顺序映射到磁盘的扇区中。
映射顺序:映射过程先按顺序遍历该磁道的扇区,接着是该柱面的其余磁道,最后从最外侧到最内侧遍历其余柱面。
存在坏扇区不可用
Average access time = average seek time + average latency
Average I/O time = average access time + (amount to transfer / transfer rate) + controller overhead
影响因素: 传输速率,寻道时间,延迟时间
NVM
分类 | 详情 |
---|---|
常见形式 | 1.基于闪存的非易失性内存用于类似磁盘驱动器的容器中,称为固态硬盘(SSD) 2. USB驱动器(拇指驱动器、闪存驱动器) 3. DRAM磁盘替代品 4. 安装在主板表面的存储设备 5. 智能手机等设备的主要存储 |
与HDD对比 | 1. 可靠性:可能比HDD更可靠 2. 成本:每MB成本更高 3. 寿命:可能较短,需要仔细管理 4. 容量:容量相对较小 5. 速度:速度快得多 6. 接口:标准总线可能太慢,通常直接连接到系统总线(如PCIe),无寻道时间和旋转延迟 |
技术挑战 | 1. 读写以“页”为单位,但不能原位覆盖,必须先擦除,且擦除以更大的“块”为单位 2. 擦除次数有限,约100,000次 3. 使用寿命以每天驱动器写入量(DWPD)衡量,如1TB NAND驱动器额定5DWPD,保修期内每天预计写入5TB不故障 |
控制器算法 | 1. 闪存转换层(FTL)表:由于无法原位覆盖,页面会包含有效和无效数据,控制器通过维护FTL表跟踪有效逻辑块 2. 垃圾回收:将好的数据复制到其他位置,释放可擦除的块,并分配超额配置为垃圾回收提供工作空间,如保留20%的页面用于垃圾回收期间写入数据 3. 磨损均衡:每个存储单元都有使用寿命,需要均匀写入所有单元,避免频繁擦除的块缩短设备寿命 |
Volatile Memory
- Volatile memory主要指DRAM(动态随机存取存储器),其特点是断电后存储的数据会丢失。从技术层面讲,它并不属于严格意义上的二级存储,但在实际应用中却常被当作高速的二级存储设备来使用。
- 应用形式:通常以RAM驱动器的形式呈现,这类驱动器被视作原始块设备,并且一般会进行文件系统格式化。在多种主流操作系统中都有它的身影,例如在Linux系统中对应的是/dev/ram,在macOS系统里可通过diskutil命令来创建,Linux的/tmp文件系统类型为tmpfs也是基于此原理。这使得用户能够运用标准文件操作,将数据临时存储在内存中,保障数据的安全性。
- 性能优势:对于创建、读取、写入和删除文件及其内容等操作,对RAM驱动器进行I/O操作是速度最快的方式。这使得它在需要高速临时存储的场景中具有极大的优势,比如在处理一些对读写速度要求极高的临时数据时,挥发性内存能够显著提升处理效率。
Disk attachment
- 直接连接到主机
- 通过网络连接到主机
- 云存储
Disk Scheduling
磁盘 I/O 请求来源众多,包括操作系统、系统进程和用户进程等。操作系统会为每个磁盘或设备维护一个请求队列。当磁盘空闲时,可处理 I/O 请求;若磁盘忙碌,新请求则需排队等待 。
磁盘调度的主要目标是最小化寻道时间,因为寻道时间在磁盘访问时间中占比较大,减少寻道时间能显著提升磁盘性能。而旋转延迟难以由操作系统精确计算,所以磁盘调度算法主要针对寻道时间进行优化 。
Scheduling Algorithms
- First-Come, First-Served (FCFS) Scheduling
- Shortest Seek Time First (SSTF) Scheduling
- SCAN Scheduling: 先向一端移动,到达后反向移动
- C-SCAN Scheduling: 先向一端移动,到达后直接跳到另一端,可以平均分配寻道时间
- LOOK/C-LOOK Scheduling: 相对于上述两种算法的改进,不再移动到一端而是移动到最后一个请求的磁道
- NVM Scheduling: 直接连接到主机的NVM设备通常不需要调度,因为它们没有寻道时间和旋转延迟
- 直通式调度
- 写入聚合
Storage Device and Swap Space Management
Storage Device Management
- 低级格式化/物理格式化: 划分扇区,一般512字节
- 高级格式化/逻辑格式化: 创建文件系统,创建目录结构和文件分配表.磁盘I/O以块为单位,文件I/O以cluster为单位
根分区:存放操作系统,系统启动时挂载到根目录
挂载(mounted):将存储设备融入到操作系统的文件系统目录结构中,使得用户和应用程序可以像访问本地文件一样对存储设备中的数据进行操作。
引导块:引导块是存储设备上的第一个或特定位置的扇区,包含引导计算机所必需的初始程序代码
Swap-Space Management
内存不足时,操作系统会将部分内存内容转移到磁盘上的交换空间(swap space)中,以释放内存供其他进程使用。交换空间可以是一个专用的分区或文件。
Storage Attachment
Host-Attached
计算机通过本地 I/O 端口连接存储设备,若需要连接多个存储设备,可借助一些存储总线来实现。在高端系统中,会采用光纤通道(FC,Fiber Channel)技术。
Network-Attached
- 定义与概念:NAS是使存储设备通过网络而不是本地连接(如总线)提供存储服务的技术。它允许远程挂载文件系统,使多个客户端能够通过网络访问存储设备中的文件和数据。
- 实现协议:常用的协议有NFS(Network File System)和CIFS(Common Internet File System) ,它们通过远程过程调用(RPC)在IP网络上实现主机和存储设备之间的通信,通常基于TCP或UDP协议进行数据传输 。此外,iSCSI协议利用IP网络来承载SCSI协议,使网络成为主机和存储设备之间的连接方式 。
- 连接方式:与传统的通过SCSI电缆连接主机和存储设备不同,网络连接存储使用网络作为主机和存储设备之间的互连方式。客户端通过LAN(局域网)或WAN(广域网)连接到NAS设备,实现对存储资源的访问 。
Cloud Storage
- 云存储的基本概念:云存储与NAS类似,都能让用户通过网络访问存储资源。但云存储是通过互联网或广域网(WAN)来访问远程数据中心的存储,而不是像NAS那样通过局域网连接。比如用户使用Dropbox、Microsoft OneDrive、Apple iCloud和上海交通大学的Jbox等云存储服务,数据存储在远程的数据中心服务器上,用户借助网络进行数据的存储和读取 。
- 云存储与NAS的区别:NAS呈现为一个普通的文件系统,用户可像操作本地文件系统一样对其进行操作。而云存储基于API(应用程序编程接口)提供服务,应用程序通过调用这些API来实现对云存储的访问 。这是因为云存储面临的网络环境更为复杂,存在较高的延迟和可能的故障情况,传统的NAS协议无法很好地适应这些问题,所以采用API来确保数据的可靠传输和访问 。
RAID Structure
Redundant Arrays of Independent Disks (RAIDs) 独立冗余磁盘阵列,将多个独立的物理磁盘组合成一个逻辑磁盘单元,以提升存储系统的性能、可靠性和数据冗余能力。它主要有以下几种常见的结构级别:
RAID级别 | 名称 | 描述 | 优势 | 劣势 | 应用场景 |
---|---|---|---|---|---|
RAID 0 | 条带化存储 | 将数据均匀分布在多个磁盘上,数据以块为单位交替写入各个磁盘,形成条带化存储结构 | 读写性能极高,数据传输速度快,理论上可提升n倍(n为磁盘数量) | 没有数据冗余,任何一个磁盘故障都会导致所有数据丢失 | 对数据安全性要求不高,但对读写速度要求极高的场景,如视频编辑、大型游戏运行等 |
RAID 1 | 镜像存储 | 数据同时写入两个或多个磁盘,每个磁盘保存相同的数据副本 | 数据冗余度高,可靠性强,当一个磁盘出现故障时,可从其他磁盘获取数据,不影响数据可用性 | 存储成本高,空间利用率仅为50%,写入性能相对较低 | 对数据安全性和完整性要求极高的场景,如金融、医疗、财务等关键数据存储 |
RAID 4 | 块交错奇偶校验 | 数据以块为单位分布在多个数据磁盘上,用一个单独的磁盘存储奇偶校验信息 | 可以容忍单个磁盘故障,数据恢复相对容易;读写性能相对较好,适用于大量顺序读写的场景 | 奇偶校验磁盘可能成为性能瓶颈,尤其是在频繁写入操作时;空间利用率为(n-1)/n(n为磁盘数量) | 对数据安全性有一定要求,且以顺序读写为主的应用场景,如文件服务器 |
RAID 5 | 块交错分布式奇偶校验 | 与RAID 4类似,但奇偶校验信息分布式存储在所有磁盘上,而不是集中在一个磁盘 | 具备一定容错能力,允许单个磁盘故障而不丢失数据;读写性能较为平衡,空间利用率为(n-1)/n(n为磁盘数量) | 写入性能略低于RAID 0,重建数据时需要读取多个磁盘,性能会受到一定影响 | 对数据安全性和性能都有一定要求的一般企业级应用,如小型数据库存储 |
RAID 6 | 双重奇偶校验 | 在RAID 5基础上增加了第二个独立的奇偶校验信息块,每个数据块都有两个不同的奇偶校验值 | 具备极高的容错能力,能够容忍两个磁盘同时故障,数据安全性非常高 | 需要更多的磁盘空间来存储奇偶校验信息,空间利用率为(n-2)/n(n为磁盘数量),读写性能相对较低 | 对数据安全性和可靠性要求极高的关键业务场景,如大型数据库、金融核心数据存储 |