日期:2011-08-02 11:45:00 来源:本站整理
Linux软RAID的技术概要及实现[Linux安全]
本文“Linux软RAID的技术概要及实现[Linux安全]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
原文:软RAID 0的技术概要及实现v0.1b (正在订正之中)
1 什么是RAID,RAID的级别和特点;
什么是RAID呢?全称是 "A Case for Redundant Arrays of Inexpensive Disks (RAID)",在1987年,由加州大学伯克利大学发表的论文而来,其实就是这个标题的缩写就是RAID;中译为"磁盘阵列";
RAID就是把几个物理磁盘组合在一同成为一个大的虚拟物理磁盘,主要目的和用处主要有:把若干小容量物理磁盘构成一个大容量虚拟存储设备(从前的物理磁盘的容量都对比小);提高物理存储效率(读、写),或供应冗余以提高数据存储的安全性.
按照利用方向的差别,RAID也分不差别级别 ,有LINEAR、RAID0、RAID1、RAID5、RAID10、RAID4、RAID6、MULTIPATH.常用的有RAID0、RAID1、RAID5、RAID10(其实就是0+1)、LINEAR
1.1 什么是硬件RAID和软RAID;
RAID 还分为硬件RAID 和软件RAID,硬件RAID是通过RAID 卡来实现的,而软件RAID是通过软件来实现的;在企业级利用范畴,大部份都是硬件RAID.而软件RAID由于性价比高,大多被中小型企业所采取;
硬件RAID是通过RAID卡把若干平等容量大小的硬盘,按照利用方向的差别,聚合起来成为一个大的虚拟RAID设备(或RAID0,或RAID1,大概RAID5,或RAID10……),假如每个硬盘容量不一致,以最小容量的硬盘为底子;它的成员是整个硬盘;
软RAID是软把若干平等容量大小的硬盘或分区,按照利用方向的差别,聚合起来成为一个大的虚拟RAID设备(或RAID0,或RAID1,大概RAID5,或RAID10……),假如每个硬盘或分区容量不一致,以最小容量的硬盘或分区为底子.软RAID的成员是整个硬盘或分区;
RAID 总的来说还是利用在生产型项目范畴中,普通在商用办公或个人娱乐利用并未被大规模采取.应有范畴大多要求性价比级的低端服务器或PC-SERVER;
1.2 RAID 的级别及特点;
RAID 有几种级别,LINEAR,RAID0 (striping), RAID1 (mirroring), RAID4, RAID5, RAID6, RAID10, MULTIPATH, and FAULTY.此中我们常用有RAID0、RAID1、RAID5、RAID10.
下面我们说说常用的RAID0、RAID1、RAID5以及RAID10;
1.21 什么是软RAID0及特点;
RAID0 是把两个或两个以上的容量相同的硬盘或分区,通过RAID掌握器(硬RAID是通过RAID卡来实现的,软RAID 是通过软件来实现的),结合为一个在容量上是RAID0下成员的容量的总和,在写入时,要向每个硬盘或分区同时写入数据.
在硬RAID中,RAID0的成员是以整个硬盘为单位的,把两个硬盘或两个以上的硬盘通过RAID卡绑定成为一个虚拟的磁盘设备,而每个硬盘就是RAID0的成员;
在软RAID0中,RAID0的成员是整个硬盘或分区,容量是加入RAID0的全部成员容量的总和.在RAID0中每个成员的容量都是相同一致的.比方我们把/dev/sdb 、/dev/sdc、/dev/sdd 三个容量大小为80G的硬盘做成RAID0,这时RAID0设备的容量就是三个硬盘的总和80x3=240G.当然我们也可以,在写入数据时,系统要向每个硬盘同时写入数据,是以条块的情势写入.比方我们存一份数据linuxsir.tar.gz 到RAID0的设备中,这份数据是分拆成若干份被分离的写入到RAID0中的每个成员中.只有RAID0中的每个成员正常运行,并且RAID0也正常运行的情形下,这份数据才是完好的.RAID0中任何一个成员(硬盘分区)有有问题时,RAID0便不能运行,同时数据也不是完好的;
RAID0 在读写速度上是对比快的,是普通不做RAID的两倍左右(注:实际速度和机械的硬件配置有关),所以RAID0常被用于对存储效率要求较高,但对数据安全性要求不高的利用办理筹划中;
安全性:RAID0中有任何一个成员呈现弊端,整个RAID0就不能被激活.数据不能保障;
1.22 什么是软RAID1及特点;
RAID1就是把若干相同容量的硬盘或分区,成员与成员之间是镜像关系.在容量上,RAID1设备是单个成员的容量.比方两个80G的硬盘做成RAID1,这个RAID1的设备容量还是80G.比方我们写入一个份数据linuxsir.tar.bz2 到RAID1设备时,其实是向RAID的每个成员都写了一份.比方RAID1设备下有两个成员/dev/sdb和/dev/sdc ,我们写入linuxsir.tar.bz2 到RAID1时,/dev/sdb和/dev/sdc都有一份完好的linuxsir.tar.bz2. 所以RAID1是冗余的阵列,普通被用于安全性要求对比高的利用中.
因为RAID1在由于镜像冗余,所以磁盘操纵效率并不高,大概说是"浪费".这种筹划相对来说性价比并不高,普通很少利用.数据读写效率要比RAID0慢.
安全性:RAID1 中只要有一个成员是安康的,RAID1完好可以激活,并且数据绝对是完好安全的.假如全部的成员有弊端,RAID1也就报废了.哈哈,这不是废话吗?
1.23 什么是软RAID5及特点;
软RAID5也是冗余安全的,RAID5是把至少三个硬盘或分区通过软件虚拟成为一个大的存储设备.在容量上是(n-1)x单个硬盘(分区)容量 ,比方我们用三块80G硬盘做成RAID5,容量就是两块容量的和160G.在写入上,数据被分拆成若干份,辨别向RAID5的每个成员下写入.比方把linuxsir.tar.bz2写入RAID5时, 要先把linuxsir.tar.bz2分拆成若干份,辨别写入RAID5成员中.因为触及到冗余,所以数据在读入速度上并非很快,没办法和RAID0相比,但RAID5的写入数据速度没有RAID1和RAID0快,也没有不做RAID的磁盘写入速度要快;
因为RAID5在容量丧失对比小,有冗余安全保障,别的写入速度对比快,从整体上来看,性价比对比高,所以被大范围内采取;
安全性:当RAID5中的成员中有一个发生弊端时,RAID5一样能启动和正常运行,只要n-1(注n>3)块硬盘或分区的不出弊端,RAID5上的数据就是安全,关于一个文件存到RAID5设备中,只有成员是n-1(注n>3)无弊端时,这份文件才是完好的. 比方RAID5有四个硬盘(或分区)做的,当一个硬盘或分区挂掉了,并不影响整个RAID5上数据的完好性和安全性.
1.24 什么是软RAID10及特点;
软RAID10也是冗余安全阵列,是RAID0+1的集成,RAID10是把至少四个硬盘或分区通过软件虚拟成为一个大的存储设备.在容量是:n/2x单个硬盘(分区)容量 ,比方我们用四块80G硬盘做成RAID5,容量就是两块容量的和4/2x80=160G.做RAID10所需求的硬盘或分区个数是偶数的.
RAID10,有RAID1的镜像特点,还有RAID0的速度.可以这么理解RAID10,比方有四个硬盘做成的RAID10,历程是先把每两个硬盘做成RAID1,然后再两个RAID1的底子上再做成RAID0.从理论上来说,RAID10应当担当RAID0的速度和RAID1的冗余安全.但经过我在软RAID0、RAID1、RAID5、RAID10的测试历程中发现RAID10的写入速度是最慢的,测试办法是用超越1G的大文件几盘复制.后果发现速度由高低的次序是:RAID0> 不做RAID>RAID1>RAID5>RAID10
2 在Linux中,软RAID的成立和管理;
在Linux中,软RAID是通mdadm来成立和管理的,mdadm 是一个专用成立和管理RAID的软件,在Linux中,大多发行版本已经默许安装,mdadm能成立任何级别的软RAID;
在本节中,RAID成立并非目的,我们还要查看学会RAID的状况,启动、终止RAID.还要学会利用RAID.所以RAID的利用应当包含成立、管理和利用.RAID的利用就是在RAID设备上成立文件系统,然后供存储利用;
流程是:
[RAID成立]->[RAID管理]->[RAID的利用]
|
[RAID的保护]
2.1 RAID的成立办法;
成立RAID有两个办法 ,
第一种办法 :用mdadm 通过-C或--create 参数来成立RAID.这种办法 ,是把RAID信息写到每个RAID成员的superblocks(超级块)中,在每个RAID成员的超级块中,城市记录RAID的级别、成员、RAID的UUID等…… 这种办法把RAID的信息记录在各个成员的superblocks(超级块)中.这种办法关于重装系统或系统发生灾难来来说,有利于现有RAID的恢复;这种办法是最常用的;
第二种办法:用mdadm 通过-B或--build 参数来成立RAID.这种办法并不把RAID的信息写入RAID成员的superblocks(超级块中),所以我们无法通过查看RAID成员信息来得到RAID的级别,以及RAID的成员等;这种办法关于重装系统或系统发生灾难来来说,不利于现有RAID的恢复;假如你想用第二种办法来成立RAID,可以在下面的语法中,把-C或--create 换成-B或--build .
语法:成立把RAID信息写入RAID每个成员的superblocks(超级块)中;
mdadm -C -v /dev/mdX -lY -nZ RAID成员
或
mdadm --create --verbose /dev/mdX --level=Y --RAID-devices=Z RAID成员
注:
-C 是--create 的缩写,表示成立的意思;这种办法是成立把RAID信息写入每个RAID成员superblocks(超级块)的办法.这是最常用的办法.
-v 和--verbose, 显示成立历程中具体的事件;
假如把-C或--create 换成-B或--build,就是成立RAID的另一种办法,不把RAID信息写入RAID成员的superblocks(超级块)中,假如您试用,请自己尝试;
RAID设备:/dev/mdX,RAID设备在Linux中,大多是/dev/md0,/dev/md1…… 第一个设备从/dev/md0开始. 比方你已经有RAID0设备是/dev/md0,你再想做一个RAID5,那就是/dev/md1,以此类推;
RAID级别 : 用-lY或--level=Y表示,Y是RAID的级别.RAID的级别有RAID0就用0表示,RAID1就用1表示,RAID5就用RAID5表示,RAID10就用10表示.RAID的级别是按照自己的利用方向和现有磁盘和分区个数来定位.假如你就想高速读写、大容量,对数据安全性要求不高,那就用RAID0,假如对数据要求较高,可以用RAID1或RAID5,再者就是RAID10.比方-l0或--level=0表示RAID0,-l5或--level=5表示RAID5, -l1或--level=1表示RAID1,-l10或--level=10表示RAID10;
-nZ或--RAID-devices=Z 表示RAID成员的个数,比方我们把三个硬盘分分区做成一个RAID,那就是3个设备.就要写成这样-n3或--RAID-devices=3;值得注意的是RAID0和RAID1至少需求两个设置,RAID5至少需求三个设备,RAID10至少四个设备;
RAID成员:也就是RAID的构成设备,要一个一个的列出来,每个设备后要用空格来离隔;比方我们把/dev/sdb、/dev/sdc、/dev/sdd三个硬盘做成RAID0,在RAID设备这块,我们要写成/dev/sdb /dev/sdc /dev/sdd ; 软件RAID的成员还可以是分区,比方/dev/sdb1、/dev/sdc1 ……
举例一:我们要做一个RAID0,成员是/dev/sdb、/dev/sdc 两个硬盘设备. 我们要运行以下号令;
mdadm -C --verbose /dev/md0 -l0 -n2 /dev/sdb /dev/sdc
或
mdadm -C --verbose /dev/md0 --level=0 --RAID-devices=2 /dev/sdb /dev/sdc
假如我们想把/dev/sdb1 、/dev/sdc1和/dev/sdd1三个分区做成RAID0呢?
mdadm -C -v /dev/md0 -l0 -n3 /dev/sd[bcd]1
或
mdadm -C --verbose /dev/md0 --level=0 --RAID-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
举例二:我们要做一个RAID5 ,成员是/dev/sdb、/dev/sdc、/dev/sdd 三个设备,我们要运行以下号令;
mdadm -C -v /dev/md0 -l5 -n3 /dev/sd[bcd]
或
mdadm -C --verbose /dev/md0 --level=5 --RAID-devices=3 /dev/sdb /dev/sdc /dev/sdd
假如我们想把/dev/sdb1 、/dev/sdc1和/dev/sdd1三个分区做成RAID5呢?
mdadm -C -v /dev/md0 -l5 -n3 /dev/sd[bcd]1
或
mdadm -C --verbose /dev/md0 --level=5 --RAID-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
成立完成后,RAID也就当即启动了.我们会发现有近似以下一行的提醒信息:
mdadm: array /dev/md0 started.
我们要可以通过下面的号令来查看RAID的信息;
mdadm -Ds /dev/md0
mdadm -D /dev/md0
2.2 RAID管理工具;
RAID的管理包含成立、启动、状况查看等一系列工具;我们只说常用的利用办法;
2.21 RAID的启动办法;
RAID的启动有两种办法,一种是指定RAID设备和RAID成员的办法来启动RAID,另一种办法是通过加载RAID默许的配置文件来启动.
第一种办法:不通过读取mdadm.conf来启动RAID;实用情形是你没有配置/etc/mdadm.conf 文件;
语法:
mdadm -A RAID设备RAID成员
注:
-A 同--assemble ,意思是激活一个已经存在的RAID;
RAID设备 ,就是/dev/md0 或/dev/md1 …… 按照你所成立的
以上是“Linux软RAID的技术概要及实现[Linux安全]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论