Linux基础-----RAID磁盘阵列

目录

一.RAID简述和磁盘阵列卡

二.不同级别RAID的详解

三.搭建RAID 0

四.搭建RAID 1

五.搭建RAID5

六.搭建RAID1+0


一.RAID简述和磁盘阵列卡

  • RAID是把多块独立物理硬盘按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘具有更高存储性能和存储容量的数据备份技术
  • 磁盘阵列卡,是用来实现RAID功能的板块。而且RAID卡一般分为硬RAID卡和软RAID卡两种,硬RAID通常由I/O处理器、硬盘控制器、硬盘连接器和缓存等一系列组件构成,而软RAID是通过软件并且使用CPU的RAID卡,但是软RAID占用的CPU资源比较高

二.不同级别RAID的详解

  • RAID 0称为条带化存储,它以连续位或字节为单位进行数据分割,将数据分段存储在各个硬盘之中,并行读写数据,因此具有很高的数据传输速率,可以达到单个硬盘的N倍(N是硬盘的数量),但是由于没有数据冗余单个硬盘的损坏会影响所有数据,数据安全性较低。如下图:

Linux基础-----RAID磁盘阵列_第1张图片

 

  • RAID 1称为镜像存储,它通过数据镜像实现数据备份,是在成对的独立磁盘产生互为备份的数据,所有写速率较慢,但是原始数据繁忙时可以从镜像文件中拷贝读取数据,所以相对来说读取性能较好,RAID 1的数据安全性很高,但是磁盘利用率最低,如果N个磁盘组合成一组镜像,只能利用其中N/2的磁盘,结构图如下

Linux基础-----RAID磁盘阵列_第2张图片

  • RAID 5是一种存储性能、数据安全与存储成本都兼顾的存储方法。一般由3块或3块以上的磁盘组成阵列,一份数据产生N-1个条带,同时还有一份数据校验,共有N份数据N块盘循环均衡存储,由于时所有盘同时读写,读性能很高,但是有校验机制,写性能相对不高,而且RAID 5的容量所有磁盘块数减一,可靠性高,允许损坏一块磁盘
  •  

Linux基础-----RAID磁盘阵列_第3张图片

  • RAID 6采用双重校验技术,两个独立的奇偶系统使用不同的算法使得数据可靠性很高,即使两块磁盘同时失效也不会影响数据的使用,但是相对来说它的写性能较差,RAID 6至少有4块磁盘,它的利用率为(N-2)/N,N为它的磁盘总数

Linux基础-----RAID磁盘阵列_第4张图片

  • RAID 1 + 0,就是RAID 1和RAID 0的结合,先做数据的备份(安全性),再做条带(数据传输率),兼顾了RAID 1的容错能力和RAID 0的读写数据的优点,性能、可靠性都比较高,一般RAID1+0磁盘个数是4块以上且为偶数,容量是磁盘块数的一半。

Linux基础-----RAID磁盘阵列_第5张图片

  • 类似的混合还有RAID0+1,二者在读写性能上差别不大,但是在安全性上RAID1+0要好于RAID0+1

 

三.搭建RAID 0

  • 搭建RAID 0的步骤
1.在磁盘空间准备2块磁盘并且分区
sdb1,sdc1
2.并将这两块磁盘的的文件系统的ID修改为
fd,对应为“Linux raid autodetect”
3.使用mdadm工具创建RAID设备,如:
mdadm -C -v /dev/md0 -l0 -n2 /dev/sd[b-c]1
-C代表创建;-v指定名称;-l指定raid的级别;-n指定使用几块磁盘
4.查看创建的RAID设备的详细信息
mdadm -D /dev/md0
5.格式化并挂载RAID 0
mkfs.xfs /dev/md0
mkdir /raid0 (创建一个挂载点)
mount /dev/md0 /raid0/
6.查看是否能够使用
df -hT
  • 实例

查看创建的磁盘

[root@192 ~]# fdisk -l

磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000be365

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    12584959     6291456   83  Linux
/dev/sda2        12584960    33556479    10485760   83  Linux
/dev/sda3        33556480    41945087     4194304   82  Linux swap / Solaris
/dev/sda4        41945088    83886079    20970496    5  Extended
/dev/sda5        41947136    62918655    10485760   83  Linux

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

[root@192 ~]# 

给磁盘分区并且修改文件系统的ID

[root@192 ~]# fdisk -l

磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000be365

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    12584959     6291456   83  Linux
/dev/sda2        12584960    33556479    10485760   83  Linux
/dev/sda3        33556480    41945087     4194304   82  Linux swap / Solaris
/dev/sda4        41945088    83886079    20970496    5  Extended
/dev/sda5        41947136    62918655    10485760   83  Linux

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

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    41943039    20970496   fd  Linux raid autodetect

磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xe3486ea3

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048    41943039    20970496   fd  Linux raid autodetect
[root@192 ~]# 

查看是否有mdadm工具,创建RAID设备

[root@192 ~]# rpm -q mdadm
mdadm-4.0-5.el7.x86_64
[root@192 ~]# mdadm -C -v /dev/md0 -l0 -n2 /dev/sd[b-c]1
mdadm: chunk size defaults to 512K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@192 ~]# 

查看创建RAID设备的详细信息

[root@192 ~]# mdadm -D /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Mon Nov  4 18:05:33 2019
        Raid Level : raid0
        Array Size : 41908224 (39.97 GiB 42.91 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

       Update Time : Mon Nov  4 18:05:33 2019
             State : clean 
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 0

        Chunk Size : 512K

Consistency Policy : none

              Name : 192.168.43.133:0  (local to host 192.168.43.133)
              UUID : 4866581c:81a51bd4:d3c2c70c:d900cccc
            Events : 0

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       33        1      active sync   /dev/sdc1
[root@192 ~]# 

格式化并且挂载,查看挂载信息

[root@192 ~]# mkfs.xfs /dev/md0
meta-data=/dev/md0               isize=512    agcount=16, agsize=654720 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=10475520, imaxpct=25
         =                       sunit=128    swidth=256 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=5120, version=2
         =                       sectsz=512   sunit=8 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@192 ~]# mkdir aaa
[root@192 ~]# mount /dev/md0 ./aaa
[root@192 ~]# df -tH
df: 未处理文件系统
[root@192 ~]# df -hT
文件系统       类型      容量  已用  可用 已用% 挂载点
/dev/sda2      xfs        10G  3.3G  6.8G   33% /
devtmpfs       devtmpfs  474M     0  474M    0% /dev
tmpfs          tmpfs     489M     0  489M    0% /dev/shm
tmpfs          tmpfs     489M  7.2M  481M    2% /run
tmpfs          tmpfs     489M     0  489M    0% /sys/fs/cgroup
/dev/sda5      xfs        10G   37M   10G    1% /home
/dev/sda1      xfs       6.0G  158M  5.9G    3% /boot
tmpfs          tmpfs      98M   12K   98M    1% /run/user/42
tmpfs          tmpfs      98M     0   98M    0% /run/user/0
/dev/md0       xfs        40G   33M   40G    1% /root/aaa
[root@192 ~]# 

四.搭建RAID 1

  • 搭建RAID 1的步骤
1.在磁盘空间准备3块磁盘并且分区,其中一块作为备份
sdb1,sdc1,sdd1
2.并将这3块磁盘的的文件系统的ID修改为
fd,对应为“Linux raid autodetect”
3.使用mdadm工具创建RAID设备,如:
mdadm -C -v /dev/md1 -l1 -n2 /dev/sd[b-c]1 -x1 /dev/sdd1
-C代表创建;-v指定名称;-l指定raid的级别;-n指定使用几块磁盘;-x指定备用磁盘(后面加磁盘数量)
4.查看创建的RAID设备的详细信息
mdadm -D /dev/md1
5.格式化并挂载RAID 1
mkfs.xfs /dev/md1
mkdir /raid1 (创建一个挂载点)
mount /dev/md1 /raid1/
6.查看是否能够使用
df -hT
7.模拟损坏磁盘(sdb1)
mdadm -f /dev/md1 /dev/sdb1
8.使用mdadm -D /dev/md1命令,查看备用磁盘是否被使用
  • 实例

添加磁盘,并且创建分区,修改文件系统ID号

[root@192 ~]# fdisk -l

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

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    41943039    20970496   fd  Linux raid autodetect

磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xc52b85ae

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048    41943039    20970496   fd  Linux raid autodetect

磁盘 /dev/sdd:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x23b03d5d

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdd1            2048    41943039    20970496   fd  Linux raid autodetect

磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000be365

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    12584959     6291456   83  Linux
/dev/sda2        12584960    33556479    10485760   83  Linux
/dev/sda3        33556480    41945087     4194304   82  Linux swap / Solaris
/dev/sda4        41945088    83886079    20970496    5  Extended
/dev/sda5        41947136    62918655    10485760   83  Linux
[root@192 ~]# 

