磁盘阵列卡教程全集很多人以为 RAID 1 要加一个额外的磁盘,形成浪费而不看好 RAID 1,事实上磁盘越来越便宜,并不见得造成
若以 N 表示磁盘的数目,R 表示读取,W 表示写入,S 表示可使用空间,则数据分段的性能为: R:N(可同时读取 所有磁盘) W:N(可同时写入所有磁盘) S:N(可利用所有的磁盘,并有最佳的使用率)
Disk striping 也称为 RAID 0,很多人以为 RAID 0 没有甚么,其实这是非常错误的观念,因为 RAID 0 使磁 盘的输出入有最高的效率。而磁盘阵列有更好效率的原因除数据分段外,它可以同时执行多个输出入的要 求 ,因 为阵列中的每一个磁盘都能独立动作,分段放在 不同的磁盘, 不同的磁盘 可同时 作读写 ,而 且能在快 取内存及磁盘作并行存取(parallel access)的动作,但只有硬件的磁盘阵列才有此性能表现。
RAID 3 的数据储存及存取方式都和 RAID 2 一样,但在安全方面以奇偶校验(parity check)取代海明码做错 我爱买电脑配件批发网
磁盘 因为磁盘阵列是将同一阵列的多个磁盘视为单一的虚拟磁盘(virtual disk),所以其数据是以分段 (block or segment)的方式顺序存放在磁盘阵列中,如下图: 磁盘 0 磁盘 1 磁盘 2 磁盘 3
从上面两点我们可以看出,disk spanning 定义了 RAID 的基本形式,提供了一个便宜、灵活、高性能的系统 结构,而 disk striping 解决了数据的存取效率和磁盘的利用率问题,RAID 1 至 RAID 5 是在此基础上提供 磁盘安全的方案。
RAID 1 是使用磁盘镜像(disk mirroring)的技术。磁盘镜像应用在 RAID 1 之前就在很多系统中使用,它的 方式是在工作磁盘(working disk)之外再加一额外的备份磁盘(backup disk),两个磁盘所储存的数据完全 一样,数据写入工作磁盘的同时亦写入备份磁盘。磁盘镜像不见得就是 RAID 1,如 Novell NetWare 亦有提 供磁盘镜像的功能,但并不表示 NetWare 有了 RAID 1 的功能。一般磁盘镜像和 RAID 1 有二点最大的不同:
译为磁盘延伸,能确切的表示 disk spanning 这种技术的含义。如下图所示,DFTraid 磁盘阵列, 联接了四个磁盘:
这四个磁盘 形成一个阵列 (array),而磁盘阵列的(RAID controller)是将此四个磁盘视为 单一的 磁盘,如 DOS 环境下的 C:盘。 这是 disk spanning 的意义,因为把小容量的磁盘延伸为大容量的单一磁盘, 用户不必规划数据在各磁盘的分布,而且提高了磁盘空间的使用率。DFTraid 的 SCSI 磁盘阵列更可连接 几十个磁盘,形成数十 GB 到数百 GB 的阵列,使磁盘容量几乎可作无限的延伸;而各个磁盘一起作取存的 动作,比单一磁盘更为快捷。很明显的,有此阵列的形成而产生 RAID 的各种技术。我们也可从上图看出 inexpensive(便宜)的意义,因为四个 250MBbytes 的磁盘比一个 1GBytes 的磁盘要便宜,尤其以前大磁盘 的价格非常昴贵,但在磁盘越来越便宜的今天,inexpensive 已非磁盘阵列的重点, 虽然对于需要大磁盘 容量的系统,仍是考虑的要点。
RAID 2 是 把 数据 分 散 为 位 元 (bit) 或 块 (block), 加 入 海 明 码 Hamming Code, 在 磁盘阵列中作 间 隔 写 入 (interleaving) 到每个磁盘中 ,而 且地址(address) 都一样 ,也 就是在各个磁盘中, 其数据都在相同的磁道 (cylinder or track)及扇区中。RAID 2 的设计是使用共轴同步(spindle synchronize)的技术,存取数据 时,整个磁盘阵列一起动作, 在各作磁盘的相同位置作平行存取,所以有 最好的存取时间(access time),其 总线(bus)是特别的设计,以大带宽(band wide)并行传输所存取的数据,所以有最好的传 输时间(transfer time)。在大型档案的存取应用,RAID 2 有最好的性能,但如果档案太小,会将其性能拉下来,因为磁盘的存 取是以扇区为单位,而 RAID 2 的存取是所有磁盘平行动作,而且是作单位元的存取,故小于一个扇区的数据 量会使其性能大打折扣。RAID 2 是设计给需要连续 且大量数据的电脑使用的,如大型电脑(mainframe to supercomputer)、作影像处理或 CAD/CAM 的工作站(workstation)等,并不适用于一般的多用户环境、网络 服务器(network server),小型机或 PC。
RAID 1 无工作磁盘和备份磁盘之分,多个磁盘可同时动作而有重叠(overlapping)读取的功能,甚至不同的 镜像磁盘可同时作写入的动作,这是一种最佳化的方式,称为负载平衡(load-balance)。例如有多个用户在 同一时间要读取数据,系统能同时驱动互相镜像的磁盘,同时读取数据, 以减轻系统的负载,增加 I/O 的性 能。
RAID 1 的磁盘是以磁盘延伸的方式形成阵列,而数据是以数据分段的方式作储存,因而在读取时,它几乎和 RAID 0 有同样的性能。从 RAID 的结构就可以很清楚的看出 RAID 1 和一般磁盘镜像的不同。
RAID 2 的 安全 采 用内 存 阵列 (memory array) 的技术 , 使用 多 个 额外 的磁盘作 单位错 误 校正 (single-bit correction)及双位错误检测(double-bit detection); 至于需要多少个额外的磁盘, 则视其所采用的方法 及 结构而定,例如八个数据 磁盘的阵列可能需要三个额外 的磁盘 ,有 三十二 个数据 磁盘的高档阵列可能需 要七个额外的磁盘leyu乐鱼。
误校正及检测,所以只需要一个额外的校检磁盘(parity disk)。奇偶校验值的计算是以各个磁盘的相对应 位作 XOR 的逻辑运算,然后将结果写入奇偶校验磁盘,任何数据的修改都要做奇偶校验计算,如下图: 磁盘 0 磁盘 1 磁盘 2 磁盘 3 磁盘 4
从上图可以看出: R:N(可同时读取所有磁盘) W:N/2(同时写入磁盘数) S:N/2(利用率)
读取数据时可用到所有的磁盘,充分发挥数据分段的 优点;写入数据时,因为有备份,所以要写入两个磁盘, 其效率是 N/2,磁盘空间的使用率也只有全部磁盘的一半。
RAID 1 完全做到了容错包括不停机(non-stop),当某一磁盘发生故障,可将此磁盘拆下来而不影向其他磁盘 的操作;待新的磁盘换上去之后,系统即时做镜像,将数据重新复上去,RAID 1 在容错及存取的性能上是所有 RAID level 之冠。
在磁盘阵列的技术上,从 RAID 1 到 RAID 5,不停机的意思表示在工作时如发生磁盘故障,系统能持续工作而 不停顿,仍然可作磁盘的存取,正常的读写数据;而容错则表示即使磁盘故障,数据仍能保持完整, 可让系统 存取到正确的数据,而 SCSI 的磁盘阵列更可在工作中抽换磁盘,并可自动重建故障磁盘的数据。磁盘阵列 之所以能做到容错及不停机,是因为它有冗余的磁盘空间可资利用,这也就是 Redundant 的意义。
数据按需要分段,从第一个磁盘开始放,放到最後一个磁盘再回到第一个磁盘放起 ,直到数据分布完毕。至 于分段的大小视系统而定,有的系统或以 1KB 最有效率,或以 4KB,或以 6KB,甚至是 4MB 或 8MB 的,但除非数 据小于一个扇区(sector,即 521bytes),否则其分段应是 512byte 的倍数。 因为磁盘的读写是以一个扇区为 单位,若数据小于 512bytes,系统读取该扇区后,还要做组合或分组(视读或写而定)的动作,浪费时间。 从上 图我们可以看出,数据以 分段于在不同的磁盘,整个阵列的各个磁盘可同时作读写 ,故数据分段使数据的存 取有最好的效率, 理论上本来读 一个包含四个 分段的 数据所需要的时间约=(磁盘的 access time 数据的 transfer time)X4 次,现在只要一次就可以完成。