1.简介

当磁盘在使用时,驱动器马达会高速旋转磁盘。大多数驱动器每秒可转60~200圈

寻道时间是指移动磁臂到所要的柱面的时间

旋转等待时间指所要的扇区旋转到磁臂下所需时间

磁盘速度有两部分,传输速率是在驱动器和计算机之间的数据传输速率;定位时间或随机访问时间由寻道时间和旋转等待时间组成。典型磁盘能以每秒兆字节的速率传输,寻道时间和旋转等待时间为数毫秒

由于磁头飞行于极薄的空气层上,所以磁头与磁盘表面有接触的危险。虽然磁盘面上有薄的保护层,但是磁头仍可能损坏磁盘表面。磁头碰撞不能修复,此时整个磁盘必须替换。

软盘是较便宜的可移动磁盘,他有一个软塑料盒以保存柔软的磁盘片。软盘驱动器的磁头通常直接与磁盘片相接触,所以与硬盘驱动器相比,该驱动器旋转较慢。软磁盘的存储通常为1.44MB.

磁盘驱动器通过一组称为IO总线与计算机相连。可用总线包括EIDE、ATA、串行ATA、USB、FC、SCSI总线。被称为控制器 的特殊处理器执行总线上的数据传输。磁盘控制器位于磁盘驱动器内,通常含有内置缓存。

1.2磁带

曾是早起次级存储介质。其访问速度相对太慢。因此其作为次级存储介质而言用途不大。磁带主要用于备份。

2.磁盘结构

现代磁盘驱动器可以看做一维的逻辑块数组,逻辑块是最小的传输单位,通常为512B。一维逻辑块数组按顺序映射到磁盘扇区。  扇区0是最外面的第一个磁道的第一个扇区。该映射是先按磁道内扇区顺序,再按柱面内磁道顺序,最后按从外到内的柱面顺序来排序的。

通过映射,至少从理论上能将逻辑块号转换为由磁盘内的 柱面号、柱面内的磁道号、磁道内的扇区号组成的老式磁道地址

3.磁盘附属

访问磁盘存储有两种方式:IO或分布式文件系统的主机 即 网络附属存储。

3.1主机附属存储

主机附属存储是通过本地IO端口访问的存储。典型的台式机使用IO总线结构,如IDE和ATA。这种结构允许每条IO总线支持最多两个端口。

高端工作站和服务器通常采用更为复杂的IO结构,如SCSI或FC。

SCSI是串行结构,其物理介质通常为带状电缆,具有大量电线。SCSI协议在一根总线上可支持16个设备,通常这些设备包括一个控制器卡(SCSI引导器)和15个存储设备(SCSI目标)。SCSI磁盘是个典型的SCSI目标,但是协议给每个SCSI目标提供访问8个逻辑单元的能力。逻辑单元的典型使用是向RAID阵列的成员或移动介质库的成员直接发送命令。

FC是个高速串行结构。该结构可在光纤或4芯铜线上运行。它有两种方式,一是大的交换结构,具有24位的地址空间。二是裁定结构(FC-AL),可访问126个设备。

有多种存储设备可用于主机附属存储。包括磁盘驱动器、RAID阵列、CD、DVD等。向主机附属存储发出数据传输的IO命令是针对特定存储单元的逻辑数据块的读和写。

3.2网络附属存储

网络附属存储NAS设备是数据网络中心远程访问的专用存储系统。客户通过远程进程调用接口来访问NAS,如UNIX的NFS和windows的CIFS。远程进程调用RPC可通过IP网络的TCP和UDP来进行。网络附属储存单元通常用带有RPC接口软件的RAID阵列来实现。因此NAS就可以简单作为另一种存储访问协议。

iSCSI是最近的网络附加存储协议。它使用了IP网络协议来实现SCSI协议。因此主机及存储就可以通过网络而不是SCSI电缆互联。

3.3存储区域网络