创建RAID设备,并查看加载情况

[root@192 ~]# mdadm -C -v /dev/md1 -l1 -n2 /dev/sd[b-c] -x1 /dev/sdd1
mdadm: partition table exists on /dev/sdb
mdadm: partition table exists on /dev/sdb but will be lost or
       meaningless after creating array
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
mdadm: partition table exists on /dev/sdc
mdadm: partition table exists on /dev/sdc but will be lost or
       meaningless after creating array
mdadm: size set to 20954112K
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
[root@192 ~]# cat /proc/mdstat
Personalities : [raid1] 
md1 : active raid1 sdd1[2](S) sdc[1] sdb[0]
      20954112 blocks super 1.2 [2/2] [UU]
      [===============>.....]  resync = 79.2% (16604544/20954112) finish=0.3min speed=200028K/sec
      
unused devices: 
[root@192 ~]# 

查看详细信息

[root@192 ~]# mdadm -D /dev/md1
/dev/md1:
           Version : 1.2
     Creation Time : Mon Nov  4 20:22:51 2019
        Raid Level : raid1
        Array Size : 20954112 (19.98 GiB 21.46 GB)
     Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
      Raid Devices : 2
     Total Devices : 3
       Persistence : Superblock is persistent

       Update Time : Mon Nov  4 20:24:35 2019
             State : clean 
    Active Devices : 2
   Working Devices : 3
    Failed Devices : 0
     Spare Devices : 1

Consistency Policy : resync

              Name : 192.168.43.133:1  (local to host 192.168.43.133)
              UUID : ec7cfe85:60558d74:a036d07a:85d967cf
            Events : 17

    Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync   /dev/sdb
       1       8       32        1      active sync   /dev/sdc

       2       8       49        -      spare   /dev/sdd1

格式化并且挂载RAID1,查看挂载情况

[root@192 ~]# mkfs.xfs /dev/md1
meta-data=/dev/md1               isize=512    agcount=4, agsize=1309632 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=5238528, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@192 ~]# mkdir aaa
[root@192 ~]# mount /dev/md1 ./aaa
[root@192 ~]# df -hT
文件系统       类型      容量  已用  可用 已用% 挂载点
/dev/sda2      xfs        10G  3.3G  6.8G   33% /
devtmpfs       devtmpfs  474M     0  474M    0% /dev
tmpfs          tmpfs     489M     0  489M    0% /dev/shm
tmpfs          tmpfs     489M  7.2M  481M    2% /run
tmpfs          tmpfs     489M     0  489M    0% /sys/fs/cgroup
/dev/sda5      xfs        10G   37M   10G    1% /home
/dev/sda1      xfs       6.0G  158M  5.9G    3% /boot
tmpfs          tmpfs      98M   12K   98M    1% /run/user/42
tmpfs          tmpfs      98M     0   98M    0% /run/user/0
/dev/md1       xfs        20G   33M   20G    1% /root/aaa
[root@192 ~]# 

损坏sdb,查看备用磁盘会不会使用

[root@192 ~]# mdadm -f /dev/md1 /dev/sdc
mdadm: set /dev/sdc faulty in /dev/md1
[root@192 ~]# mdadm -D /dev/md1
/dev/md1:
           Version : 1.2
     Creation Time : Mon Nov  4 20:22:51 2019
        Raid Level : raid1
        Array Size : 20954112 (19.98 GiB 21.46 GB)
     Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
      Raid Devices : 2
     Total Devices : 3
       Persistence : Superblock is persistent

       Update Time : Mon Nov  4 20:46:53 2019
             State : active, degraded, recovering 
    Active Devices : 1
   Working Devices : 2
    Failed Devices : 1
     Spare Devices : 1

Consistency Policy : resync

    Rebuild Status : 7% complete

              Name : 192.168.43.133:1  (local to host 192.168.43.133)
              UUID : ec7cfe85:60558d74:a036d07a:85d967cf
            Events : 21

    Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync   /dev/sdb
       2       8       49        1      spare rebuilding   /dev/sdd1

       1       8       32        -      faulty   /dev/sdc

五.搭建RAID5

  • 步骤
