359025439 发表于 2018-5-22 07:55:56

linux软RAID

  一、RAID简介
  独立磁盘冗余阵列(RAID,redundant array of independent disks)是把相同的数据存储在多个硬盘的不同的地方(因此,冗余地)的方法。通过把数据放在多个硬盘上,输入输出操作能以平衡的方式交叠,改良性能。因为多个硬盘增加了平均故障间隔时间(MTBF),储存冗余数据也增加了容错。

  

  二、条带化存储技术
  条带化技术就是一种自动的将 I/O 的负载均衡到多个物理磁盘上的技术,条带化技术就是将一块连续的数据分成很多小部分并把他们分别存储到不同磁盘上去。这就能使多个进程同时访问数据的多个 不同部分而不会造成磁盘冲突,而且在需要对这种数据进行顺序访问的时候可以获得最大程度上的 I/O 并行能力,从而获得非常好的性能。很多操作系统、磁盘设备供应商、各种第三方软件都能做到条带化。
http://blog.51cto.com/e/u261/themes/default/images/spacer.gif
  三、RAID级别和机制
  
  

  条带机制

  RAID 0                  (读速度提高了,写的数据慢了)
http://blog.51cto.com/e/u261/themes/default/images/spacer.gif
  

  磁盘镜像机制
  RAID 1
http://blog.51cto.com/e/u261/themes/default/images/spacer.gif
  

  效验码机制
  RAID 4               (读写都提高了,效验码盘存储压力大成为性能瓶颈)
http://blog.51cto.com/e/u261/themes/default/images/spacer.gif
  

  RAID 0+1(先做条带,然后再把各个条带组成RAID1)
http://blog.51cto.com/e/u261/themes/default/images/spacer.gif
  

  RAID 1+0(先两两镜像,然后RAID0)
http://blog.51cto.com/e/u261/themes/default/images/spacer.gif
  

  RAID 5       (RAID 6   两块效验盘)
http://blog.51cto.com/e/u261/themes/default/images/spacer.gif
  

  JBOD(磁盘堆叠,多块盘组成一个容量大的盘,hadoop建议使用JBOD ,hadoop 机制HDFS可以实现JBOD冗余,JBOD本身没有冗余功能)
http://blog.51cto.com/e/u261/themes/default/images/spacer.gif
  

  

  

  

  RAID实现的方式:
  外接式磁盘阵列,通过扩展卡通过适配能力
  内核式RAID:主板集成RAID控制器
  software RAID
  

  RAID配置命令和查看命令
  centos6上的软件RAID的实现结合了内核中的md(multi devices)
命令的语法格式:mdadm <raiddevice> <component-devices>
支持的RAID级别:LINEAR,RAID0,RAID1,RAID4,RAID5,RAID6,RAID10;


  创建模式:
    -C
      -n #使用#个块设备来创建此RAID
      -l #指明要创建的RAID的级别
      -a {yes|on}自动创建目标RAID设备的设备文件
      -c CHUNK_SIZE:指明CHUNK大小
      -x #指明空闲盘的个数


装配模式(装配能扫描RAID上的元数据,常用于装系统后,重新装配使用)
    -A
管理模式
    -f标记指定磁盘为损坏
    -a添加磁盘
    -r移除磁盘


<raiddevice>:/dev/md#

<component-devices>:任意块设备,可以是磁盘,可以是分区。


显示RAID的详细信息
mdadm -D /dev/md5\

查看MD的状态
cat /proc/mdstat
  

  实例创建RAID5:
  1,分区设置分区ID fd
  # fdisk -l |grep "^/dev/sd"
/dev/sda1   *         1          26      204800   83Linux
/dev/sda2            26      7859    62914560   8eLinux LVM
/dev/sdb1               1         654   5253223+fdLinux raid autodetect
/dev/sdb2             655      1308   5253255   fdLinux raid autodetect
/dev/sdb3            1309      1962   5253255   fdLinux raid autodetect
/dev/sdc1               1         654   5253223+fdLinux raid autodetect
#
  

  2,创建RAID5
  # mdadm -C /dev/md5 -a yes -n 3 -l 5 -x 1 /dev/sd