网络附属储存系统的缺点之一是存储IO操作需要使用数据网络的带宽,因此增加了网络通信延迟。

存储区域网络SAN是服务器和存储单元之间的私有网络,采用存储协议而不是网络协议。SAN的优势在于其灵活性。多个主机和多个存储阵列可以附加在同一SAN上,存储可以动态的分配各主机。

另一种方式是称为Infiniband的专门总线架构。

4.磁盘调度

有效使用硬件要求较快的访问速度和较宽的磁盘带宽。寻道时间是磁臂将磁头移动到包含目标扇区的柱面的时间。旋转延迟是磁盘需要将目标扇区转到磁头下的时间。磁盘带宽是指所传递的总的字节数除以从服务请求开始到最后传递结束的总时间。可以通过适当的访问顺序来调度磁盘的IO请求来提高访问速度和带宽。

4.1FCFS调度

最简单的当然是先来先服务算法FCFS。

4.2SSTF调度

先处理靠近当前磁头位置的请求可能较为合理。最短寻道时间优先算法SSTF选择距当前磁头位置由最短寻道时间的请求来处理。由于寻道时间随着磁头所经过的柱面数而增加,SSTF选择与当前磁头位置最近的待处理请求。

4.3SCAN

对于SCAN算法,磁臂从磁盘的一端向另一端移动,同时当磁头移过每个柱面时,处理位于该柱面的服务请求。当到达另一端时,磁头改变方向,处理继续。磁头在磁盘上来回扫描。

4.4C-SCAN调度

是SCAN的一个变种,主要提供一个更为均匀的等待时间。磁头移到另一端时,他会马上返回到磁盘开始,返回时并不处理请求。

4.5LOOK调度

SCAN和C-SCAN是磁头在磁盘宽度内进行移动。事实上,这两个算法都不是这么实现的。通常,磁头只移动到一个方向上最远的请求为止。接着他马上回头,而不是继续到磁盘的尽头。这种形式的SCAN和C-SCAN称为LOOK和C-LOOK调度,这是因为他们在朝一个方向移动会看(look)是否有请求。

4.6算法的选择

SSTF和LOOK是比较合理的默认算法。

5.磁盘管理

5.1格式化

新磁盘只是一些含有磁性记录材料的盘子。在其能读取数据之前,必须分成扇区以便磁盘控制器能够读和写,这个过程称为低级格式化或物理格式化。低级格式化为磁盘的每个扇区采用特别的数据结构:头部、数据区域、尾部。头部和尾部包括一些磁盘控制器所使用的信息,如扇区号码和纠错代码ECC。ECC能够反映扇区是否已损坏。控制器读写磁盘时自动处理ECC并回报一个可恢复软错误。

为用磁盘存储文件,操作系统还需要将自己的数据结构记录在磁盘上。第一步是将磁盘分为一个或多个柱面组成的分区。操作系统可将每个分区作为一个独立磁盘。分区之后第二步是逻辑格式化,即创建文件系统。操作系统将初始的文件系统数据结构存储到磁盘上。

有的操作系统允许特别程序将磁盘分区作为一个逻辑块的大顺序数组,而没有文件系统数据结构。该数组有时称为生磁盘,对数组的IO称为生IO。例如,有的数据库系统采用生IO,因为它能控制每条数据库记录 所存储的 精确磁盘位置。

5.2引导块

启动计算机需要一个初始化自举程序。他初始化从cpu寄存器到设备控制器和内存,接着启动操作系统。

绝大多数计算机,自举程序保存在只读存储器ROM,ROM无需初始化且不受病毒影响。但是因为改变自举代码需改变ROM硬件芯片,所以大多数系统只在启动ROM中保留一个很小的自举加载程序,其作用是进一步从磁盘调入完整的自举程序。完整的自举程序位于磁盘启动块上。拥有启动分区的磁盘称为启动磁盘或系统磁盘。

