linux中RAID詳解

一、RAID介紹


    RAID即廉價冗餘磁盤陣列(Redundant Array of Inexpensive Disks),從Linux 2.4內核開始,Linux就提供軟件RAID,不必購買昂貴的硬件RAID控制器和附件(一般中、高擋服務器都提供這樣的設備和熱插拔硬盤),就可以通過並行處理多個獨立的I/O 請求提高讀寫性能,而且能通過增加冗餘信息來提高數據存儲的可靠性。


二、幾種RAID類型


    RAID 0

    非冗餘,讀寫性能好,數據可靠性低於單個磁盤。


spacer.gifwKiom1d4-YGDTg7WAAER60ixpUo232.png-wh_50

   

    RAID 1

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


wKioL1d4-lvS1E3qAACswLwIRFw253.png-wh_50


    RAID 2  

    並行訪問,通過海明碼實現冗餘,讀寫性能好,磁盤同步旋轉,帶檢錯糾錯功能,可靠性高,讀寫性能好,但一次只能執行一個I/O 請求。


wKioL1d4-smwbgifAAB2Z7H9vu0627.png-wh_50


    RAID 3  

    並性訪問,通過奇偶校驗實現冗餘,讀寫性能好,磁盤同步旋轉,帶檢錯功能,可靠性高,讀寫性能好,但一次只能執行一個I/O 請求。


wKiom1d4-0nx-3q_AABtKrq8sZQ913.png-wh_50


    RAID 4  

    獨立訪問,以塊爲單位計算奇偶校驗塊並存放與校驗盤,數據可靠性高,讀性能好,寫性能差(因爲每次寫都要更新校驗盤數據),校驗盤成爲性能瓶頸。


wKiom1d4-7yAtAn0AAC8wpyen2k658.png-wh_50


    RAID 5

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


wKiom1d4_BWjRZcHAADlCpIAJng392.png-wh_50


三、硬件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 0RAID 1RAID 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


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