mdadm: /dev/sdb1 appears to be part of a raid array:
       level=raid5 devices=3 ctime=Wed Aug 26 17:28:15 2015
mdadm: /dev/sdb2 appears to be part of a raid array:
       level=raid5 devices=3 ctime=Wed Aug 26 17:28:15 2015
mdadm: /dev/sdb3 appears to be part of a raid array:
       level=raid5 devices=3 ctime=Wed Aug 26 17:28:15 2015
mdadm: /dev/sdc1 appears to be part of a raid array:
       level=raid5 devices=3 ctime=Wed Aug 26 17:28:15 2015
Continue creating array?            
Continue creating array? (y/n) y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md5 started.
  3,查看md的状态
  # cat /proc/mdstat
Personalities :
md5 : active raid5 sdb3 sdc1(S) sdb2 sdb1
      10498048 blocks super 1.2 level 5, 512k chunk, algorithm 2
      [============>........]recovery = 61.8% (3246400/5249024) finish=1.0min speed=30693K/sec
      
unused devices: <none>
  4,查看RAID信息
  # mdadm -D /dev/md5
/dev/md5:
      Version : 1.2
Creation Time : Wed Aug 26 18:42:00 2015
   Raid Level : raid5
   Array Size : 10498048 (10.01 GiB 10.75 GB)
Used Dev Size : 5249024 (5.01 GiB 5.38 GB)
   Raid Devices : 3
Total Devices : 4
    Persistence : Superblock is persistent

    Update Time : Wed Aug 26 18:43:27 2015
          State : clean
Active Devices : 2
Working Devices : 4
Failed Devices : 0
Spare Devices : 2

         Layout : left-symmetric
   Chunk Size : 512K

Rebuild Status : 43% complete

         Name : localhost.localdomain:5(local to host localhost.localdomain)
         UUID : 7c6efc4f:5f6e0b0d:f6e56836:3556ec3f
         Events : 7

    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       33      -      spare   /dev/sdc1
5,格式化挂载。
  # mkfs.ext4 /dev/md5
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=256 blocks
657072 inodes, 2624512 blocks
131225 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2688548864
81 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

Writing inode tables: done                           
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 25 mounts or
180 days, whichever comes first.Use tune2fs -c or -i to override.
# mkdir -pv /testmd5
# mount -t ext4 /dev/md5 /testmd5/
# mount |tail -1
/dev/md5 on /testmd5 type ext4 (rw)
# cd testmd5/
# ls
lost+found
#
  6,测试RAID冗余
  # /bin/cp -fr /etc /testmd5/
# du -sh /testmd5/
38M/testmd5/
  # mdadm /dev/md5 -f /dev/sdb1
mdadm: set /dev/sdb1 faulty in /dev/md5
# mdadm -D /dev/md5
/dev/md5:
      Version : 1.2
Creation Time : Wed Aug 26 18:42:00 2015
   Raid Level : raid5
   Array Size : 10498048 (10.01 GiB 10.75 GB)
Used Dev Size : 5249024 (5.01 GiB 5.38 GB)
   Raid Devices : 3
Total Devices : 4
    Persistence : Superblock is persistent

    Update Time : Wed Aug 26 18:55:41 2015
          State : clean, degraded, recovering
Active Devices : 2
Working Devices : 3
Failed Devices : 1
Spare Devices : 1

         Layout : left-symmetric
   Chunk Size : 512K

Rebuild Status : 23% complete

         Name : localhost.localdomain:5(local to host localhost.localdomain)
         UUID : 7c6efc4f:5f6e0b0d:f6e56836:3556ec3f
         Events : 23

    Number   Major   Minor   RaidDevice State
       3       8       33      0      spare rebuilding   /dev/sdc1
       1       8       18      1      active sync   /dev/sdb2
       4       8       19      2      active sync   /dev/sdb3

       0       8       17      -      faulty   /dev/sdb1
#
  7,观察md的状态
  # watch -n 3 "cat /proc/mdstat"
  8,再指定一块损坏,让其工作在降级模式。

  注意:级别仅代表磁盘组织方式不同,没有上下之分。
  
页: [1]
查看完整版本: linux软RAID