且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

linux raid配置

更新时间:2022-10-02 19:14:51

                                        linux  raid配置
实验环境,red hat5 ,使用4个分好的区,代表4块磁盘,做一个raid5,查看linux下raid现象。
   假设现在系统有4块磁盘,做一个raid5存放数据,3块盘构建一个raid5,另一块做热备。
一、创建部分。
1、在使用磁盘时,需要先将磁盘的分区类型改成linux raid auto类型的。
Command (m for help): t
Partition number (1-8): 6
Hex code (type L to list codes): fd
Changed system type of partition 6 to fd (Linux raid autodetect)
Command (m for help): t
Partition number (1-8): 7
Hex code (type L to list codes): fd
Changed system type of partition 7 to fd (Linux raid autodetect)
Command (m for help): p
Disk /dev/sdb: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        2610    20964793+   5  Extended
/dev/sdb5               1          13      104359+  fd  Linux raid autodetect
/dev/sdb6              14          26      104391   fd  Linux raid autodetect
/dev/sdb7              27          39      104391   fd  Linux raid autodetect
/dev/sdb8              40          52      104391   fd  Linux raid autodetect
Command (m for help):
查看一下改好后的磁盘情况。
[root@zhaoyun ~]# fdisk -l
Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        3916    31455238+  83  Linux
Disk /dev/sdb: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        2610    20964793+   5  Extended
/dev/sdb5               1          13      104359+  fd  Linux raid autodetect
/dev/sdb6              14          26      104391   fd  Linux raid autodetect
/dev/sdb7              27          39      104391   fd  Linux raid autodetect
/dev/sdb8              40          52      104391   fd  Linux raid autodetect
2、开始创建raid。
使用mdadm创建raid
 mdadm -C /dev/md0 -l 5 -n 3 -x 1 /dev/sdb{5..8}
  -C 创建
-l  类型,raid几就写几
-n  磁盘数量,最少3块,
-x  热备数量 ,按实际写,
[root@zhaoyun ~]# mdadm -C /dev/md0 -l 5 -n 3 -x 1 /dev/sdb{5..8}
cat mdadm: array /dev/md0 started.
[root@zhaoyun ~]# cat /proc/mdstat 
Personalities : [raid6] [raid5] [raid4] 
md0 : active raid5 sdb7[2] sdb8[3](S) sdb6[1] sdb5[0]
      208512 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]
unused devices: <none>
[root@zhaoyun ~]# mdadm -D /dev/md0 
/dev/md0:
        Version : 0.90
  Creation Time : Tue Nov 29 09:39:50 2011
     Raid Level : raid5
     Array Size : 208512 (203.66 MiB 213.52 MB)
  Used Dev Size : 104256 (101.83 MiB 106.76 MB)
   Raid Devices : 3
  Total Devices : 4
Preferred Minor : 0
    Persistence : Superblock is persistent
    Update Time : Tue Nov 29 09:39:53 2011
          State : clean
 Active Devices : 3
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 1
         Layout : left-symmetric
     Chunk Size : 64K
           UUID : 0eaef563:3d63e66d:52b3a5c7:ff502931
         Events : 0.2
    Number   Major   Minor   RaidDevice State
       0       8       21        0      active sync   /dev/sdb5
       1       8       22        1      active sync   /dev/sdb6
       2       8       23        2      active sync   /dev/sdb7
       3       8       24        -      spare   /dev/sdb8
