Raid的学习和基础知识 v0,1b
作者:小P
来自:LinuxSir.Org
摘要:各种灾难、错误带来的数据损坏和丢失给人们带来的损失和不便,个人及网站服务器的数据必须要备份,作Raid便是一种可行而有效的方法。Raid分为软Raid和硬raid......
目录

1.什么是Raid; 
2.RAID级别介绍;
2.1 RAID0的特点与应用;
2.2  RAID1的特点与应用;
2.3 RAID 3的特点与应用;
2.4 RAID 4的特点与应用;
2.5  RAID 5的特点与应用;
2.6  RAID 0+1﹝RAID 10﹞的特点与应用;
3.  怎样选择Raid级别;
3.1 RAID条切“striped”的存取模式;
3.2 平行存取模式;
3.2.1 并行存取的基本工作原理;
3.2.2 并行存取RAID的最佳应用;
3.3 独立存取模式;
3.3.1 独立存取RAID的最佳应用;
4.  创建和维护Raid;
4.1   mdadm;
4.1.1  创建分区;
4.1.2  创建RAID 5;
4.1.3  创建RAID的配置文件;
4.1.4   创建文件系统;
4.2  维护软RAID;
4.2.1  模拟故障磁盘;
4.2.2   移除故障磁盘;
4.2.3    添加新硬盘;
5. 关于本文; 
6. 更新日志;
7. 参考文档; 
8. 相关文档;  

+++++++++++++++++++++++++++++++++++++++++++
正文
+++++++++++++++++++++++++++++++++++++++++++


1.什么是Raid;

RAID(Redundant Array of Inexpensive Disks)称为廉价磁盘冗余阵列。RAID 的基本想法是把多个便宜的小磁盘组合到一起,成为一个磁盘组,使性能达到或超过一个容量巨大、价格昂贵的磁盘。
目前 RAID技术大致分为两种:基于硬件的RAID技术和基于软件的RAID技术。其中在Linux下通过自带的软件就能实现RAID功能,这样便可省去购买昂贵的硬件 RAID 控制器和附件就能极大地增强磁盘的 IO 性能和可靠性。由于是用软件去实现的RAID功能,所以它配置灵活、管理方便。同时使用软件RAID,还可以实现将几个物理磁盘合并成一个更大的虚拟设备,从而达到性能改进和数据冗余的目的。当然基于硬件的RAID解决方案比基于软件RAID技术在使用性能和服务性能上稍胜一筹,具体表现在检测和修复多位错误的能力、错误磁盘自动检测和阵列重建等方面。

2.RAID级别介绍;

一般常用的RAID阶层,分别是RAID 0、RAID1、RAID 3、RAID 4以及RAID 5,再加上二合一型 RAID 0+1﹝或称RAID 10﹞。我们先把这些RAID级别的优、缺点做个比较: 
RAID级别 相对优点 相对缺点
RAID 0 存取速度最快 没有容错
RAID 1 完全容错 成本高
RAID 3 写入性能最好 没有多任务功能
RAID 4 具备多任务及容错功能 Parity 磁盘驱动器造成性能瓶颈
RAID 5 具备多任务及容错功能 写入时有overhead
RAID 0+1/RAID 10 速度快、完全容错 成本高

2.1 RAID0的特点与应用;

也称为条带模式(striped),即把连续的数据分散到多个磁盘上存取,如图所示。当系统有数据请求就可以被多个磁盘并行的执行,每个磁盘执行属于它自己的那部分数据请求。这种数据上的并行操作可以充分利用总线的带宽,显著提高磁盘整体存取性能。因为读取和写入是在设备上并行完成的,读取和写入性能将会增加,这通常是运行 RAID 0 的主要原因。但RAID 0没有数据冗余,如果驱动器出现故障,那么将无法恢复任何数据。
按此在新窗口打开图片

2.2 RAID 1 的特点与应用;

RAID 1又称为镜像(Mirroring),一个具有全冗余的模式,如图所示。RAID 1可以用于两个或2xN个磁盘,并使用0块或更多的备用磁盘,每次写数据时会同时写入镜像盘。这种阵列可靠性很高,但其有效容量减小到总容量的一半,同时这些磁盘的大小应该相等,否则总容量只具有最小磁盘的大小。
按此在新窗口打开图片

2.3 RAID 3特点与应用;

RAID 3 是将数据先做XOR 运算,产生Parity Data后,在将数据和Parity Data 以并行存取模式写入成员磁盘驱动器中,因此具备并行存取模式的优点和缺点。进一步来说,RAID 3每一笔数据传输,都更新整个Stripe﹝即每一个成员磁盘驱动器相对位置的数据都一起更新﹞,因此不会发生需要把部分磁盘驱动器现有的数据读出来,与新数据作XOR运算,再写入的情况发生﹝这个情况在 RAID 4和RAID 5会发生,一般称之为Read、Modify、Write Process,我们姑且译为为读、改、写过程﹞。因此,在所有 RAID级别中,RAID 3的写入性能是最好的。
RAID 3的 Parity Data 一般都是存放在一个专属的Parity Disk,但是由于每笔数据都更新整个Stripe,因此,RAID 3的 Parity Disk 并不会如RAID 4的 Parity Disk,会造成存取的瓶颈。
RAID 3的并行存取模式,需要RAID 控制器特别功能的支持,才能达到磁盘驱动器同步控制,而且上述写入性能的优点,以目前的Caching 技术,都可以将之取代,因此一般认为RAID 3的应用,将逐渐淡出市场。
RAID 3 以其优越的写入性能,特别适合用在大型、连续性档案写入为主的应用,例如绘图、影像、视讯编辑、多媒体、数据仓储、高速数据撷取等等。

2.4 RAID 4特点与应用;

