RAID概念
- 磁碟陣列(Redundant Arrays of Independent Disks,RAID),有“獨立磁碟構成的具有冗餘能力的陣列”之意。 磁碟陣列是由很多價格較便宜的磁碟,以硬體(RAID卡)或軟體(MDADM)形式組合成一個容量巨大的磁碟組,利用多個磁碟組合在一起,提升整個磁碟系統效能。利用這項技術,將資料切割成許多區段,分別存放在各個硬碟上。 磁碟陣列還能利用同位檢查(Parity Check)的觀念,在陣列中任意一個硬碟故障時,仍可讀出資料,在資料重構時,將資料經計算後重新置入新硬碟中
為什麼要用RAID
- RAID(Redundant Arrays of Independent Disks,磁碟陣列):把相同的資料儲存在多個硬碟的不同的地方的方法
- 通過RAID可以提高磁碟I/O能力(磁碟並行讀寫)以及提高耐用性(磁碟冗餘)。
- RAID級別:多種磁碟組織在一起的工作方式有所不同
軟體 RAID 和硬體 RAID
- 軟體 RAID 的效能較低,因為其使用主機的資源。 需要載入 RAID 軟體以從軟體 RAID 卷中讀取資料。在載入 RAID 軟體前,作業系統需要引導起來才能載入 RAID 軟體。在軟體 RAID 中無需物理硬體。零成本投資。
- 硬體 RAID 的效能較高。他們採用 PCI Express 卡物理地提供有專用的 RAID 控制器。它不會使用主機資源。他們有 NVRAM 用於快取的讀取和寫入。快取用於 RAID 重建時,即使出現電源故障,它會使用後備的電池電源保持快取。對於大規模使用是非常昂貴的投資。
實現方式:
- 外接式磁碟陣列:通過擴充套件卡提供適配能力
- 內接式磁碟陣列:主機板整合RAID控制器
- Software RAID:在軟體層面實現RAID
RAID級別:
- RAID 0:Data Stripping資料分條技術
- RAID 1:磁碟映象
- RAID 2:帶海明碼校驗
- RAID 3:帶奇偶校驗碼的並行傳送
- RAID 4:帶奇偶校驗碼的獨立磁碟結構
- RAID 5:分散式奇偶校驗的獨立磁碟結構
- RAID 10:高可靠性與高效磁碟結構
- RAID 01:RAID0和RAID1技術結合起來
RAID 的兩個關鍵目標是提高資料可靠性和 I/O 效能。
RAID 中主要有三個關鍵概念和技術:映象( Mirroring )、資料條帶( Data Stripping )和資料校驗( Data parity )。
- 1.映象:
- 映象是一種冗餘技術,為磁碟提供保護功能,防止磁碟發生故障而造成資料丟失。
- 2.資料條帶:
- 資料條帶技術將資料以塊的方式分佈儲存在多個磁碟中,從而可以對資料進行併發處理。這樣寫入和讀取資料就可以在多個磁碟上同時進行,併發產生非常高的聚合 I/O ,有效提高了整體 I/O 效能,而且具有良好的線性擴充套件性。
- 3.資料校驗
- 資料校驗是一種冗餘技術,它用校驗資料來提供資料的安全,可以檢測資料錯誤,並在能力允許的前提下進行資料重構。
RAID 主要優勢有如下幾點:
- (1) 大容量
- 這是 RAID 的一個顯然優勢,它擴大了磁碟的容量,由多個磁碟組成的 RAID 系統具有海量的儲存空間。現在單個磁碟的容量就可以到 1TB 以上,這樣 RAID 的儲存容量就可以達到 PB 級,大多數的儲存需求都可以滿足。一般來說, RAID 可用容量要小於所有成員磁碟的總容量。不同等級的 RAID 演算法需要一定的冗餘開銷,具體容量開銷與採用演算法相關。如果已知 RAID 演算法和容量,可以計算出 RAID 的可用容量。通常, RAID 容量利用率在 50% ~ 90% 之間。
- (2) 高效能
- RAID 的高效能受益於資料條帶化技術。單個磁碟的 I/O 效能受到介面、頻寬等計算機技術的限制,效能往往很有 限,容易成為系統效能的瓶頸。通過資料條帶化, RAID 將資料 I/O 分散到各個成員磁碟上,從而獲得比單個磁碟成倍增長的聚合 I/O 效能。
- (3) 可靠性
- 可用性和可靠性是 RAID 的另一個重要特徵。從理論上講,由多個磁碟組成的 RAID 系統在可靠性方面應該比單個磁碟要差。這裡有個隱含假定:單個磁碟故障將導致整個 RAID 不可用。 RAID 採用映象和資料校驗等資料冗餘技術,打破了這個假定。 映象是最為原始的冗餘技術,把某組磁碟驅動器上的資料完全複製到另一組磁碟驅動器上,保證總有資料副本可用。 比起映象 50% 的冗餘開銷 ,資料校驗要小很多,它利用校驗冗餘資訊對資料進行校驗和糾錯。 RAID 冗餘技術大幅提升資料可用性和可靠性,保證了若干磁碟出錯時,不 會導致資料的丟失,不影響系統的連續執行。
- (4) 可管理性
- 實際上, RAID 是一種虛擬化技術,它對多個物理磁碟驅動器虛擬成一個大容量的邏輯驅動器。對於外部主機系統來說, RAID 是一個單一的、快速可靠的大容量磁碟驅動器。這樣,使用者就可以在這個虛擬驅動器上來組織和儲存應用系統資料。 從使用者應用角度看,可使儲存系統簡單易用,管理也很便利。 由於 RAID 內部完成了大量的儲存管理工作,管理員只需要管理單個虛擬驅動器,可以節省大量的管理工作。 RAID 可以動態增減磁碟驅動器,可自動進行資料校驗和資料重建,這些都可以 大大簡化管理工作。
RAID幾種常見的型別RAID幾種常見的型別
RAID-0 (條帶化)
- 條帶 (strping),也是我們最早出現的RAID模式
- 需磁碟數量:2塊以上(大小最好相同),是組建磁碟陣列中最簡單的一種形式,只需要2塊以上的硬碟即可.
- 特點:成本低,可以提高整個磁碟的效能和吞吐量。RAID 0沒有提供冗餘或錯誤修復能力,速度快.
- 任何一個磁碟的損壞將損壞全部資料;磁碟利用率為100%
RAID-1 (映象化)
- mirroring(映象卷),需要磁碟兩塊以上
- 原理:是把一個磁碟的資料映象到另一個磁碟上,也就是說資料在寫入一塊磁碟的同時,會在另一塊閒置的磁碟上生成映象檔案,(同步)
- RAID 1 mirroring(映象卷),至少需要兩塊硬碟,raid大小等於兩個raid分割槽中最小的容量(最好將分割槽大小分為一樣),資料有冗餘,在儲存時同時寫入兩塊硬碟,實現了資料備份;
- 磁碟利用率為50%,即2塊100G的磁碟構成RAID1只能提供100G的可用空間。
RAID-5 (分散式奇偶校驗)
- 需要三塊或以上硬碟,可以提供熱備盤實現故障的恢復;只損壞一塊,沒有問題。但如果同時損壞兩塊磁碟,則資料將都會損壞。
- 空間利用率: (n-1)/n
RAID-6( 雙分散式奇偶校驗磁碟)
- RAID 6 和 RAID 5 相似但它有兩個分散式奇偶校驗。大多用在大數量的陣列中。我們最少需要4個驅動器,即使有2個驅動器發生故障,我們依然可以更換新的驅動器後重建資料。
RAID-10 (映象+條帶)
RAID 10是將映象和條帶進行兩級組合的RAID級別,第一級是RAID1映象對,第二級為RAID 0。
幾個方案對比下來, RAID5是最適合的,如下圖:
第一步 部署環境準備
[root@wencheng ~]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) [root@wencheng ~]# rpm -qa | grep mdadm mdadm-4.1-6.el7.x86_64 [root@wencheng ~]# ls -l /dev | grep sd brw-rw----. 1 root disk 8, 0 Apr 15 11:38 sda brw-rw----. 1 root disk 8, 1 Apr 15 11:38 sda1 brw-rw----. 1 root disk 8, 2 Apr 15 11:38 sda2 brw-rw----. 1 root disk 8, 3 Apr 15 11:38 sda3
VMware Workstation新增硬碟
- 在"我的計算機"中選擇該主機--右鍵--設定--新增--硬碟--下一步--下一步--下一步--完成 新增硬碟步驟。
- 命令:echo "- - -" > /sys/class/scsi_host/host0/scan
- 1.新增添磁碟,還不能直接顯示出來,要想出現要對磁碟進行掃描(實際生產環境中不需要,都是熱插拔技術):
- 2.假如 fdisk -l 還是未發現新硬碟,則將上面命令中的host0,替換為host1,host2,....看看;
- 3.我們再檢視系統日誌/var/log/messages,發現對SCSI裝置進行了一次重新掃描,用fdisk -l也看到了新增加的磁碟了。
第二步 建立RAID分割槽
[root@wencheng ~]# fdisk /dev/sdb //建立/dev/sdb分割槽 Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Device does not contain a recognized partition table Building a new DOS disklabel with disk identifier 0x50157e3b. Command (m for help): m Command action a toggle a bootable flag //設定可引導標記 b edit bsd disklabel //編輯 bsd 磁碟標籤 c toggle the dos compatibility flag //設定 DOS 作業系統相容標記 d delete a partition //刪除一個分割槽 g create a new empty GPT partition table //建立一個新的空GPT分割槽表 G create an IRIX (SGI) partition table //建立一個IRIX (SGI)分割槽表 l list known partition types //顯示已知的檔案系統型別。82 為 Linux swap 分割槽,83 為 Linux 分割槽 m print this menu //顯示幫助選單 n add a new partition //新建分割槽 o create a new empty DOS partition table //建立空白 DOS 分割槽表 p print the partition table //顯示分割槽列表 q quit without saving changes //不儲存退出 s create a new empty Sun disklabel //新建空白 SUN 磁碟標籤 t change a partition's system id //改變一個分割槽的系統 ID u change display/entry units //改變顯示記錄單位 v verify the partition table //驗證分割槽表 w write table to disk and exit //儲存退出 x extra functionality (experts only) //附加功能(僅專家) Command (m for help): n //新建分割槽 Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p //這裡選主分割槽 Partition number (1-4, default 1): 1 First sector (2048-20971519, default 2048): //回車(預設大小) Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): //回車(預設整塊硬碟大小);可指定但小於硬碟容量 Using default value 20971519 Partition 1 of type Linux and of size 10 GiB is set Command (m for help): p //顯示分割槽列表 Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x50157e3b Device Boot Start End Blocks Id System /dev/sdb1 2048 20971519 10484736 83 Linux //分割槽的狀態 Command (m for help): L //列出所有可用的型別 0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris 1 FAT12 27 Hidden NTFS Win 82 Linux swap / So c1 DRDOS/sec (FAT- 2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT- 3 XENIX usr 3c PartitionMagic 84 OS/2 hidden C: c6 DRDOS/sec (FAT- 4 FAT16 <32M 40 Venix 80286 85 Linux extended c7 Syrinx 5 Extended 41 PPC PReP Boot 86 NTFS volume set da Non-FS data 6 FAT16 42 SFS 87 NTFS volume set db CP/M / CTOS / . 7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux plaintext de Dell Utility 8 AIX 4e QNX4.x 2nd part 8e Linux LVM df BootIt 9 AIX bootable 4f QNX4.x 3rd part 93 Amoeba e1 DOS access a OS/2 Boot Manag 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad hi eb BeOS fs e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPT f W95 Ext'd (LBA) 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/ 10 OPUS 55 EZ-Drive a7 NeXTSTEP f0 Linux/PA-RISC b 11 Hidden FAT12 56 Golden Bow a8 Darwin UFS f1 SpeedStor 12 Compaq diagnost 5c Priam Edisk a9 NetBSD f4 SpeedStor 14 Hidden FAT16 <3 61 SpeedStor ab Darwin boot f2 DOS secondary 16 Hidden FAT16 63 GNU HURD or Sys af HFS / HFS+ fb VMware VMFS 17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE 18 AST SmartSleep 65 Novell Netware b8 BSDI swap fd Linux raid auto 1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid fe LANstep 1c Hidden W95 FAT3 75 PC/IX be Solaris boot ff BBT 1e Hidden W95 FAT1 80 Old Minix Command (m for help): t //改變一個分割槽的系統 ID Selected partition 1 Hex code (type L to list all codes): fd //Linux raid auto Changed type of partition 'Linux' to 'Linux raid autodetect' Command (m for help): p //顯示分割槽列表 Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x50157e3b Device Boot Start End Blocks Id System /dev/sdb1 2048 20971519 10484736 fd Linux raid autodetect //分割槽狀態 Command (m for help): w //儲存退出 The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. [root@wencheng ~]# [root@wencheng ~]# fdisk -l | grep raid /dev/sdb1 2048 20971519 10484736 fd Linux raid autodetect /dev/sdc1 2048 20971519 10484736 fd Linux raid autodetect /dev/sdd1 2048 20971519 10484736 fd Linux raid autodetect /dev/sde1 2048 20971519 10484736 fd Linux raid autodetect
注: 請使用上述步驟同樣在 sd[c-m] 驅動器上建立分割槽,不再累贅。
- mdadm命令常見引數解釋:
第三步 現在使用以下命令建立 md 裝置(即 /dev/md0),並選擇 RAID級別。
RAID-0
- 1.建立分割槽後,驗證/dev/sd[b-c]這兩個驅動器是否正確定義 RAID,使用下面的命令。
[root@wencheng ~]# mdadm -E /dev/sd[b-c] //或mdadm --examine /dev/sd[b-c] /dev/sdb: MBR Magic : aa55 Partition[0] : 20969472 sectors at 2048 (type fd) /dev/sdc: MBR Magic : aa55 Partition[0] : 20969472 sectors at 2048 (type fd) [root@wencheng ~]# mdadm -E /dev/sd[b-c]1 //mdadm --examine /dev/sd[b-c]1 mdadm: No md superblock detected on /dev/sdb1. mdadm: No md superblock detected on /dev/sdc1.
- 2.建立RAID0,與其他RAID級別差非同步驟。
[root@wencheng ~]# mdadm -C -v /dev/md0 -l raid0 -n 2 /dev/sd[b-c]1 //這裡是raid0為例 mdadm: Fail to create md0 when using /sys/module/md_mod/parameters/new_array, fallback to creation via node mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md0 started. [root@wencheng ~]#
- 3.檢視 RAID 級別,裝置和陣列的使用狀態。
[root@wencheng ~]# cat /proc/mdstat Personalities : [raid0] md0 : active raid0 sdc1[1] sdb1[0] 20951040 blocks super 1.2 512k chunks unused devices: <none> [root@wencheng ~]# [root@wencheng ~]# mdadm -Ds //或mdadm --detail /dev/md0 或 mdadm -E /dev/sd[b-c]1 ARRAY /dev/md0 metadata=1.2 name=wencheng:0 UUID=17542cfe:0b0649c8:43eecd07:cc58228b [root@wencheng ~]# [root@wencheng ~]# mdadm -D /dev/md0 /dev/md0: Version : 1.2 Creation Time : Thu Apr 15 14:37:47 2021 Raid Level : raid0 Array Size : 20951040 (19.98 GiB 21.45 GB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Update Time : Thu Apr 15 14:37:47 2021 State : clean Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Chunk Size : 512K //chunk是raid中最小的儲存單位 Consistency Policy : none Name : wencheng:0 (local to host wencheng) UUID : 17542cfe:0b0649c8:43eecd07:cc58228b Events : 0 Number Major Minor RaidDevice State 0 8 17 0 active sync /dev/sdb1 1 8 33 1 active sync /dev/sdc1
- 4.儲存RAID配置到一個"mdadm"檔案中,以供將來使用。
[root@wencheng ~]# mdadm -E -s -v > /etc/mdadm.conf [root@wencheng ~]# cat /etc/mdadm.conf ARRAY /dev/md/0 level=raid0 metadata=1.2 num-devices=2 UUID=17542cfe:0b0649c8:43eecd07:cc58228b name=wencheng:0 devices=/dev/sdc1,/dev/sdb1 或 [root@wencheng ~]# mdadm -Ds ARRAY /dev/md0 metadata=1.2 name=wencheng:0 UUID=17542cfe:0b0649c8:43eecd07:cc58228b [root@wencheng ~]# [root@wencheng ~]# mdadm -Ds > /etc/mdadm.conf
- 5. 將 RAID 裝置 /dev/md0 建立為 xfs 檔案系統,並掛載到 /mnt/raid0 下。
[root@wencheng ~]# mkfs.xfs /dev/md0 meta-data=/dev/md0 isize=512 agcount=16, agsize=327296 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=5236736, imaxpct=25 = sunit=128 swidth=256 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=8 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 [root@wencheng ~]# mkdir /mnt/raid0 //建立掛載點 [root@wencheng ~]# [root@wencheng ~]# mount /dev/md0 /mnt/raid0/ [root@wencheng ~]# df -Th /mnt/raid0/ Filesystem Type Size Used Avail Use% Mounted on /dev/md0 xfs 20G 33M 20G 1% /mnt/raid0 驗證/mnt/raid0/是否能正常使用 [root@wencheng ~]# ls -l /mnt/raid0/ total 0 [root@wencheng ~]# echo 123 > /mnt/raid0/a [root@wencheng ~]# echo 456 > /mnt/raid0/b [root@wencheng ~]# [root@wencheng ~]# ls -l /mnt/raid0/ total 8 -rw-r--r--. 1 root root 4 Apr 15 15:39 a -rw-r--r--. 1 root root 4 Apr 15 15:40 b [root@wencheng ~]# [root@wencheng ~]# rm /mnt/raid0/b -f [root@wencheng ~]# [root@wencheng ~]# ls -l /mnt/raid0/ total 4 -rw-r--r--. 1 root root 4 Apr 15 15:39 a
新增開機自動掛載 [root@wencheng ~]# blkid /dev/md0 /dev/md0: UUID="2d2c0f39-3605-4634-bfb1-c8b151936057" TYPE="xfs"
[root@wencheng ~]# echo "UUID=2d2c0f39-3605-4634-bfb1-c8b151936057 /mnt/raid0 xfs defaults 0 0" >> /etc/fstab
[root@wencheng ~]# cat /etc/fstab | grep /mnt/raid0 UUID=2d2c0f39-3605-4634-bfb1-c8b151936057 /mnt/raid0 xfs defaults 0 0 [root@wencheng ~]# mount -av //檢查 fstab 的條目是否有誤 / : ignored /boot : already mounted swap : ignored /mnt/raid0 : already mounted
注:以上步驟建立各RAID級別類似,不再贅述。
RAID1
- 1.建立RAID1
[root@wencheng ~]# mdadm -C -v /dev/md1 -l raid1 -n 2 -x 1 /dev/sd[d-f]1 mdadm: Note: this array has metadata at the start and may not be suitable as a boot device. If you plan to store '/boot' on this device please ensure that your boot-loader understands md/v1.x metadata, or use --metadata=0.90 Continue creating array? (y/n) y mdadm: Fail to create md1 when using /sys/module/md_mod/parameters/new_array, fallback to creation via node mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md1 started.
- 2.檢視 RAID 級別,裝置和陣列的使用狀態。
[root@wencheng ~]# mdadm -D /dev/md1 /dev/md1: Version : 1.2 Creation Time : Fri Apr 16 17:33:12 2021 Raid Level : raid1 Array Size : 10475520 (9.99 GiB 10.73 GB) Used Dev Size : 10475520 (9.99 GiB 10.73 GB) Raid Devices : 2 Total Devices : 3 Persistence : Superblock is persistent Update Time : Fri Apr 16 17:34:04 2021 State : clean Active Devices : 2 Working Devices : 3 Failed Devices : 0 Spare Devices : 1 Consistency Policy : resync Name : wencheng:1 (local to host wencheng) UUID : a88125e0:2c4b9029:cfaa3acf:67941e04 Events : 17 Number Major Minor RaidDevice State 0 8 49 0 active sync /dev/sdd1 1 8 65 1 active sync /dev/sde1 2 8 81 - spare /dev/sdf1
- 3.儲存 RAID1 的配置到檔案“mdadm.conf”中。
[root@wencheng ~]# mdadm -Dsv /dev/md1 > /etc/mdadm.conf [root@wencheng ~]# cat /etc/mdadm.conf ARRAY /dev/md1 level=raid1 num-devices=2 metadata=1.2 spares=1 name=wencheng:1 UUID=a88125e0:2c4b9029:cfaa3acf:67941e04 devices=/dev/sdd1,/dev/sde1,/dev/sdf1
- 4.在RAID1裝置上建立檔案系統,並掛載到 /mnt/raid1 下。
[root@wencheng ~]# mkfs.xfs /dev/md1 meta-data=/dev/md1 isize=512 agcount=4, agsize=654720 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=2618880, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 [root@wencheng ~]# [root@wencheng ~]# mkdir /mnt/raid1 [root@wencheng ~]# mount /dev/md1 /mnt/raid1 [root@wencheng ~]# df -Th /mnt/raid1 Filesystem Type Size Used Avail Use% Mounted on /dev/md1 xfs 10G 33M 10G 1% /mnt/raid1
- 5.模擬RAID1中資料盤/dev/sde出現故障,觀察/dev/sdf備用盤能否自動頂替故障盤。
[root@wencheng ~]# mdadm /dev/md1 -f /dev/sde1 //模擬測試檔案損壞 mdadm: set /dev/sde1 faulty in /dev/md1 [root@wencheng ~]# [root@wencheng ~]# mdadm -D /dev/md1 /dev/md1: Version : 1.2 Creation Time : Fri Apr 16 17:33:12 2021 Raid Level : raid1 Array Size : 10475520 (9.99 GiB 10.73 GB) Used Dev Size : 10475520 (9.99 GiB 10.73 GB) Raid Devices : 2 Total Devices : 3 Persistence : Superblock is persistent Update Time : Mon Apr 19 09:26:02 2021 State : clean, degraded, recovering Active Devices : 1 Working Devices : 2 Failed Devices : 1 Spare Devices : 1 Consistency Policy : resync Rebuild Status : 7% complete Name : wencheng:1 (local to host wencheng) UUID : a88125e0:2c4b9029:cfaa3acf:67941e04 Events : 23 Number Major Minor RaidDevice State 0 8 49 0 active sync /dev/sdd1 2 8 81 1 spare rebuilding /dev/sdf1 //熱備盤已經在同步資料 1 8 65 - faulty /dev/sde1 ------------------------------------------------------------------------ Number Major Minor RaidDevice State 0 8 49 0 active sync /dev/sdd1 2 8 81 1 active sync /dev/sdf1 //資料同步完成 1 8 65 - faulty /dev/sde1
- 6.更新配置檔案。
[root@wencheng ~]# mdadm -Dsv > /etc/mdadm.conf [root@wencheng ~]# [root@wencheng ~]# cat /etc/mdadm.conf ARRAY /dev/md1 level=raid1 num-devices=2 metadata=1.2 name=wencheng:1 UUID=a88125e0:2c4b9029:cfaa3acf:67941e04 devices=/dev/sdd1,/dev/sde1,/dev/sdf1
- 7.檢視資料是否丟失。
[root@wencheng ~]# ls -l /mnt/raid1/ total 4 -rw-r--r--. 1 root root 846 Apr 19 09:24 passwd
- 8.移除損壞的裝置。
[root@wencheng ~]# mdadm -r /dev/md1 /dev/sde1 mdadm: hot removed /dev/sde1 from /dev/md1 [root@wencheng ~]# mdadm -D /dev/md1 /dev/md1: Version : 1.2 Creation Time : Fri Apr 16 17:33:12 2021 Raid Level : raid1 Array Size : 10475520 (9.99 GiB 10.73 GB) Used Dev Size : 10475520 (9.99 GiB 10.73 GB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Update Time : Mon Apr 19 09:34:50 2021 State : clean Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Consistency Policy : resync Name : wencheng:1 (local to host wencheng) UUID : a88125e0:2c4b9029:cfaa3acf:67941e04 Events : 44 Number Major Minor RaidDevice State 0 8 49 0 active sync /dev/sdd1 2 8 81 1 active sync /dev/sdf1
- 9.更換一塊新硬碟。
[root@wencheng ~]# mdadm -a /dev/md1 /dev/sde
mdadm: added /dev/sde
[root@wencheng ~]#
[root@wencheng ~]# mdadm -D /dev/md1
/dev/md1:
Version : 1.2
Creation Time : Fri Apr 16 17:33:12 2021
Raid Level : raid1
Array Size : 10475520 (9.99 GiB 10.73 GB)
Used Dev Size : 10475520 (9.99 GiB 10.73 GB)
Raid Devices : 2
Total Devices : 3
Persistence : Superblock is persistent
Update Time : Mon Apr 19 09:37:30 2021
State : clean
Active Devices : 2
Working Devices : 3
Failed Devices : 0
Spare Devices : 1
Consistency Policy : resync
Name : wencheng:1 (local to host wencheng)
UUID : a88125e0:2c4b9029:cfaa3acf:67941e04
Events : 45
Number Major Minor RaidDevice State
0 8 49 0 active sync /dev/sdd1
2 8 81 1 active sync /dev/sdf1
3 8 64 - spare /dev/sde
RAID5
(1)建立RAID5, 新增1個熱備盤,指定chunk大小為32K(預設512K)
-x或--spare-devicds= 指定陣列中備用盤的數量
-c或--chunk= 設定陣列的塊chunk塊大小 ,單位為KB
(2)停止陣列,重新啟用陣列
(3)使用熱備盤,擴充套件陣列容量,從3個磁碟擴充套件到4個
- 1.建立RAID5
[root@wencheng ~]# mdadm -C -v /dev/md5 -l 5 -n 3 -x 1 /dev/sd{g,h,i,j}1 mdadm: layout defaults to left-symmetric mdadm: layout defaults to left-symmetric mdadm: chunk size defaults to 512K mdadm: size set to 10475520K mdadm: Fail to create md5 when using /sys/module/md_mod/parameters/new_array, fallback to creation via node mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md5 started.
- 2.檢視 RAID 級別,裝置和陣列的使用狀態。
[root@wencheng ~]# mdadm -D /dev/md5 /dev/md5: Version : 1.2 Creation Time : Mon Apr 19 10:03:42 2021 Raid Level : raid5 Array Size : 20951040 (19.98 GiB 21.45 GB) Used Dev Size : 10475520 (9.99 GiB 10.73 GB) Raid Devices : 3 Total Devices : 4 Persistence : Superblock is persistent Update Time : Mon Apr 19 10:04:34 2021 State : clean Active Devices : 3 Working Devices : 4 Failed Devices : 0 Spare Devices : 1 Layout : left-symmetric Chunk Size : 512K Consistency Policy : resync //資料同步完成 Name : wencheng:5 (local to host wencheng) UUID : 816190d1:6b78e305:49220ba0:6178499b Events : 18 Number Major Minor RaidDevice State 0 8 97 0 active sync /dev/sdg1 1 8 113 1 active sync /dev/sdh1 4 8 129 2 active sync /dev/sdi1 3 8 145 - spare /dev/sdj1 //熱備盤
- 3.儲存 RAID5 的配置到檔案“mdadm.conf”中。
[root@wencheng ~]# mdadm -Dsv > /etc/mdadm.conf [root@wencheng ~]# cat /etc/mdadm.conf ARRAY /dev/md5 level=raid5 num-devices=3 metadata=1.2 spares=1 name=wencheng:5 UUID=816190d1:6b78e305:49220ba0:6178499b devices=/dev/sdg1,/dev/sdh1,/dev/sdi1,/dev/sdj1
- 4.停止/啟用md5陣列。
[root@wencheng ~]# mdadm -S /dev/md5 mdadm: stopped /dev/md [root@wencheng ~]# mdadm -AS /dev/md5 mdadm: Fail to create md5 when using /sys/module/md_mod/parameters/new_array, fallback to creation via node mdadm: /dev/md5 has been started with 3 drives and 1 spare.
- 5.擴充套件md5陣列,將熱備盤增加到md5中,使用md5中可以使用的磁碟數量為4塊,並驗證。
[root@wencheng ~]# mdadm -G /dev/md5 -n 4 //-G或--grow 改變陣列大小或形態 [root@wencheng ~]# [root@wencheng ~]# mdadm -D /dev/md5 /dev/md5: Version : 1.2 Creation Time : Mon Apr 19 10:03:42 2021 Raid Level : raid5 Array Size : 31426560 (29.97 GiB 32.18 GB) //對比初始空間已增大 Used Dev Size : 10475520 (9.99 GiB 10.73 GB) Raid Devices : 4 Total Devices : 4 Persistence : Superblock is persistent Update Time : Mon Apr 19 10:27:43 2021 State : clean Active Devices : 4 Working Devices : 4 Failed Devices : 0 Spare Devices : 0 Layout : left-symmetric Chunk Size : 512K Consistency Policy : resync Name : wencheng:5 (local to host wencheng) UUID : 816190d1:6b78e305:49220ba0:6178499b Events : 47 Number Major Minor RaidDevice State 0 8 97 0 active sync /dev/sdg1 1 8 113 1 active sync /dev/sdh1 4 8 129 2 active sync /dev/sdi1 3 8 145 3 active sync /dev/sdj1 [root@wencheng ~]# [root@wencheng ~]# mdadm -Dsv > /etc/mdadm.conf [root@wencheng ~]# cat /etc/mdadm.conf ARRAY /dev/md5 level=raid5 num-devices=4 metadata=1.2 name=wencheng:5 UUID=816190d1:6b78e305:49220ba0:6178499b devices=/dev/sdg1,/dev/sdh1,/dev/sdi1,/dev/sdj1
RAID10
- 1.建立RAID10
[root@wencheng ~]# mdadm -C -v /dev/md10 -l 10 -n 4 /dev/sd[k,l,n,m]1 mdadm: layout defaults to n2 mdadm: layout defaults to n2 mdadm: chunk size defaults to 512K mdadm: size set to 10475520K mdadm: Fail to create md10 when using /sys/module/md_mod/parameters/new_array, fallback to creation via node mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md10 started.
- 2.檢視 RAID 級別,裝置和陣列的使用狀態。
[root@wencheng ~]# mdadm -D /dev/md10 /dev/md10: Version : 1.2 Creation Time : Mon Apr 19 10:54:33 2021 Raid Level : raid10 Array Size : 20951040 (19.98 GiB 21.45 GB) Used Dev Size : 10475520 (9.99 GiB 10.73 GB) Raid Devices : 4 Total Devices : 4 Persistence : Superblock is persistent Update Time : Mon Apr 19 10:56:18 2021 State : clean Active Devices : 4 Working Devices : 4 Failed Devices : 0 Spare Devices : 0 Layout : near=2 Chunk Size : 512K Consistency Policy : resync Name : wencheng:10 (local to host wencheng) UUID : 98ee3164:bc417c61:3e8b29d6:24470192 Events : 17 Number Major Minor RaidDevice State 0 8 161 0 active sync set-A /dev/sdk1 1 8 177 1 active sync set-B /dev/sdl1 2 8 193 2 active sync set-A /dev/sdm1 3 8 209 3 active sync set-B /dev/sdn1
- 3.儲存 RAID10 的配置到檔案“mdadm.conf”中。
[root@wencheng ~]# mdadm -Dsv /dev/md10 > /etc/mdadm.conf [root@wencheng ~]# [root@wencheng ~]# cat /etc/mdadm.conf ARRAY /dev/md10 level=raid10 num-devices=4 metadata=1.2 name=wencheng:10 UUID=98ee3164:bc417c61:3e8b29d6:24470192 devices=/dev/sdk1,/dev/sdl1,/dev/sdm1,/dev/sdn1
刪除RAID所有資訊及注意事項
- 1.如果你已經掛載raid,就先解除安裝。
[root@wencheng ~]# df -Th | grep raid1 /dev/md1 xfs 10G 33M 10G 1% /mnt/raid1 [root@wencheng ~]# [root@wencheng ~]# umount /dev/md1 /mnt/raid1 umount: /mnt/raid1: not mounted [root@wencheng ~]# [root@wencheng ~]# df -Th Filesystem Type Size Used Avail Use% Mounted on /dev/sda2 xfs 30G 1.3G 29G 5% / devtmpfs devtmpfs 981M 0 981M 0% /dev tmpfs tmpfs 992M 0 992M 0% /dev/shm tmpfs tmpfs 992M 9.6M 982M 1% /run tmpfs tmpfs 992M 0 992M 0% /sys/fs/cgroup /dev/sda1 xfs 297M 107M 191M 36% /boot tmpfs tmpfs 199M 0 199M 0% /run/user/0
- 2.停止RAID裝置,並刪除配置檔案。
[root@wencheng ~]# mdadm -D /dev/md1 /dev/md1: Version : 1.2 Creation Time : Fri Apr 16 17:33:12 2021 Raid Level : raid1 Array Size : 10475520 (9.99 GiB 10.73 GB) Used Dev Size : 10475520 (9.99 GiB 10.73 GB) Raid Devices : 2 Total Devices : 3 Persistence : Superblock is persistent Update Time : Mon Apr 19 11:03:51 2021 State : clean Active Devices : 2 Working Devices : 3 Failed Devices : 0 Spare Devices : 1 Consistency Policy : resync Name : wencheng:1 (local to host wencheng) UUID : a88125e0:2c4b9029:cfaa3acf:67941e04 Events : 45 Number Major Minor RaidDevice State 0 8 49 0 active sync /dev/sdd1 2 8 81 1 active sync /dev/sdf1 3 8 64 - spare /dev/sde [root@wencheng ~]# [root@wencheng ~]# mdadm -S /dev/md1 mdadm: stopped /dev/md1 [root@wencheng ~]# [root@wencheng ~]# mdadm -D /dev/md1 mdadm: cannot open /dev/md1: No such file or directory [root@wencheng ~]# [root@wencheng ~]# rm /etc/mdadm.conf -f
- 3.清除物理磁碟中的raid標識。
[root@wencheng ~]# mdadm --zero-superblock /dev/sdd1 [root@wencheng ~]# mdadm --zero-superblock /dev/sdf1 引數:--zero-superblock : erase the MD superblock from a device. #擦除裝置中的MD超級塊