例子:windows 2000 系统将启动代码放在硬盘上的第一个扇区(主引导记录MBR)。MBR还包含了硬盘分区列表和引导分区的标识。硬盘的一个分区为引导分区,包含操作系统和设备驱动程序。系统通过运行ROM上的代码,接着从MBR读取引导代码,系统一旦确定引导分区,它读取该分区的第一个扇区,并加装各种子系统和系统服务。

5.3坏块

磁盘容易出问题,且绝大多数磁盘出厂时就有坏块。根据使用的磁盘和控制器,对这些块有多种处理方式。

简单磁盘,如使用IDE控制器的磁盘,可以使用 MS-DOS format命令执行逻辑格式化。他扫描磁盘并查找壞扇区。

复杂磁盘,如用于高端PC、工作站、服务器上的SCSI磁盘。可通过扇区备用(sector sparing)或转寄(forwarding)

6.交换空间管理

8.2中介绍了磁盘和内存间进程的移动。现代操作系统将交换与虚拟内存技术以及交换页结合来处理这个问题。

交换空间管理师操作系统底层任务之一。虚拟内存使用磁盘空间作为内存的扩充。磁盘相对访问速度慢,使用交换空间会严重影响系统性能。

6.1交换空间的使用

6.2交换空间的位置

普通文件系统和独立的生磁盘分区

7.RAID 结构

现在计算机系统能装有大量磁盘,这样改善了存储的可靠性和读写速度。这里的多种磁盘组织技术通常统称为磁盘冗余阵列RAID技术,通常用于提高性能和可靠性

7.1通过冗余改善可靠性

存储额外信息,在磁盘出错时可以用来重新修补损坏信息。最为简单的引入冗余的方法是复制整个磁盘。这种技术称为镜像。

7.2通过并行处理改善性能

通过在多个磁盘上分散数据,可以改善传输率。形式有位级分散、块级分散。

磁盘系统并行访问可以降低负载平衡,增加了多个小访问(页访问)的吞吐量。降低大访问的响应时间

7.3RAID级别

镜像提高可靠性,但昂贵。分散提供高数据传输率,但未改变可靠性。通过磁盘分散和“奇偶”位可以提供多种方案以在低代价环境下提供冗余。这些方案有不同的性价折中,可分为不同级别,称为RAID级别

下图描述了这些结构,P代表差错纠正位,C表示数据的第二副本,4个磁盘用于存储数据,其他磁盘用于存储冗余信息以从差错中恢复。

RAID级别2:也称为内存方式的差错纠正代码结构。内存系统的每个字节都有一个相关的奇偶位,以记录字节中为1的个数是偶数(位0)还是奇数(为1)。当存储的奇偶位损坏时,就与原先的奇偶位不同了。

7.4RAID级别的选择。

级别0用于数据损失并不关键的高性能应用。级别1用于需要高可靠性和快速恢复的应用。RAID1+0用于性能和可靠性都重要的应用,例如小型数据库。级别5用于存储量大的数据。

7.5扩展

RAID 的概念可扩展到其他 存储设备,如磁带阵列,甚至无线系统上的数据广播

7.6RAID的问题

RAID不能一直保证数据对操作系统是可用的。例如,指向文件的指针可能是错误的。如不能适当恢复,不完整写会导致数据崩溃。一些进程会偶然写溢出文件结构。RAID防止物理介质错误,但不能防止其他硬件和软件错误。

12.8稳定存储

存储在稳定存储的数据是永远不会丢失的。为实现这种存储,需要在多个具有独立出错模式的存储设备上复制所需信息。需要协调用于更新的写操作,以确保更新时所发生的差错不会使所有副本处于损坏状态。

因为等待磁盘写(同步IO)是很费时的,许多存储阵列增加了NVRAM作为缓存。这种内存时非易失性的(通常用电池作为该单元的后备电源),对他进行写比磁盘快很多。

9.三级存储结构

1.三级存储设备

三级存储是用可移动设备制造的,磁带、DVD、CD和U盘等。