创建RAID 4需要三块或更多的磁盘,它在一个驱动器上保存校验信息,并以RAID 0方式将数据写入其它磁盘,如图所示。因为一块磁盘是为校验信息保留的,所以阵列的大小是(N-l)*S,其中S是阵列中最小驱动器的大小。就像在 RAID 1中那样,磁盘的大小应该相等。
按此在新窗口打开图片
如果一个驱动器出现故障,那么可以使用校验信息来重建所有数据。如果两个驱动器出现故障,那么所有数据都将丢失。不经常使用这个级别的原因是校验信息存储在一个驱动器上。每次写入其它磁盘时,都必须更新这些信息。因此,在大量写入数据时很容易造成校验磁盘的瓶颈,所以目前这个级别的RAID很少使用了。
RAID 4 是采取独立存取模式,同时以单一专属的Parity Disk 来存放Parity Data。RAID 4的每一笔传输﹝Strip﹞资料较长,而且可以执行Overlapped I/O,因此其读取的性能很好。
但是由于使用单一专属的Parity Disk 来存放Parity Data,因此在写入时,就会造成很大的瓶颈。因此,RAID 4并没有被广泛地应用。

2.5 RAID 5特点与应用;

在希望结合大量物理磁盘并且仍然保留一些冗余时,RAID 5 可能是最有用的 RAID 模式。RAID 5可以用在三块或更多的磁盘上,并使用0块或更多的备用磁盘。就像 RAID 4一样,得到的 RAID5 设备的大小是(N-1)*S。
按此在新窗口打开图片
RAID5 与 RAID4 之间最大的区别就是校验信息均匀分布在各个驱动器上,如图4所示,这样就避免了RAID 4中出现的瓶颈问题。如果其中一块磁盘出现故障,那么由于有校验信息,所以所有数据仍然可以保持不变。如果可以使用备用磁盘,那么在设备出现故障之后,将立即开始同步数据。如果两块磁盘同时出现故障,那么所有数据都会丢失。RAID5 可以经受一块磁盘故障,但不能经受两块或多块磁盘故障。
RAID 5也是采取独立存取模式,但是其Parity Data 则是分散写入到各个成员磁盘驱动器,因此,除了具备Overlapped I/O 多任务性能之外,同时也脱离如RAID 4单一专属Parity Disk的写入瓶颈。但是,RAI?D 5在座资料写入时,仍然稍微受到"读、改、写过程"的拖累。
由于RAID 5 可以执行Overlapped I/O 多任务,因此当RAID 5的成员磁盘驱动器数目越多,其性能也就越高,因为一个磁盘驱动器再一个时间只能执行一个 Thread,所以磁盘驱动器越多,可以Overlapped 的Thread 就越多,当然性能就越高。但是反过来说,磁盘驱动器越多,数组中可能有磁盘驱动器故障的机率就越高,整个数组的可靠度,或MTDL (Mean Time to Data Loss) 就会降低。
由于RAID 5将Parity Data 分散存在各个磁盘驱动器,因此很符合XOR技术的特性。例如,当同时有好几个写入要求发生时,这些要写入的数据以及Parity Data 可能都分散在不同的成员磁盘驱动器,因此RAID 控制器可以充分利用Overlapped I/O,同时让好几个磁盘驱动器分别作存取工作,如此,数组的整体性能就会提高很多。
基本上来说,多人多任务的环境,存取频繁,数据量不是很大的应用,都适合选用RAID 5 架构,例如企业档案服务器、WEB 服务器、在线交易系统、电子商务等应用,都是数据量小,存取频繁的应用。

2.6 RAID 0+1﹝RAID 10﹞的特点与应用;

RAID 0+1/RAID 10,综合了RAID 0 和 RAID 1的优点,适合用在速度需求高,又要完全容错,当然经费也很多的应用。 RAID 0和RAID 1的原理很简单,合起来之后还是很简单,我们不打算详细介绍,倒是要谈谈,RAID 0+1到底应该是 RAID 0 over RAID 1,还是RAID 1 over RAID 0,也就是说,是把多个RAID 1 做成RAID 0,还是把多个 RAID 0 做成RAID 1?
RAID 0 over RAID 1
假设我们有四台磁盘驱动器,每两台磁盘驱动器先做成RAID 1,再把两个RAID 1做成RAID 0,这就是RAID 0 over RAID 1:
(RAID 1) A = Drive A1 + Drive A2 (Mirrored)
(RAID 1) B = Drive B1 + Drive B2 (Mirrored)
RAID 0 = (RAID 1) A + (RAID 1) B (Striped)
RAID 1 over RAID 0
假设我们有四台磁盘驱动器,每两台磁盘驱动器先做成RAID 0,再把两个RAID 0做成RAID 1,这就是RAID 1 over RAID 0:
(RAID 0) A = Drive A1 + Drive A2 (Striped)
(RAID 0) B = Drive B1 + Drive B2 (Striped)
RAID 1 = (RAID 1) A + (RAID 1) B (Mirrored)
在这种架构之下,如果 (RAID 0) A有一台磁盘驱动器故障,(RAID 0) A就算毁了,当然RAID 1仍然可以正常工作;如果这时 (RAID 0) B也有一台磁盘驱动器故障,(RAID 0) B也就算毁了,此时RAID 1的两磁盘驱动器都算故障,整个RAID 1资料就毁了。
因此,RAID 0 OVER RAID 1应该比RAID 1 OVER RAID 0具备比较高的可靠度。所以我们建议,当采用RAID 0+1/RAID 10架构时,要先作RAID 1,再把数个RAID 1做成RAID 0。

3. 怎样选择Raid级别;

RAID 012345 到底哪一种适合你,不只是成本问题,容错功能和传输性能的考虑以及未来之可扩充性都应该符合应用的需求。
RAID 在市场上的的应用,已经不是新鲜的事儿了,很多人都大略了解RAID的基本观念,以及各个不同RAID LEVEL 的区分。但是在实际应用 面,我们发现,有很多使用者对于选择一个合适的RAID LEVEL,仍然无法很确切的掌握,尤其是对于RAID 0+1 (10),RAID 3, RAID 5之间的选择取舍,更是举棋不定。

3.1 RAID条切“striped”的存取模式;

在使用数据条切﹝Data Stripping﹞ 的RAID 系统之中,对成员磁盘驱动器的存取方式,可分为两种:
并行存取﹝Paralleled Access﹞
独立存取﹝Independent Access﹞
RAID 2和RAID 3 是采取并行存取模式。
RAID 0、RAID 4、RAID 5及RAID 6则是采用独立存取模式。

3.2 平行存取模式;

