[转帖]Linux RAID详细配置_Hadoop,ERP及大数据讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Hadoop,ERP及大数据讨论区 »
总帖数
2
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 4331 | 回复: 1   主题: [转帖]Linux RAID详细配置        下一篇 
kim
注册用户
等级:中校
经验:1729
发帖:222
精华:0
注册:2011-7-21
状态:离线
发送短消息息给kim 加好友    发送短消息息给kim 发消息
发表于: IP:您无权察看 2011-8-6 17:25:17 | [全部帖] [楼主帖] 楼主

    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 …… 根据你所创建的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设备!




赞(0)    操作        顶端 
kim
注册用户
等级:中校
经验:1729
发帖:222
精华:0
注册:2011-7-21
状态:离线
发送短消息息给kim 加好友    发送短消息息给kim 发消息
发表于: IP:您无权察看 2011-8-6 17:26:21 | [全部帖] [楼主帖] 2  楼

接上面,下面介绍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进行和物理硬盘一样的操作。如果我们不分区,只是进行创建文件系统,那就比较简单了。



赞(0)    操作        顶端 
总帖数
2
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论