linux系統磁盤管理(磁盤陣列)

##一、磁盤陣列簡介linux

RAID(Redundant Array of Independent Disks)即獨立硬盤冗餘陣列,簡稱磁盤陣列。磁盤陣列是由不少價格較便宜的磁盤,以硬件(RAID卡)或軟件(MDADM)形式組合成一個容量巨大的磁盤組,利用多個磁盤組合在一塊兒,提高整個磁盤系統效能。利用這項技術,將數據切割成許多區段,分別存放在各個硬盤上。其中RAID卡有本身的cpu,由它統一管理和控制;數據也由它來進行分配和維護,處理速度快。服務器啓動時,就會有顯示進入配置Riad的提示。 RAID比單硬盤有如下一個或多個方面的好處:加強數據集成度,加強容錯功能,增長處理量或容量,磁盤陣列對於電腦來講,看起來就像一個單獨的硬盤或邏輯存儲單元。服務器

##二、RAID 分類併發

RAID有不少種類型本章只舉4例供你們瞭解RAID技術!dom

RAID類型 說 明 最低磁盤個數 空間利用率 各自的優缺點
RAID0 條帶卷 2+ 100% 讀寫速度快,不容錯
RAID1 鏡像卷 2 50% 讀寫速度通常,容錯
RAID5 帶奇偶校驗的條帶卷 3+ (n-1)/n 讀寫速度快,容錯,容許壞一塊盤
RAID10 RAID1的鏡像+RAID0的條帶 4 50% 讀寫速度快,容錯

RAID 中主要有三個關鍵概念和技術:鏡像( Mirroring )、數據條帶( Data Stripping )和數據校驗( Data parity )工具

###①RAID0性能

RAID0是最先出現的RAID模式;應用條數據條帶( Data Stripping )技術,將數據分片保存2+個磁盤(最好磁盤的大小相同)上,多個數據分片共同組成一個完整數據副本,數據條帶具備更高的併發粒度,當訪問數據時,能夠同時對位於不一樣磁盤上數據進行讀寫操做, 從而得到很是可觀的 I/O 性能提高;是組建磁盤陣列中最簡單的一種形式,只須要2塊以上的硬盤便可;成本低,能夠提升整個磁盤的性能;磁盤利用率爲100%,可是,RAID 0沒有提供冗餘或錯誤修復能力,任何一個磁盤的損壞將損壞所有數據。ui

###②RAID1spa

RAID 1 應用鏡像卷(mirroring)技術,這是一種冗餘技術,爲磁盤提供保護功能,防止磁盤發生故障而形成數據丟失,也就是說數據在寫入一塊磁盤的同時,會在另外一塊閒置的磁盤上生成鏡像文件(同步),因此,RAID1的讀寫速度通常,磁盤利用率爲50%,即2塊100G的磁盤構成RAID1只能提供100G的可用空間。3d

###③RAID5code

RAID5應用數據校驗( Data parity )技術,RAID 要在寫入數據同時進行校驗計算,並將獲得的校驗數據存儲在 RAID 成員磁盤中。校驗數據能夠集中保存在某個磁盤或分散存儲在多個不一樣磁盤中,甚至校驗數據也能夠分塊,不一樣 RAID 等級實現各不相同。當其中一部分數據出錯時,就能夠對剩餘數據和校驗數據進行反校驗計算重建丟失的數據,能夠提供熱備盤實現故障的恢復;校驗技術相對於鏡像技術的優點在於節省大量開銷,但因爲每次數據讀寫都要進行大量的校驗運算,對計算機的運算速度要求很高,必須使用硬件 RAID 控制器。在數據重建恢復方面,檢驗技術比鏡像技術複雜得多且慢得多。

###④RAID10

RAID10即RAID1鏡像+RAID0條帶,好比咱們有8塊盤,它是先兩兩作鏡像,造成了新的4塊盤,而後對這4塊盤作RAID0;當RAID10有一個硬盤受損其他硬盤會繼續工做,這個時候受影響的硬盤只有2塊;


##三、Mdadm命令詳解

madam是linux下用於建立和管理軟件RAID的命令,Linux內核中有一個md(multiple devices)模塊在底層管理RAID設備,它會在應用層給咱們提供一個應用程序的工具mdadm

option: -a 檢測設備名稱 -n 指定設備數量 -l 指定RAID級別 -C 建立 -v 顯示過程 -f 模擬設備損壞 -r 移除設備 -Q 查看摘要信息 -D 查看詳細信息 -S 中止RAID磁盤陣列 -x 熱備盤個數

###RAID5 演示:

#下載mdadm

╭─root@localhost.localdomain ~  
╰─➤  yum stall mdadm -y

#第一步:查看磁盤

╭─root@localhost.localdomain ~  
╰─➤  ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sdb  /dev/sdc  /dev/sdd  /dev/sde

#第二步:建立RAID5陣列

╭─root@localhost.localdomain ~  
╰─➤  mdadm -Cv /dev/md0 -l 5 -n 3 -x 1 /dev/sd{b,c,d,e}
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: super1.x cannot open /dev/sdb: Device or resource busy
mdadm: ddf: Cannot use /dev/sdb: Device or resource busy
mdadm: Cannot use /dev/sdb: It is busy
mdadm: cannot open /dev/sdb: Device or resource busy

#第三步:查看陣列信息

╭─root@localhost.localdomain ~  
╰─➤  mdadm -D /dev/md0                                                                                             
/dev/md0:
           Version : 1.2
     Creation Time : Thu May 16 21:11:13 2019
        Raid Level : raid5
        Array Size : 41908224 (39.97 GiB 42.91 GB)
     Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
      Raid Devices : 3
     Total Devices : 4
       Persistence : Superblock is persistent

       Update Time : Thu May 16 21:12:59 2019
             State : clean 
    Active Devices : 3
   Working Devices : 4
    Failed Devices : 0
     Spare Devices : 1

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : unknown

              Name : localhost.localdomain:0  (local to host localhost.localdomain)
              UUID : dd9965b6:b6e3d118:d92e3fef:517bbc93
            Events : 18

    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      active sync   /dev/sdd

       3       8       64        -      spare   /dev/sde

#第四步:磁盤格式化成文件系統格式

╭─root@localhost.localdomain ~  
╰─➤  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@localhost.localdomain ~  
╰─➤  mkdir /du
╭─root@localhost.localdomain ~  
╰─➤  mount /dev/md0 /du

#第六步:模擬磁盤損壞

╭─root@localhost.localdomain ~  
╰─➤  mdadm /dev/md0 -f /dev/sdc  #sdc盤損壞                                                                                 
mdadm: set /dev/sdc faulty in /dev/md0

#第七部:查看磁盤陣列信息

╭─root@localhost.localdomain ~  
╰─➤  mdadm -D /dev/md0                                                                                           
/dev/md0:
           Version : 1.2
     Creation Time : Thu May 16 21:11:13 2019
        Raid Level : raid5
        Array Size : 41908224 (39.97 GiB 42.91 GB)
     Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
      Raid Devices : 3
     Total Devices : 4
       Persistence : Superblock is persistent

       Update Time : Thu May 16 21:18:14 2019
             State : clean, degraded, recovering 
    Active Devices : 2
   Working Devices : 3
    Failed Devices : 1
     Spare Devices : 1

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : unknown

    Rebuild Status : 32% complete

              Name : localhost.localdomain:0  (local to host localhost.localdomain)
              UUID : dd9965b6:b6e3d118:d92e3fef:517bbc93
            Events : 25

    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

相關文章
相關標籤/搜索