軟件raid 5的實現詳解

軟件raid 5的實現

????raid 5 是一種存儲性能、數據安全和存儲成本兼顧的存儲解決方案。 raid 5可以理解為是raid 0和raid 1的折中方案。raid 5可以為系統提供數據安全保障,但保障程度要比mirror低而磁盤空間利用率要比mirror高。raid 5具有和raid 0相近似的數據讀取速度,只是多了一個奇偶校驗信息,寫入數據的速度比對單個磁盤進行寫入操作稍慢。同時由于多個數據對應一個奇偶校驗信息,raid 5的磁盤空間利用率要比raid 1高,存儲成本相對較低,是目前運用較多的一種解決方案

軟件raid 5的實現詳解

1 分區

這里使用/dev/sda8、/dev/sda9兩分區和/dev/sdb、/dev/sdc兩個硬盤。

注意:記得把分區的ID 改為fd

2創建raid 5

mdadm?-C?/dev/md5?-a?yes?-l?5?-n?3?-x?1?/dev/sdd1?/dev/sde1?/dev/sdf?/dev/sdb2
[root@centos7?~]#?mdadm?-C?/dev/md5?-a?yes?-l?5?-n?3?-x?1?/dev/sda8?/dev/sda9?/dev/sdb?/dev/sdc    mdadm:?Defaulting?to?version?1.2?metadata  mdadm:?array?/dev/md5?started.

-C 創建模式

????-n #:使用#個快設備來創建次RAID

????-l #:指明要創建的RAID 的級別

????-a{yes|no}:自動創建目標RAID設備的設備文件

????-c CHUNK_SIZE:指明塊大小

????-x #: 為指定備用磁盤個數,放在最后的默認為備用磁盤

3 創建文件系統

[root@centos7?~]#?mkfs.ext4?/dev/md5

4 掛載

(1)創建掛載目錄

[root@centos7?~]#?mkdir?/mnt/raid5

(2)掛載

[root@centos7?~]#?mount?/dev/md5?/mnt/raid5

5 生成配置文件

[root@centos7?~]#?cat?/etc/mdadm.conf    ARRAY?/dev/md5?metadata=1.2?spares=1?name=centos7.3.loacl:5?UUID=5ec4115c:ab1e25c8:ff36d8a2:74f6fd8a

查看md的狀態

[root@centos7?~]#?cat?/proc/mdstat    Personalities?:?[raid0]?[raid6]?[raid5]?[raid4]  md5?:?active?raid5?sdb[4]?sdc[3](S)?sda9[1]?sda8[0]  2095104?blocks?super?1.2?level?5,?512k?chunk,?algorithm?2?[3/3]?[UUU]

查看raid的詳細信息

[root@centos7?~]#?mdadm?-D?/dev/md5    /dev/md5:  Version?:?1.2  Creation?Time?:?Tue?Apr?25?14:38:54?2017  Raid?Level?:?raid5  Array?Size?:?2095104?(2046.00?MiB?2145.39?MB)  Used?Dev?Size?:?1047552?(1023.00?MiB?1072.69?MB)  Raid?Devices?:?3  Total?Devices?:?4  Persistence?:?Superblock?is?persistent    Update?Time?:?Tue?Apr?25?14:50:08?2017  State?:?clean  Active?Devices?:?3  Working?Devices?:?4  Failed?Devices?:?0  Spare?Devices?:?1    Layout?:?left-symmetric  Chunk?Size?:?512K    Name?:?centos7.3.loacl:5?(local?to?host?centos7.3.loacl)  UUID?:?5ec4115c:ab1e25c8:ff36d8a2:74f6fd8a  Events?:?18    Number?Major?Minor?RaidDevice?State  0?8?8?0?active?sync?/dev/sda8  1?8?9?1?active?sync?/dev/sda9  4?8?16?2?active?sync?/dev/sdb    3?8?32?-?spare?/dev/sdc

可以看到復合預期,三個活動設備,一個空閑(備用)設備

6 禁用和啟用

umount?/mnt/raid0    mdadm?-S?/dev/md0    mdadm?-A?/dev/md0

(1)停用raid

[root@centos7?~]#?umount?/mnt/raid5  [root@centos7?~]#?mdadm?-S?/dev/md5  mdadm:?stopped?/dev/md5

檢查一下,可以看到已經停止成功

[root@centos7?~]#?mdadm?-D?/dev/md5    mdadm:?cannot?open?/dev/md5:?No?such?file?or?directory

(2)啟用raid設備

[root@centos7?~]#?mdadm?-A?/dev/md5    mdadm:?/dev/md5?has?been?started?with?3?drives?and?1?spare.

再來檢查一下,發現已經成功啟動

