Linux RAID磁盘阵列

RAID磁盘阵列

RAID磁盘阵列介绍

  • RAID是英文Redundant Array of Inexpensive Disks的缩写,中文简称为廉价磁盘冗余阵列。
  • 把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术。
  • 组成磁盘阵列的不同方式称为RAID级别

常用的RAID级别

RAID 0
  • RAID 0连续以位或字节为单位分割数据,并行读/写于多个磁盘上,因此具有很高的数据传输率,但它没有数据冗余,因此并不能算是真正的RAID结构。
  • RAID 0只是单纯地提高性能,并没有为数据的可靠性提供保证,而且其中的一个磁盘失效将影响到所有数据。
  • RAID 0不能应用于数据安全性要求高的场合。
    0)

2快硬盘并行组成一个新的逻辑盘

将数据分割在多个硬盘上,因此提高了传输效率。
RAID最小存储单元:chunk=512K

但RAID0的问题是,它并不提供数据校验或冗余备份,因此一旦某块磁盘损坏了,数据就直接丢失,无法恢复了。

RAID 1
  • 通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互 为备份的数据。
  • 当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID 1可以提高读取性能。
  • RAID 1是磁盘阵列中单位成本最高的,但提供了很高的数据安全性和可用性。当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据。
  • N(偶数)块硬盘组合成一组镜像,N/2容量
    在这里插入图片描述

RAID1其实与RAID0效果刚好相反。RAID1 这种写双份的做法,就给数据做了一个冗余备份。这样的话,任何一块磁盘损坏了,都可以再基于另外一块磁盘去恢复数据。
成本过高

RAID 5
  • 至少需要3块硬盘组成阵列,一份数据产生N-1个条带,同时还有一份校验数据(奇偶校验码),共N份数据在N块硬盘上循环存储。
  • N块硬盘同时读写,读的性能很高,但是由于有奇偶校验码机制的问题,所以写性能相对不高。
  • 可靠性高,允许坏1块盘,不影响所有数据
  • 利用率:(N-1)/2

在这里插入图片描述

优点:读的情况下是单盘数据的三倍;有一定的安全性,可以容忍损坏一块磁盘
缺点:由于每次写数据都需要计算校验块,导致写性能下降;仅能容忍坏一块磁盘损坏

RAID 6
  • 至少4块硬盘组成阵列。利用率:(N-2)/2
  • 与RAID 5相比,RAID 6增加了第二个独立的奇偶校验信息块
  • 两个独立的奇偶系统使用不同的算法,因此凉快磁盘同事损坏也不会影响数据的使用。
  • 相对RAID 5来说RAID 6 的写性能更差。即 有更大的”写损失“

在这里插入图片描述

RAID 10
  • N(偶数)块盘做镜像,再按照RAID0的方式组合
  • N/2利用率
  • N/2块盘同事写入,N块盘同时读取
  • 性能高,可靠性高

在这里插入图片描述

各种组合之间的对比

在这里插入图片描述

硬RAID和软RAID

硬raid:需要服务器上有阵列卡,然后连接上硬盘,开启服务器配置,速度快,稳定

软raid:在系统上用mdadm工具去创建和管理

软RAID的配置

mdadm是一个用于创建、管理、监控RAID设备的工具,它使用linux中的md驱动。

建立分区
raid 0:

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

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

Device does not contain a recognized partition table
使用磁盘标识符 0x16d8fd77 创建新的 DOS 磁盘标签。

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

#建立两个分区 /dev/sdb1 /dev/sdb2

mdadm命令建立 RAID 0
mdadm [模式] [RAID设备文件名] [选项]
模式:
Assemble:加入一个已经存在的阵列;

Build:创建一个没有超级块的阵列;

Create:创建一个阵列,每个设备都具有超级块;

Manage:管理阵列,如添加设备和删除损坏设备;

Misc:允许单独对阵列中的设备进行操作,如停止阵列;

Follow or Monitor:监控RAID状态; Grow:改变RAID的容量或阵列中的数目;

选项:

  • -s,-scan:扫描配置文件或/proc/mdstat文件,发现丟失的信息;
  • -D,-detail:查看磁盘阵列详细信息;
  • -C,-create:建立新的磁盘阵列,也就是调用 Create模式;
  • -a,-auto=yes:采用标准格式建立磁阵列
  • -n,-raicklevices=数字:使用几块硬盘或分区组成RAID
  • -l,-level=级别:创建RAID的级别,可以是0,1,5
  • -x,-spare-devices=数字:使用几块硬盘或分区组成备份设备
  • -a,-add 设备文件名:在已经存在的RAID中加入设备
  • -r,-remove 设备文件名名:在已经存在的RAID中移除设备
  • -f,-fail设备文件名:把某个组成RAID的设备设置为错误状态
  • -S,-stop:停止RAID设备
  • -A,-assemble:按照配置文件加载RAID
  • -v,–verbose:显示更详细的信息
    用于 –detail –scan 或者 –examine –scan
[root@promote ~]# mdadm -C -v /dev/md0 -l0 -n2 /dev/sdb[1-2]
mdadm: chunk size defaults to 512K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

mdadm -D /dev/md0 :查看详情

[root@promote ~]# mdadm -D /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Thu May 13 23:23:07 2021
        Raid Level : raid0
        Array Size : 10475520 (9.99 GiB 10.73 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

       Update Time : Thu May 13 23:23:07 2021
             State : clean 
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 0

        Chunk Size : 512K

Consistency Policy : none

              Name : promote.cache-dns.local:0  (local to host promote.cache-dns.local)
              UUID : 80d67c0c:0044b617:47ab98ed:bb9214f9
            Events : 0

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       18        1      active sync   /dev/sdb2
[root@promote etc]# mdadm -Ds /dev/md0
ARRAY /dev/md0 metadata=1.2 name=promote.cache-dns.local:0 UUID=80d67c0c:0044b617:47ab98ed:bb9214f9

cat /proc/mdstat :查看RAID实时情况

[root@promote etc]# cat /proc/mdstat
Personalities : [raid0] 
md0 : active raid0 sdb2[1] sdb1[0]
      10475520 blocks super 1.2 512k chunks
      
unused devices: <none>

格式化
mkfs

[root@promote etc]# mkfs.xfs /dev/md0
meta-data=/dev/md0               isize=512    agcount=16, agsize=163712 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=2618880, imaxpct=25
         =                       sunit=128    swidth=256 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=8 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

mkdir /raid0 创建/raid0目录

挂载
mount /dev/md0 /raid0

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值