linux中软RAID制作方法

 

【操作系统版本:】红帽6.3

提示:在linux中磁盘设备可以在/dev/目录中找到

         其中IDE接口的硬盘在该目录中以hd的文件名开头

                   SATA接口的硬盘在该目录中以sd的文件名开头

                   SCSI接口的硬盘在该目录中以sd的文件名开头

                   USB接口类型的磁盘在该目录中以sd的文名开头

【使用相关命令】

【fdisk】:磁盘管理,分区命令

【mdadm】:软RAID制作命令(支持将任何块设备做成RAID)

 

 

一、创建软RAID

注意:做成RAID要使用很多磁盘,本文档为了方便模拟,只添加了一块磁盘,在磁盘中创建分区,然后对分区进行RAID的制作。这样做只是为了方便演示,在实际中,使用一块磁盘由分区创建的软RAID是没有任何以意义,并且也不能提高文件的存储以及读取速度,因为,一块磁盘的转速是固定的,如果磁盘坏了,你在该磁盘中创造的软RAID中使用的备份都会同时损坏。

前提:先准备一块硬盘

【linux中软RAID制作方法】_软raid

如图,这里已经准备好了一块硬盘sdb已经再/dev/下面读取出来了。

【示例一:创建一个由两个分区组成的20G的RAID0】

         如下图RAID0模型图如下:

【linux中软RAID制作方法】_linux_02

注意:根据RAID0的结果,首先需要准备两个10G大小的分区。这一创建的RAID0就能达到20G

首先:创建两个10G大小的分区在sdb磁盘中

#fdisk /dev/sdb

可以进入sdb磁盘的分区管理模式

【linux中软RAID制作方法】_软raid_03

输入p可以查看磁盘分区信息

【linux中软RAID制作方法】_软raid的制作方法_04

由于这里改磁盘还没做分区,就先创建一个扩展分区,将分区大小指定为磁盘的全部大小

输入:n

【linux中软RAID制作方法】_linux_05

这里提示是输入e创建扩展分区输入p是创建主分区

输入:e

【linux中软RAID制作方法】_raid_06

由于磁盘中最多可创建4个主分区,所有为了能创建扩展分区,需要用16个字节来表示一个扩展分区。

输入:1

【linux中软RAID制作方法】_raid_07

这里时输入分区的起始柱面,这里提示默认值是1,可以输入1也可直接按回车键

输入:1

【linux中软RAID制作方法】_raid制作_08

这里是输入磁盘的结束柱面,为了充分利用磁盘就将全部柱面都分割个扩展分区,这里提示的默认值是13054,可以输入13054也可以直接回车

直接回车

【linux中软RAID制作方法】_软raid_09

看到这里,又回到了刚开始的操作模式,现在可以使用p查看详细信息

输入:p

【linux中软RAID制作方法】_软raid的制作方法_10

刚刚创建的扩展分区大小就已经在这里显示出来了。

那么接下来就可以在扩展分区中创建分区了

输入:n

【linux中软RAID制作方法】_软raid_11

这里刚才那个e就没了,因为一个磁盘上只能创建一个扩展分区的引用地址。那么现在的L就表示在刚才创建的扩展分区引用地址中创建扩展分区,注意:扩展分区的编号默认是从5开始。

输入:l

【linux中软RAID制作方法】_软raid的制作方法_12

这里指定扩展分区的起始柱面:为了防止出现磁盘碎片,建议直接回车

回车

【linux中软RAID制作方法】_软raid的制作方法_13

这里输入扩展分区的结束柱面,由于按照柱面不好确定分区的大小可以直接使用+10G来指定分区创建为10G的大小

输入:+10G

【linux中软RAID制作方法】_raid制作_14

这可以使用p查看创建后的分区情况

输入p

【linux中软RAID制作方法】_raid制作_15

接下来继续和上面一样创建第二个10G的分区。

【linux中软RAID制作方法】_软raid_16

现在就是要调整分区类型了,由于软RAID的创建必须使用Linux raid auto类型,这里可以输入t来调整分区类型

输入:t

【linux中软RAID制作方法】_raid_17

这里是说,输入要调整分区类型的编号即,你刚刚已经创建好了的分区类型的编号,

输入:5

【linux中软RAID制作方法】_raid制作_18

这里是输入类型编号,如果不知道类型编号可以输入l来查看

【linux中软RAID制作方法】_raid制作_19

接下来输入fd修改类型

输入:fd

【linux中软RAID制作方法】_软raid的制作方法_20