3、遮掩raid就创建好了,下面格式化使用。
[root@zhaoyun ~]# mkfs.ext3 /dev/md0 
[root@zhaoyun ~]# mount /dev/md0  /mnt/
[root@zhaoyun ~]# cd /mnt
[root@zhaoyun mnt]# ls
lost+found
可以看到新创建的raid5容量是200M的,但实际创建的时候给了300M ,这是raid5的特性,n分之n-1.的容量。
[root@zhaoyun mnt]# df -h
文件系统              容量  已用 可用 已用% 挂载点
/dev/sda1              30G  3.1G   25G  12% /
tmpfs                  95M     0   95M   0% /dev/shm
/dev/hdc              2.8G  2.8G     0 100% /media
/dev/md0              198M  5.8M  182M   4% /mnt
[root@zhaoyun mnt]# touch file
[root@zhaoyun mnt]# ls
file  lost+found
[root@zhaoyun mnt]#
如果不生成配置文件重启后raid就看不见了。
4、生成mdadm配置文件
[root@zhaoyun ~]# mdadm -D --scan >> /etc/mdadm.conf
[root@zhaoyun ~]# cat /etc/mdadm.conf 
ARRAY /dev/md0 level=raid5 num-devices=3 metadata=0.90 spares=2 UUID=68f3eb1f:adeffa6b:bd57a6e6:436b9c07
[root@zhaoyun ~]#
5、raid的配置完成。
 
二、实验raid是否好使。
1、模拟坏掉一块磁盘。查看热备的效果。
[root@zhaoyun ~]# mdadm /dev/md0 -f /dev/sdb5
mdadm: set /dev/sdb5 faulty in /dev/md0
[root@zhaoyun ~]# mdadm -D /dev/md0 
/dev/md0:
        Version : 0.90
  Creation Time : Tue Nov 29 09:44:47 2011
     Raid Level : raid5
     Array Size : 208512 (203.66 MiB 213.52 MB)
  Used Dev Size : 104256 (101.83 MiB 106.76 MB)
   Raid Devices : 3
  Total Devices : 5
Preferred Minor : 0
    Persistence : Superblock is persistent
    Update Time : Tue Nov 29 09:57:17 2011
          State : clean, degraded, recovering
 Active Devices : 2
Working Devices : 4
 Failed Devices : 1
  Spare Devices : 2
         Layout : left-symmetric
     Chunk Size : 64K
 Rebuild Status : 70% complete
           UUID : 68f3eb1f:adeffa6b:bd57a6e6:436b9c07
         Events : 0.8
    Number   Major   Minor   RaidDevice State
       3       8       24        0      spare rebuilding   /dev/sdb8    #将热备的硬盘加入到raid中,必经过的状态
       1       8       22        1      active sync   /dev/sdb6
       2       8       23        2      active sync   /dev/sdb7
       4       8       25        -      spare   /dev/sdb9
       5       8       21        -      faulty spare   /dev/sdb5        #顺坏硬盘的状态
[root@zhaoyun ~]# mdadm -D /dev/md0 
/dev/md0:
        Version : 0.90
  Creation Time : Tue Nov 29 09:44:47 2011
     Raid Level : raid5
     Array Size : 208512 (203.66 MiB 213.52 MB)
  Used Dev Size : 104256 (101.83 MiB 106.76 MB)
   Raid Devices : 3
  Total Devices : 5
Preferred Minor : 0
    Persistence : Superblock is persistent
    Update Time : Tue Nov 29 09:57:20 2011
          State : clean
 Active Devices : 3
Working Devices : 4
 Failed Devices : 1
  Spare Devices : 1
         Layout : left-symmetric
     Chunk Size : 64K
           UUID : 68f3eb1f:adeffa6b:bd57a6e6:436b9c07
         Events : 0.10
    Number   Major   Minor   RaidDevice State
       0       8       24        0      active sync   /dev/sdb8                  #重建完成后的状态。
       1       8       22        1      active sync   /dev/sdb6
       2       8       23        2      active sync   /dev/sdb7
       3       8       25        -      spare   /dev/sdb9
       4       8       21        -      faulty spare   /dev/sdb5
[root@zhaoyun ~]# 
mdadm -S  /dev/md0 停止raid
mdadm -A /dev/md0 启动raid
mdadm --zero-superblock /dev/sdb{5..9}
mdadm -G /dev/md0 -n 4
mdadm /dev/md5 -a /dev/sdb 0


本文转自zhaoyun00 51CTO博客,原文链接:http://blog.51cto.com/zhaoyun/730397