并行存取模式支持里,是把所有磁盘驱动器的主轴马达作精密的控制,使每个磁盘的位置都彼此同步,然后对每一个磁盘驱动器作一个很短的I/O数据传送,如此一来,从主机来的每一个I/O 指令,都平均分布到每一个磁盘驱动器。
为了达到并行存取的功能,RAID 中的每一个磁盘驱动器,都必须具备几乎完全相同的规格:转速必须一样;磁头搜寻速度﹝Access Time﹞必须相同;Buffer 或Cache的容量和存取速度要一致;CPU处理指令的速度要相同;I/O Channel 的速度也要一样。总而言之,要利用并行存取模式,RAID 中所有的成员磁盘驱动器,应该使用同一厂牌,相同型号的磁盘驱动器。

3.2.1 并行存取的基本工作原理;

假设RAID中共有四部相同规格的磁盘驱动器,分别为磁盘驱动器A、B、C和D,我们在把时间轴略分为T0、T1、T2、T3和T4:
T0: RAID控制器将第一笔数据传送到A的Buffer,磁盘驱动器B、C和D的Buffer都是空的,在等待中
T1: RAID控制器将第二笔数据传送到B的Buffer,A开始把Buffer中的数据写入扇区,磁盘驱动器C和D的Buffer都是空的,在等待中
T2: RAID控制器将第三笔数据传送到C的Buffer,B开始把Buffer中的数据写入扇区,A已经完成写入动作,磁盘驱动器D和A的Buffer都是空的,在等待中
T3: RAID控制器将第四笔数据传送到D的Buffer,C开始把Buffer中的数据写入扇区,B已经完成写入动作,磁盘驱动器A和B的Buffer都是空的,在等待中
T4: RAID控制器将第五笔数据传送到A的Buffer,D开始把Buffer中的数据写入扇区,C已经完成写入动作,磁盘驱动器B和C的Buffer都是空的,在等待中 
如此一直循环,一直到把从主机来的这个I/O 指令处理完毕,RAID控制器才会受处理下一个I/O 指令。重点是在任何一个磁盘驱动器准备好把数据写入扇区时,该目的扇区必须刚刚好转到磁头下。同时RAID控制器每依次传给一个磁盘驱动器的数据长度,也必须刚刚好,配合磁盘驱动器的转速,否则一旦发生 miss,RAID 性能就大打折扣。

3.2.2 并行存取RAID的最佳应用;

并行存取RAID之架构,以其精细的马达控制和分布之数据传输,将数组中每一个磁盘驱动器的性能发挥到最大,同时充分利用Storage Bus的频宽,因此特别适合应用在大型、数据连续的档案存取应用,例如:
影像、视讯档案服务器
数据仓储系统
多媒体数据库
电子图书馆
印前或底片输出档案服务器
其它大型且连续性档案服务器
由于并行存取RAID架构之特性,RAID 控制器一次只能处理一个I/O要求,无法执行Overlapping 的多任务,因此非常不适合应用在 I/O次数频繁、数据随机存取、每笔数据传输量小的环境。同时,因为并行存取无法执行Overlapping 的多任务,因此没有办法"隐藏"磁盘驱动器搜寻﹝seek﹞的时间,而且在每一个I/O的第一笔数据传输,都要等待第一个磁盘驱动器旋转延迟﹝rotational latency﹞,平均为旋转半圈的时间,如果使用一万转的磁盘驱动器,平均就需要等待50 usec。所以机械延迟时间,是并行存取架构的最大问题。

3.3 独立存取模式;

相对于并行存取模式,独立存取模式并不对成员磁盘驱动器作同步转动控制,其对每个磁盘驱动器的存取,都是独立且没有顺序和时间间格的限制,同时每笔传输的数据量都比较大。因此,独立存取模式可以尽量地利用overlapping 多任务、Tagged Command Queuing等等高阶功能,来" 隐藏"上述磁盘驱动器的机械时间延迟﹝Seek 和Rotational Latency﹞。
由于独立存取模式可以做overlapping 多任务,而且可以同时处理来自多个主机不同的I/O Requests,在多主机环境﹝如Clustering﹞,更可发挥最大的性能。

3.3.1 独立存取RAID的最佳应用;

由于独立存取模式可以同时接受多个I/O Requests,因此特别适合应用在数据存取频繁、每笔数据量较小的系统。例如:
在线交易系统或电子商务应用
多使用者数据库
ERM及MRP 系统
小文件之文件服务器

4. 创建和维护Raid;


4.1 mdadm;

在Linux服务器中是通过mdadm工具来创建和维护软RAID的,mdadm在创建和管理软RAID时非常方便,而且很灵活。mdadm常用的参数有如下:
    * --create或-C:创建一个新的软RAID,后面接raid设备的名称。例如,/dev/md0,/dev/md1等。
    *--assemble或-A:加载一个已存在的阵列,后面跟阵列以及设备的名称。
    *--detail或-D:输出指定RAID设备的详细信息。
    *--stop或-S:停止指定的RAID设备。
    *--level或-l:设置RAID的级别,例如,设置“--level=5”则表示创建阵列的级别是RAID 5。
    *--raid-devices或-n:指定阵列中活动磁盘的数目。
    *--scan或-s:扫描配置文件或/proc/mdstat文件来搜索软RAID的配置信息,该参数不能单独使用,只能配置其它参数才能使用。
下面将通过一个实例来讲述通过mdadm如何实现软RAID的功能。

4.1.1 创建分区;

【实例1】
某台机器上有4块空闲的硬盘,分别是/dev/sdb、/dev/sdc、/dev/sdd和/dev/sde,并用这四块硬盘来创建来创建一个RAID 5,具体操作步骤如下:
首先使用“fdisk”命令在每块硬盘上创建一个分区,操作如下:

root@xiaop-laptop:/# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
Command (m for help): n         #按n创建新分区
Command action
e extended
p primary partition (1-4)           #输入p 选择创建主分区
p
Partition number (1-4): 1          #输入 1 创建第一个主分区
First cylinder (1-102, default 1):          #直接回车,选择分区开始柱面这里就从 1 开始
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-102, default 102):
Using default value 102
Command (m for help): w           #然后输入w写盘
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.


针对其余几块硬盘也做相同操作,按照此步骤在另外的两块磁盘上做同样的操作;
全部做完后,运行 fdisk -l 应该可以看到如下信息:

           Disk /dev/sdb: 214 MB, 214748160 bytes
