软RAID(software-based RAID)是基于软件的RAID。它可能是最普遍的被使用的RAID阵列,这是由于现在的很多服务器操作系统都集成了RAID功能。比如 Microsoft Windows NT, Windows 2000, Windows 2003, Novell Netware 和 Linux。
软件RAID集成于操作系统,有比较低的始投资,但是它的CPU占用率非常高,并且只有非常有限的阵列操作功能。由于软件RAID是在操作系统下实现RAID,软RAID不能保护系统盘。亦即系统分区不能参与实现RAID。有些操作系统,RAID的配置信息存在系统信息中,而不是存在硬盘上;当系统崩溃,需重新安装时,RAID的信息也会丢失。尤其是软件RAID 5是CPU的增强方式,会导致30%-40%I/O功能的降低, 所以不建议使用软件RAID在增强的处理器服务器中。
硬RAID(这里只讨论基于总线的RAID)是由内建RAID功能的主机总线适配器(Host bus adapter)控制,直接连接到服务器的系统总线上的。
总线RAID具有较软RAID更多的功能但是又不会显著的增加总拥有成本。这样可以极大节省服务器系统CPU和操作系统的资源。从而使网络服务器的性能获得很大的提高。
支持很多先进功能如:热插拔,热备盘,SAF-TE,阵列管理,等等。
并且其价格价格相对较低。它的缺点是要占用PCI总线带宽,所以PCI I/O 可能变成阵列速度的瓶颈
HostRAID 是一种把初级的RAID功能附加给SCSI或者SATA卡而产生的产品。它是基于硬和软RAID之间的一种产品。它把软件RAID功能集成到了产品的固件上,从而提高了产品的功能和容错能力。它可以支持RAID 0和RAID 1。
虽然复杂的raid 系统有着特定的结构保护你的数据,但由于误操作和硬件故障引起的数据丢失还是频繁地发 生。大多数raid用户看重的就是 raid的容错功能, 然而很多误导宣传也使用户误以为raid是不容易出故障或出 现故障时raid本身有处理容错的应变机制,所以没有认真地作备份, 因而忽视了raid潜在危险,所以每当raid故障时都是一场大的灾难。
raid系统在出现故障是如果处理得当,在大多数情况下数据都是可以恢复的。在这里向大家介绍一种raid的数据恢复方法。为此我先介绍两个非常好用的工具软件,它们是 runtime software公司的getdataback 和raid reconstructor, 其中 getdataback 用于恢复数据,raid reconstructor 用于恢复 raid 5的磁盘阵列。
下面我就向大家介绍一种恢复 raid 5 磁盘阵列的数据的方法。我们以一个只有3 块硬盘的 raid 5阵列为例。下面是raid reconstructor 的用户界面:
runtime 的 raid reconstructor 帮助我们从损坏的
raid 5 阵列中恢复数据. 即使我们不知道 raid 参数,比如磁盘次序, 块大小和旋转方向, raid reconstructor 能自动分析和确定正确的值,然后使我们能够重新构造一个raid 镜像文件或物理驱动器的拷贝。一旦我们建立了一个镜像文件, 就可以使用 runtime 的getdataback或其它数据恢复软件进行处理. 如果我们把这个镜像建立在一个物理驱动器上, 我们既可以用数据恢复软件处理它,也有可能直接从它上面启动系统。
因为 raid 5 冗余性, 如果原阵列里的磁盘数为n ,raid reconstructor 通过n-1 个磁盘也能重新计算出原来的数据。
使用raid reconstructor的三个简单的步骤:
规定 raid 阵列的组合
输入原始 raid 5 阵列的硬盘数.然后我们输入raid的每个物理硬盘或硬盘镜像文件。如果你使用物理硬盘名,这些硬盘必须是可以访问的。我们可以使用镜像文件代替物理硬盘(这个镜像文件可以runtime的 getdataback 或diskexplorer建立。
注意:如果在物理驱动器上有坏扇区, 建立磁盘的镜像文件将是我们的首选方法。
如果我们不知道raid 参数, 保留这个值, 不改变块长度和奇偶校验的旋转方向。
例如 raid 5阵列由3块硬盘组成, 挂在我们的计算机上作为独立的物理硬盘hd130:, hd131:, hd132:
又例如: raid 5阵列由3个镜像文件组成, 它预先建立在我们的逻辑驱动器 e 上: drive1.img, drive2.img,
drive3.img.
我们也可以混合选择物理硬盘和镜像文件.
单击 "open drives" 选择的每个硬盘或镜像的容量会显示在右边,同时raid 的总容量将显示在下面:
注意: 我们输入的硬盘个数可以小于阵列的长度. 在这个例子中 #drives 仍然是 3 ,但可以保留一个空的驱动器
分析 raid 结构,确定正确的磁盘次序、块大小和旋转方向.
如果我们知道正确的参数, 则把它们直接填写在输入框里就可以了, 并可以跳过分析. 否则单击 "analyze".
这时屏幕上会弹出一个窗口,让我们选择一些测试组合。我们可以参考raid 控制器的设置手动改变某些选项。大多数值已经用缺省方式选择了。如果需要,我们可以输入多个定制的块长度. 但块的长度必须 2 的幂数如: (16, 32, 64,...). "number of sectors to probe" 确定动态测试多少扇区,缺省是100000, 但如果需要的话你可以根据块的大小增加这个值,例如, 500000 或 1000000.
单击
"next". 根据硬盘个数、检查条件组合数和测试的扇区数,测试分析时间可能从几秒钟到数小时。当分析完成后将生成下面的列表:
最有可能的参数组合列在该表的前端,通常我们都选择推荐的第一项.在上述例子里我们看见每种可能的排列都有3 行显示数据, 它们代表的意思如下:
硬盘次序 (drive order)
可能的情况是 (1-2-3), (1-3-2), (2-1-3), (2-3-1), (3-1-2) 或 (3-2-1), 共有 6 种可能的组合.
块长度 (block size)选择了 4 种可能的组合16, 32, 64 或 128.奇偶校验块的旋转方向(parity rotations to probe):有向前(forward)、向后(backward) 2种情况。所以在列表上一共列出了48 (6*4*2) 种可能的组合。如果结果数据有意义, 每个组合都将被检测. 每个检测都有一个平均值,这个值叫 "entropy"(平均值). 着个值越小表示越接近正确的 raid 参数值。
"os:" 的值在 0—5 之间, 1到4 代表的意义如下:
os:1) 扇区 63 有一个 boot 记录标记 (xaa55).
os:2) 扇区 63 是一个合法的 ntfs、 fat32 或 fat16 boot 扇区.
os:3) ntfs: 第一个 mft 项被成功装入, fat: 找到fat1.
os:4) ntfs: 前16 个mft项被成功装入, fat: 发现fat2 , 并且 fat2 的第一个扇区和 fat1 的一个扇区相同.选择上面描述的项(最有可能的是第一项)并单击 完成“finish”. 这样就把我们选择的参数拷贝到主屏幕。
拷贝 raid
现在我们就准备把raid 拷贝到另一个镜像文件或另一个驱动器上,当然目标设备必须有足够的空间来容纳这个raid。
在目的 "target" 框中输入要拷贝得文件名和路径. 它可以是物理驱动器名(如"hd132:"), 也可以是镜像文件名(如e:\raid.img").在缺省的情况下普通镜像文件的扩展名是".img",压缩镜像文件的扩展名是".imc". 如果我们在 "multi file" 选择框中打勾, 则镜像文件就会被分割成若干个文件, 每个650 mb. 这对某些系统(例如 windows 98/95)来说是必要的, 因为它们不支持超大文件。
其它选项:
奇偶校验检查(verify by parity): 拷贝时用奇偶校验块对raid的每个带区块进行完整性检查。增加额外扇区(append extra sectors):当物理驱动器的容量大于镜像文件的长度时, 有可能要选择此项, 这时会把物理驱动器的所有柱面填充满。这是要模拟整个驱动器,便于以后某些数据恢复软件能够对它进行处理(如getdataback).
单击 拷贝 "copy". 现在开始重构raid:
我们把这个raid镜像拷贝到另一个硬盘或阵列上,就能直接通过操作系统存取这个设备上的文件,这样
RAID数据恢复就成功了。