输入p可以查看修改后的结果

【linux中软RAID制作方法】_软raid_21

下面继续修改sdb6的分区类型

【linux中软RAID制作方法】_linux_22

这里已经修改完成,输入w保存退出

输入:w

【linux中软RAID制作方法】_raid制作_23

接下来通知内核重读sdb的分区表

输入:partprobe/dev/sdb

【linux中软RAID制作方法】_raid制作_24

为了验证结果可以查看/proc/partitions文件来验证

输入:cat /proc/partitions

【linux中软RAID制作方法】_raid制作_25

这里已经可以看到sdb5和sdb6了

输入:mdadm -C /dev/md0 -l 0 -a yes -n 2 /dev/sdb5 /dev/sdb6

【linux中软RAID制作方法】_raid制作_26

这里显示创建成功:

输入:cat /proc/mdstat可以验证

【linux中软RAID制作方法】_软raid_27

这里RAID0的设备已经创建完成,要想使用需要在其设备上创建文件系统。

注意:由于此次sdb5和sdb6已经组成了一个RAID0设备md0,那么创建文件系统就要在md0上创建文件系统

输入:mke2fs -j/dev/md0

为md0创建文件系统

【linux中软RAID制作方法】_软raid_28

这里文件系统已经创建完成,要想使用就挂载/dev/md0即可

输入:fdisk -l 可以查看md0的磁盘信息

【linux中软RAID制作方法】_linux_29

【linux中软RAID制作方法】_linux_30

这里已经显示为21.5G了,那么此时就创建完成了。由于磁盘分区中是以柱面来分配的,说以这里不能完全保证创建刚好的是20G。大小有误差.

注意,对于创建RAID0中的两个分区sdb5和sdb6其中一个只要损坏,那么存放在由sdb5和sdb6组成的RAID0设备md0就无法继续使用。因为RAID0不具备冗余能力

 

【示例二:创建一个2G的RAID1】

分析:由于要创建的是一个2G的RAID1根据RAID1的构成结构,我们需要两块2G的硬盘才能组成一个2G的RAID1

如下图:RAID1模型

【linux中软RAID制作方法】_软raid_31

为了演示,

首先,创建两个2G的分区当做磁盘来使用

输入:fdisk/dev/sdb

【linux中软RAID制作方法】_linux_32

接下来的创建磁盘的操作在示例一中已经演示过。这里只放截图。

【linux中软RAID制作方法】_软raid的制作方法_33

修改分区类型

【linux中软RAID制作方法】_软raid_34

保存退出

【linux中软RAID制作方法】_软raid_35

输入:partprobe/dev/sdb

通知内核重读sdb的分区表

【linux中软RAID制作方法】_raid制作_36

这里由于使用的是虚拟机,现在出现了一个错误,目前不清楚,不过可以使用partx来重读

输入:partx –a /dev/sdb

【linux中软RAID制作方法】_raid制作_37

这里的这几个错误不用管,没多大影响,只需要检查看设备是否已经读取出来了

输入:cat /proc/partitions

【linux中软RAID制作方法】_软raid_38

这里已经显示了,刚才创建的sdb7和sdb8,为了之后做个损坏模拟,我还多创建了一个2G的sdb9

现在来使用mdadm创建RAID1

输入:mdadm -C /dev/md1 -a yes -l 1 -n 2 /dev/sdb7 /dev/sdb8

【linux中软RAID制作方法】_linux_39

这里这个输入y确定

输入:y

【linux中软RAID制作方法】_软raid的制作方法_40

这里已经显示md1设备已经创建完成。

输入:cat /proc/mdstat

验证

【linux中软RAID制作方法】_raid制作_41

这里已经显示md1是有sdb8和sdb9创建。

输入:mke2fs -j /dev/md1

为设备创建文件系统(即格式化)

【linux中软RAID制作方法】_linux_42

这里已经格式化完成。到这里一个2G的RAID1已经创建成功。可以挂载使用了。

输入:fdisk -l

可以查看md1设备详细信息

 

【linux中软RAID制作方法】_linux_43

【linux中软RAID制作方法】_linux_44

这里可以看到使用两个2G大小的sdb7,sdb8创建的RAID1的容量只有2G因为,RAID1中需要使用一个相同大小的磁盘来做备份。

 

【演示RAID1中一个磁盘的模拟损坏】

上面已经创建好了一个md0和md1的RAID设备,

现在挂载md1

输入:mount /dev/md1 /ftpftp/gandian/gz1

【linux中软RAID制作方法】_软raid_45

