Linux软raid创建

    RAID: 

     HBA:基于主机的适配器 

     RAID:Redundent Array of Inexpensive Disks 廉价磁盘阵列

                              Independent       独立磁盘阵列

       Level:仅用于标识磁盘组合方式的不同,不能取代数据备份

          raid0,raid1,raid5,raid10,raid50,jbod

          raid0:提高读写性能,没有容错能力。至少需要两块磁盘 100%

          raid1:至少需要两块硬盘,镜像,硬件容错能力,读性能提升,写性能下降 50%

          raid4:至少需要三块硬盘,允许一块盘出错,读写性能提升,(n-1)/n

          raid5: 至少需要三块硬盘,允许一块盘出错,读写性能提升,(n-1)/n

          raid6: 至少需要四块磁盘,允许两块盘出错。读写性能提升,(n-2)/n

          raid10:至少需要四块磁盘。允许不同组内个各坏一块盘,读写性能提升,50%

          raid01:

          jbod:

        md,可以组合任何块设备

        mdadm,/etc/mdadm.conf

        mdadm:模式化的工具

          -A  Assemble 装配模式

          -C  Create 创建模式

            -n #:用于创建RAID设备的个数

            -x #: 热备磁盘的个数

            -l :指定RAID级别

            -a :=yes(自动为创建的RAID设备创建设备文件) md mdp part p 如何创建设备文件

            -c:指定块的大小,默认为512KB

          -F FOLLOW 监控

          -S 停止RAID

          -D --detail: 显示阵列详细信息

          Manage 管理模式专用项

            -f:模拟损害

            -r:模拟移除设备

            -a:模拟添加新设备

        watch 

          -n #:每个#执行一次指定的命令,单位为s

            [root@mail ~]# watch -n1 'cat /proc/mdstat'

     

    使用raid0创建一个6G大小的磁盘。

    1. 1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      41
      42
      43
      44
      45
      46
      47
      48
      49
      50
      51
      52
      53
      54
      55
      56
      57
      58
      59
      60
      61
      62
      63
      64
      65
      66
      67
      68
      69
      70
      71
      72
      73
      74
      75
      76
      77
      78
      79
      80
      81
      82
      83
      84
      85
      86
      87
      88
      89
      90
      91
      92
      93
      94
      95
      96
      97
      98
      99
      100
      101
      102
      103
      104
      105
      106
      107
      108
      109
      110
      111
      112
      113
      114
      115
      116
      117
      118
      119
      120
      [root@mail ~]# fdisk /dev/sdc
      Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
      Building a new DOS disklabel with disk identifier 0xba68f31c.
      Changes will remain in memory only, until you decide to write them.
      After that, of course, the previous content won't be recoverable.
       
      Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
       
      WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
               switch off the mode (command 'c') and change display units to
               sectors (command 'u').
       
      Command (m for help): n
      Command action
         e   extended
         p   primary partition (1-4)
      p
      Partition number (1-4): 1
      First cylinder (1-2610, default 1):
      Using default value 1
      Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): +6G
       
      Command (m for help): n
      Command action
         e   extended
         p   primary partition (1-4)
      p
      Partition number (1-4): 2
      First cylinder (785-2610, default 785):
      Using default value 785
      Last cylinder, +cylinders or +size{K,M,G} (785-2610, default 2610): +6G
       
      Command (m for help): t
      Partition number (1-4): 1
      Hex code (type L to list codes): fd
      Changed system type of partition 1 to fd (Linux raid autodetect)
       
      Command (m for help): t
      Partition number (1-4): 2
      Hex code (type L to list codes): fd
      Changed system type of partition 2 to fd (Linux raid autodetect)
       
      Command (m for help): w
      The partition table has been altered!
       
      Calling ioctl() to re-read partition table.
      Syncing disks.
      [root@mail ~]# mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sdc{1,2}
      mdadm: Defaulting to version 1.2 metadata
      mdadm: array /dev/md0 started.
      [root@mail ~]# cat /proc/mdstat
      Personalities : [raid0]
      md0 : active raid0 sdc2[1] sdc1[0]
            12585984 blocks super 1.2 512k chunks
             
      unused devices: <none>
      [root@mail ~]# mdadm -D /dev/md0
      /dev/md0:
              Version : 1.2
        Creation Time : Tue May 10 20:19:43 2016
           Raid Level : raid0
           Array Size : 12585984 (12.00 GiB 12.89 GB)
         Raid Devices : 2
        Total Devices : 2
          Persistence : Superblock is persistent
       
          Update Time : Tue May 10 20:19:43 2016
                State : clean
       Active Devices : 2
      Working Devices : 2
       Failed Devices : 0
        Spare Devices : 0
       
           Chunk Size : 512K
       
                 Name : mail.saviorsyang.com:0  (local to host mail.saviorsyang.com)
                 UUID : b5ec8803:366d2e9d:a1ddd0f2:58101d5c
               Events : 0
       
          Number   Major   Minor   RaidDevice State
             0       8       33        0      active sync   /dev/sdc1
             1       8       34        1      active sync   /dev/sdc2
       
      [root@mail ~]# mke2fs -t ext4 /dev/md0
      mke2fs 1.43-WIP (20-Jun-2013)
      Filesystem label=
      OS type: Linux
      Block size=4096 (log=2)
      Fragment size=4096 (log=2)
      Stride=128 blocks, Stripe width=256 blocks
      786864 inodes, 3146496 blocks
      157324 blocks (5.00%) reserved for the super user
      First data block=0
      Maximum filesystem blocks=3225419776
      97 block groups
      32768 blocks per group, 32768 fragments per group
      8112 inodes per group
      Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208
       
      Allocating group tables: done                           
      Writing inode tables: done                           
      Creating journal (32768 blocks):
      done
      Writing superblocks and filesystem accounting information: done
       
      [root@mail ~]# mkdir  /test/md0
      [root@mail ~]# mount /dev/md0 /test/md0
      [root@mail ~]# mount
      /dev/mapper/vg_demo-lv_root on / type ext4 (rw)
      proc on /proc type proc (rw)
      sysfs on /sys type sysfs (rw)
      devpts on /dev/pts type devpts (rw,gid=5,mode=620)
      tmpfs on /dev/shm type tmpfs (rw)
      /dev/sda1 on /boot type ext4 (rw)
      /dev/sdb1 on /student type ext4 (rw)
      /dev/sr0 on /mnt type iso9660 (ro)
      none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
      /dev/md0 on /test/md0 type ext4 (rw)

      使用raid1创建一个2G大小的磁盘。

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      41
      42
      43
      44
      45
      46
      47
      48
      49
      50
      51
      52
      53
      54
      55
      56
      57
      58
      59
      60
      61
      62
      63
      64
      65
      66
      67
      68
      69
      70
      71
      72
      73
      74
      75
      76
      77
      78
      79
      80
      81
      82
      83
      84
      85
      86
      87
      88
      89
      90
      91
      92
      93
      94
      95
      96
      97
      98
      99
      100
      101
      102
      103
      104
      105
      106
      107
      108
      109
      110
      111
      112
      113
      114
      115
      116
      117
      118
      119
      120
      121
      122
      123
      124
      125
      126
      127
      128
      129
      130
      131
      132
      133
      134
      135
      136
      137
      138
      139
      140
      141
      142
      143
      144
      145
      146
      147
      148
      149
      150
      151
      152
      153
      154
      155
      156
      157
      158
      159
      160
      161
      162
      163
      164
      165
      166
      167
      168
      [root@mail ~]# fdisk /dev/sdc
       
      WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
               switch off the mode (command 'c') and change display units to
               sectors (command 'u').
       
      Command (m for help): n
      Command action
         e   extended
         p   primary partition (1-4)
      e
      Partition number (1-4):
      Value out of range.
      Partition number (1-4): 3
      First cylinder (1569-2610, default 1569):
      Using default value 1569
      Last cylinder, +cylinders or +size{K,M,G} (1569-2610, default 2610):
      Using default value 2610
       
      Command (m for help): n
      Command action
         l   logical (5 or over)
         p   primary partition (1-4)
      l
      First cylinder (1569-2610, default 1569):
      Using default value 1569
      Last cylinder, +cylinders or +size{K,M,G} (1569-2610, default 2610): +2G
       
      Command (m for help): n
      Command action
         l   logical (5 or over)
         p   primary partition (1-4)
      l
      First cylinder (1831-2610, default 1831):
      Using default value 1831
      Last cylinder, +cylinders or +size{K,M,G} (1831-2610, default 2610): +2G
       
      Command (m for help): w
      The partition table has been altered!
       
      Calling ioctl() to re-read partition table.
       
      WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
      The kernel still uses the old table. The new table will be used at
      the next reboot or after you run partprobe(8) or kpartx(8)
      Syncing disks.
       
      [root@mail ~]# fdisk /dev/sdc
       
      WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
               switch off the mode (command 'c') and change display units to
               sectors (command 'u').
       
      Command (m for help): t
      Partition number (1-6): 5
      Hex code (type L to list codes): fd
      Changed system type of partition 5 to fd (Linux raid autodetect)
       
      Command (m for help): t
      Partition number (1-6): 6
      Hex code (type L to list codes): fd
      Changed system type of partition 6 to fd (Linux raid autodetect)
       
      Command (m for help): w
      The partition table has been altered!
       
      Calling ioctl() to re-read partition table.
       
      WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
      The kernel still uses the old table. The new table will be used at
      the next reboot or after you run partprobe(8) or kpartx(8)
      Syncing disks.
           
      [root@mail ~]# partx /dev/sdc
      # 1:        63- 12594959 ( 12594897 sectors,   6448 MB)
      # 2:  12594960- 25189919 ( 12594960 sectors,   6448 MB)
      # 3:  25189920- 41929649 ( 16739730 sectors,   8570 MB)
      # 4:         0-       -1 (        0 sectors,      0 MB)
      # 5:  25189983- 29398949 (  4208967 sectors,   2154 MB)
      # 6:  29399013- 33607979 (  4208967 sectors,   2154 MB)
       
      [root@mail ~]# cat /proc/partitions
      major minor  #blocks  name
       
         8       32   20971520 sdc
         8       33    6297448 sdc1
         8       34    6297480 sdc2
         8       35         31 sdc3
         8       37    2104483 sdc5
         8       38    2104483 sdc6
         8        0   52428800 sda
         8        1     512000 sda1
         8        2   51915776 sda2
         8       16  524288000 sdb
         8       17  524281243 sdb1
         8       48   20971520 sdd
        11        0    3763200 sr0
       252        0   47816704 dm-0
       252        1    4096000 dm-1
         9        0   12585984 md0
      [root@mail ~]# mdadm -C /dev/md1 -a yes -l 1 -n 2 /dev/sdc{5,6}
      mdadm: Note: this array has metadata at the start and
          may not be suitable as a boot device.  If you plan to
          store '/boot' on this device please ensure that
          your boot-loader understands md/v1.x metadata, or use
          --metadata=0.90
      Continue creating array? yes
      mdadm: Defaulting to version 1.2 metadata
      mdadm: array /dev/md1 started.
      [root@mail ~]# cat /proc/mdstat
      Personalities : [raid0] [raid1]
      md1 : active raid1 sdc6[1] sdc5[0]
            2102400 blocks super 1.2 [2/2] [UU]
            [=================>...]  resync = 85.5% (1800064/2102400) finish=0.0min speed=200007K/sec
             
      md0 : active raid0 sdc2[1] sdc1[0]
            12585984 blocks super 1.2 512k chunks
             
      unused devices: <none>
      [root@mail ~]# cat /proc/mdstat
      Personalities : [raid0] [raid1]
      md1 : active raid1 sdc6[1] sdc5[0]
            2102400 blocks super 1.2 [2/2] [UU]
             
      md0 : active raid0 sdc2[1] sdc1[0]
            12585984 blocks super 1.2 512k chunks
             
      unused devices: <none>
       
       
      [root@mail ~]#
      [root@mail ~]# mke2fs -t ext4 /dev/md1
      mke2fs 1.43-WIP (20-Jun-2013)
      Filesystem label=
      OS type: Linux
      Block size=4096 (log=2)
      Fragment size=4096 (log=2)
      Stride=0 blocks, Stripe width=0 blocks
      131648 inodes, 525600 blocks
      26280 blocks (5.00%) reserved for the super user
      First data block=0
      Maximum filesystem blocks=541065216
      17 block groups
      32768 blocks per group, 32768 fragments per group
      7744 inodes per group
      Superblock backups stored on blocks:
          32768, 98304, 163840, 229376, 294912
       
      Allocating group tables: done                           
      Writing inode tables: done                           
      Creating journal (16384 blocks): done
      Writing superblocks and filesystem accounting information: done
       
      [root@mail ~]# mkdir -pv /test/md1
      [root@mail ~]# mount /dev/md1 /test/md1
      [root@mail ~]# mount
      /dev/mapper/vg_demo-lv_root on / type ext4 (rw)
      proc on /proc type proc (rw)
      sysfs on /sys type sysfs (rw)
      devpts on /dev/pts type devpts (rw,gid=5,mode=620)
      tmpfs on /dev/shm type tmpfs (rw)
      /dev/sda1 on /boot type ext4 (rw)
      /dev/sdb1 on /student type ext4 (rw)
      /dev/sr0 on /mnt type iso9660 (ro)
      none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
      /dev/md1 on /test/md1 type ext4 (rw)







    posted @ 2016-08-04 21:06  Saviorsyang  阅读(330)  评论(0编辑  收藏  举报