1.可移动磁盘

是一种三级存储设备。软盘是其中一个例子,利用相似技术可制成1GB的可移动磁盘。可移动磁盘几乎与硬盘一样快,但是其记录层更容易刮擦受损。

另一个例子是磁光盘,磁光头比磁盘的磁头飞行时距涂层表面更大,磁光盘更能抵抗其磁光头碰撞。磁盘驱动器有一线圈来产生磁场。

还有一个例子是光盘,他不使用磁,使用特殊材料,可以被激光所改变以出现一些相对明暗的点。

2.磁带

磁带通常能比磁盘或光盘容纳更多的数据,但是其随机访问比磁盘寻道时间慢得多。

3.未来技术

全息照相存储器是一种有希望的存储技术。另一种热门研究的存储技术是基于微电子机械系统MEMS

9.2操作系统支持

操作系统对磁盘提供了两种抽象,一是生设备,即只是数据块的阵列。另一种是文件系统

对于可移动存储介质,操作系统是如何处理呢

1.应用接口

当空盘插入到驱动器中,空盘必须格式化,进而创建一个空文件系统

2.文件命名

在PC,文件名由设备驱动器字母加上路径名组成。但是如果磁盘是移动的,那么知道某个驱动器过去某时包含一个盘并不意味着如何知道如何找到文件。现代操作系统通常并不对可移动介质的命名空间问题加以解决,而是让应用程序和用户决定如何访问这些数据。幸运的是,现在有些类型的可移动介质已经标准化,所有计算机按同种方 式是由,比如音乐CD和DVD。

3.层次存储管理

自动光盘塔能让计算机切换磁带或光盘驱动器内的可移动盘,而无需人工干预。这种技术的两个用途是备份和层次化存储系统。

层次存储管理HSM常见于大量很少、偶然或周期使用的数据卷设备中。HSM目前的工作包括扩展提供完整的信息生命周期管理ILM。

9.3性能

1.速度

速度含两个方面:带宽和延迟。持续带宽是一个大传输的平均数据速率。磁盘的访问延迟远远小于磁带。如果使用光盘塔,访问延迟会变大。

2.可靠性

可移动磁盘与固定磁盘比,可靠性较差。光盘被认为非常可靠,磁带的可靠性变化很大且与驱动器有关因为其磁头与磁带是接触的。

3.价格

10.小结

