博文十七:RAID各级别特性

一、简述

    RAID(Redundant Array of Independent/Inexpensive Disks):独立冗余磁盘阵列。RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑上的一个整块硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份的技术。

    RAID特性

        提高IO能力:磁盘并行读写

        提高耐用性:磁盘冗余来实现

    RAID实现方式

        外接式磁盘阵列:通过PCI或PCI-E扩展卡提供适配能力

        内接式RAID:主板集成RAID控制器

        软件RAID:通过软件方式实现

    RAID级别:RAID0,RAID1,RAID2,RAID3,RAID4,RAID5,RAID6,RAID7,RAID5E,RAID5,RAID10/01,RAID50,RAID53,JBOD

二、使用

    常用RAID级别:RAID0,RAID1,RAID5,RAID10,RAID50,JBOD

    1.级别及其特性

        1.1)RAID0(条带卷)

            磁盘阵列中存储性能最好的。适用于安全性不高,要求比较高性能的图形工作站或者个人站。

            特性

                读写性能提升

                可用空间:N*min(S1,S2,...)

                没有容错功能

                磁盘数量:至少2块

            工作模式

                数据文件被分割成"条带状"(连续以位或字节为单位分割数据),分条存储在多个磁盘上。

1913fa3fab81f20b615859404ad76555b44.jpg

        1.2)RAID1(镜像卷)

            数据盘顺坏,换盘后需要长时间的镜像同步,不影响外界访问,但整个系统性能下降。磁盘控制器负载比较大。适用于安全性较高,且能较快恢复数据的场合。

            特性

                读性能提升,写性能略有下降

                可用空间:1*min(S1,S2,...)

                有容错功能

                磁盘数量:至少2块

            工作模式

                通过磁盘数据镜像实现数据的冗余,在成对的独立磁盘上产生互为备份(镜像)的数据。

e1be00a0869ae3164b36618df08021726cf.jpg

        1.3)RAID5

            读取速度接近RAID0,但是安全性更高。安全性上接近RAID1,但是磁盘的利用率更高。可以认为是RAID0和RAID1的一个折中方案。只允许有一块盘出错,可以通过另外多块盘来计算出故障盘的数据,故障之后必须尽快更换。比RAID01的磁盘利用率高,是目前比较常用的一种方案。

            特性

                读写性能提升

                可用空间:N*min(S1,S2,...)

                有容错功能:允许一块磁盘出错,出错后显示为降级

                磁盘数:至少3块

            工作模式

               RAID 5不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID5的一个磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。  

d7e9ba71b55fa95e9a2b37facee493c60e8.jpg

        1.4)RAID10

            特性

                读写性能提升

                可用空间:N*min(S1,S2,...)/2

                有容错功能:每组镜像中最多只能坏一块盘

                磁盘数:至少4块

            工作模式

                最多损坏一对盘,因为出现两块盘同时出现错误的概率较小,故安全性较高。

f200f92c80bad27b1c480e495ca958238ef.jpg

        1.5)RAID50

            特性

            更高的容错能力,具备更快数据读取速率

            工作模式

eaa5e28320de39f65a9075f802bcb7aa1b5.jpg

        1.6)JBOD(Just a Bunch Of Disks)

            特性

                将多块磁盘的空间合并成一个大的连续的空间使用,并不是严格意义上的RAID,其没有容错功能

                可用空间:sum(S1,S2,...)

            工作模式

e0afd488828e0d8ca4bb3183df2f0a6eda1.jpg

    2.阵列的建立(mdadm方式)

        生产环境中尽量不要使用软件方式来建立磁盘阵列

        2.1)mdadm命令

            模式化工具,用于管理磁盘设备或在linux上建立RAID,支持的RAID级别有:LINEAR,RAID0,RAID1,RAID4,RAID5,RAID6,RAID10。    

~]# mdadm [mode] <raiddevice> [options] <component-devices>
  mode
    -C:创建
      -a {yes|no}:自动创建目标RAID设备的设备文件
      -c CHUNK_SIZE:指明块大小
      -l #:指明要创建的RAID的级别
      -n #:使用#个块设备来创建此RAID
      -x #:指明空闲盘的个数
    -A:装配
    -F:监控
    -a,-f,-r:管理
      -a:添加磁盘
      -f:标记指定的磁盘为损坏
      -r:移除磁盘
    -D:显示RAID的详细信息
      ~]# mdadm -D /dev/md#
  raiddevice:/dev/md#
  options
  component-devices:任意块设备
~]# cat /proc/mdstat  观察md的状态
~]# mdadm -S /dev/md#  停止md设备
         2.2)案例

            创建一个10G可用空间的RAID5?

## 分区 ##
[root@wybaron_host1015 ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。


命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): 
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-62914559,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-62914559,默认为 62914559):+5G
分区 1 已设置为 Linux 类型,大小设为 5 GiB

命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): 
Using default response p
分区号 (2-4,默认 2):
起始 扇区 (10487808-62914559,默认为 10487808):
将使用默认值 10487808
Last 扇区, +扇区 or +size{K,M,G} (10487808-62914559,默认为 62914559):+5G
分区 2 已设置为 Linux 类型,大小设为 5 GiB