64 heads, 32 sectors/track, 204 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         204      208880   fd  Linux raid autodetect
Disk /dev/sdc: 214 MB, 214748160 bytes
64 heads, 32 sectors/track, 204 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1         204      208880   fd  Linux raid autodetect
Disk /dev/sdd: 214 MB, 214748160 bytes
64 heads, 32 sectors/track, 204 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
   Device Boot      Start         End      Blocks   Id  System
/dev/sdd1               1         204      208880   fd  Linux raid autodetect


看到上面三个磁盘上分别建了一个分区,分区大小都一样;

4.1.2 创建RAID 5;

创建完/dev/sdb1、/dev/sdc1、/dev/sdd1、/dev/sde1四个分区后,下面就可以来创建RAID 5了,其中设定/dev/sde1作为备用设备,其余为活动设备,备用设备的作用是一旦某一设备损坏可以立即使用备用设备替换。操作命令如下:

root@xiaop-laptop:/# mdadm --create /dev/md0 --level=5 --raid-devices=3 --spare-devices=1 /dev/sd[b-e]1
mdadm: array /dev/md0 started.

其中“--spare-devices=1”表示当前阵列中备用设备只有一块,即作为备用设备的“/dev/sde1”,若有多块备用设备,则将“--spare-devices”的值设置为相应的数目。成功创建完成RAID设备后,通过如下命令可以查看到RAID的详细信息:

root@xiaop-laptop:/# mdadm --detail /dev/md0
/dev/md0:
Version : 00.90.01
Creation Time : Mon Jan 22 10:55:49 2007
Raid Level : raid5
Array Size : 208640 (203.75 MiB 213.65 MB)
Device Size : 104320 (101.88 MiB 106.82 MB)
Raid Devices : 3
Total Devices : 4
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Mon Jan 22 10:55:52 2007
State : clean
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 64K
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1
2 8 49 2 active sync /dev/sdd1
3 8 65 -1 spare /dev/sde1
UUID : b372436a:6ba09b3d:2c80612c:efe19d75
Events : 0.6



4.1.3 创建RAID的配置文件;

RAID的配置文件名为“mdadm.conf”,默认是不存在的,所以需要手工创建,该配置文件存在的主要作用是系统启动的时候能够自动加载软RAID,同时也方便日后管理。“mdadm.conf”文件内容包括:由DEVICE选项指定用于软RAID的所有设备,和ARRAY选项所指定阵列的设备名、RAID级别、阵列中活动设备的数目以及设备的UUID号。生成RAID配置文件操做如下:

root@xiaop-laptop:/# mdadm --detail --scan > /etc/mdadm.conf


但是当前生成“mdadm.conf”文件的内容并不符合所规定的格式,所以也是不生效的,这时需要手工修改该文件内容为如下格式:

root@xiaop-laptop:/# vi /etc/mdadm.conf
DEVICE /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
ARRAY /dev/md0 level=raid5 num-devices=3 UUID=b372436a:6ba09b3d:2c80612c:efe19d75


如果没有创建RAID的配置文件,那么在每次系统启动后,需要手工加载软RAID才能使用,手工加载软RAID的命令是:

root@xiaop-laptop:/# mdadm --assemble /dev/md0 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
mdadm: /dev/md0 has been started with 3 drives and 1 spare.



4.1.4 创建文件系统;

接下来就只需要在RAID设备上创建文件系统就可使用了,在RAID设备上创建文件系统和在分区或磁盘上创建文件系统的方法一样。在设备“/dev/md0”上创建ext3的文件系统命令如下:
root@xiaop-laptop:/# mkfs.ext3 /dev/md0
创建完文件系统后,将该设备挂载上就可正常的使用了。如果要创建其它级别的RAID,其步骤和创建RAID 5基本都一样,区别在于指定“--level”值的时候,需要将该值设置为相应的级别。 

4.2 维护软RAID;

软RAID虽然很大程度上能保证数据的可靠性,但是在日常的工作中,有时可能需要对RAID进行调整以及不排除RAID设备物理介质损坏的可能等相关问题
,当遇到这些情况时,那么同样可以通过“mdadm”命令来完成这些操作。下面也将通过一个实例来介绍更换RAID故障磁盘的完整过程。

4.2.1 模拟故障磁盘;

【实例2】
以前面的【实例1】为基础,假定其中的“/dev/sdc1”设备出现故障时,更换一个新的磁盘,整个过程的详细说明如下:
在实际中,当软RAID检测到某个磁盘有故障时,会自动标记该磁盘为故障磁盘,并停止对故障磁盘的读写操作,所以这里需要将/dev/sdc1标记为出现故障的磁盘,命令如下:

root@xiaop-laptop:/# mdadm /dev/md0 --fail /dev/sdc1
mdadm: set /dev/sdc1 faulty in /dev/md0


由于【实例1】中的RAID 5设置了一个备用设备,所以当有标记为故障磁盘的时候,备用磁盘会自动顶替故障磁盘工作,阵列也能够在短时间内实现重建。通过“/proc/mdstat”文件可查看到当前阵列的状态,如下:

root@xiaop-laptop:/# cat /proc/mdstat
Personalities : [raid5]
md0 : active raid5 sde1[3] sdb1[0] sdd1[2] sdc1[4](F)
208640 blocks level 5, 64k chunk, algorithm 2 [3/2] [U_U]
[=====>...............] recovery = 26.4% (28416/104320) finish=0.0min speed=28416K/sec
unused devices: 


以上信息表明阵列正在重建,当一个设备出现故障或被标记故障时,相应设备的方括号后将被标以(F),如“sdc1[4](F)”,其中“[3/2]”的第一位数表示阵列所包含的设备数,第二位数表示活动的设备数,因为目前有一个故障设备,所以第二位数为2;这时的阵列以降级模式运行,虽然该阵列仍然可用,但是不具有数据冗余;而“[U_U]”表示当前阵列可以正常使用的设备是/dev/sdb1和/dev/sdd1,如果是设备“/dev/sdb1”出现故障时,则将变成[_UU]。 
重建完数据后,再次查看阵列状态时,就会发现当前的RAID设备又恢复了正常,如下:

root@xiaop-laptop:/# cat /proc/mdstat
Personalities : [raid5]
md0 : active raid5 sde1[1] sdb1[0] sdd1[2] sdc1[3](F)
208640 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]
unused devices: 