已经将md1设备挂载到/ftpftp/gandian/gz1目录下面了

输入:ls /ftpftp/gandian/gz1

查看该目录

【linux中软RAID制作方法】_软raid_46

输入:cp /etc/inittab  /ftpftp/gandian/gz1/

拷贝一个文件到inittab到gz1目录中

【linux中软RAID制作方法】_raid制作_47

输入:mdadm --detail /dev/md1

可以查看RAID1设备md1的构成信息

【linux中软RAID制作方法】_raid_48

在这里可以看到sdb7和sdb8都是active可以使用状态。

现在可以模拟损坏sdb8后看md1是否依然可以使用

输入:mdadm /dev/md1 -f /dev/sdb8

【linux中软RAID制作方法】_raid制作_49

这里显示sdb8已经模拟损坏

输入:mdadm--detail /dev/md1

【linux中软RAID制作方法】_linux_50

这里已经看到sdb8已经损坏,并且目前工作的磁盘只有sdb7

使用cd/ftpftp/gandain/gz1/进入md1的挂载目录查看文件

输入:cd/ftpftp/gandian/gz1/

输入:ls -l

【linux中软RAID制作方法】_软raid_51

这里依然可以使用,这就是RAID1的冗余能力,当一块硬盘出现错误后,文件依然可以使用,但是如果现在不及时替换坏掉的硬盘那么当另外一块硬盘坏掉后就无法访问文件了。

在实际中,如果是真正的硬盘只需要将该硬盘拔掉后替换一块一模一样大小的新硬盘就ok了,由于现在使用的是软件模拟。那么替换硬盘的方法如下:

输入:mdadm /dev/md1 -r /dev/sdb8

可以拿走已经损坏的sdb8磁盘

【linux中软RAID制作方法】_软raid_52

输入:mdadm --detail /dev/md1

查看md1的RAID信息

【linux中软RAID制作方法】_linux_53

这里已经看到,只有一块磁盘sdb7在使用。

现在替换新的硬盘,使用之前已经创建好了的sdb9

输入: mdadm /dev/md1 -a /dev/sdb9

为md1设备添加一块硬盘

【linux中软RAID制作方法】_linux_54

输入:mdadm --detail /dev/md1

再次查看mdadm的信息

【linux中软RAID制作方法】_raid制作_55

这里可以看到sdb9正在自动同步数据

输入:cat /proc/mdstat

可以查看同步进度。

【linux中软RAID制作方法】_raid_56

由于本人电脑太快,同步比较快当我输入命令后设备已经同步完成。

再次输入:mdadm --detail /dev/md1

查看md1信息

【linux中软RAID制作方法】_软raid_57

已经可以看到sdb9可以使用了。

那么现在md1设备损坏后替换硬盘的工作就修补完成。

如果此时,你再损坏sdb7,文件依然可以访问

 

 

附加:--------------------------------

mdadm命令使用

【mdadm】将任何块设备做成RAID

模块化的命令:

         创建模式

                   【-c】

                            专用选项

                                     【-l】:级别(即RAID的级别类型)

                                     【-n】:设备个数

                                     【-a{yes|no}】:自动为其创建设备文件

                                     【-c】:指定CHUNK大小(数据块大小)2^n 默认大小为64k

                                     【-x】:指定空闲盘个数

                   例如:

                             mdadm -C /dev/md0 -a yes -l 0 -n 2/dev/sdb{5,6}

         管理模式

                   不指定模式直接使用

                   【--add】【--del】等表示管理

                   默认mdadm工作在管理模式下

                   【-D】【--detail】查看RAID阵列信息

                   【-F】【--fail】【--set-faulty】将磁盘模拟损坏

                            例如:mdadm /dev/md# --fail /dev/sdb7(将md#中sdb7模拟为损坏)

                                  mdadm /dev/md1 -r /dev/sdb7 (可以将已损坏的磁盘删除)

                   【-S】【--stop】停止阵列

                            例如:mdadm -s /dev/md#

 

                           

         监控模式        

                   【-F】

         增长摸是

                   【-G】

         装配模式

                   【-A】

 

【mdadm -D/dev/md# 】查看RAID阵列的详细信息

         --detail也行

【mdadm -D--scan】可以查看当前设备上所有md设备的信息,

如果将信息保存在【mdadm-D --scan > /etc/mdadm.conf】中,那么下次启动就不必要指定设备的磁盘了。


安装软RAID必备条件:

         1、需要内核模块:md:

         2、linux上创建工具:mdadm