Linux学习-10.RAID磁盘阵列

1.什么是RAID

RAID是英文Redundant Array of Independent Disks的缩写,中文简称为独立冗余磁盘阵列。简单的说,RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术。(百度百科)
组成磁盘阵列的不同方式称为RAID级别(RAID Levels),现在已拥有了从 RAID 0 到 7 八种基本的RAID 级别。另外,还有一些基本RAID级别的组合形式,如RAID 10(RAID 0与RAID 1的组合),RAID 50(RAID 0与RAID 5的组合)等。不同RAID 级别代表着不同的存储性能、数据安全性和存储成本。

2.常用RAID级别

a.RAID0

RAID 0 并不是真正的RAID结构,没有数据冗余,没有数据校验的磁盘阵列。实现RAID 0至少需要两块以上的硬盘,它将两块以上的硬盘合并成一块,数据连续地分割在每块盘上。 因为带宽加倍,所以读/写速度加倍,但是只要任何一块硬盘损坏就会丢失所有数据。
RAID0示意图

b.RAID1

RAID1是将一个两块硬盘所构成RAID磁盘阵列,其容量仅等于一块硬盘的容量,因为另一块只是当作数据“镜像”,是最可靠的一种阵列,因为它总是保持一份完整的数据备份。但是RAID1是硬盘中单位成本最高的。
RAID1示意图

c.RAID5

RAID5数据以块为单位分布到各个硬盘上。RAID 5不对数据进行备份,而是把数据和与其相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID5的一个磁盘数据损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。
在这里插入图片描述

3.RAID5部署

mdadm命令用于管理Linux系统中的软件RAID硬盘阵列

	参数	作用
	-a	检测设备名称
	-n	指定设备数量
	-l	指定RAID级别
	-x	指定备份设备数量
	-C	创建
	-v	显示过程
	-f	模拟设备损坏
	-r	移除设备
	-Q	查看摘要信息
	-D	查看详细信息
	-S	停止RAID磁盘阵列

首先准备4块硬盘,三块做数据盘,一块做备份盘。

[root@linux Desktop]# lsblk 
NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda             8:0    0   20G  0 disk 
├─sda1          8:1    0  500M  0 part /boot
└─sda2          8:2    0 19.5G  0 part 
  ├─rhel-root 253:0    0 17.5G  0 lvm  /
  └─rhel-swap 253:1    0    2G  0 lvm  [SWAP]
sdb             8:16   0   20G  0 disk 
sdc             8:32   0   20G  0 disk 
sdd             8:48   0   20G  0 disk 
sde             8:64   0   20G  0 disk 
sr0            11:0    1  3.5G  0 rom  /media/cdrom

将/dev/sdb /dev/sdc /dev/sdd /dev/sde四块新的硬盘部署成RAID5,cat /proc/mdstat查看RAID信息。

[root@linux Desktop]# mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sdb /dev/sdc /dev/sdd /dev/sde
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 20954624K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@linux Desktop]#  mdadm -D /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Sat May 16 19:02:20 2020
     Raid Level : raid5
     Array Size : 41909248 (39.97 GiB 42.92 GB)
  Used Dev Size : 20954624 (19.98 GiB 21.46 GB)
   Raid Devices : 3
  Total Devices : 4
    Persistence : Superblock is persistent

    Update Time : Sat May 16 19:03:33 2020
          State : clean, degraded, recovering 
 Active Devices : 2
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 2

         Layout : left-symmetric
     Chunk Size : 512K

 Rebuild Status : 72% complete

           Name : linux.com:0  (local to host linux.com)
           UUID : de2097d7:c199ae78:01d25b7c:ac377aef
         Events : 12

    Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync   /dev/sdb
       1       8       32        1      active sync   /dev/sdc
       4       8       48        2      spare rebuilding   /dev/sdd

       3       8       64        -      spare   /dev/sde

[root@linux Desktop]# cat /proc/mdstat 
Personalities : [raid6] [raid5] [raid4] 
md0 : active raid5 sde[3](S) sdd[4] sdc[1] sdb[0]
      41909248 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
      
unused devices: <none>

4.格式化挂载使用

[root@linux Desktop]# 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
2621440 inodes, 10477312 blocks
523865 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2157969408
320 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, 2654208, 
	4096000, 7962624

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

[root@linux Desktop]# mkdir dir
[root@linux Desktop]# mount /dev/md0 ./dir/
[root@linux Desktop]# df -h
文件系统               容量  已用  可用 已用% 挂载点
/dev/mapper/rhel-root   18G  3.1G   15G   18% /
devtmpfs               2.0G     0  2.0G    0% /dev
tmpfs                  2.0G   84K  2.0G    1% /dev/shm
tmpfs                  2.0G  9.0M  2.0G    1% /run
tmpfs                  2.0G     0  2.0G    0% /sys/fs/cgroup
/dev/sr0               3.5G  3.5G     0  100% /media/cdrom
/dev/sda1              497M  119M  379M   24% /boot
/dev/md0                40G   49M   38G    1% /root/Desktop/dir

5.硬盘故障处理

将/dev/sdc从md中移除,模拟损坏的情况,发现/dev/sde自动将/dev/sdc顶替了,并且恢复/dev/sdc中的数据。

[root@linux Desktop]# mdadm /dev/md0 -f /dev/sdc
mdadm: set /dev/sdc faulty in /dev/md0
[root@linux Desktop]# mdadm -D /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Sat May 16 19:02:20 2020
     Raid Level : raid5
     Array Size : 41909248 (39.97 GiB 42.92 GB)
  Used Dev Size : 20954624 (19.98 GiB 21.46 GB)
   Raid Devices : 3
  Total Devices : 4
    Persistence : Superblock is persistent

    Update Time : Sat May 16 19:10:54 2020
          State : clean, degraded, recovering 
 Active Devices : 2
Working Devices : 3
 Failed Devices : 1
  Spare Devices : 1

         Layout : left-symmetric
     Chunk Size : 512K

 Rebuild Status : 12% complete

           Name : linux.com:0  (local to host linux.com)
           UUID : de2097d7:c199ae78:01d25b7c:ac377aef
         Events : 24

    Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync   /dev/sdb
       3       8       64        1      spare rebuilding   /dev/sde
       4       8       48        2      active sync   /dev/sdd

       1       8       32        -      faulty   /dev/sdc

将/dev/sdc从RAID中删除,添加新的硬盘进RAID,新硬盘的名称也是/dev/sdc。/dev/sdc将成为备份盘。

[root@linux Desktop]# umount /dev/md0
[root@linux Desktop]# mdadm /dev/md0 -r /dev/sdc
mdadm: hot removed /dev/sdc from /dev/md0
[root@linux Desktop]# mdadm /dev/md0 -a /dev/sdc
mdadm: added /dev/sdc
[root@linux Desktop]# mdadm -D /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Sat May 16 19:02:20 2020
     Raid Level : raid5
     Array Size : 41909248 (39.97 GiB 42.92 GB)
  Used Dev Size : 20954624 (19.98 GiB 21.46 GB)
   Raid Devices : 3
  Total Devices : 4
    Persistence : Superblock is persistent

    Update Time : Sat May 16 19:18:40 2020
          State : clean 
 Active Devices : 3
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 1

         Layout : left-symmetric
     Chunk Size : 512K

           Name : linux.com:0  (local to host linux.com)
           UUID : de2097d7:c199ae78:01d25b7c:ac377aef
         Events : 43

    Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync   /dev/sdb
       3       8       64        1      active sync   /dev/sde
       4       8       48        2      active sync   /dev/sdd

       5       8       32        -      spare   /dev/sdc
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章