【linux】循序漸進學運維-基礎篇-磁盤陣列


大家好,我是高勝寒,本文是Linux運維-循序漸進學運維-基礎篇的第51篇文章。

本文我們來聊聊磁盤陣列raid磁盤陣列。

一. RAID的概念

以下爲引用:

磁盤陣列(Redundant Arrays of Independent Disks,RAID),有“獨立磁盤構成的具有冗餘能力的陣列”之意。 磁盤陣列是由很多價格較便宜的磁盤,以硬件(RAID卡)或軟件(MDADM)形式組合成一個容量巨大的磁盤組,利用多個磁盤組合在一起,提升整個磁盤系統效能。

利用這項技術,將數據切割成許多區段,分別存放在各個硬盤上。 磁盤陣列還能利用同位檢查(Parity
Check)的觀念,在數組中任意一個硬盤故障時,仍可讀出數據,在數據重構時,將數據經計算後重新置入新硬盤中

總結成一句話: RAID是磁盤榮譽陣列,作用是提升讀寫速率,並且可以有容錯功能。

RAID的基本思想: 把幾塊硬盤通過一定的組合方式把它組合起來,形成一個新的硬盤陣列組,從而讓新的磁盤陣列組能夠達到高性能硬盤的要求。

二. RAID的類型

在這裏插入圖片描述

1. RAID的實現方式:
  • 硬RAID: 需要RAID卡,有自己的cpu,處理速度極快
  • 軟RAID : 通過操作系統實現,windows,Linux都可以實現
2. 軟raid 5 的實現方式

實驗步驟:
1) 創建4塊硬盤
2) 創建RAID
3)格式化,掛載
4) 查看RAID信息
5) 模擬其中一塊硬盤壞掉的情況
6) 將修好的磁盤重新加入到已經存在的陣列中

1) 新增加一塊硬盤並創建5個分區

在這裏插入圖片描述
對新增加的硬盤分區成5個,來模擬五塊硬盤。

[root@xinsz08-15 ~]# ll /dev/sd*   #目前現有的分區
brw-rw---- 1 root disk 8,  0 6月  29 05:45 /dev/sda
brw-rw---- 1 root disk 8,  1 6月  29 05:45 /dev/sda1
brw-rw---- 1 root disk 8,  2 6月  29 05:45 /dev/sda2
brw-rw---- 1 root disk 8,  3 6月  29 05:45 /dev/sda3
brw-rw---- 1 root disk 8, 16 6月  29 05:45 /dev/sdb

[root@xinsz08-15 ~]# fdisk /dev/sdb

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 
Value out of range.
Partition number (1-4): 1
First cylinder (1-3263, default 1): 
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-3263, default 3263): +5G

Command (m for help): 

按照上面的分區方法,一共分了四個區,分別都是5G

注意: 邏輯分區無法做磁盤陣列

[root@xinsz08-15 ~]# ll /dev/sdb*
brw-rw---- 1 root disk 8, 16 6月  29 06:02 /dev/sdb
brw-rw---- 1 root disk 8, 17 6月  29 06:02 /dev/sdb1
brw-rw---- 1 root disk 8, 18 6月  29 06:02 /dev/sdb2
brw-rw---- 1 root disk 8, 19 6月  29 06:02 /dev/sdb3
brw-rw---- 1 root disk 8, 20 6月  29 06:02 /dev/sdb4


2. 創建RAID

[root@xinsz08-15 ~]# yum install mdadm

mdadm 的基本參數:

參數 作用
C 創建RAID
/dev/m0 第一個RAID設備
-L5 RAID5
-n RAID成員的數量
-x 熱備磁盤的數量
-a 添加熱備
-G 熱備轉變爲成員身份

接下來我們創建第一個RAID設備,做一個raid 5, 用3塊盤做陣列,在加上一塊做熱備。

[root@xinsz08-15 ~]# mdadm -C /dev/md0 -l5 -n3 -x1 /dev/sdb{1,2,3,4}
mdadm: /dev/sdb4 appears to be part of a raid array:
       level=raid0 devices=0 ctime=Thu Jan  1 08:00:00 1970
mdadm: partition table exists on /dev/sdb4 but will be lost or
       meaningless after creating array
mdadm: largest drive (/dev/sdb4) exceeds size (5249024K) by more than 1%
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

[root@xinsz08-15 ~]# mdadm -D -s > /etc/mdadm.conf #設置開機生效

查詢現有的陣列

  [root@xinsz08-15 ~]# mdadm -D -s
ARRAY /dev/md0 metadata=1.2 spares=1 name=xinsz08-15:0 UUID=85d2c0f0:d2e390b4:6f91164c:c7e3f691