4.2.2 移除故障磁盘;

既然“/dev/sdc1”出现了故障,当然要移除该设备,移除故障磁盘的操作如下:

root@xiaop-laptop:/# mdadm /dev/md0 --remove /dev/sdc1
mdadm: hot removed /dev/sdc1


其中“—remove”表示移除指定RAID设备中的某个磁盘,也可用“-r”来代替该参数。 

4.2.3 添加新硬盘;

在添加新的硬盘前,同样需要对新硬盘进行创建分区的操作,例如,添加新硬盘的设备名为“/dev/sdc1”,则具体操作如下:

root@xiaop-laptop:/# mdadm /dev/md0 --add /dev/sdc1
mdadm: hot added /dev/sdc1


其中“--add”与前面的“--remove”其义刚好相反,用于将某个磁盘添加到指定的设备中,也可用“-a”代替该参数。 
由于【实例1】中的RAID 5设置了一个备用设备,所以不需要做任何操作RAID 5也能正常运行,但是如果这时某块磁盘再出现故障的话,会导致RAID 5没有数据冗余功能,这对于存放重要的数据的设备来说显得太不安全了。那么这时增加到RAID 5中的“/dev/sdc1”则作为备用设备出现在阵列中,如下:

root@xiaop-laptop:/# mdadm --detail /dev/md0
/dev/md0:
……
……
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 65 1 active sync /dev/sde1
2 8 49 2 active sync /dev/sdd1
3 8 33 -1 spare /dev/sdc1
UUID : b372436a:6ba09b3d:2c80612c:efe19d75
Events : 0.133



5. 关于本文;

本文仅仅简单介绍了Raid,属于最基本的入门介绍,没有涉及到高级应用,如果想深入了解请参考其它相关文档;

6. 更新日志;

07.7.25 v0.1b

7. 参考文档;


8. 相关文档;

****************************************************

磁盘阵列技术原理分析

认识磁盘阵列技术

