软RAID磁盘阵列配置

RAID磁盘阵列

在Linux系统中做RAID,磁盘阵列的设备可以是一块磁盘中的三个以上的分区,也可以是三块以上的磁盘,本文主要参几块磁盘为例,来实现RAID5

实验说明:

在VMware中进行,系统中有一块磁盘sda,新添加6块SCSI磁盘,分别为sdb,sdc ,sdd,sde,sdf,sdg,其中4块作为磁盘阵列的设备,1块作为预备(spare)磁盘,还有1块留作备用。

实验步骤:

第一步:先查看一下系统中磁盘设备:fdisk –l   (显示结果略)

第二步:接下来开始创建RAID了,主要会用到mdadm命令,使用此命令需要先安装RHEL6安装光盘中自带的mdadm包,如果没有安装,先进行安装。

[root@localhost ~]# mdadm --create --auto=yes /dev/md0--level=5 --raid-devices=4 --spare-devices=1 /dev/sd[b-f]

参数说明:

--create   //表示要创建RAID

--auto=yes /dev/md0  //新建立的软件磁盘阵列设备为md0,md序号可以为0-9

--level=5   //磁盘阵列的等级,这里表示创建的是RAID5

--raid-devices //添加作为磁盘阵列用的磁盘的块数

--spare-device //添加作为预备(spare)磁盘的块数

/dev/sd[b-f]  //磁盘阵列所使用的设备,还可写成/dev/sdb /dev/sdc /dev/sdd /dev/sde/dev/sdf

另外这条命令也可以简写:

mdadm –C /dev/md0 –l5 –n4 –x1 /dev/sd[b-f]

第三步:查看RAID是否成功创建及是否正常运行,有两种方法(当磁盘容量越大时,磁盘阵列构建的时间越长,所以可能需要等待很长时间才能看到参下信息):

执行mdadm –detail /dev/md0 命令查看RAID的详细信息:

[root@localhost ~]# mdadm --detail /dev/md0

/dev/md0:

        Version: 1.2

  Creation Time: Wed Dec 19 02:58:51 2012

     Raid Level: raid5

     Array Size: 62909952 (60.00 GiB 64.42 GB)

  Used Dev Size: 20969984 (20.00 GiB 21.47 GB)

   Raid Devices: 4

  Total Devices: 5

    Persistence: Superblock is persistent

 

    Update Time: Wed Dec 19 03:10:38 2012

          State: clean

 Active Devices: 4

Working Devices : 5

 Failed Devices: 0

  Spare Devices: 1

 

         Layout: left-symmetric

     Chunk Size: 512K

 

           Name: localhost.localdomain:0  (local to hostlocalhost.localdomain)

           UUID: 0459e403:4ba8e027:08852362:64f3d361

         Events: 26

    Number   Major  Minor   RaidDevice State

       0      8       16        0     active sync   /dev/sdb

       1      8       32        1     active sync   /dev/sdc

       2      8       48        2     active sync   /dev/sdd

       5      8       64        3     active sync   /dev/sde

    4       8      80        -       spare       /dev/sdf

查看/proc/mdstat文件,可以比较简单明了的查看RAID创建各运行的情况

[root@localhost ~]# cat /proc/mdstat

Personalities : [raid6] [raid5] [raid4]

md0 : active raid5 sde[5] sdf[4](S) sdd[2] sdc[1]sdb[0]

      62909952blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/3] [UUU_]

     [>....................]  recovery =  3.8% (807680/20969984) finish=12.8minspeed=26054K/sec    

     

unused devices: <none>

注意:黄色部分代表md建立的过程,

S 代表预备(spare)磁盘,UUUU代表正常,出现_表示不正常,

当md建立完成后,就显示正常,(大概3分钟OK)

执行mdadm  -Q  /dev/md0  //-Q用来查询设备信息

[root@localhost ~]# mdadm -Q /dev/md0

/dev/md0: 59.100GiB raid5 4 devices, 1 spare. Usemdadm --detail for more detail.

第四步:格式化并且挂载使用创建的RAID

[root@localhost ~]# mkfs.ext4 /dev/md0

mke2fs 1.41.12 (17-May-2010)

Filesystem label=

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

Stride=128 blocks, Stripe width=384 blocks

3932160 inodes, 15727488 blocks

786374 blocks (5.00%) reserved for the super user

First data block=0

Maximum filesystem blocks=0

480 block groups

32768 blocks per group, 32768 fragments per group

8192 inodes per group

Superblock backups stored on blocks:

       32768,98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,

       4096000,7962624, 11239424

 

Writing inode tables: done                           

Creating journal (32768 blocks): done

