天天看點

linux中RAID詳解

一、RAID介紹

    RAID即廉價備援磁盤陣列(Redundant Array of Inexpensive Disks),從Linux 2.4核心開始,Linux就提供軟體RAID,不必購買昂貴的硬體RAID控制器和附件(一般中、高擋伺服器都提供這樣的裝置和熱插拔硬碟),就可以通過并行處理多個獨立的I/O 請求提高讀寫性能,而且能通過增加備援資訊來提高資料存儲的可靠性。

二、幾種RAID類型

    RAID 0

    非備援,讀寫性能好,資料可靠性低于單個磁盤。

linux中RAID詳解
linux中RAID詳解

    RAID 1

    鏡像,讀性能好,寫性能與單個磁盤相當,資料可靠性高,成本高。

linux中RAID詳解

    RAID 2  

    并行通路,通過海明碼實作備援,讀寫性能好,磁盤同步旋轉,帶檢錯糾錯功能,可靠性高,讀寫性能好,但一次隻能執行一個I/O 請求。

linux中RAID詳解

    RAID 3  

    并性通路,通過奇偶校驗實作備援,讀寫性能好,磁盤同步旋轉,帶檢錯功能,可靠性高,讀寫性能好,但一次隻能執行一個I/O 請求。

linux中RAID詳解

    RAID 4  

    獨立通路,以塊為機關計算奇偶校驗塊并存放與校驗盤,資料可靠性高,讀性能好,寫性能差(因為每次寫都要更新校驗盤資料),校驗盤成為性能瓶頸。

linux中RAID詳解

    RAID 5

    在RAID 4 基礎上,把奇偶校驗塊循環分布在所有磁盤上,進而減輕單個校驗盤的性能瓶頸問題,讀寫性能和可靠性類似于RAID 4。

linux中RAID詳解

三、硬體RAID 和軟體RAID

    硬體RAID

    (1)利用硬體RAID 控制器來實作, 由內建或專用的陣列卡來控制硬碟驅動器。

    (2)存取性能和資料保護能力高, 但成本也高。

    (3)Linux 将硬體磁盤陣列看作一塊實際的硬碟, 其裝置名為/dev/sd[a-p]。

    軟體RAID

    (1)利用作業系統提供的軟體RAID 功能來實作。

    (2)适用于要求不高的場合, 成本低。

    (3)Linux 将軟體磁盤陣列看作多重磁盤裝置(MD), 其裝置名為/dev/md0、/dev/md1 等。

四、linux中RAID配置

    在Linux系統中,主要提供RAID 0、RAID 1、RAID 5三種級别的RAID。mdadm是 linux下标準的的軟raid管理工具,是一個模式化工具(在不同的模式下);程式工作在記憶體使用者程式區,為使用者提供RAID接口來操作核心的子產品,實作各種功能。

    1、RAID 1 配置

    (1)建立兩個相同大小的RAID 分區,設定分區id 為fd。

    (2)建立RAID 裝置

        mdadm --create /dev/md0 --level 1 --raid-devices=2 /dev/sdb1 /dev/sdc1

    (3)設定mdadm 配置檔案/etc/mdadm.conf

        DEVICE /dev/sdb1 /dev/sdc1

        ARRAY /dev/md0 devices=/dev/sdb1,/dev/sdc1

    (4)建立檔案系統

        mkfs -t ext3 /dev/md0

    (5)挂載RAID 1 裝置

         mkdir /mnt/raid1

        mount /dev/md0 /mnt/raid1

    (6)管理RAID 1陣列

        # 模拟某成員磁盤發生故障

            mdadm /dev/md0 --fail /dev/sdc1

        # 從RAID 1 陣列中移除故障成員

            mdadm /dev/md0 --remove /dev/sdc1

        # 準備一塊要替換的磁盤,并将新磁盤加入到陣列中

            mdadm /dev/md0 --add /dev/sdd1

        # 檢視陣列實時資訊

            cat /proc/mdstat

            mdadm --detail /dev/md0

    2、RAID 5配置

    (1)準備4 個陣列成員(建立RAID 分區)

    (2)建立RAID 裝置:系統預設隻有md0 裝置,其他需自行建立。

        ls –l /dev/md0          # 檢視md 裝置的類型和主次裝置号

        mknod /dev/md1 b 9 1     # 建立裝置檔案

    (3)建立RAID 5 裝置

        mdadm --create /dev/md1 --level=5 --raid-devices=3 --spare-devices=1 /dev/sdd[5-8] mdadm --detail /dev/md1

    (4)設定mdadm 配置檔案/etc/mdadm.conf

        DEVICE /dev/sdd5 /dev/sdd6 /dev/sdd7 /dev/sdd8

        ARRAY /dev/md1 devices=/dev/sdd5,/dev/sdd6,/dev/sdd7,/dev/sdd8

    (5)建立檔案系統

        mkfs.ext3 /dev/md1

    (6)挂載RAID 5 裝置

        mkdir /mnt/raid5

        mount /dev/md1 /mnt/raid5

    (7)管理RAID 5 陣列

        # 利用備用盤重建RAID 5

            mdadm /dev/md1 --fail /dev/sdd6

            mdadm --detail /dev/md1

        # 可看到備用盤自動參與重建陣列, 而故障盤成為備用磁盤, 而且# 注意: 要等待RAID 重建完畢, 再替換故障磁盤

        # 将故障磁盤移除并加入新磁

            mdadm /dev/md1 --remove /dev/sdd6

            mdadm /dev/md1 --add /dev/sde1

            mdadm --detail /dev/md1

    (8)啟用/停用/監控RAID 裝置

        # 停止RAID 裝置(停止前要先解除安裝)

            mdadm --stop /dev/md0

        # 啟動RAID 裝置

            mdadm --assemble --scan /dev/md0

        # 監控RAID 裝置

            mdadm --monitor [email protected] --delay=180 /dev/md0

        # 将監控任務轉入背景執行

            nohup mdadm --monitor [email protected] --delay=180 /dev/md0

    (9)如果要删除RAID 多重磁盤裝置(可選)        

        每個md 裝置隻能被建立一次,如果建立指令(mdadm–create) 出錯,将造成該md 裝置無法使用,這時需要按以下步驟先删除該錯誤的md 裝置,然後才能重新建立它。

        #1. 停用RAID 裝置

            mdadm --stop /dev/md0

        #2. 清空每個組成分區的超級塊

            mdadm --zero-superblock /dev/sdb1

            mdadm --zero-superblock /dev/sdc1

轉載于:https://blog.51cto.com/wang3781/1795382

繼續閱讀