由磁盘阵列角度来看

    磁盘阵列的规格最重要就在速度,也就是CPU的种类。我们知道SCSI的演变是由SCSI 2 (Narrow, 8 bits, 10MB/s), SCSI 3 (Wide, 16bits, 20MB/s), Ultra Wide (16bits, 40MB/s), Ultra 2 (Ultra Ultra Wide, 80MB/s), Ultra 3 (Ultra Ultra Ultra Wide, 160MB/s),在由SCSI到Serial I/O,也就是所谓的 Fibre Channel (FC-AL, Fibre Channel - Arbitration Loop, 100 ?C 200MB/s), SSA (Serial Storage Architecture, 80 ?C 160 MB/s), 在过去使用 Ultra Wide SCSI, 40MB/s 的磁盘阵列时,对CPU的要求不须太快,因为SCSI本身也不是很快,但是当SCSI演变到Ultra 2, 80MB/s时,对CPU的要求就非常关键。一般的CPU, (如 586)就必须改为高速的RISC CPU, (如 Intel RISC CPU, i960RD 32bits, i960RN 64 bits),不但是RISC CPU, 甚至于还分 32bits, 64 bits RISC CPU 的差异。586 与 RISC CPU 的差异可想而知 ! 这是由磁盘阵列的观点出发来看的。

    由服务器的角度来看

    服务器的结构已由传统的 I/O 结构改为 I2O ( Intelligent I/O, 简称 I2O ) 的结构,其目的就是为了减少服务器CPU的负担,才会将系统的 I/O 与服务器CPU负载分开。Intel 因此提出 I2O 的架构,I2O 也是由一颗 RISC CPU ( i960RD 或I960RN ) 来负责 I/O 的工作。试想想若服务器内都已是由 RISC i960 CPU 来负责 I/O,结果磁盘阵列上却仍是用 586 CPU,速度会快吗 ?

    操作系统的角度来看

    

  • SCO OpenServer 5.0 32 bits
  • MicroSoft Windows NT 32 bits
  • SCO Unixware 7.x 64 bits
  • MicroSoft Windows NT 2000 32 bit 64 bits
  • SUN Solaris 64 bits ……..其他操作系统

        在操作系统都已由 32 bits 转到 64 bits,磁盘阵列上的CPU 必须是 Intel i960 RISC CPU才能满足速度的要求。586 CPU 是无法满足的 !

    磁盘阵列的功能

    使用磁盘阵列的好处,在于数据的安全、存取的速度及超大的存储容量。如何确保数据的安全,则取决于磁盘阵列的设计与品质。其中几个功能是必须考虑的:是否有环境监控器针对温度、电压、电源、散热风扇、硬盘状态等进行监控。磁盘阵列内的硬盘连接方式是用SCA-II整体后背板还是只是用SCSI线连的?在SCA-II整体后背板上是否有隔绝芯片以防硬盘在热插拔时所产生的高/低电压,使系统电压回流,造成系统的不稳定,产生数据丢失的情形。我们一定要重视这个问题,因为在磁盘阵列内很多硬盘都是共用这同一SCSI总线!一个硬盘热插拔,可不能引响其它的硬盘!甚幺是热插拔或带电插拔?硬盘有分热插拔硬盘,80针的硬盘是热插拔硬盘,68针的不是热插拔硬盘,有没有热插拔,在电路上的设计差异就在于有没有保护线路的设计,同样的硬盘拖架也是一样有分真的热插拔及假的热插拔的区别。

        磁盘阵列内的硬盘是否有顺序的要求?也就是说硬盘可否不按次序地插回阵列中,数据仍能正常的存取?很多人认为不是很重要,不太会发生,但是可能会发生的,我们就要防止它发生。假如您用六个硬盘做阵列,在最出初始化时,此六个硬盘是有顺序放置在磁盘阵列内,分为第一、第二…到第六个硬盘,是有顺序的,如果您买的磁盘阵列是有顺序的要求,则您要注意了:有一天您将硬盘取出,做清洁时一定要以原来的摆放顺序插回磁盘阵列中,否则您的数据可能因硬盘顺序与原来的不苻,磁盘阵列上的控制器不认而数据丢失!因为您的硬盘的SCSI ID号乱掉所致。现在的磁盘阵列产品都已有这种不要求硬盘有顺序的功能,为了防止上述的事件发生,都是不要求硬盘有顺序的。

        我们为什幺需要磁盘阵列

        目前人们逐渐认识了磁盘阵列技术。磁盘阵列技术可以详细地划分为若干个级别0-5 RAID技术,并且又发展了所谓的 RAID Level 10, 30, 50的新的级别,本章节都会一一介绍。RAID是廉价冗余磁盘阵列(Redundant Array of Inexpensive Disk)的简称。用RAID的好处简单的说就是:安全性高,速度快,数据容量超大

        某些级别的RAID技术可以把速度提高到单个硬盘驱动器的400%。磁盘阵列把多个硬盘驱动器连接在一起协同工作,大大提高了速度,同时把硬盘系统的可靠性提高到接近无错的境界。这些“容错”系统速度极快,同时可靠性极高。

        本节将讨论这些新技术,以及不同级别RAID的优缺点。我们并不想涉及那些关键性的技术细节问题,而是将磁盘阵列和RAID技术介绍给对它们尚不熟悉的人们。相信这将帮助你选用合适的RAID技术。

        RAID级别的定义

        下表提供了6级RAID的简单定义,本书其后部分将对各级RAID进行更详尽的描述。

        

    *对于单一容量昂贵硬盘(SLED)的性能提高

        硬盘数据跨盘(Spanning)

        数据跨盘技术使多个硬盘像一个硬盘那样工作,这使用户通过组合已有的资源或增加一些资源来廉价地突破现有的硬盘空间限制。

        图2所示为4个300兆字节的硬盘驱动器连结在一起,构成一个SCSI系统。用户只看到一个有1200兆字节的C盘,而不是看到C, D, E, F, 4个300兆字节的硬盘。在这样的环境中,系统管理员不必担心某个硬盘上会发生硬盘安全检空间不够的情况。因为现在1200兆字节的容量全在一个卷(Volume)上(例如硬盘C上)。系统管理员可以安全地建立所需要的任何层次的文件系统,而不需要在多个单独硬盘环境的限制下,计划他的文件系统。

        硬盘数据跨盘本身并不是RAID,它不能改善硬盘的可靠性和速度。但是它有这样的好处,即多个小型廉价硬盘可以根据需要增加到硬盘子系统上。

        

    磁盘阵列技术原理分析(图二)
    图2硬盘数据跨盘

        

    磁盘阵列分类

    硬盘分段(Disk Striping, RAID 0)

        硬盘分段的方法把数据写到多个硬盘,而不是只写到一个盘上,这也叫作RAID O,在磁盘阵列子系统中,数据按系统规定的“段”(Segment)为单位依次写入多个硬盘,例如数据段1写入硬盘0,段2写入硬盘1,段3写入硬盘2等等。当数据写完最后一个硬盘时,它就重新从盘0的下一可用段开始写入,写数据的全过程按此重复直至数据写完。

        段由块组成,而块又由字节组成。因此,当段的大小为4个块,而块又由256个字节组成时,依字节大小计算,段的大小等于1024个字节。第1~1024字节写入盘0,第1025~2048字节写盘1等。假如我们的硬盘子系统有5个硬盘,我们要写20,000个字节,则数据将如图3那样存储。

        

    磁盘阵列技术原理分析(图三)
    图3:硬盘分段

        总之,由于硬盘分段的方法,是把数据立即写入(读出)多个硬盘,因此它的速度比较快。实际上,数据的传输是顺序的,但多个读(或写)操作则可以相互重迭进行。这就是说,正当段1在写入驱动器0时,段2写入驱动器1的操作也开始了;而当段2尚在写盘驱动器1时,段3数据已送驱动器2;如此类推,在同一时刻有几个盘(即使不是所有的盘)在同时写数据。因为数据送入盘驱动器的速度要远大于写入物理盘的速度。因此只要根据这个特点编制出控制软件,就能实现上述数据同时写盘的操作。

        遗憾的是RAID 0不是提供冗余的数据,这是非常危险的。因为必须保证整个硬盘子系统都正常工作,计算器才能正常工作,例如,假使一个文件的段1(在驱动器0),段2(在驱动器1),段3(在驱动器2),则只要驱动器0, 1, 2中有一个产生故障,就会引起问题;如果驱动器1故障,则我们只能从驱动器物理地取得段1和段3的数据。幸运的是可以找到一个解决办法,这就是硬盘分段和数据冗余。下面一小节将讨论这个问题。

        硬盘镜像(RAID 1)

        硬盘镜像(RAID 1)是容错磁盘阵列技术最传统的一种形式,在工业界中相对地最被了解,它最重要的优点是百分之百的数据冗余。RAID 0通过简单地将一个盘上的所有数据拷贝到第二个盘上(或等价的存储设备上)来实现数据冗余,这种方法虽然简单且实现起来相对较容易,但它的缺点是要比单个无冗余硬盘贵一倍,因为必须购买另一个硬盘用作第一个硬盘的镜像。

        

    磁盘阵列技术原理分析(图四)
    图4:硬盘镜像

        硬盘镜像最简单的形式,是通过把二个硬盘连结在一个控制器上来实现的。图4说明了硬盘镜像。数据写在某一硬盘上时,它同时被写在相应的镜像盘上。当一个盘驱动器发生故障,计算器系统仍能正常工作,因为它可以在剩下的那块好盘上操作数据。

        因为二个盘互为镜像,哪个盘出故障都无关紧要,二是盘在任何时间都包含相同的数据,任何一个都可以当作工作盘。在硬盘镜像这个简单的RAID方式中,仍能采用一些优化速度的方法,例如平衡读请求负荷。当多个用户同时请求得到数据时,可以将读数据的请示分散到二个硬盘中去,使读负荷平均地分布在二个硬盘上。这种方法可观地提高了读数据的性能,因为二个硬盘在同一时刻读取不同的数据片。但是硬盘镜像不能改善写数据的性能。被“镜像”的硬盘也可被镜像到其它存储设备上,例如可擦写光盘驱动器,虽然以光盘作镜像盘没有用硬盘的速度快,但这种方法比没有使用镜像盘毕竟减少了丢失数据的危险性。

        总之,镜像系统容错性能非常好,并可以提高读数据的速度;它的缺点是需要双份硬盘,因此价格较高。

        硬盘分段和数据冗余(RAID2~5)

        硬盘分段改善了硬盘子系统的性能,因为向硬盘读写数据的速度与硬盘子系统中硬盘数目成正比地增加,但它的缺点是硬盘子系统中任一硬盘的故障都会导致整个计算器系统失败。整个分段的硬盘子系统部能作镜像,如果已经用了4个硬盘进行分段,我们可以再增加4个分段的硬盘作为原来4个硬盘的镜像。很明显这是昂贵的(虽然可能比镜像一个昂贵的大硬盘来得便宜)。可以不用镜像而用其它数据冗余的方法来提供高容错性能。可以选择一神奇偶码模式来实现上述方法,可以外加一个专作奇偶校验用的硬盘(如在RAID 3中),或者可把奇偶校验数据分散分布在磁盘阵列的全部硬盘中。分布式奇偶校验数据(RAID 5)的例子示于图5中。

        

    磁盘阵列技术原理分析(图五)
    磁盘阵列技术原理分析(图六)
    图5 RAID 5的硬盘分段

        不管用何种级别的RAID,磁盘阵列总是用异或(XOR)操作来产生奇偶数据,当子系统中有一个硬盘发生故障时,也是用异或操作重建数据。下列简单分析了XOR是怎样工作的。

        硬盘 A B C 奇偶盘 (A, B, C 异或的结果)
    数据 1 0 1 0

        首先记住在XOR操作中,2个数异或的结果是真(即“1”)时,这二个数中有且一个数为1(另一个为0)。我们假设A, B, C中B盘故障,此时可将A, C和奇偶数据XOR起来,得到B盘失去的数据0;同样如C盘故障,我们可将A, B盘和奇偶盘的数据XOR,得到C盘原先的数据1。

        如果推广到7个盘的硬盘子系统:

        硬盘 A B C D E F 奇偶位
    数据 0 0 0 1 0 1 0

        如果丢失B盘数据,我们可以XOR A, C, D, E, F和奇偶位来得到失去的B盘数据0。而XOR A, B, C, D, E, F和奇偶位可恢复D盘的数据1。

        采用专用的奇偶校验盘(如上所述,即RAID 3),当同时产生多个写操作时,每次操作都要对奇偶盘进行写入。这将产生I/O瓶颈效应。

        RAID 5把奇偶位信息分散分布在硬盘子系统的所有硬盘上(而不是使用专用的校验盘0,这就改善了上述RAID 3中的奇偶盘瓶颈效应。图5说明了RAID 5的一种配置,图中奇偶信息散布在子系统的每个硬盘上。利用每个硬盘的一部分来组成校验盘,写入硬盘的奇偶位信息将较均匀地分布在所有硬盘上。所以某个用户可能把它的一个数据段写在硬盘A,而将奇偶信息写在硬盘B,第二个用户可能把数据写在硬盘C,而奇偶信息写在硬盘D。从这里也可看出RAID 5的性能会得到提高。

        这种方法将提高硬盘子系统的事务处理速度。所谓事务处理,是指处理从许多不同用户来的多个硬盘I/O操作,由于可能同时有很多用户与硬盘打交道,迅速向硬盘写入数据,有时几乎是同时进行的,这种情况下,用分布式奇偶盘的方式比起用专用奇偶盘,瓶颈效应发生的可能性要小。

        对硬盘操作来说,RAID 5的写性能比不上直接硬盘分段(指没有校验信息的RAID 0)。因为产生或存储奇偶码需要一些额外操作。例如,在修改一个硬盘上的数据时,其它盘上对应段的数据(即使是无关的数据)也要读入主机,以便产生必要的奇偶信息。奇偶段产生后(这要花一些时间),我们要将更新的数据段和奇偶段写入硬盘,这通常称为读-修改-写策略。因此,虽然RAID 5比RAID 0优越,但就写性能来说,RAID 5不如RAID 0。

        镜像技术(RAID 1)和数据奇偶位分段(RAID 5)用于上述的硬盘子系统中时,都产生冗余信息。但在RAID 1中,所有数据都被复制到第二个相同的硬盘上。在RAID 5,数据的XOR码而不是数据本身被复制,因此可以用数据的非常紧凑的表现方式,来恢复由于某一硬盘故障而丢失的数据。

        采用RAID 5时,对于5个硬盘的数组,有大约20%的硬盘空间用于存放奇偶码,而十个硬盘的数组只有约10%的空间存放奇偶码。在可用空间总的格式化空间的意义上来说,硬盘系统中的硬盘越多该系统就越省钱。

        总之,RAID 5把硬盘分段和奇偶冗余技术的优点结合在一起,这样的硬盘子系统特别适合于事务处理环境,例如民航售票处,汽车出租站,销售系统的终端,等等。在某些场合,可优先考虑RAID 1(在那些写数据比读数据更频繁的情况)。但许多情况,RAID 5提供了将高性能,低价格和数据安全性综合在一起的解决办法。

        RAID Level 10

    磁盘阵列技术原理分析(图七)


    RAID Level 30

    磁盘阵列技术原理分析(图八)


    RAID Level 50

    磁盘阵列技术原理分析(图九)


    硬盘故障恢复

    镜像和RAID提供了从硬盘故障中恢复数据的新方法。因为数据的所有部分都是有冗余的,数据有效性很高(即使在硬盘发生故障时)。另一重要优点是,恢复数据的工作不用立即进行,因为系统可以在一个硬盘有故障的情况下正常工作,当然在这种情况下,剩下的系统就不再有容错性能。要避免丢失数据就必须在第二个硬盘故障前恢复数据。更换故障硬盘后,要进行数据恢复。在镜像系统中“镜像” 盘上有一个数据备份,因此故障硬盘(主硬盘或镜像硬盘)通过简单的硬盘到硬盘的拷贝操作就能重建数据,如图6所示。这个拷贝操作比从磁带上恢复数据要快得多。

        

    磁盘阵列技术原理分析(图十)
    图6从镜像盘恢复数据

        RAID 5硬盘子系统中,故障硬盘通过无故障硬盘上存放的纠错(奇偶)码信息来重建数据。正常盘上的数据(包括奇偶信息部分)被读出,并计算出故障盘丢失的那些数据,然后写入新替换的盘。这个过程示于图7,它比从磁带上恢复数据要快不少。

        设计灵活的磁盘阵列可以重新配置,替换盘的地址不一定和故障盘的地址相同,见图8。这种灵活性使安装过程变得更为简单。备用盘甚至可以在硬盘故障前预先连在系统上。在那种情况下,它就成了随时可用的备份盘。这种盘通常称为“热备份”。

        

    磁盘阵列技术原理分析(图十)
    图7目标地址相同的替换盘

        

    磁盘阵列技术原理分析(图十二)
    图8目标地址不同的替换盘


    可靠性和可用性

    这二个名词虽然相互关连,事实上却代表了硬盘故障的二个不同的方面,可靠性指的是硬盘在给定条件下发生故障的概率。可用性指的是硬盘在某种用途中可能用的时间。利用这二个名词,我们可以看到磁盘阵列是怎样把我们的硬盘系统可靠性提高到接近百分之百的程度的。

        磁盘阵列可以改善硬盘系统的可靠性。因为某一硬盘中的数据可以从其它硬盘的数据中重新产生出来(例如RAID 5),所以很少会有机会使整个硬盘系统失效。硬盘子系统的可靠性因而大大改善了。

        图表9是RAID硬盘子系统与单个硬盘子系统的可靠性比较:

        

    图表9 硬盘子系统可靠性比较

        我们还必须考虑系统的可用性。单一硬盘系统的可用性比没有数据冗余的磁盘阵列要好,而冗余磁盘阵列的可用性比单个硬盘的好得多。这是因为冗余磁盘阵列允许单个硬盘出错,而继续正常工作。此外,一个硬盘故障后的系统恢复时间也大大缩短(与从磁带恢复数据相比)。最后,因为发生故障时,硬盘上的数据是故障当时的数据,替后的硬盘也将包含故障时的数据(举例说,前天晚上的备份数据)。要得到完全的容错性能,计算器硬盘子系统的其它部件也必须有冗余例如提供二个电源,或者配备双份硬盘控制器。没有其它部件的冗余,即使有非常可靠的硬盘子系统,还是不能完全防止计算机系统的失效。

        最佳化的容错系统

        如先前所述,直接分段的子系统(RAID 0)可以大大提高读写速度(相对单个硬盘),因为数据分散在多个硬盘,硬盘操作可以同时进行。

        把二个直接分段的硬盘子系统组成镜像,可以有效地构成全冗余的快速硬盘子系统。这样的子系统,其硬盘操作甚至比直接分段的硬盘子系统还快,因为该系统能同时执行二个读操作(每个硬盘一个读操作),而写操作的速度则与非镜像直接分段子系统几乎一样,因为把数据同时写入二个硬盘只需花费很少的额外开销。

        通过我们前面所述的概念,例如双工:(双控制器,双电源等),可以进一步改善有关冗余方面的问题。双控制器还使我们得到更高的数据传输速度,因为控制器成为子系统性能瓶颈的可能性更小了。

    磁盘阵列技术术语

    硬盘镜像(Disk Mirroring):硬盘镜像最简单的形式是,一个主机控制器带二个互为镜像的硬盘。数据同时写入二个硬盘,二个硬盘上的数据完全相同,因此一个硬盘故障时,另一个硬盘可提供数据。

        硬盘数据跨盘(Disk Spanning):利用这种技术,几个硬盘看上去像是一个大硬盘;这个虚拟盘可以把数据跨盘存储在不同的物理盘上,用户不需关心哪个盘上存有他需要的数据。

        硬盘数据分段(Disk Striping):数据分散存储在几个盘上。数据的第一段放在盘0,第2段放在盘1,……直至达到硬盘链中的最后一个盘,然后下一个逻辑段将放在硬盘0,再下一个逻辑段放在盘1,如此循环直至完成写操作。

        双控(Duplexing):这里指的是用二个控制器来驱动一个硬盘子系统。一个控制器发生故障,另一个控制器马上控制硬盘操作。此外,如果编写恰当的控制器软件,可实现不同的硬盘驱动器同时工作。

        容错(Fault Tolerant):具有容错功能的机器有抗故障的能力。例如RAID 1镜像系统是容错的,镜像盘中的一个出故障,硬盘子系统仍能正常工作。

        主机控制器(Host Adapter):这里指的是使主机和外设进行数据交换的控制部件(如SCSI控制器)。

        热修复(Hot Fix):指用一个硬盘热备份来替换发生的故障的硬盘。要注意故障盘并不是真正地被物理替换了。用作热备份的盘被加载上故障盘原来的数据,然后系统恢复工作。

        热补(Hot Patch):具有硬盘热备份,可随时替换故障盘的系统。

        热备份(Hot Spare):与CPU系统电连接的硬盘,它能替换下系统中的故障盘。与冷备份的区别是,冷备份盘平时与机器不相连接,硬盘故障时才换下故障盘。

        平均数据丢失时间(MTBDL-Mean Time Between Data Loss):发生数据丢失的事件间的平均时间。

        平均无故障工作时间(MTBF-Mean Time Between Failure或MTIF):设备平均无故障运行时间。

        廉价冗余磁盘阵列(RAID-Redundant Array of Inexpensive Drives):一种将多个廉价硬盘组合成快速,有容错功能的硬盘子系统的技术。

        系统重建(Reconstruction or Rebuild):一个硬盘发生故障后,从其它正确的硬盘数据和奇偶信息恢复故障盘数据的过程。

        恢复时间(Reconstruction Time):为故障盘重建数据所需要的时间。

        单个大容量硬盘(SLED-Singe Expensive Drive)

        传输速率(Transfer Rate):指在不同条件下存取数据的速度。

        虚拟盘(Virtual Disk):与虚拟存储器类似,虚拟盘是一个概念盘,用户不必关心他的数据写在哪个物理盘上。虚拟盘一般跨越几个物理盘,但用户看到的只是一个盘。

  • 此文章由 flyinweb 于 2009-07-17 17:42:44 编辑

    本日志由 flyinweb 于 2009-07-17 15:51:07 发表,目前已经被浏览 3874 次,评论 0 次;

    作者添加了以下标签: Raid磁盘阵列(Disk Array)

    引用通告:http://www.517sou.net/Article/146/Trackback.ashx

    评论订阅:http://www.517sou.net/Article/146/Feeds.ashx

    相关文章

    评论列表

      暂时没有评论
    (必填)
    (必填,不会被公开)