外部存储器
概述
特性:
用于不经常使用的、数据量较大的信息
非易失性
类型:
磁盘存储器
软盘floppy disk
硬盘hard disk
光存储器
磁带
U盘
固态硬盘
硬磁盘存储器
结构
磁盘存储器每个盘片表面有一个读写磁头,所有磁头通过机械方式固定在一起,同时移动
- 磁头对盘片进行读写操作
在任何时候,所有磁头都位于距离磁盘中心等距离的轨道上
蓝色代表主轴
红色代表磁盘
绿色代表磁臂和磁头
读写机制
在读写操作期间,磁头静止,盘片在其下方进行旋转
单磁头:读写共用
双磁头:使用一个单独的磁头进行读取
数据组织
盘片上的数据组织呈现为一组同心圆环,称为磁道
数据以扇区的形式传输到磁盘或传出
- 默认为512B
相邻磁道之间有间隙,相邻扇区之间也有
所有盘片上处于相同的相对位置的一组磁道称为柱面
扇区划分:
恒定角速度
保持读写速度恒定,能以磁道号和扇区号直接寻址各个数据块
多带式记录
将盘面划分为多个同心圆区域,每个区域中各磁道的扇区数量时相同的,距离中心较远的分区包含的扇区数多于距离中心的分区
格式化
磁道必须有一些起始点和辨别每个扇区起点和终点的方法
格式化时会附有一些仅被磁盘驱动器使用而不被用户存取的额外数据
I/O访问时间
寻道时间:磁头定位到所需移动到的磁道花费的时间
- 初始启动时间,跨越若干磁道所用的时间
旋转延迟:等待响应扇区的起始处到达磁头所需的时间
- 通常是磁道旋转半周的时间
传送时间:数据传输所需的时间
- 假设:T = 传送时间、b = 传送的字节数、N = 每磁道的字节数、r = 旋转速率(转/秒),那么$T = \frac{b}{rN}$
平均访问时间:$T_a = T_s + \frac{1}{2r} + \frac{b}{rN}$
- $T_s$ 是平均寻道时间
对于连续访问多个相邻磁道时,对于每个磁道都要考虑旋转延迟,通常只需要考虑第一个磁道的寻道时间
- 除非明确知道跨越一个磁道需要的时间
磁头寻道/磁盘调度
先来先服务FCFS
按照请求访问磁盘的先后次序进行处理
最短寻道时间优先SSTF
优先处理起始位置与当前磁头位置最接近的读写任务
可能会出现饥饿现象,尤其是位于两端的磁道请求
扫描/电梯SCAN
总是按照一个方向进行磁盘调度,直到该方向上的边缘,然后改变方向
循环扫描C-SCAN
只有磁头朝某个方向移动时才会响应请求,移动到边缘后立即让磁头返回起点(0),返回途中不做任何处理
- 从N跳到0
LOOK
只要磁头移动方向上不再有请求就立即改变磁头方向
C-LOOK
只要在磁头移动方向上不再有请求,就立即让磁头返回起点(不是0)
光存储器
比如光盘(CD)、光盘只读存储器(CD-ROM)、可刻录光盘(CD-R)、可重写光盘(CD-RW)、数字多功能光盘(DVD)等
CD和CD-ROM
CD-ROM更加耐用且有纠错功能
通过安装在光盘播放器或启动装置内的低强度激光束从CD或CD-ROM读取信息
凹坑反射回低强度激光
台反射回高强度激光
盘片上包含一条单螺旋轨道,轨道上的所有扇区长度相同
优点:廉价地大规模复制,可更换
缺点:只读,存取时间长
磁带
使用与磁盘类似的记录和读取技术
读取:顺序读取
- 磁盘是直接读取
U盘
采用了快闪存储器,属于非易失性半导体存储器,体积小容量大,携带方便
- 固态硬盘容量更大,存储性能更好
冗余磁盘阵列RAID
将多个独立操作的磁盘按某种方式组织成磁盘阵列,以增加容量
- 将数据存储在多个盘体上,通过这些盘并行工作来提高数据传输率
采用数据冗余来进行错误恢复以提高系统可靠性
级别 | 种类 | 描述 | 磁盘要求 | 数据可用性 | 大I/O数据传输能力 | 小I/O请求速率 |
---|---|---|---|---|---|---|
0 | 条带化 | 非冗余 | N | 比单盘低 | 很高 | 读和写都很高 |
1 | 镜像 | 镜像 | 2N | 比RAID 2、3、4、5高,比6低 | 读比单盘高,写和单盘类似 | 读高达单盘的两倍,写和单盘类似 |
2 | 并行存取 | 海明码校验 | N+m | 比单盘高很多,与RAID 3、4、5差不多 | 列表各级中最高 | 接近单盘的两倍 |
3 | 并行存取 | 位交错奇偶校验 | N+1 | 比单盘高很多,与RAID 2、4、5差不多 | 列表各级中最高 | 接近单盘的两倍 |
4 | 独立存取 | 块交错奇偶校验 | N+1 | 比单盘高很多,与RAID 2、3、5差不多 | 读和RAID 0类似,写低于单盘 | 读与RAID 0类似,写显著低于单盘 |
5 | 独立存取 | 块交错奇偶校验 | N+1 | 比单盘高很多,与RAID 2、3、4差不多 | 读和RAID 0类似,写低于单盘 | 读与RAID 0类似,写显著低于单盘 |
6 | 独立存取 | 块交错奇偶校验 | N+2 | 列表各级中最高 | 读和RAID 0类似,写比RAID 5低 | 读与RAID 0类似,写显著低于RAID 5 |
RAID 0
数据以条带的形式在可用的磁盘上分布
不采用冗余来改善性能
- 不是RAID家族的真正成员
用途:
高数据传输率
高速响应I/O请求
RAID 1
采用数据条带,简单备份所有数据来实现冗余
优点:
高速响应I/O请求
读请求可以选择寻道时间较小的那个
写请求可以并行完成,受限于写入较慢的磁盘
- 需要更新两个对应的条带
- 恢复受损磁盘简单
用途:
只限于用在存储系统软件、数据和其他关键文件的驱动器中
RAID 2
采用并行存取技术,所有磁盘都参与每个I/O请求的执行
纠错(海明码):
- 纠错能力强于RAID 2
访问:
读取:获取请求的数据和对应的校验码
写入:所有数据盘和校验盘都被访问
RAID 3
优点:
能够获得非常高的数据传输率
- 对于大量传送,性能改善特别明显
缺点:
一次只能执行一个I/O请求
- 面向多个I/O请求,性能将受损
RAID 4
采用独立存取技术,采用相对较大的数据条带,根据各个数据盘上的数据来逐位计算奇偶校验条带
性能:
当执行较小规模的I/O写请求时,RAID 4会遭遇写损失
- 每一次写操作,不仅要修改用户数据,而且要修改对应的校验位
RAID 5
与RAID 4组织方式相似,但在所有磁盘上都分布了奇偶校验条带
- 避免潜在的I/O瓶颈问题
访问时需要两读两写
RAID 6
采用两种不同的校验码,并将校验码以分开的块存于不同的磁盘中
优点:
- 提升数据可用性
缺点:
- 写损失:每次都要影响到两个校验块