[root@centos7?~]#?cat?/proc/mdstat    Personalities?:?[raid0]?[raid6]?[raid5]?[raid4]  md5?:?active?raid5?sda8[0]?sdc[3](S)?sdb[4]?sda9[1]  2095104?blocks?super?1.2?level?5,?512k?chunk,?algorithm?2?[3/3]?[UUU]

7 模擬/dev/sdc損壞

[root@centos7?~]#?mdadm?/dev/md5?-f?/dev/sdc    mdadm:?set?/dev/sdc?faulty?in?/dev/md5

8 移除/dev/sdc

[root@centos7?~]#?mdadm?/dev/md5?-r?/dev/sdc  mdadm:?hot?removed?/dev/sdc?from?/dev/md5    [root@centos7?~]#?mdadm?-D?/dev/md5    /dev/md5:  [……]  Active?Devices?:?3  Working?Devices?:?3  Failed?Devices?:?0  Spare?Devices?:?0  [……]  Number?Major?Minor?RaidDevice?State  0?8?8?0?active?sync?/dev/sda8  1?8?9?1?active?sync?/dev/sda9  4?8?16?2?active?sync?/dev/sdb    可以看到已經移除成功。

再來看下磁盤情況

[root@centos7?~]#?lsblk    NAME?MAJ:MIN?RM?SIZE?RO?TYPE?MOUNTPOINT  fd0?2:0?1?4K?0?disk  sda?8:0?0?20G?0?disk  [……]  ├─sda8?8:8?0?1G?0?part  │?└─md5?9:5?0?2G?0?raid5  └─sda9?8:9?0?1G?0?part  └─md5?9:5?0?2G?0?raid5  sdb?8:16?0?1G?0?disk  └─md5?9:5?0?2G?0?raid5  sdc?8:32?0?1G?0?disk  sr0?11:0?1?7.7G?0?rom

可以看到/dev/sdc已經不屬于md5陣列

9添加到raid成員

[root@centos7?~]#?mdadm?/dev/md5?-a?/dev/sdc    mdadm:?added?/dev/sdc
[root@centos7?~]#?mdadm?-D?/dev/md5    /dev/md5:  [……]  Raid?Devices?:?3  Total?Devices?:?4  Active?Devices?:?3  Working?Devices?:?4  [……]  Number?Major?Minor?RaidDevice?State  0?8?8?0?active?sync?/dev/sda8  1?8?9?1?active?sync?/dev/sda9  4?8?16?2?active?sync?/dev/sdb    3?8?32?-?spare?/dev/sdc

可以看到添加成功

10 增加raid成員數量從3變為4個

這里添加設備/dev/sdd到陣列

[root@centos7?~]#?mdadm?-G?/dev/md5?-n?4?-a?/dev/sdd    mdadm:?added?/dev/sdd  mdadm:?Need?to?backup?3072K?of?critical?section..

檢查文件系統完整性

[root@centos7?~]#?e2fsck?-f?/dev/md5    e2fsck?1.42.9?(28-Dec-2013)  Pass?1:?Checking?inodes,?blocks,?and?sizes  Pass?2:?Checking?directory?structure  Pass?3:?Checking?directory?connectivity  Pass?4:?Checking?reference?counts  Pass?5:?Checking?group?summary?information  /dev/md5:?11/131072?files?(0.0%?non-contiguous),?17964/523776?blocks

同步文件系統

[root@centos7?~]#?resize2fs?/dev/md5    resize2fs?1.42.9?(28-Dec-2013)  Resizing?the?filesystem?on?/dev/md5?to?785664?(4k)?blocks.  The?filesystem?on?/dev/md5?is?now?785664?blocks?long.

再來查看/dev/md5陣列情況

[root@centos7?~]#?mdadm?-D?/dev/md5    /dev/md5:  Version?:?1.2  Creation?Time?:?Tue?Apr?25?14:38:54?2017  Raid?Level?:?raid5  Array?Size?:?3142656?(3.00?GiB?3.22?GB)  Used?Dev?Size?:?1047552?(1023.00?MiB?1072.69?MB)  Raid?Devices?:?4  Total?Devices?:?5  Persistence?:?Superblock?is?persistent    Update?Time?:?Tue?Apr?25?15:13:32?2017  State?:?clean  Active?Devices?:?4  Working?Devices?:?5    Failed?Devices?:?0  Spare?Devices?:?1?    Layout?:?left-symmetric  Chunk?Size?:?512K    Name?:?centos7.3.loacl:5?(local?to?host?centos7.3.loacl)  UUID?:?5ec4115c:ab1e25c8:ff36d8a2:74f6fd8a  Events?:?47    Number?Major?Minor?RaidDevice?State  0?8?8?0?active?sync?/dev/sda8  1?8?9?1?active?sync?/dev/sda9  4?8?16?2?active?sync?/dev/sdb  5?8?48?3?active?sync?/dev/sdd    3?8?32?-?spare?/dev/sdc

? 版權聲明
THE END
喜歡就支持一下吧
點贊10 分享