Writing superblocks and filesystem accountinginformation: done

 

This filesystem will be automatically checked every 23mounts or

180 days, whichever comes first.  Use tune2fs -c or -i to override.

[root@localhost ~]# mkdir /raid5

[root@localhost ~]# mount /dev/md0 /raid5/

查看新挂的RAID是否可以使用

[root@localhost ~]# df -Th

Filesystem   Type    Size  Used Avail Use% Mounted on

/dev/mapper/VolGroup-lv_root

             ext4     19G  5.1G  13G  30% /

tmpfs       tmpfs    250M  264K 250M   1% /dev/shm

/dev/sda1    ext4    485M   30M  430M   7% /boot

/dev/sr0  iso9660    2.9G  2.9G    0 100% /media/RHEL_6.1 i386 Disc 1

/dev/md0      ext4    60G  180M   56G  1% /raid5

[root@localhost ~]# cd /raid5/

[root@localhost raid5]# touch a.txt

 [root@localhostraid5]# cp /etc/passwd ./

[root@localhost raid5]# ls

a.txt  lost+found  passwd

第五步:设置开机自动RAID以及自动挂载:

先建立/etc/mdadm.conf这个配置文件

[root@localhost raid5]# mdadm --detail /dev/md0 | grep-i UUID > /etc/mdadm.conf

上面建立的这个文件需要作小小的修改:

[root@localhost raid5]# vi /etc/mdadm.conf

ARRAY   /dev/md0          UUID=0459e403:4ba8e027:08852362:64f3d361

然后再修改/etc/fstab文件,设置开机自动挂载:

[root@localhost raid5]# vi /etc/fstab

/dev/md0            /raid5           ext4              defaults        0 0

重启系统,就可以检查开机自动挂载有没有设置成功了!

第六步:模拟RAID5中一块磁盘损坏,检验spare磁盘的功能(raid5中允许一块磁盘损坏,我们所设置的那1块spare磁盘会立即替代损坏的磁盘,进行RAID的重建,保障数据的安全)

[root@localhost raid5]# mdadm --manage /dev/md0 --fail/dev/sdd

mdadm: set /dev/sdd faulty in /dev/md0

//使用此命令设置磁盘sdd成为出错的状态

来查看一下:mdadm –detail /dev/md0

[root@localhost raid5]# mdadm --detail /dev/md0

/dev/md0:

        Version: 1.2

  Creation Time: Wed Dec 19 02:58:51 2012

     Raid Level: raid5

     Array Size: 62909952 (60.00 GiB 64.42 GB)

  Used Dev Size: 20969984 (20.00 GiB 21.47 GB)

   Raid Devices: 4

  Total Devices: 5

    Persistence: Superblock is persistent

 

    Update Time: Wed Dec 19 03:52:46 2012

          State: clean, degraded, recovering

 Active Devices: 3

Working Devices : 4

 Failed Devices: 1

  Spare Devices: 1

 

         Layout: left-symmetric

     Chunk Size: 512K

 

 Rebuild Status: 11% complete

 

           Name: localhost.localdomain:0  (local to hostlocalhost.localdomain)

           UUID: 0459e403:4ba8e027:08852362:64f3d361

         Events: 29

 

    Number   Major  Minor   RaidDevice State

       0       8      16        0      active sync   /dev/sdb

       1      8       32        1     active sync   /dev/sdc

       4      8       80        2     spare rebuilding   /dev/sdf

       5      8       64        3     active sync   /dev/sde

 

       2      8       48        -     faulty spare   /dev/sdd

可以查看cat /proc/mdstat文件查看RAID5的重建过程

[root@localhost raid5]# cat /proc/mdstat

Personalities : [raid6] [raid5] [raid4]

md0 : active raid5 sde[5] sdf[4] sdd[2](F) sdc[1]sdb[0]

      62909952blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/3] [UU_U]

      [=====>...............]  recovery = 28.2% (5922304/20969984)finish=8.5min speed=29268K/sec

     

unused devices: <none>

再来看一下重建后的结果

[root@localhost raid5]# mdadm --detail /dev/md0

/dev/md0:

        Version: 1.2

  Creation Time: Wed Dec 19 02:58:51 2012

     Raid Level: raid5

     Array Size: 62909952 (60.00 GiB 64.42 GB)

  Used Dev Size: 20969984 (20.00 GiB 21.47 GB)

   Raid Devices: 4

  Total Devices: 5

    Persistence: Superblock is persistent

 

    Update Time: Wed Dec 19 04:04:08 2012

          State: clean

 Active Devices: 4