[root@xinsz08-15 ~]# mdadm -D -s /dev/md0   # 直接指定磁盤陣列的名字MD0
ARRAY /dev/md0 metadata=1.2 spares=1 name=xinsz08-15:0 UUID=85d2c0f0:d2e390b4:6f91164c:c7e3f691

3. 格式化掛載
[root@xinsz08-15 ~]# mkfs.ext4 /dev/md0   # 把磁盤陣列格式化爲ext4系統
mke2fs 1.41.12 (17-May-2010)
文件系統標籤=
操作系統:Linux
塊大小=4096 (log=2)
分塊大小=4096 (log=2)
Stride=128 blocks, Stripe width=256 blocks
657072 inodes, 2624512 blocks
131225 blocks (5.00%) reserved for the super user
第一個數據塊=0
Maximum filesystem blocks=2688548864
81 block groups
32768 blocks per group, 32768 fragments per group
8112 inodes per group
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

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

This filesystem will be automatically checked every 32 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[root@xinsz08-15 ~]# 

創建掛載目錄並掛載

[root@xinsz08-15 ~]# mkdir /mnt/raid5
[root@xinsz08-15 ~]# mount /dev/md0 /mnt/raid5
[root@xinsz08-15 ~]# df -h
/dev/md0        9.8G   23M  9.3G   1% /mnt/raid5
[root@xinsz08-15 ~]# 
4. 再次查看raid信息
[root@xinsz08-15 ~]# mdadm -D /dev/md0    #查看磁盤信息
/dev/md0:   #磁盤名字  
        Version : 1.2   #磁盤版本
  Creation Time : Mon Jun 29 06:03:43 2020   #創建磁盤陣列的時間
     Raid Level : raid5       #磁盤陣列爲riad5
     Array Size : 10498048 (10.01 GiB 10.75 GB)
  Used Dev Size : 5249024 (5.01 GiB 5.38 GB)
   Raid Devices : 3     #三塊盤組成的RAID陣列
  Total Devices : 4     #總共四快盤,因爲還有個備用盤
    Persistence : Superblock is persistent

    Update Time : Mon Jun 29 06:09:43 2020
          State : clean 
 Active Devices : 3    #活動磁盤3個
Working Devices : 4    #總共四個
 Failed Devices : 0    #壞掉的0個
  Spare Devices : 1    #共享備用盤1塊

         Layout : left-symmetric
     Chunk Size : 512K

           Name : xinsz08-15:0  (local to host xinsz08-15)
           UUID : 85d2c0f0:d2e390b4:6f91164c:c7e3f691
         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@xinsz08-15 ~]# 

5. 模擬壞掉一塊盤,並移除

終端一:模擬壞掉一塊磁盤並移除

-f 模擬壞掉,-r 移除

[root@xinsz08-15 ~]# mdadm /dev/md0 -f /dev/sdb2 -r /dev/sdb2

mdadm: set /dev/sdb2 faulty in /dev/md0
mdadm: hot removed /dev/sdb2 from /dev/md0

終端二: 查看變化
[root@xinsz08-15 ~]# watch -n 0.5 ‘mdadm -D /dev/md0’

在這裏插入圖片描述

最後會看到 spare Devices的備用盤,變成了知working盤。 總盤數變成了3個。

6. 將剛纔被刪除的sdb2修復好後,再次添加到陣列中
[root@xinsz08-15 ~]# mdadm /dev/md0 -a /dev/sdb2
mdadm: added /dev/sdb2

查看:
可以看到sdb2變成了熱備盤

[root@xinsz08-15 ~]# mdadm -D /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Mon Jun 29 06:03:43 2020
     Raid Level : raid5
     Array Size : 10498048 (10.01 GiB 10.75 GB)
  Used Dev Size : 5249024 (5.01 GiB 5.38 GB)
   Raid Devices : 3
  Total Devices : 4
    Persistence : Superblock is persistent

    Update Time : Mon Jun 29 06:29:52 2020
          State : clean 
 Active Devices : 3
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 1

         Layout : left-symmetric
     Chunk Size : 512K

           Name : xinsz08-15:0  (local to host xinsz08-15)
           UUID : 85d2c0f0:d2e390b4:6f91164c:c7e3f691
         Events : 39

    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

       5       8       18        -      spare   /dev/sdb2

總結:

實驗出真知,如果你只看文字弄不明白是什麼意思,建議照着操作一遍,循序漸進學運維繫列所有文章都在機器上驗證過,如果你在做的過程中遇到問題,也歡迎留言與我一起探討。

我是高勝寒,一個在教培行業不忘初心的人,歡迎點贊收藏,我們下篇文章見!

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