1
什么是
RAID
,
RAID
的级别和特色
;
什么是RAID呢?全称是 “A Case for Redundant Arrays of Inexpensive Disks (RAID)”,在1987年,由加州大学伯克利大学发表的论文而来,其实就是这个标题的缩写就是RAID;中译为“磁盘阵列”;
RAID就是把几个物理磁盘组合在一块儿成为一个大的虚拟物理磁盘,主要目的和用途主要有:把若干小容量物理磁盘组成一个大容量虚拟存储设备(之前的物理磁盘的容量都比较小);提升物理存储效率(读、写),或提供冗余以提升数据存储的安全性。
根据应用方向的不一样,RAID也分不不一样级别 ,有LINEAR、RAID0、RAID一、RAID五、RAID十、RAID四、RAID六、MULTIPATH。经常使用的有RAID0、RAID一、RAID五、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、RAID一、RAID五、RAID10。
下面咱们说说经常使用的RAID0、RAID一、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、RAID一、RAID五、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/sdb一、/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 …… 根据你所建立的RAID设备为准;
RAID成员,就是你要启动的RAID,其下属设备有哪些,要一个一个的列出来,中间以空格分开;
举例:好比我要启动一个RAID,设备是/dev/md0,其下有成员是 /dev/sdb和/dev/sdc;因此我要用下面的办法;
[root@linuxsir:~] mdadm -A /dev/md0 /dev/sdb /dev/sdc
注: 这种状况,是没有配置RAID的配置文件/etc/mdadm.conf 时,所使用的启动方法;若是您已经配置好了/etc/mdadm.conf文件,就能够用 mdadm -As 来启动;
第二种方法:利用配置好的
/etc/mdadm.conf
来启动
RAID
;
mdadm -A RAID设备
或
mdadm -As
注: 这种启动方法的前提是要配置 /etc/mdadm.conf文件,要把您系统中全部的RAID,都写入这个文件,而后就能够简单的用这个命令来启动了;
-A 同 --assemble ,意思是激活一个已经存在的RAID;
RAID设备 ,就是/dev/md0 或/dev/md1 …… 根据你所建立的RAID设备为准;
举例:
[root@linuxsir:~] mdadm -A /dev/md0
[root@linuxsir:~] mdadm -As
注: 好比我配置好/etc/mdadm.conf 后,启动RAID设备/dev/md0,就用上面的办法。具体mdadm.conf的写法,请参见 RAID的配置文件一节;
2.22 RAID
管理工具一些经常使用参数说明;
mdadm 参数
[RAID设备] [RAID成员]
-A 或
--assemble 激活一个RAID;
-S 和
--stop 中止正在运行的设备;
-s 或
--scan 扫描RAID设备;
-D 或
--detail 查看RAID的详细信息;
--examine 查看
RAID成员的详细信息;
注:其中[]中的选项是可选的。
举例:
[root@linuxsir:~]# mdadm -As
[root@linuxsir:~]# mdadm -Ss
[root@linuxsir:~]# mdadm -Ds
[root@linuxsir:~]# mdadm --examine /dev/sdb
注:上面的些标例, 都是在配置好/etc/mdadm.conf 的状况下,运行的,若是您没配置好mdadm.conf文件,请指定RAID设备及其成员;其中,--As 是搜索/etc/mdadm.conf ,而后根据 mdadm.conf 配置好的RAID信息来启动RAID。 -Ss 是搜索正在运行的RAID,而后中止。-Ds 搜索RAID,查看RAID信息; --examine /dev/sdb 是查看其中一块硬盘的RAID信息,这个颇有用。好比你忘记了RAID的成员和UUID,想恢复现有的RAID,就要用这个来查看,而后从新让RAID启动起来。
好比系统有一个RAID,但在/etc/mdadm.conf 中没有相应的记录RAID信息。我不知道这个RAID是哪一个类型的,是RAID0,仍是RAID1,仍是RAID5??到底机器中有几个RAID?若是您是一个新接手的管理员,应该想知道这些信息。那就一个一个硬盘,一个一个的分区查看过去。从中找出系统中全部的RAID。而后一个一个的恢复。这时就要用到 --examine这个参数了;
[root@linuxsir:~]# fdisk -l
[root@linuxsir:~]# # mdadm --examine /dev/sdb
/dev/sdb:
Magic : a92b4efc
Version : 00.90.00
UUID : 35e1a3e6:ed59c368:e5bc9166:5004fe52
Creation Time : Wed Aug 1 07:11:43 2007
RAID Level : RAID0
Used Dev Size : 0
RAID Devices : 2
Total Devices : 2
Preferred Minor : 0
Update Time : Thu Aug 2 07:43:30 2007
State : active
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Checksum : 8f8a235e - correct
Events : 0.29
Chunk Size : 64K
Number Major Minor RAIDDevice State
this 0 8 16 0 active sync /dev/sdb
0 0 8 16 0 active sync /dev/sdb
1 1 8 32 1 active sync /dev/sdc
注:
首先:咱们用fdisk -l 查看一下机器中全部硬盘和分区,若是不能彻底列出,请指定具体硬盘。
其次:咱们查看一下某个硬盘或分区上是否有RAID信息,好比我查看的是/dev/sdb ,结果显示出,/dev/sdb是RAID0设备的一个成员,/dev/sdb和/dev/sdc 共同组成的RAID0;
获得这些信息有何用呢?咱们就能够激活RAID,或重写/etc/mdadm.conf ,让RAID从新运行起来。在此过程当中, 千万不要用-C或--create 参数来从新建立RAID,不然你之前存在的RAID就被破坏,里面的数据固然也会一无全部!!!切记。在一个有数据的RAID中,不能随便用-C 参数。若是用了-C或--create 就是建立一个新的RAID设备!
2.3 RAID
的配置文件;
RAID并非必定要配置文件,但有配置文件,会方便管理,好比RAID最精简的方法执行、状态查看………… 也须要RAID的配置文件。若是不没有配置文件,还要指定RAID成员;
RAID的配置文件是mdadm.conf 位于/etc目录,若是你没有这个文件,能够本身建立一个;当咱们作好RAID后,首先要配置这个文件;把你全部的RAID配置信息都写入这个文件。 咱们能够本身手工编写。参照mdadm.conf 配置文件的示例就比较方便。
你也能够用下面的办法,要先作好/etc/mdamd.conf的备份;
[root@linuxsir~] mv /etc/mdadm.conf /etc/mdadm.conf.bak
第一步:搜索RAID;
搜索RAID是以激活RAID为前掉条件,不然下面的命令不会有什么做用;请参见激活RAID的办法;
语法:
mdadm -Ds
注: 其中-D 表示 --detail ,-s 表示--scan ,二者结合起来就-Ds;
提示:运行查询RAID的时,要首先激活RAID;
举例:
[root@linuxsir~] mdadm -Ds
ARRAY /dev/md0 level=RAID0 num-devices=2 UUID=35e1a3e6:ed59c368:e5bc9166:5004fe52
第二步:查询RAID的详细信息;主要是查看RAID的成员有哪些;
语法:
mdadm -D RAID设备
举例:
下面查询已经启动了的RAID设备/dev/md0的详细信息;
[root@linuxsir~] mdadm -D /dev/md0
/dev/md0:
Version : 00.90.03
Creation Time : Wed Aug 1 07:11:43 2007
RAID Level : RAID0
Array Size : 156249856 (149.01 GiB 160.00 GB)
RAID Devices : 2
Total Devices : 2
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Thu Aug 2 07:22:27 2007
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Chunk Size : 64K
UUID : 35e1a3e6:ed59c368:e5bc9166:5004fe52
Events : 0.21
Number Major Minor RAIDDevice State
0 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc
注:经过查询详细信息,咱们获得 /dev/md0是RAID0,下面两个成员/dev/sdb和/dev/sdc ;UUID为 35e1a3e6:ed59c368:e5bc9166:5004fe52 ;这个RAID是有超级块的;
第三步:书写RAID的配置文件mdadm.conf;
[root@linuxsir~] mdadm -Ds >> /etc/mdadm.conf 注:把查询出来的
RAID信息写到mdadm.conf中;
[root@linuxsir~]more /etc/mdadm.conf 注:看看有没有内容写进来?
ARRAY /dev/md0 level=RAID0 num-devices=2 UUID=35e1a3e6:ed59c368:e5bc9166:5004fe52
由于咱们在前面已经经过mdadm -D /dev/md0 得知其下有成员/dev/sdb 和 /dev/sdc 两块硬盘。因此咱们要修改一下mdamd.conf的内容。要在加上/dev/md0的成员/dev/sdb和/dev/sdc;用编辑器打开/etc/mdadm.conf;
在下面相似的一行;
ARRAY /dev/md0 level=RAID0 num-devices=2 UUID=35e1a3e6:ed59c368:e5bc9166:5004fe52
修改为
ARRAY /dev/md0 level=RAID0 num-devices=2 UUID=35e1a3e6:ed59c368:e5bc9166:5004fe52 devices=/dev/sdb,/dev/sdc
其实也就是把/dev/md0这个RAID设备的成员指定出来,每一个设备之间要用,号隔开。或者写成 devices=/dev/sd[bc]相似的写法也行;
咱们来看一下/dev/md0这行,其中/dev/md0这行是一个RAID0设备,由两个成员组成,/dev/md0的UUID为 UUID=35e1a3e6:ed59c368:e5bc9166:5004fe52 ,两个成员分别是/dev/sdb和/dev/sdc两个硬盘;
其实咱们不管添加多少RAID设备,均可以经过这种方法写入RAID配置文件/etc/mdadm.conf中,每一个RAID设备一行;写好后,咱们要重启一下RAID;
[root@linuxsir~] mdadm -Ss
或
[root@linuxsir~] mdadm --stop --scan
mdadm: stopped /dev/md0
[root@linuxsir~] mdadm -As
或
[root@linuxsir~] mdadm --assemble --scan
mdadm: /dev/md0 has been started with 2 drives.
注: -S 和--stop相同,表示中止RAID。而-s和 --scan相同,表示扫描RAID。-A和--assemble表示激活RAID;这些参数都比较简单,查查man和help就知道了;
激活RAID后,咱们要经过查看RAID的状态来判断RAID是否正常和健康……
3 RAID
设备的使用:
RAID
设备分区、文件系统初始化,挂载方法;
既然咱们已经把RAID设备作好了,咱们就要使用这个设备。RAID作好后,相似一个没有格式化的新硬盘。若是咱们拿到新硬盘时第一步是作什么?对,是分区和格式化,安装操做系统。RAID作好后,没有文件系统,同样是没办法用的,因此咱们作好RAID后,要来建立文件系统;RAID只不过是把几个硬盘或分区绑定在一块儿成为一个大的虚拟物理存储设备。若是咱们要对这个大的虚拟设备进行使用,就要在这个设备上建立文件系统才行。Linux 目前可用的文件系统有reiserfs、xfs、ext3,我推荐reiserfs和xfs,感受这个比较安全点。虽然如今有超强的zfs,但我认为仍是处于小白鼠阶段。对于重量级应用来讲,咱们仍是观察一段时间再说。
RAID作好后,咱们要为它进行文件系统初始化,当初始化完成后,咱们就能够挂载使用了。在通常状况下,咱们能够把作好的RAID挂载到/home,咱们能够把全部的存储性文件。
在Linux中,建立文件系统的工具备 mkfs.xfs(建立xfs文件系统), mkfs.jfs(建立JFS文件系统), mkfs.reiserfs (建立reiserfs文件系统), mkfs.ext3 (建立ext3文件系统)…… 。咱们推荐的是reiserfs和xfs,不推荐ext2或ext3,为何不推荐?由于实践是检验真理的惟一标准,性能不如人、安全性不如人,怎么用?我不是ext文件系统的专家,我只用最方便,维护起来比较容易的文件系统。
RAID也能够分区来使用,但以我看来,大可没必要,凡是能用到RAID的,大可能是服务器领域。咱们能够把RAID作成后,挂载到/home目录上。有关数据存储的都放在RAID上。操做系统并不安装在RAID上,当操做系统发生故障的时候,咱们仅仅是修复或重装操做系统,对数据存储的RAID没有任何影响。就是重装操做系统,咱们也能在几分钟以内恢复RAID。
若是您想把RAID再进进行分区使用,能够用fdisk 、parted或cfdisk 来进行分区工做,也能够尝试LVM的来对分区进行管理,LVM能自动调整分区的大小。固然,我不会推荐RAID+LVM,或对RAID进行分区操做。
RAID作好后,咱们就像使用物理硬盘同样使用它,好比根据前面的例子,把/dev/sdb和/dev/sdc两个硬盘作成RAID0,其设备为/dev/md0,咱们就能够对/dev/md0进行和物理硬盘同样的操做。若是咱们不分区,只是进行建立文件系统,那就比较简单了。
好比咱们在/dev/md0上建立reiserfs文件系统,咱们能够用mkfs.reiserfs命令来完成。
第一步:查看
/dev/md0
设备是否存在,以及它的容量;
[root@linuxsir:~]# fdisk -l /dev/md0
Disk /dev/md0: 159.9 GB, 159999852544 bytes
2 heads, 4 sectors/track, 39062464 cylinders
Units = cylinders of 8 * 512 = 4096 bytes
Disk /dev/md0 doesn't contain a valid partition table
注:咱们能够看到/dev/md0设备有 158.0GB的容量,不包含有效分区。若是您想要用分区操做,请用fdisk /dev/md0 、或cfdisk /dev/md0 或parted /dev/md0来操做;
第二步:建立文件系统;
在这里咱们是计划用 reiserfs 文件系统;
[root@linuxsir:~]# mkfs.reiserfs /dev/md0
mkfs.reiserfs 3.6.19 (2003 www.namesys.com)
A pair of credits:
Nikita Danilov wrote most of the core balancing code, plugin infrastructure,
and directory code. He steadily worked long hours, and is the reason so much of
the Reiser4 plugin infrastructure is well abstracted in its details. The carry
function, and the use of non-recursive balancing, are his idea.
Oleg Drokin was the debugger for V3 during most of the time that V4 was under
development, and was quite skilled and fast at it. He wrote the large write
optimization of V3.
Guessing about desired format.. Kernel 2.6.21.5-smp is running.
Format 3.6 with standard journal
Count of blocks on the device: 39062464
Number of blocks consumed by mkreiserfs formatting process: 9404
Blocksize: 4096
Hash function used to sort names: "r5"
Journal Size 8193 blocks (first block 18)
Journal Max transaction length 1024
inode generation number: 0
UUID: 2b06b743-8a4e-4421-b857-68eb2176bc50
ATTENTION: YOU SHOULD REBOOT AFTER FDISK!
ALL DATA WILL BE LOST ON '/dev/md0'!
Continue (y/n):y 注:在这里输入
y ,就进行建立文件系统了;
Initializing journal - 0%....20%....40%....60%....80%....100%
Syncing..ok
Tell your friends to use a kernel based on 2.4.18 or later, and especially not a
kernel based on 2.4.9, when you use reiserFS. Have fun.
ReiserFS is successfully created on /dev/md0.
这样文件系统 reiserfs 就建立成功了。若是您想建立xfs文件系统,就用mkfs.xfs /dev/md0 ,其它文件系统也相似 ……
第三步:挂载文件系统并使用;
[root@linuxsir:~]# mkdir /mnt/data
[root@linuxsir:~]# mount /dev/md0 /mnt/data
[root@linuxsir:~]# df -lh /dev/md0
文件系统
容量 已用 可用 已用% 挂载点
/dev/md0 150G 33M 149G 1% /mnt/RAID0
注: 这样就就/dev/md0 设备挂载到/mnt/RAID0上了。能够看到设备大小为150G。已使用33M,挂载点为/mnt/RAID0。咱们能够向设备里存储文件;
其实根据Linux文件系统的结构,以及最新Linux软件方便易用的特色。咱们彻底能够把/home独立出来。把RAID设备挂载到/home目录上。凡是涉及用户或数据存储的,均可以放在/home中,好比数据库,网络服务器有关数据存储的,都指定到 /home中的文件夹中。全部的一切都是根据方便管理为前提。
若是您的RAID是在安装系统后建立的,若是挂载到Linux现有目录下,要先作好相应目录的数据迁移到RAID设备中,而后再把RAID挂载到Linux目录中。好比你想把RAID挂载到/home目录中,能够先建立一个临时的目录,把RAID挂到这个临时的目录上,接着再把/home目录下的文件都移到 RAID上,而后再把RAID卸载,再从新挂载到/home中,这样/home的数据就完迁移了。
至于如何把操做系统安装或移到RAID上,不一样的Linux发行版有不一样的方法。Fedora或Redhat在安装的过程当中,就为咱们提供了在RAID1上安装系统。其它的发行版是否支持,不太知道,Slackware是不支持。若是您想把系统移植到RAID1中,可能须要安装好系统后,再进行移植。 感受软RAID1在一块硬盘上作,没太大的必要,若是要作RAID1,也要在两个硬盘上(或两个属于不一样硬盘的分区上来作)。
如何开机挂载RAID设备,不一样的发行版也有本身的方法,流程是先激活RAID,而后才是挂载。
4
软
RAID
的高级进阶及维护;
RAID作好之后,并非万事大吉了,还要进行平常维护;好比某个硬盘(或分区)坏掉,咱们能够在不停机的状况下换上。或者咱们为RAID作一个冗余的硬盘或分区,当RAID发生故障时,冗余硬盘或分区自动推上工做,能实现零停机任务。
4.1
如何向已存在的
RAID
中,添加一块硬盘或分区;
RAID有几种模式,好比建立、管理。下面咱们所说的就是RAID的管理模式Manage,也能够说是RAID的进阶应用。管理模式的目的,仅仅是为了把有问题的RAID成员换掉,或者为了管理的须要把其中一个RAID成员由另外一个来替换,也多是为了安全须要,让新增长的硬盘或分区当作RAID的备用(spare)成员;在管理模式中, RAID的真正成员个数并不改变。好比咱们作RAID5是,用的是三个硬盘或分区。在增长RAID成员时,RAID5还是三个成员,容量仍是保持不变,若是三个RAID成员彻底正常健康,新增长的成员,仅仅是备用(spare)成员。备用成员的用途就是当RAID的真正成员发生问题时,备用成员会立刻启动,仅仅是起到安全的冗余的做用;
咱们要向一个既已存在RAID中,添加或移除一个硬盘或分区,咱们要用到mdadm 工具的 -f 和-r 以及-a 参数;
mdadm /dev/mdX -f RAID成员
mdadm /dev/mdX -r RAID成员
mdadm /dev/mdX -a RAID成员
注:
-f 同 --fail 表示把一个设备列为有问题的设备,以便用-r或--remove参数移除;
-r 同 --remove 表示把RAID中的一个成员移出RAID;
-a 同 --add 表示向一个RAID中添加一个成员;
--re-add 从新把最近移除的RAID成员从新添加到RAID中;
值得一提的是,这些参数的运用,必须是在RAID正常运行的状况下进行。其中RAID设备是/dev/mdX,X是一个大于0的整数,RAID成员是一个硬盘或分区。添加设备并不会把RAID的容量扩大,仅仅是为了添加备用成员,好比在RAID一、RAID5和RAID10中特加有用。当一个RAID成员发生故障的时候,要用这种办法来让新成员顶替工做;
举例:
[root@linuxsir:~]# mdadm /dev/md0 -f /dev/sdb3
[root@linuxsir:~]# mdadm /dev/md0 -r /dev/sdb3
[root@linuxsir:~]# mdadm /dev/md0 -a /dev/sdb5
注:当咱们想把一个RAID的成员/dev/sdb3移除 RAID设备/dev/md0时,要首先标注它为有问题的(也多是彻底正常的,为了管理须要)。而后 用-r参数移除,接着用-a 参数再添加一个设备/dev/sdb5到RAID设备/dev/md0中;
当咱们用mdadm -D /dev/md0查看RAID的状态时,咱们会看到RAID的详细信息。好比是否正常、RAID成员…… 下面是咱们须要掌握的;
Raid Level : 注:阵列级别;好比Raid5
Array Size : 注:阵列容量大小;
Used Dev Size : 注:RAID单位成员容量大小,也就是构成RAID的成员硬盘或分区的容量的大小;
Raid Devices : 注:RAID成员的个数;
Total Devices : RAID中下属成员的总计个数,由于还有冗余硬盘或分区,也就是spare,为了RAID的正常运珩,随时能够推上去加入RAID的;
State : clean, degraded, recovering 注:状态,包括三个状态,clean表示正常, degraded 表示有问题, recovering 表示正在恢复或构建;
Active Devices : 被激活的RAID成员个数;
Working Devices : 注:正常的工做的RAID成员个数;
Failed Devices : 出问题的RAID成员;
Spare Devices : 备用RAID成员个数,当一个RAID的成员出问题时,用其它硬盘或分区来顶替时,RAID要进行构建,在没构建完成时,这个成员也会被认为是spare设备;
Rebuild Status : 注:RAID的构建进度,好比 38% complete ,表示构建到 38%;
UUID : 注:RAID的UUID值,在系统中是惟一的;
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1 注:表示这个成员是激活的;
1 8 18 1 active sync /dev/sdb2 注:表示这个成员是激活的;
4 8 19 2 spare rebuilding /dev/sdb3 注:未被激活,正在构建中的成页,正在传输数据;
3 8 49 - spare /dev/sdd1
注:spare /dev/sdd1 表示/dev/sdd1是RAID的备用成员,当RAID的正式成员/dev/sdb一、/dev/sdb2或/dev/sdb3中有一个出问题的时候,这个备用成员会自动进行工做的。这个并非必须的,能够用添加RAID成员的办法来添加,也能够在建立的RAID的时候添加;
4.2
如何为一个现有
RAID
扩充容量;
在RAID的管理模式中,咱们提到增长RAID成员的办法,若是RAID全部真正成员都是健康的,这个成员就进入备用(spare)状态。只有当真正成员有问题时,这个备用成员才启用顶替出问题的成员来工做。
但咱们能不能向RAID添加一个新成员,而且让他成为RAID的真正成员,而且达到为RAID扩充容量呢?好比有一个RAID5,用的是3个20G 的分区作的,其总容量是(3-1)x20=40G,咱们可否为这个RAID5新增长一个20G的分区,而且让其成为这个RAID5真正的成员,而且达到扩充容量的目的,也就是说让这个RAID5有四个真正的成员,其容量为(4-1)x20=60G。
在硬RAID中,这个工做比较容易,但在软RAID中,是否能实现呢?答案是确定的,这种状况仅针对已经作好的RAID,而且已经在存储过程当中发现RAID容易不足的状况下使用。若是是一个新作的RAID,咱们发现计划错了,咱们从新作一次就好了,不必用扩容的办法。
咱们为现有的RAID扩充容量,利用的就是RAID的Grow模式,中译为RAID的增加模式;应用范围是RAID一、RAID四、RAID五、RAID6。
RAID
扩容流程:
向一个已经存在的
RAID中添加一个成员->执行扩容指令
注: 在这里咱们要用到RAID的管理模式中的添加成员的办法。也就是用到mdadm 中的-a 参数,请参考上一节的内容。这时添加的成员是备用(spare)成员,咱们要把备用成员“推”到位置上。这时咱们要用到mdadm的Grow模式;
举例说明:
好比咱们作的RAID5,由三个硬盘分区/dev/sdb一、/dev/sdc一、/dev/sdd1构成,这时的RAID5真正成员就是3个。当咱们添加一个分区/dev/sdb2到这个RAID5时,新增长的这个sdb2就是这个RAID5R 的备用(spare)成员。好比已有的RAID5的设备是/dev/md0;
·首先,查看RAID状态;
[root@linuxsir:~]# mdadm -D /dev/md0
/dev/md0:
Version : 00.90.03
Creation Time : Tue Aug 7 01:55:23 2007
Raid Level : raid5 注:
RAID级别;
Array Size : 39069824 (37.26 GiB 40.01 GB) 注:
RAID容量是 39069824
Used Dev Size : 19534912 (18.63 GiB 20.00 GB) 注:
RAID中每一个成员的容量是19534912
Raid Devices : 3 注:
RAID真正成员是3个设备构成;
Total Devices : 3 注: 总共设备是
3个;
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Tue Aug 7 02:02:33 2007
State : clean 注:状态正常;
Active Devices : 3 注:激活的设备是
3个;其实就是RAID真正成员正常激活的个数;
Working Devices : 3 注:正常工做的设备是
3个;
Failed Devices : 0 注:有问题的设备是
0个;
Spare Devices : 0 注:备用设备是
0个;
Layout : left-symmetric
Chunk Size : 64K
UUID : faea1758:0e2cf8e0:800ae4b7:b26f181d 注:
RAID的UUID;
Events : 0.16
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1 注:
RAID真正成员/dev/sdb1
1 8 33 1 active sync /dev/sdc1 注:
RAID真正成员/dev/sdc1
2 8 49 2 active sync /dev/sdd1 注:
RAID真正成员/dev/sdd1
·其次,咱们为这个RAID5添加一个成员;
把/dev/sdb2添加到RAID设备/dev/md0,而后查看RAID的状态及详细信息;
[root@linuxsir:~]# mdadm /dev/md0 -a /dev/sdb2 注:添加分区
/dev/sdb2到/dev/md0中;
mdadm: added /dev/sdb2
[root@linuxsir:~]# mdadm -D /dev/md0 注:查看
/dev/md0的详细信息;
/dev/md0:
Version : 00.90.03
Creation Time : Tue Aug 7 01:55:23 2007
Raid Level : raid5 注:
RAID级别;raid5
Array Size : 39069824 (37.26 GiB 40.01 GB) 注:
RAID容量是 39069824
Used Dev Size : 19534912 (18.63 GiB 20.00 GB) 注:
RAID中每一个成员的容量是19534912
Raid Devices : 3 注:
RAID真正成员是3个设备构成;
Total Devices : 4 注: 总共设备是
4个;
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Tue Aug 7 02:14:13 2007
State : clean 注:状态正常;
Active Devices : 3 注:激活的设备是
3个;其实就是RAID真正成员正常激活的个数;
Working Devices : 4 注:正常工做的设备是
4个;
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 64K
UUID : faea1758:0e2cf8e0:800ae4b7:b26f181d
Events : 0.18
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1 注:
RAID真正成员/dev/sdb1
1 8 33 1 active sync /dev/sdc1 注:
RAID真正成员/dev/sdc1
2 8 49 2 active sync /dev/sdd1 注:
RAID真正成员/dev/sdd1
3 8 18 - spare /dev/sdb2 注:注:
RAID备用成员/dev/sdb2
添加/dev/sdb2到/dev/md0后,咱们发现RAID的组成设备总数由3个变成了4个,但真正成员个数并无变化,多出了一个备用成员/dev/sdb2。但/dev/md0的容量并无变大。 因此这时咱们要为RAID来扩容,解决办法就是让/dev/sdb2成为RAID的真正成员,RAID的容易由 40G扩展到 60G;
·第三,为RAID进行扩充容量;
在这里咱们要用到RAID的Grow模式,也就是增加模式。扩充模式,极为简单,有--size参数,-n参数 --size是指大定RAID的大小,这个能够省略,具体由你所作的RAID级别而定。 -n 表明RAID真正成员的个数。在这个例子中,RAID5真正成员是3个,后来咱们又添加了一个备用成员/dev/sdb2进去。咱们所作的就是把这个备用成员“推”到真正成员的位置上。也就是说RAID的真正成员由3个变成4个。只是这一简单的指令,就可让RAID5容量增长起来。
[root@linuxsir:~] # mdadm -G /dev/md0 -n4
mdadm: Need to backup 384K of critical section..
mdadm: ... critical section passed.
而后咱们查看RAID的详细信息;
[root@linuxsir:~] # mdadm -D /dev/md0
/dev/md0:
Version : 00.91.03
Creation Time : Tue Aug 7 01:55:23 2007
Raid Level : raid5
Array Size : 39069824 (37.26 GiB 40.01 GB) 注:
RAID的容量,咱们发现RAID的容量并无增大,这是由于构建没有完成;等构建完成时就会改变过来;
Used Dev Size : 19534912 (18.63 GiB 20.00 GB)
Raid Devices : 4
Total Devices : 4
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Tue Aug 7 02:36:06 2007
State : clean, recovering 注:正常,恢复中;
Active Devices : 4 注:
RAID的正式成员已经变到4个;
Working Devices : 4
Failed Devices : 0
Spare Devices : 0 注:备用成员由
1个,减小到0个;说明已经把RAID备用成员推到了RAID的正式成员中;
Layout : left-symmetric
Chunk Size : 64K
Reshape Status : 17% complete 注:
RAID从新构建状态,已经完成17%;目前并未完成构建;
Delta Devices : 1, (3->4) 注:
RAID的正式成员增长一个,由3个到4个;
UUID : faea1758:0e2cf8e0:800ae4b7:b26f181d
Events : 0.100
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 18 3 active sync /dev/sdb2 注:
/dev/sdb2已经由spare改变到 active ,也就是说由备用
当执行完增容后,咱们发现RAID的容量并无增大,这是由于构建没有完成,等RAID完成构建后,RAID的容量就会改变为 19534912x(4-1)=58604736K=60G;构建进度也能够cat /proc/mdstat 来查看。
新增长一个RAID正式成员的办法,不会让RAID原有的数据丢失,也不会破坏原有的数据。因此这种办法对RAID已经存储大量数据,当容量发生危机时而不损失原有数据的前提下,所采用的一种安全可行的扩容办法; 固然扩容后,你要修改 /etc/mdadm.conf;
4.3 RAID
正式成员个数达不到
RAID
启动要求时,如何启动
RAID
;
可能存在这样一种情况,当RAID的一个正式成员挂掉后,这时RAID按之前说的常规办法是不能启动的。这时咱们要强制启动,要用到--run 参数;好比当作RAID5时,咱们用到了三个硬盘或分区,当其中有一个挂掉,按RAID5的特色来讲,数据同样是安全完整的,但RAID5启动按常规办法是必需要达到作RAID时所指定的正式成员个数,这时按常规启动办法是不行的,咱们要用到--run参数;
咱们举个例子。好比RAID5正式成员有3个/dev/sdb1,/dev/sdb2,/dev/sdb3,咱们只用/dev/sdb1和/dev/sdb2来启动RAID5;
[root@linuxsir:~] # mdadm -A --run /dev/md0 /dev/sdb1 /dev/sdb2
5
软
RAID
设备使用方向的探讨;
对于软RAID是把几个同容量的物理磁盘或分区组成一个大的虚拟设备来用,咱们应用方向是什么呢?经过RAID的定义,咱们能够知道RAID是为了解决容量、读写效率以及磁盘冗余安全而提出来的。
5.1
仅仅是为了扩充存储可用空间,是否必需作
RAID
;
若是是仅仅解决容量问题,我看大可没必要用RAID。由于LVM比RAID更为灵活,不管怎么作,都不会带来容易上的损失。而只有RAID0和 LINEAR 级别才不会带来容量上的损失,RAID一、RAID5和RAID10因为要有安全冗余,因此RAID的容量必然减小;
LVM 技术能把全部空闲硬盘或分区结合在一块儿来使用,并不要求每一个分区或硬盘大小容易是一致的,而RAID必需要求每一个RAID成员容量大小相同,若是不相同,以最小的成员的容易计算,这个损失还不算,还要有安全冗余带来的容量损失,好比把两块80G的硬盘作成RAID1,这时的RAID1是一块硬盘的容量。LVM作好后,也至关于一个空白的虚拟设备,能够在上面划成一个分区来使用,也能够划分几个,若是划成几个,咱们还能够自动调整分区的大小。而RAID一但作好,若是再进行分区,分区的容量是没办法自由调整的;
有的弟兄会问,我是否是作好RAID,而后在RAID上再作LVM,也就是RAID+LVM模式。这种方案实现起来并不困难,但对于软RAID来讲,这种方案是否真的价值? 咱们用RAID的目的无非是“容量+读写效率+安全”。咱们有必要把作好的RAID再分割的四分五裂吗? 我感受不必,由于对于存储设备来讲,每加强一项管理技术,就意味着风险,这种风险一是来自于管理员技术水平,二是来自于设备老化。另外集中于不分区的存储设备,也能为数据迁移和系统管理带来方便;
5.2
在同一个硬盘作
RAID
是否有必要;
在同一块硬盘上作RAID是否有必要,若是您是想提升数据读写速度,仍是有必要的。RAID0就能为你带来这种高速存储的快感。若是您想在同一块硬盘上作软RAID,想同时兼顾效率和安全,我看大能够免了。由于硬盘一坏掉,什么重要的数据都会一锅烂;
5.3
软
RAID
的合理使用方向;
目前支持SATA主板的机器只能技术最多四块硬盘。好比四个80G的SATA硬盘,IDE硬盘也同理;咱们要根据本身的使用方向来作RAID。下面我根据一个示例来讲明RAID的合理使用方向;
第一个硬盘分区状况:
/dev/sda1 20G大小
/dev/sda2 20G大小
/dev/sda3 20G大小
-----/dev/sda5 swap 分区
-内存两倍大小
-----/dev/sda6 用于
/tmp 2G大小;
-----/dev/sda7
注:咱们首先把操做系统安装到第一个分区/dev/sda1 ,交换分区是/dev/sda5,/dev/sda6为临时/tmp的目录;那/dev/sda1和 sda二、sda三、sda7是用作什么的呢?能够用来安装系统。咱们设计的是仅安装系统,涉及数据保存的,都放到RAID上。好比我把sda1和sda2安装一样的系统,把由第二三四块硬盘作好的RAID挂在/home上,全部应用数据都存在RAID上。当sda1系统被破坏时,咱们能够用最短的时间启用sda2的系统,并在sda2上装载由第二三四块硬盘上作的RAID。
第二三四个硬盘,咱们能够用来整块硬盘来作RAID, 没必要为每块硬盘分区。好比为了读写效率,咱们能够作成RAID0,为了安全,你能够作RAID5。 若是作RAID0设备的容量是3x80G=240G,若是作RAID5,RAID5设备的容量是(3-1)x80=160G。有的弟兄可能会说,为何我不能把磁盘进行分区,而后作RAID0呢?RAID10也就是RAID0+RAID1的组合,安全和效率都有。这种方案也是能够的,但您必须作到,当有一个硬盘坏掉时,不会影响数据的总体安全性。也就是说,当一个硬盘坏掉时,另外两块硬盘组合起来,仍能组成一份完整的数据。当RAID中的一块硬盘坏掉时,咱们能经过更换硬盘,简单的修复,就能让RAID正常运行起来,并且数据是完整的。若是您对数据安全极为重视的,在作软RAID的过程当中,能作到这点,这个RAID方案就属于你。
因此在作软RAID时,首先要明白本身的目的是什么,而后再来根据目的判断本身的所要达到的效果。若是是简单追求的是读写效率,咱们就没必要考虑数据的安全性。若是是数据的安全性对咱们来讲极为重要,咱们就要判断,当一块硬盘坏掉时,是否影响数据的完整性!好比,咱们用两块硬盘来作RAID5或RAID10,能够这样说,没有一点安全性的。不管您怎么分区和组合,也不会为您带来一点安全感。
6
常见问题及处理;
涉及一些补充和增订的内容,咱们在这里一一列出;
6.1
如何清除一个
RAID
成员的超级块存储存的
RAID
信息;
RAID成员在 superblock中所存储的RAID信息是极为重要的,咱们能够根据这个信息轻松恢复RAID。
mdadm --zero-superblock RAID成员;
若是你确认RAID成员这个成员对你没任何用处,你已经把这个成员移除RAID,而且您想把这个设备另做他用。这时你能够清除其 superblock的信息。好比;
[root@linuxsir:~] # mdadm --zero-superblock /dev/sdd3
这个示例就是清除/dev/sdd3中的超级块中所存储的RAID信息;
7
关于本文;
其实软RAID使用起来比较简单,难点在于后期的管理和维护。软RAID的使用教程,其实用几个命令足以能说的清楚。但一想到初学Linux的弟兄也可能象我当初学习Linux同样,总想找一个Step By Step的教程看着实现本身想要作的东西,基于这个大多数初学者的想法,我就写了这么一个看起来相对复杂的文章。
这篇文章看起来条理不够清晰,另外mdadm的模式也没有给你们说,而是把模式分拆开来放在具体的应用中。
我仅仅是用本身重新手理解的角度来写这篇文章,文中大量存在不规范的用语,这也是在情理之中的。最主要的是有些专业束语我不知道如何翻译才好。
欢迎弟兄们指正,仍是那句话“看北南写的文档,要一分为二,看着批,批着看!”
8
参考文档;
9
相关文档;