1.在磁盘空间准备4块磁盘并且分区,其中一块作为备份
sdb1,sdc1,sdd1,sde1
2.并将这4块磁盘的的文件系统的ID修改为
fd,对应为“Linux raid autodetect”
3.使用mdadm工具创建RAID设备,如:
mdadm -C -v /dev/md5 -l5 -n3 /dev/sd[b-d]1 -x1 /dev/sdf1
-C代表创建;-v指定名称;-l指定raid的级别;-n指定使用几块磁盘;-x指定备用磁盘(后面加磁盘数量)
4.查看创建的RAID设备的详细信息
mdadm -D /dev/md5
5.格式化并挂载RAID 1
mkfs.xfs /dev/md5
mkdir /raid5 (创建一个挂载点)
mount /dev/md5 /raid5/
6.查看是否能够使用
df -hT

 

注:RAID6的步骤和RAID5差不多,区别在于raid的级别变为6,而且使用四块磁盘,可以用两块备用磁盘

六.搭建RAID1+0

  • 步骤
1.在磁盘空间准备4块磁盘并且分区
sdb1,sdc1,sdd1,sde1
2.并将这4块磁盘的的文件系统的ID修改为
fd,对应为“Linux raid autodetect”e
3.使用mdadm工具创建第一个raid1,如下:
mdadm -C -v /dev/md1 -l1 -n2 /dev/sd[b-c]1 
4.使用mdadm工具创建第二个raid1,如下:
mdadm -C -v /dev/md2 -l1 -n2 /dev/sd[d-e]1 
5.将上面的两个raid1创建成raid0
mdadm -C -v /dev/md10 -l0 -n2 /dev/md1 /dev/md2
6.查看创建的RAID设备的详细信息
mdadm -D /dev/md10
6.格式化并挂载md10
mkfs.xfs /dev/md10
mkdir /raid10 (创建一个挂载点)
mount /dev/md10 /raid10/
6.查看是否能够使用
df -hT

注:在raid1,raid5,raid6,raid10中都可以添加备份磁盘,在使用-n命令时注意它指定的是当前使用的磁盘块数。

  • 实例

安装四块磁盘,分区修改ID

创建raid设备

[root@192 ~]# mdadm -C -v /dev/md1 -l1 -n2 /dev/sd[b-c]1
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
mdadm: size set to 20954112K
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
[root@192 ~]# mdadm -C -v /dev/md2 -l1 -n2 /dev/sd[d-e]1
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
mdadm: size set to 20954112K
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md2 started.
[root@192 ~]# mdadm -C -v /dev/md10 -l0 -n2 /dev/md1 /dev/md2
mdadm: chunk size defaults to 512K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md10 started.

查看raid详细信息

[root@192 ~]# mdadm -D /dev/md10
/dev/md10:
           Version : 1.2
     Creation Time : Mon Nov  4 21:25:58 2019
        Raid Level : raid0
        Array Size : 41875456 (39.94 GiB 42.88 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

       Update Time : Mon Nov  4 21:25:58 2019
             State : clean 
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 0

        Chunk Size : 512K

Consistency Policy : none

              Name : 192.168.43.133:10  (local to host 192.168.43.133)
              UUID : f47aede9:49ccde7b:be5b02c1:2578a62f
            Events : 0

    Number   Major   Minor   RaidDevice State
       0       9        1        0      active sync   /dev/md1
       1       9        2        1      active sync   /dev/md2
[root@192 ~]# 

格式化并挂载,创建好的raid

[root@192 ~]# mkdir aaa
[root@192 ~]# mkfs.xfs /dev/md10
meta-data=/dev/md10              isize=512    agcount=16, agsize=654208 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=10467328, imaxpct=25
         =                       sunit=128    swidth=256 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=5112, version=2
         =                       sectsz=512   sunit=8 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@192 ~]# mount /dev/md10 aaa
[root@192 ~]# df -hT
文件系统       类型      容量  已用  可用 已用% 挂载点
/dev/sda2      xfs        10G  3.3G  6.8G   33% /
devtmpfs       devtmpfs  474M     0  474M    0% /dev
tmpfs          tmpfs     489M     0  489M    0% /dev/shm
tmpfs          tmpfs     489M  7.2M  481M    2% /run
tmpfs          tmpfs     489M     0  489M    0% /sys/fs/cgroup
/dev/sda5      xfs        10G   37M   10G    1% /home
/dev/sda1      xfs       6.0G  158M  5.9G    3% /boot
tmpfs          tmpfs      98M   12K   98M    1% /run/user/42
tmpfs          tmpfs      98M     0   98M    0% /run/user/0
/dev/md10      xfs        40G   33M   40G    1% /root/aaa
[root@192 ~]# 

 

 

 

你可能感兴趣的:(Linux基础)