当前位置:首页 > 详解建立Linux环境软RAID_5教程
md0 : active raid5 sdc1[3] sdd1[2] sdb1[1] sda1[0]
2088192 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU] unused devices:
linux 下Raid 详解
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: \ 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的容量扩大,仅仅是为了添加备用成员,比如在RAID1、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/sdb1、/dev/sdb2或/dev/sdb3中有一个出问题的时候,这个备用成员会自动进行工作的。这个并不是必须的,可以用添加RAID成员的办法来添加,也可以在创建的RAID的时候添加;
共分享92篇相关文档