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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章