RAID廉价磁盘冗余阵列
一.什么是RAID
RAID(Redundant Array of Independent Disk 独立冗余磁盘阵列)技术是加州大学伯克利分校1987年提出,最初是为了组合小的廉价磁盘来代替大的昂贵磁盘,同时希望磁盘失效时不会使对数据的访问受损 失而开发出一定水平的数据保护技术。RAID就是一种由多块廉价磁盘构成的冗余阵列,在操作系统下是作为一个独立的大型存储设备出现。RAID可以充分发 挥出多块硬盘的优势,可以提升硬盘速度,增大容量,提供容错功能够确保数据安全性,易于管理的优点,在硬盘出现问题的情况下都可以继续工作,不会 受到损坏硬盘的影响。
二、RAID的实现方式
外接式磁盘阵列:通过扩展卡提供适配能力
内接式RAID:主板集成RAID控制器
安装OS前在BIOS里配置
软件RAID:通过OS实现
三、RAID常用的几种工作模式
1、RAID0
即Data Stripping数据分条技术。RAID 0可以把多块硬盘连成一个容量更大的硬盘群,可以提高磁 盘的性能和吞吐量。RAID 0没有冗余或错误修复能力,成本低,要求至少两个磁盘,一般只是在那些对数 据安全性要求不高的情况下才被使用。空间利用率高。
RAID 0的工作方式:
图1
如图1所示:系统向 三个磁盘组成的逻辑硬盘(RADI 0 磁盘组)发出的I/O数据请求被转化为3项操作,其中的每一项操作都对应于一块物理硬盘。我们从图中可以清楚的看到通过建立RAID 0,原先顺序的数据请求被分散到所有的三块硬盘中同时执行。
从理论上讲,三块硬盘的并行操作使同一时间内磁盘读写速度提升了3倍。 但由于总线带宽等多种因素的影响,实际的提升速率肯定会低于理论值,但是,大量数据并行传输与串行传输比较,提速效果显著显然毋庸置疑。
RAID 0的缺点是不提供数据冗余,因此一旦用户数据损坏,损坏的数据将无法得到恢复。
RAID 0具有的特点,使其特别适用于对性能要求较高,而对数据安全不太在乎的领域,如图形工作站等。对于个人用户,RAID 0也是提高硬盘存储性能的绝佳选择。
为什么要用RAID 0
RAID 0至少需要两块硬盘才能够实现,它的容量为组成这个系统的各个硬盘容量之和,这几块硬盘的容量要相同,在家用IDE RAID中一般级联两块硬盘,一定要用同型号同容量的硬盘。RAID 0模式向硬盘写入数据的时候把数据一分为二,分别写入两块硬盘,读取数据的时候则反之,这样的话,每块硬盘只要负担一半的数据传输任务,得到的结果也就是 速度的增加
2、RAID 1 (又称为Mirror或Mirroring--镜像)
RAID 1称为磁盘镜像:把一个磁盘的数据镜像到另一个磁盘上,在不影响性能情况下最大限度的保证系统的可靠性和可修复性上,具有很高的数据冗余能力,但磁盘利用 率为50%,故成本最高,多用在保存关键性的重要数据的场合。RAID 1的操作方式是把用户写入硬盘的数据百分之百地自动复制到另外一个硬盘上。
RAID 1有以下特点:
(1)、RAID 1的每一个磁盘都具有一个对应的镜像盘,任何时候数据都同步镜像,系统可以从一组 镜像盘中的任何一个磁盘读取数据。
(2)、磁盘所能使用的空间只有磁盘容量总和的一半,系统成本高。
(3)、只要系统中任何一对镜像盘中至少有一块磁盘可以使用,甚至可以在一半数量的硬盘出现问题时系统都可以正常运行。
RAID 1的工作方式:
图2
如图2所 示:当读取数据时,系统先从RAID1的源盘读取数据,如果读取数据成功,则系统不去管备份盘上的数据;如果读取源盘数据失败,则系统自动转而读取备份盘 上的数据,不会造成用户工作任务的中断。当然,我们应当及时地更换损坏的硬盘并利用备份数据重新建立Mirror,避免备份盘在发生损坏时,造成不可挽回 的数据损失。
3、 RAID 5
RAID5 至少由3块磁盘组成,一块磁盘作为校验盘。 在一个盘的数据丢失时,采用奇偶校验的方式恢复数据。
有一个磁盘作为校验盘。
图3
RAID 5 是一种存储性能、数据安全和存储成本兼顾的存储解决方案。 以四个硬盘组成的RAID 5为例,其数据存储方式如图4所示:图中,Ap为A1,A2和A3的奇偶校验信息,其它以此类推。由图中可以看出,RAID 5不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘 上。当RAID5的一个磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。
4、 RAID 10
图4
RAID10 是RAID1与RAID0 的组合阵列,可不是 RAID10(十)由RAID1与RAID0组成的阵列,拥有RAID1和RAID0的有点,有较好的容错率(底层是RAID1阵列,只要系统中任何一对镜像盘中至少有一块磁盘可以使用,甚至可以在一半数量的硬盘出现问题时系统都可以正常运行。),读写效率有提高,但损失的空间更多,造价高。
创建 raid
首先在虚拟机中新建若干硬盘设备,硬盘大小可以设置为相同大小。因为在RAID阵列中,以同一阵列中空间最小的硬盘大小为磁盘空间大小。
mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sd{b,c,d,e}
这是以sdb,sdc,sdd,sde,四块硬盘组成的RAID5阵列,由图可以看出,生成的RAID5阵列是可以看做一个新的硬盘。
可以对其进行分区处理
将磁盘格式化,并挂载
挂载后产看此时的磁盘信息
使用
mdadm -D /dev/md0 命令查看RAID信息
显示了组成RAID的成员
命令总结:
-C --create /dev/mdX 创建 名为mdX 的raid
-a yes 当没有所有的/dev/mdX 设备时,自动创建该设备
-l --level n 所要创建的raid等级
-n n 该raid的数据盘有多少个成员
-x n 该raid的热备盘有多少个 raid0 不支R持-x
-c 值 指定chunk大小,仅限raid0 raid5
/dev/sdx.... 指定raid的成员盘。
删除raid
首先卸载
umount
mdadm -D /dev/md2 先查一下,该raid由哪有成员组成
mdadm -S /dev/md0 停止设备
此时在启用设备会出现错误提示,
因为没有将RAID阵列的成员信息存储下来,导致系统找不到成员,设备启动不起来,只能手动输入成员,启动设备。
使用 mdadm -Ds /dev/md0 命令查看 成员信息
将信息存储到 /etc/mdadm.conf 文件中
设备停止后可以直接启动了
使用
mdadm --zero-superblock /dev/sd*
mdadm --zero-superblock /dev/sd*删除RAID成员信息
清空/etc/mdadm.conf当中,该raid的信息,就成功删除该RAID