磁盘与阵列技术
2.1 磁盘HDD(Hard Disk Drive)
1.磁盘依旧占外部存储市场的主流
2.HDD新技术
-HAMR技术(热辅助磁记录):提高单盘存储容量(20TB起)
-MACH.2(双驱动臂):提高读写速度(480MB/s)
3.HDD大容量硬盘未衰反兴
4.磁盘里面的结构
磁盘盘片:将硬磁材料涂敷、电镀或沉积在金属或玻璃材质的基板上,是记录二进制信息的载体
主轴:将磁盘盘片固定在磁盘内部,在电动马达的驱动下,磁盘盘片以主轴为中心高速转动。(指标是每分钟的转速)
步进电机:控制磁头精确定位到每个磁道
传动手臂:
读写磁头:将电脉冲信号转换成介质上的磁化状态,又将介质的磁化状态转换成电脉冲信号,是电磁转换的“桥梁”(将硬磁材料涂敷、电镀或沉积在金属或玻璃材质的基板上,是记录二进制信息的载体)
控制器:控制主轴电机的供电和速度、磁盘与主机CPU的通讯、如何移动激励臂膀以控制读写、读写磁头的转换、数据访问优化等等
5.磁盘的基本操作
数据写入:
通过控制电路,驱动磁头改变盘片上磁性粒子簇的极性来写入数据。
数据读取:
盘片上被极化的磁性粒子与磁头上的磁感应物质相互作用,在磁头上产生感应电压,进一步被转化为能够被计算机处理的二进制信号。
6.磁盘几何
- 每个磁面由许多磁道构成
- 每个磁道又被分割为许多扇区
7.格式化磁盘
允许控制器为每个区域留出备用的柱面,解释“格式化容量”和“最大容量”之间的差异。
8. 柱面
对齐的轨道形成柱面。
9.物理地址与逻辑地址
物理地址 = CHS(柱面、磁头、扇区)
逻辑地址= Block#
10.磁盘容量
确定容量的技术因素:
记录密度Recording density (bits/in):磁道一英寸的段中可以放入的位数.
磁道密度Track density (tracks/in):从盘片中心出发半径上一英寸的段内可以有的磁道数.
面密度Areal density (bits/in2):记录密度与磁道密度的乘积.
注:由于外磁道的长度大于内磁道。现代磁盘不再把内外磁道划分为相同数目的扇区,而是利用外层磁道容量较内层磁道大的特点,将盘面划分成若干条环带。
存储容量 = 磁头数 × 磁道(柱面)数 × 每道扇区数 × 每扇区字节数
11.磁盘定位
平均访问时间 = 平均寻道时间 + 平均旋转延迟 + 平均转换时间
(一般平均寻道时间是8ms)
访问磁盘的时间主要开销是寻道时间和旋转延迟!
• 最大旋转延迟
Tmax rotation=(1/RPM) * (60secs/1min)
• 平均旋转延迟
Tavg rotation =(1/2)*Tmax rotation
常见参数:
一个400G磁盘的典型参数:
(1)16,383 柱面,每个柱面24M字节
(2)8个双面盘,共有16个读写头
(3)每分钟7200转
(4)一个读写头每秒可以读写 120 × 1.5 = 80MB/S
(5)每个磁道的数据位 24/16=1.5MB per track
12.磁盘驱动器性能:数据传输速率
13.外部设备互连
14.磁盘访问时间
(1)IDE总线:66MB/S 是一个比较常见的速度
电子设备会成为66MB/S瓶颈
(2)SATA3: 3GB/S
机制会成为180MB/S的瓶颈
(3)几个关键点
· 访问时间是由寻道时延和旋转时延决定的
· 找到某个扇区上的第一位是最贵的,其余位是免费的
· 访问8byte,SRAM的访问时间是4ns
· 访问8byte,DRAM的访问时间是60ns
· 访问512byte,磁盘要10ms, 因此磁盘的访问速率比DRAM慢2500倍,比SRAM慢40000倍
15.驱动的可靠性:平均无故障时间
MTBF:Mean Time Between Failure(设备发生故障之前的运行时间)
2.2磁盘阵列RAID Arrays
1.背景
(1)计算机系统总体性能的提高很不匹配
· 处理器和主存性能改进快
· 辅存性能改进慢
(2)廉价磁盘冗余阵列(Redundant Array of Inexpensive Disks,RAID)
UC, Berkeley:David A. Patterson
RAID0~RAID6
2.RAID基本思想
将多个具有独立操作的廉价磁盘按某种方式组织成一个磁盘阵列(Disk Array),以增加容量,利用类似于主存中的多体交叉技术,将数据存储在多个盘体上,让这些盘并行工作来提高数据传输速度,并采用冗余(redundancy)磁盘技术来进行错误恢复(error correction)以提高系统可靠性(reliability)。
· RAID是一组物理盘,操作系统将其视为单个逻辑盘
· 独立冗余磁盘阵列RAID:Redundant Arrays of Independent Disks,独立磁盘构成的具有冗余能力的阵列
3.NRAID
(1) NRAID:Non-RAID
(2) 所有磁盘的容量组合成一个逻辑盘,没有数据块分条(no block stripping)
· NRAID不提供数据冗余
·要求至少一个磁盘
4.JOBD:Just a Bunch of Disks(磁盘簇)
(1)一个在底板上安装的、带有多个磁盘驱动器的附件,与RAID阵列不同,没有前端逻辑来管理磁盘上的数据分布
(2) 磁盘控制器把每个物理磁盘看作独立的磁盘单独寻址,因此每个磁盘都是独立的逻辑盘
(3) JBOD也不提供数据冗余
(4)要求至少一个磁盘
5.RAID组成
6.数据组织:条带(stripe)
(1)stripe是由多个磁盘上的stripes构成的数据条带
(2)stripe的width是指数据被划分为了多少个并发的stripes
(3)性能分析-条带:
· strip/block size可调:带宽和吞吐率的折中
· Small size : 高传输速度
· Large size : 并发I/O
7.RAID 冗余技术
(1)镜像
通过镜像来实现冗余,保存在磁盘A的内容,也保存在B中。
(2)副本
用一个磁盘专门用来保存前面几个磁盘的副本
8.磁盘级别
(1)RAID0:条带阵列,无容错
(2)RAID1: 磁盘阵列
优点:高数据可用性和高I/O率(小块)。
缺点:可用存储容量为50%。
性能:提高读性能,但降低写性能。
数据保护:改进了raid0的容错能力。
应用:会计,支付,金融和需要高可靠性的应用。
(3)RAID 0+1
(4)RAID 1+0
重点:
RAID 0+1 和 RAID 1+0 又有什么区别呢?
· RAID 0+1是先让磁盘组内的成员组成RAID 0条带化,然后磁盘组之间为RAID 1镜像关系。
· RAID 1+0是先让磁盘组内的成员组成RAID 1互为镜像,然后磁盘组之间RAID 0条带化。
· 除了构成先后的差别外,主要的区别还表现在容错性上。RAID 0+1 的损坏一块磁盘之后,所在的RAID 0组即认为损坏,RAID 0+1 实际上已经退化为一个RAID 0 的结构,此时,上面那组RAID 0随便坏一块,整个RAID就崩溃了。
· 相对来说,RAID 1+0 就不会有这个问题,只要同一个RAID 1组内硬盘不全部损坏,整个RAID就不会有问题,在图中可以认为,只要右上角的那块磁盘不坏,整个RAID就不会崩溃。
(5) RAID3: 带奇偶校验码的并行传送
RAID 3总是在所有磁盘上读取和写入完整的数据条纹。至少需要3块盘(2块盘没有校验的意义)。将数据存放在n+1块盘上,有效空间是n块盘的总和,最后一块存储校验信息。数据被分割存储在n块盘上,任一数据盘出现问题,可由其他数据盘通过校正监测恢复数据(可以带伤工作),换数据盘需要重新恢复完整的校验容错信息。对阵列写入时会重写校验盘的内容,对校验盘的负载较大,读写速度相较于Raid0较慢,适用于读取多而写入少的应用环境,比如数据库和web服务器。使用容错算法和分块的大小决定了Raid3在通常情况下用于大文件且安全性要求较高的应用,比如视频编辑、硬盘播出机、大型数据库等。
stripe size = logic block size of file system
(6)RAID4: 带奇偶校验码的独立磁盘结构
提供了非常好的读性能,但单一的校验盘往往成为系统性能的瓶颈。对于写操作,RAID4 只能一个磁盘一个磁盘地写,并且还要写入校验数据,因此写性能比较差。而且随着成员磁盘数量的增加,校验盘的系统瓶颈将更加突出。正是如上这些限制和不足,所以不推荐 RAID4 在实际应用。RAID4和RAID3很象,不同的是,它对数据的访问是按数据块进行的,也就是按磁盘进行的,每次是一个盘。在图上可以这么看,RAID3是一次一横条,而RAID4一次一竖条。它的特点的RAID3也挺象,不过在失败恢复时,它的难度可要比RAID3大得多了,控制器的设计难度也要大许多,而且访问数据的效率不怎么好。
(7) RAID5:分布式奇偶校验的独立磁盘结构
奇偶校验值,其它的意思也相同。RAID5的读出效率很高,写入效率一般,块式的集体访问效率不错。因为奇偶校验码在不同的磁盘上,所以提高了可靠性,允许单个磁盘出错。RAID 5也是以数据的校验位来保证数据的安全,但它不是以单独硬盘来存放数据的校验位,而是将数据段的校验位交互存放于各个硬盘上。这样,任何一个硬盘损坏,都可以根据其它硬盘上的校验位来重建损坏的数据。硬盘的利用率为n-1。 但是它对数据传输的并行性解决不好,而且控制器的设计也相当困难。RAID 3 与RAID 5相比,重要的区别在于RAID 3每进行一次数据传输,需涉及到所有的阵列盘。而对于RAID 5来说,大部分数据传输只对一块磁盘操作,可进行并行操作。在RAID 5中有“写损失”,即每一次写操作,将产生四个实际的读/写操作,其中两次读旧的数据及奇偶信息,两次写新的数据及奇偶信息。 RAID-5的话,优点是提供了冗余性(支持一块盘掉线后仍然正常运行),磁盘空间利用率较高(N-1/N),读写速度较快(N-1倍)。但当掉盘之后,运行效率大幅下降。
特点:
·块大小调整为典型的I/O对齐到单个磁盘上。
·每个条带有一个校验块,但是不同条带位置不同,在相邻条带间循环分布,从而避免校验写的瓶颈
(8)RAID6:带有两种分布存储的奇偶校验码的独立磁盘结构
名字很长,但是如果看到图,大家立刻会明白是为什么,请注意p0代表第0带区的奇偶校验值,而pA代表数据块A的奇偶校验值。它是对RAID5的扩展,主要是用于要求数据绝对不能出错的场合。当然了,由于引入了第二种奇偶校验值,所以需要N+2个磁盘,同时对控制器的设计变得十分复杂,写入速度也不好,用于计算奇偶校验值和验证数据正确性所花费的时间比较多,造成了不必须的负载。我想除了军队没有人用得起这种东西。
(9)RAID技术比较
(10)技术选择路线