命令(输入 m 获取帮助):n
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p): 
Using default response p
分区号 (3,4,默认 3):
起始 扇区 (20973568-62914559,默认为 20973568):
将使用默认值 20973568
Last 扇区, +扇区 or +size{K,M,G} (20973568-62914559,默认为 62914559):+5G
分区 3 已设置为 Linux 类型,大小设为 5 GiB
命令(输入 m 获取帮助):n
Partition type:
   p   primary (3 primary, 0 extended, 1 free)
   e   extended
Select (default e): p
已选择分区 4
起始 扇区 (31459328-62914559,默认为 31459328):
将使用默认值 31459328
Last 扇区, +扇区 or +size{K,M,G} (31459328-62914559,默认为 62914559):+5G
分区 4 已设置为 Linux 类型,大小设为 5 GiB


命令(输入 m 获取帮助):l

 0  空              24  NEC DOS         81  Minix / 旧 Linu bf  Solaris        
 1  FAT12           27  隐藏的 NTFS Win 82  Linux 交换 / So c1  DRDOS/sec (FAT-
 2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       3c  PartitionMagic  84  OS/2 隐藏的 C:  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      40  Venix 80286     85  Linux 扩展      c7  Syrinx         
 5  扩展            41  PPC PReP Boot   86  NTFS 卷集       da  非文件系统数据 
 6  FAT16           42  SFS             87  NTFS 卷集       db  CP/M / CTOS / .
 7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux 纯文本    de  Dell 工具      
 8  AIX             4e  QNX4.x 第2部分  8e  Linux LVM       df  BootIt         
 9  AIX 可启动      4f  QNX4.x 第3部分  93  Amoeba          e1  DOS 访问       
 a  OS/2 启动管理器 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O        
 b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor      
 c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad 休 eb  BeOS fs        
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         ee  GPT            
 f  W95 扩展 (LBA)  54  OnTrackDM6      a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        f0  Linux/PA-RISC  
11  隐藏的 FAT12    56  Golden Bow      a8  Darwin UFS      f1  SpeedStor      
12  Compaq 诊断     5c  Priam Edisk     a9  NetBSD          f4  SpeedStor      
14  隐藏的 FAT16 <3 61  SpeedStor       ab  Darwin 启动     f2  DOS 次要       
16  隐藏的 FAT16    63  GNU HURD or Sys af  HFS / HFS+      fb  VMware VMFS    
17  隐藏的 HPFS/NTF 64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE 
18  AST 智能睡眠    65  Novell Netware  b8  BSDI swap       fd  Linux raid 自动
1b  隐藏的 W95 FAT3 70  DiskSecure 多启 bb  Boot Wizard 隐  fe  LANstep        
1c  隐藏的 W95 FAT3 75  PC/IX           be  Solaris 启动    ff  BBT            
1e  隐藏的 W95 FAT1 80  旧 Minix       

命令(输入 m 获取帮助):t
分区号 (1-3,默认 3):1
Hex 代码(输入 L 列出所有代码):fd
已将分区“Linux”的类型更改为“Linux raid autodetect”

命令(输入 m 获取帮助):t
分区号 (1-3,默认 3):2
Hex 代码(输入 L 列出所有代码):fd
已将分区“Linux”的类型更改为“Linux raid autodetect”

命令(输入 m 获取帮助):t
分区号 (1-3,默认 3):
Hex 代码(输入 L 列出所有代码):fd
已将分区“Linux”的类型更改为“Linux raid autodetect”

命令(输入 m 获取帮助):t
分区号 (1-4,默认 4):
Hex 代码(输入 L 列出所有代码):fd
已将分区“Linux”的类型更改为“Linux raid autodetect”

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:32.2 GB, 32212254720 字节,62914560 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xc329d258

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    10487807     5242880   fd  Linux raid autodetect
/dev/sdb2        10487808    20973567     5242880   fd  Linux raid autodetect
/dev/sdb3        20973568    31459327     5242880   fd  Linux raid autodetect
/dev/sdb4        31459328    41945087     5242880   fd  Linux raid autodetect


命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
## 通知内核识别分区 ##
[root@wybaron_host1015 ~]# partx -a /dev/sdb
partx: /dev/sdb: error adding partitions 1-4
[root@wybaron_host1015 ~]# partx -a /dev/sdb
partx: /dev/sdb: error adding partitions 1-4
## 创建阵列 ##
[root@wybaron_host1015 ~]# mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sdb{1,2,3,4}  
mdadm: /dev/sdb1 appears to contain an ext2fs file system
       size=20971520K  mtime=Thu Jan  1 08:00:00 1970
Continue creating array? y      
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@wybaron_host1015 ~]# cat /proc/mdstat 
Personalities : [raid6] [raid5] [raid4] 
md0 : active raid5 sdb3[4] sdb4[3](S) sdb2[1] sdb1[0]
      10475520 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
      