操作系统十二大容量存储的结构相关推荐

  1. 关于数据存储引擎结构,没有比这篇更详细的

    摘要:常见存储算法结构涵盖:哈希存储,B .B+.B*树存储,LSM树存储引擎,R树,倒排索引,矩阵存储,对象与块,图结构存储等等. 介绍 在存储系统的设计中,存储引擎属于底层数据结构,直接决定了存储 ...

  2. MySQL—通过Adjacency List(邻接表)存储树形结构

    转载自:Mysql通过Adjacency List(邻接表)存储树形结构 今天来看看一个比较头疼的问题,如何在数据库中存储树形结构呢?像mysql这样的关系型数据库,比较适合存储一些类似表格的扁平化数 ...

  3. 如何使用 SQL Server FILESTREAM 存储非结构化数据?这篇文章告诉你!

    作者 | ALEN İBRIÇ 译者 | 火火酱,责编 | Carol 封图 | CSDN 付费下载于视觉中国 在本文中,我将解释如何使用SQL Server FILESTREAM来存储非结构化数据. ...

  4. 如何使用 SQL Server FILESTREAM 存储非结构化数据?

    作者 | ALEN İBRIÇ 译者 | 火火酱,责编 | Carol 封图 | CSDN 付费下载于视觉中国 在本文中,我将解释如何使用SQL Server FILESTREAM来存储非结构化数据. ...

  5. mysql 存储树形结构

    像mysql这样的关系型数据库,比较适合存储一些类似表格的扁平化数据,但是遇到像树形结构这样有深度的人,就很难驾驭了. 举个栗子:现在有一个要存储一下公司的人员结构,大致层次结构如下: (画个图真不容 ...

  6. MySQL怎样通过Adjacency List存储树形结构?

    这篇文章主要介绍的是MySQL怎样通过Adjacency List存储树形结构,相信很多小朋友都不知道吧,没关系,小杜整理了一下并分享给大家学习,内容介绍的非常详细,且具有一定的参考价值,感兴趣的朋友 ...

  7. HP EVA系列存储raid结构原理研究

    [引言] 本文档建立在针对HP EVA的大量测试性研究基础上,所有的细节几乎均为对EVA的破译型研究,目前全球范围内尚未发现类似资料,故可能表述方式和结论并不精确,仅为参考之用. 我公司为研究HP E ...

  8. V7000存储底层结构原理+V7000存储数据恢复案例

    Storwize V7000(也就是我们常说的V7000)是新推出的一款中端存储系统,这款系统的定位虽然在中端,但是Storwize V7000提供有存储管理功能,这一功能以前只有高端存储才拥有(例如 ...

  9. Linux 操作系统原理 — 文件系统 — 存储布局

    目录 文章目录 目录 磁盘分区 MBR 与分区表 创建 MBR 分区 创建 GPT 分区 分区的格式化 分区的特性 引导块 空闲空间块 inode 区块.data block 区块与超级块 LVM 与 ...

  10. Host-Base、LAN-Base、LAN-Free、Server-Free存储备份结构

    Host-Base.LAN-Base和基于SAN结构的LAN-Free.Server-Free等多种结构. Host-Based备份方式: Host-Based是传统的数据备份的结构这种结构中磁带库直 ...

最新文章

  1. html5+ mui框架 微信授权登录后跳回app无任何回调事件
  2. Java RuntimeException异常处理汇总
  3. 【STM32】PWM程序
  4. HTML5 中的下载简化处理
  5. 用scikit-learn和pandas实现线性回归
  6. sketchup作品_建环学院学生期末作品展第六站计算机辅助设计sketchup作业
  7. 有的编译器,for (i=1; i 《 1; i++)会执行循环体
  8. 【数据预测】基于matlab灰狼算法优化LSSVM数据预测【含Matlab源码 433期】
  9. OLT忘记登陆密码如何修改
  10. python 实现 加减乘除,对数指数,三角反三角计算器
  11. 【百度echarts】实现圆环进度条-代码示例
  12. 注册造价工程师用书免费电子版_2019-2020造价工程师各科电子教材精讲高清课件拿来和大家免费分享.......
  13. java调用腾讯云的乐固加固给apk进行加固处理。
  14. android自定义UI模板图文详解
  15. CF1647F Madoka and Laziness
  16. [JavaScript高级程序设计]JavaScript介绍
  17. c语言的输出格式之正负号
  18. Netty实现连接西门子PLC
  19. 精仿黑鱼资源网 整站源码带完整数据 带SEO优化功能带广告位
  20. 计算机组成原理的exec是什么,exec...

热门文章

  1. 矩阵计算器——大一c++大作业回顾
  2. 三种CSS样式实现(内联样式、内联样式表、外联样式表)
  3. 微信小程序获取二维码报错:{“errcode“:47001,“errmsg“:“data format error hint:“}
  4. 【NLP】哈工大车万翔教授 -- 自然语言处理NLPer的核心竞争力是什么?19页ppt
  5. 新路由3鸡血版固件_新路由3 V1.1版本 刷lean源码开源驱动2.4G无线测试(EEPROM重新调试了)...
  6. 国内比较有名的maven镜像
  7. Multisim小信号调谐放大器电路仿真
  8. STM32的“GPU”——DMA2D实例详解
  9. 步进电机基础(5.9)-步进电机的驱动与控制-三相步进电机的驱动电路
  10. 黑屏后面藏了什么?--解读微软打击盗版