Working Devices : 4

 Failed Devices: 1

  Spare Devices: 0

 

         Layout: left-symmetric

     Chunk Size: 512K

 

           Name: localhost.localdomain:0  (local to hostlocalhost.localdomain)

           UUID: 0459e403:4ba8e027:08852362:64f3d361

         Events: 65

 

    Number   Major  Minor   RaidDevice State

       0       8      16        0      active sync   /dev/sdb

       1       8      32        1      active sync   /dev/sdc

       4       8      80        2      active sync   /dev/sdf

       5       8      64        3      active sync   /dev/sde

 

       2       8      48        -      faulty spare   /dev/sdd

[root@localhost raid5]# cat /proc/mdstat

Personalities : [raid6] [raid5] [raid4]

md0 : active raid5 sde[5] sdf[4] sdd[2](F) sdc[1]sdb[0]

      62909952blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/4] [UUUU]

     

unused devices: <none>

/raid5 还可以正常使用

[root@localhost ~]# cd /raid5/

[root@localhost raid5]# ls

a.txt lost+found  passwd

[root@localhost raid5]# touch b.txt

[root@localhost raid5]# ls

a.txt  b.txt  lost+found passwd

第七步:将出错的磁盘删除并加入新的磁盘

先删除损坏的磁盘sdd

[root@localhost raid5]# mdadm --manage /dev/md0--remove /dev/sdd

mdadm: hot removed /dev/sdd from /dev/md0

再添加一块新的磁盘作为spare磁盘

[root@localhost raid5]# mdadm --manage /dev/md0 --add/dev/sdg

mdadm: added /dev/sdg       --添加新的磁盘sdd

然后在来查看下,执行一下命令

[root@localhost raid5]# mdadm --detail /dev/md0

/dev/md0:

        Version: 1.2

  Creation Time: Wed Dec 19 02:58:51 2012

     Raid Level: raid5

     Array Size: 62909952 (60.00 GiB 64.42 GB)

  Used Dev Size: 20969984 (20.00 GiB 21.47 GB)

   Raid Devices: 4

  Total Devices: 5

    Persistence: Superblock is persistent

 

    Update Time: Wed Dec 19 04:12:20 2012

          State: clean

 Active Devices: 4

Working Devices : 5

 Failed Devices: 0

  Spare Devices: 1

 

         Layout: left-symmetric

     Chunk Size: 512K

 

           Name: localhost.localdomain:0  (local to hostlocalhost.localdomain)

           UUID: 0459e403:4ba8e027:08852362:64f3d361

         Events: 67

   Number  Major   Minor   RaidDevice State

       0       8      16        0      active sync   /dev/sdb

       1       8      32        1      active sync   /dev/sdc

       4       8      80        2      active sync   /dev/sdf

       5       8      64        3      active sync   /dev/sde

    6      8       96        -     spare   /dev/sdg

第八步:关闭RAID的方法:

当你不再需要你设置的RAID的,可以用以下方法关闭

卸载/dev/md0 并且删除或注释掉/etc/fstab文件中的配置

[root@localhost~]# umount /dev/md0

[root@localhost~]#vi /etc/fstab

#UUID=6d2590e4-20e9-4d54-9a37-1975fb9fcf47/raid5   ext4  defaults  0 0

使用命令mdadm关闭/dev/md0 并注释掉/etc/mdadm.conf中的设置

[root@localhost ~]# vi /etc/mdadm.conf

#ARRAY  /dev/md0          UUID=0459e403:4ba8e027:08852362:64f3d361

将md0阵列中活跃磁盘先模拟故障(--fail)在删除磁盘(--remove),最后执行下面的命令关闭raid

[root@localhost raid5]# mdadm --manage /dev/md0 --fail/dev/sdb

mdadm: set /dev/sdb faulty in /dev/md0

[root@localhost raid5]# mdadm --manage /dev/md0 --fail/dev/sdc

mdadm: set /dev/sdc faulty in /dev/md0

[root@localhost raid5]# mdadm --manage /dev/md0 --fail/dev/sdd

mdadm: set /dev/sdd faulty in /dev/md0

[root@localhost raid5]# mdadm --manage /dev/md0 --fail/dev/sde

mdadm: set /dev/sde faulty in /dev/md0

[root@localhost raid5]# mdadm --manage /dev/md0 --fail/dev/sdf

mdadm: set /dev/sdf faulty in /dev/md0

[root@localhost raid5]# mdadm --manage /dev/md0 --fail/dev/sdg

mdadm: set /dev/sdg faulty in /dev/md0

[root@localhost ~]# mdadm --stop /dev/md0

mdadm: stopped /dev/md0

RAID0和RAID1等同于RAID5

RAID0:并行读写数据

RAID1:镜像磁盘阵列

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值