unused devices: <none>
## 格式化并挂载 ##
[root@wybaron_host1015 ~]# mkfs.ext4 /dev/md0 
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=128 blocks, Stripe width=256 blocks
655360 inodes, 2618880 blocks
130944 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2151677952
80 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

Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成 

[root@wybaron_host1015 ~]# mkdir data
[root@wybaron_host1015 ~]# mount /dev/md0 data/

########## 工作中建议使用UUID进行挂载和记录 ##########
# [root@wybaron_host1015 ~]# blkid /dev/md0
# /dev/md0: UUID="a3e539bd-e118-4c68-bb50-35db72b5be5d" TYPE="ext4"
######################################################

[root@wybaron_host1015 ~]# mount | tail -n 1
/dev/md0 on /root/data type ext4 (rw,relatime,stripe=256,data=ordered)
[root@wybaron_host1015 ~]# df -lh | grep "/dev/md0"
/dev/md0                 9.8G   37M  9.2G    1% /root/data
## 查看阵列信息 ##
[root@wybaron_host1015 ~]# mdadm -D /dev/md0 
/dev/md0:
           Version : 1.2
     Creation Time : Tue Oct  9 15:54:30 2018
        Raid Level : raid5
        Array Size : 10475520 (9.99 GiB 10.73 GB)
     Used Dev Size : 5237760 (5.00 GiB 5.36 GB)
      Raid Devices : 3
     Total Devices : 4
       Persistence : Superblock is persistent

       Update Time : Tue Oct  9 16:01:44 2018
             State : clean 
    Active Devices : 3
   Working Devices : 4
    Failed Devices : 0
     Spare Devices : 1

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : resync

              Name : wybaron_host1015:0  (local to host wybaron_host1015)
              UUID : 9daab8ce:299b687c:5f559246:8e0d3abe
            Events : 18

    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      active sync   /dev/sdb3

       3       8       20        -      spare   /dev/sdb4
## 手动标记损坏磁盘,检测自动替换情况 ##
root@wybaron_host1015 ~]# mdadm /dev/md0 -f /dev/sdb2
mdadm: set /dev/sdb2 faulty in /dev/md0
[root@wybaron_host1015 ~]# cat /proc/mdstat 
Personalities : [raid6] [raid5] [raid4] 
md0 : active raid5 sdb3[4] sdb4[3] sdb2[1](F) sdb1[0]
      10475520 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [U_U]
      [==================>..]  recovery = 94.9% (4974300/5237760) finish=0.0min speed=56652K/sec
      
unused devices: <none>
[root@wybaron_host1015 ~]# watch -n1 'cat /proc/mdstat'
[root@wybaron_host1015 ~]# mdadm -D /dev/md0 
/dev/md0:
           Version : 1.2
     Creation Time : Tue Oct  9 15:54:30 2018
        Raid Level : raid5
        Array Size : 10475520 (9.99 GiB 10.73 GB)
     Used Dev Size : 5237760 (5.00 GiB 5.36 GB)
      Raid Devices : 3
     Total Devices : 4
       Persistence : Superblock is persistent

       Update Time : Tue Oct  9 16:08:31 2018
             State : clean 
    Active Devices : 3
   Working Devices : 3
    Failed Devices : 1
     Spare Devices : 0

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : resync

              Name : wybaron_host1015:0  (local to host wybaron_host1015)
              UUID : 9daab8ce:299b687c:5f559246:8e0d3abe
            Events : 37

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       3       8       20        1      active sync   /dev/sdb4
       4       8       19        2      active sync   /dev/sdb3

       1       8       18        -      faulty   /dev/sdb2

三、补充

    partx命令

        通知内核识别分区。

~]# partx [-a|-d|-s|-u] [--nr <n:m> | <分区>] <磁盘>
  -a, --add            添加指定的分区或所有分区
  -d, --delete         删除指定的分区或所有分区
  -s, --show           列出分区

  -u, --update         更新指定的分区或所有分区
  -b, --bytes          以字节为单位而非易读的格式来打印 SIZE
  -g, --noheadings     --show 时不打印标题
  -n, --nr <n:m>       指定分区范围(例如:--nr 2:4)
  -o, --output <type>  定义使用哪个输出列
  -P, --pairs          使用 key=“value” 输出格式
  -r, --raw            使用原生输出格式
  -t, --type <类型>    指定分区类型(dos、bsd、solaris 等)
  -v, --verbose        详尽模式

  -h, --help     显示此帮助并退出
  -V, --version  输出版本信息并退出

可用的列(针对 --show、--raw 或 --pairs):
         NR  分区号
      START  分区起点(扇区数)
        END  分区终点(扇区数)
    SECTORS  扇区数
       SIZE  易读形式的大小
       NAME  分区名
       UUID  分区 UUID
       TYPE  分区类型 十六进制 或 uuid
      FLAGS  分区标志
     SCHEME  分区表类型(dos、gpt、...)

    watch命令

        定时刷新程序或命令执行结果输出至屏幕

~]# watch [options] command
  -n, --interval seconds:刷新时间间隔,单位为秒
# 案例
~]# watch -n# 'COMMAND'

 

转载于:https://my.oschina.net/comics/blog/2223132

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值