Operating Systems: Three Easy Pieces阅读笔记(三)DISK-RAID

来源:互联网 发布:js 格式化字符串 编辑:程序博客网 时间:2024/06/07 07:14

Redundant Arrays of Independent Disks,RAID

下面以与单块硬盘的性能的倍数比表示RAID的性能
raid 0
没有镜像和按位检查的能力,block在不同的磁盘上带状分布,以尽量避免同一时间只对一个磁盘写入,连续读写和随机读写的效率都能提高N倍:

    disk0        disk1      disk2      disk3      0            1          2          3      4            5          6          7

N块硬盘的储存容量是原来的N倍
读写速度比单独一块硬盘提高N倍
可靠性:任何一块硬盘出现错误都会导致数据丢失,因此出错的可能性是原来的N倍,可靠性是原来的1/N。

raid 1
block在磁盘上用镜像备份,因此储存容量是单独硬盘的N/2倍。
连续读写时,实际上有一半的硬盘是镜像,因此读写速度仅是原来的N/2倍
随机读取时,读取操作随机分散到各个盘中,因此N个盘读取速度是N倍
随机写入时,因为多写入了一次镜像,因此写入速度是读取速度的一半N/2
可靠性方面,一个镜像的崩溃不影响硬盘阵列的工作。

raid 1-0 / 0-1
即同时使用带区和镜像,综合了raid 0和raid 1 的优点。

raid 4
专门独立出一块硬盘 parity disk用于按位检查各个硬盘中的数据,用对所有磁盘相应的位进行XOR,当其中一个磁盘崩溃时,可以根据parity disk中的值和各个磁盘中相应位的值推导出该位的值,因此不需要用镜像。
parity disk不用于储存,因此容量为N倍。
显然连续读写和随机读取速度都是N-1倍。
但raid 4的缺点在于,当进行随机写入时,由于要更新parity disk中的值,而所有值都集中在同一块硬盘上,所以即使对不同硬盘的写入也无法有效的同步进行,并且由于需要用parity进行检验和更新,需要对更新的硬盘和parity disk各进行一次读写(可看作并发进行),实际上随机写入的时间就相当于了对parity disk 的读写时间,写入速度是1/2倍。

raid 5
将parity的值分散到各个硬盘中,解决了raid 4 中存在的同步写入的问题,但是parity总共还是占一个硬盘的空间,因此容量、连续读写和随机读取速度都不变,仍为N-1倍,
随机写入并更新parity变得能够并发进行,但之前对parity disk的读写分摊到各个disk上,一次写入相当于对数据盘进行了4次操作(parity disk和数据盘的读写操作可以看作不再同步进行,都堆到数据盘里面来了)

0 0
原创粉丝点击