實現raid有2種方式:軟體 RAID 的性能較低,因為其使用主機的資源。 需要載入 RAID 軟體以從軟體 RAID 捲中讀取數據。在載入 RAID 軟體前,操作系統需要引導起來才能載入 RAID 軟體。在軟體 RAID 中無需物理硬體。零成本投資。硬體 RAID 的性能較高。他們採用 PCI E... ...
實現raid有2種方式:
軟體 RAID 的性能較低,因為其使用主機的資源。 需要載入 RAID 軟體以從軟體 RAID 捲中讀取數據。在載入 RAID 軟體前,操作系統需要引導起來才能載入 RAID 軟體。在軟體 RAID 中無需物理硬體。零成本投資。
硬體 RAID 的性能較高。他們採用 PCI Express 卡物理地提供有專用的 RAID 控制器。它不會使用主機資源。他們有 NVRAM 用於緩存的讀取和寫入。緩存用於 RAID 重建時,即使出現電源故障,它會使用後備的電池電源保持緩存。對於大規模使用是非常昂貴的投資。
RAID有不同的級別。在這裡,我們僅列出在真實環境下的使用最多的 RAID 級別。
- RAID0 = 條帶化
- RAID1 = 鏡像
- RAID5 = 單磁碟分散式奇偶校驗
- RAID6 = 雙磁碟分散式奇偶校驗
- RAID10 = 鏡像 + 條帶。(嵌套RAID)
RAID 1稱為磁碟鏡像,原理是把一個磁碟的數據鏡像到另一個磁碟上,也就是說數據在寫入一塊磁碟的同時,會在另一塊閑置的磁碟上生成鏡像文件,在不影響性能情況下最大限度的保證系統的可靠性和可修複性上,只要系統中任何一對鏡像盤中至少有一塊磁碟可以使用,甚至可以在一半數量的硬碟出現問題時系統都可以正常運行,當一塊硬碟失效時,系統會忽略該硬碟,轉而使用剩餘的鏡像盤讀寫數據,具備很好的磁碟冗餘能力。雖然這樣對數據來講絕對安全,但是成本也會明顯增加,磁碟利用率為50%,以四塊80GB容量的硬碟來講,可利用的磁碟空間僅為160GB。另外,出現硬碟故障的RAID系統不再可靠,應當及時的更換損壞的硬碟,否則剩餘的鏡像盤也出現問題,那麼整個系統就會崩潰。更換新盤後原有數據會需要很長時間同步鏡像,外界對數據的訪問不會受到影響,只是這時整個系統的性能有所下降。因此,RAID 1多用在保存關鍵性的重要數據的場合。
RAID 1主要是通過二次讀寫實現磁碟鏡像,所以磁碟控制器的負載也相當大,尤其是在需要頻繁寫入數據的環境中。為了避免出現性能瓶頸,使用多個磁碟控制器就顯得很有必要。
RAID 1 :磁碟利用率為50%,二次讀寫實現磁碟鏡像。
1、準備工作
安裝系統後,主板上連接2塊硬碟,這裡我用虛擬機做實驗。
試驗系統:Centos 8.1.1911
2、創建邏輯捲RAID 1
查看邏輯捲及分區
[root@study ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 19G 0 part ├─cl-root 253:0 0 17G 0 lvm / └─cl-swap 253:1 0 2G 0 lvm [SWAP] sdb 8:16 0 1G 0 disk sdc 8:32 0 1G 0 disk sr0 11:0 1 1024M 0 rom [root@study ~]#
我們使用sdb 和 sdc 簡歷邏輯捲RAID1
[root@study ~]# mdadm -C /dev/md0 -l raid1 -n 2 /dev/sdb /dev/sdc 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? Continue creating array? (y/n) y mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md0 started. [root@study ~]#
查看狀態
[root@study ~]# mdadm --detail /dev/md0 /dev/md0: Version : 1.2 Creation Time : Tue Jun 9 07:24:46 2020 Raid Level : raid1 Array Size : 1046528 (1022.00 MiB 1071.64 MB) Used Dev Size : 1046528 (1022.00 MiB 1071.64 MB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Update Time : Tue Jun 9 07:24:52 2020 State : clean Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Consistency Policy : resync Name : study.server.com:0 (local to host study.server.com) UUID : 77aeebdc:4a82397f:0a1ab9ad:dadf083c Events : 17 Number Major Minor RaidDevice State 0 8 16 0 active sync /dev/sdb 1 8 32 1 active sync /dev/sdc [root@study ~]#
格式化分區並掛載使用
[root@study ~]# mkfs.ext4 /dev/md0
mke2fs 1.44.6 (5-Mar-2019)
創建含有 261632 個塊(每塊 4k)和 65408 個inode的文件系統
文件系統UUID:07d1f71a-95dd-4985-b018-e205de9b9772
超級塊的備份存儲於下列塊:
32768, 98304, 163840, 229376
正在分配組表: 完成
正在寫入inode表: 完成
創建日誌(4096 個塊)完成
寫入超級塊和文件系統賬戶統計信息: 已完成
[root@study ~]# mkdir /mnt/raid1
[root@study ~]# mount /dev/md0 /mnt/raid1/
[root@study ~]# echo "this is linux raid1" > /mnt/raid1/readme.txt
[root@study ~]# ll /mnt/raid1/readme.txt
-rw-r--r--. 1 root root 20 6月 9 07:27 /mnt/raid1/readme.txt
[root@study ~]# cat /mnt/raid1/readme.txt
this is linux raid1
[root@study ~]#
配置自動掛載
[root@study ~]# umount /mnt/raid1 [root@study ~]# blkid /dev/md0 /dev/md0: UUID="07d1f71a-95dd-4985-b018-e205de9b9772" TYPE="ext4" [root@study ~]# vim /etc/fstab [root@study ~]# cat /etc/fstab # # /etc/fstab # Created by anaconda on Thu May 28 03:40:23 2020 # # Accessible filesystems, by reference, are maintained under '/dev/disk/'. # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info. # # After editing this file, run 'systemctl daemon-reload' to update systemd # units generated from this file. # /dev/mapper/cl-root / xfs defaults 0 0 UUID=9df293e1-6753-4be2-9733-dad673e61f4a /boot ext4 defaults 1 2 /dev/mapper/cl-swap swap swap defaults 0 0 UUID="07d1f71a-95dd-4985-b018-e205de9b9772" /mnt/raid1 ext4 defaults 0 0 [root@study ~]# mount -a [root@study ~]# df -h 文件系統 容量 已用 可用 已用% 掛載點 devtmpfs 885M 0 885M 0% /dev tmpfs 903M 0 903M 0% /dev/shm tmpfs 903M 9.4M 894M 2% /run tmpfs 903M 0 903M 0% /sys/fs/cgroup /dev/mapper/cl-root 17G 4.3G 13G 26% / /dev/sda1 976M 143M 766M 16% /boot tmpfs 181M 1.2M 180M 1% /run/user/42 tmpfs 181M 4.0K 181M 1% /run/user/0 /dev/md0 990M 2.6M 921M 1% /mnt/raid1 [root@study ~]#
3、模擬raid磁碟故障
移除磁碟sdc。
移除後,partprobe刷新下分區。
[root@study ~]# mdadm --detail /dev/md0 /dev/md0: Version : 1.2 Creation Time : Tue Jun 9 07:24:46 2020 Raid Level : raid1 Array Size : 1046528 (1022.00 MiB 1071.64 MB) Used Dev Size : 1046528 (1022.00 MiB 1071.64 MB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Update Time : Tue Jun 9 07:30:15 2020 State : clean Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Consistency Policy : resync Name : study.server.com:0 (local to host study.server.com) UUID : 77aeebdc:4a82397f:0a1ab9ad:dadf083c Events : 17 Number Major Minor RaidDevice State 0 8 16 0 active sync /dev/sdb 1 8 32 1 active sync /dev/sdc [root@study ~]# partprobe /dev/md0 [root@study ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 19G 0 part ├─cl-root 253:0 0 17G 0 lvm / └─cl-swap 253:1 0 2G 0 lvm [SWAP] sdb 8:16 0 1G 0 disk └─md0 9:0 0 1022M 0 raid1 /mnt/raid1 sr0 11:0 1 1024M 0 rom
查看raid1狀態數據
發現數據依然存在,沒有影響到數據。
[root@study ~]# mdadm --detail /dev/md0 /dev/md0: Version : 1.2 Creation Time : Tue Jun 9 07:24:46 2020 Raid Level : raid1 Array Size : 1046528 (1022.00 MiB 1071.64 MB) Used Dev Size : 1046528 (1022.00 MiB 1071.64 MB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Update Time : Tue Jun 9 07:35:17 2020 State : clean, degraded Active Devices : 1 Working Devices : 1 Failed Devices : 1 Spare Devices : 0 Consistency Policy : resync Name : study.server.com:0 (local to host study.server.com) UUID : 77aeebdc:4a82397f:0a1ab9ad:dadf083c Events : 20 Number Major Minor RaidDevice State 0 8 16 0 active sync /dev/sdb - 0 0 1 removed 1 8 32 - faulty /dev/sdc [root@study ~]# ll /mnt/raid1/ 總用量 20 drwx------. 2 root root 16384 6月 9 07:26 lost+found -rw-r--r--. 1 root root 20 6月 9 07:27 readme.txt [root@study ~]# cat /mnt/raid1/readme.txt this is linux raid1 [root@study ~]#
修複RAID1
移除故障磁碟,插入新磁碟,然後重啟伺服器。
[root@study ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 19G 0 part ├─cl-root 253:0 0 17G 0 lvm / └─cl-swap 253:1 0 2G 0 lvm [SWAP] sdb 8:16 0 1G 0 disk └─md0 9:0 0 1022M 0 raid1 /mnt/raid1 sdc 8:32 0 1G 0 disk sr0 11:0 1 1024M 0 rom [root@study ~]# df -h 文件系統 容量 已用 可用 已用% 掛載點 devtmpfs 886M 0 886M 0% /dev tmpfs 904M 0 904M 0% /dev/shm tmpfs 904M 9.4M 894M 2% /run tmpfs 904M 0 904M 0% /sys/fs/cgroup /dev/mapper/cl-root 17G 4.4G 13G 26% / /dev/sda1 976M 143M 766M 16% /boot tmpfs 181M 1.2M 180M 1% /run/user/42 tmpfs 181M 4.0K 181M 1% /run/user/0 /dev/md0 990M 2.6M 921M 1% /mnt/raid1 [root@study ~]# umount /mnt/raid1 [root@study ~]# mdadm --manage /dev/md0 --add /dev/sdc mdadm: added /dev/sdc [root@study ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 19G 0 part ├─cl-root 253:0 0 17G 0 lvm / └─cl-swap 253:1 0 2G 0 lvm [SWAP] sdb 8:16 0 1G 0 disk └─md0 9:0 0 1022M 0 raid1 sdc 8:32 0 1G 0 disk └─md0 9:0 0 1022M 0 raid1 sr0 11:0 1 1024M 0 rom
查看數據
[root@study ~]# mdadm --detail /dev/md0 /dev/md0: Version : 1.2 Creation Time : Tue Jun 9 07:24:46 2020 Raid Level : raid1 Array Size : 1046528 (1022.00 MiB 1071.64 MB) Used Dev Size : 1046528 (1022.00 MiB 1071.64 MB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Update Time : Tue Jun 9 21:11:45 2020 State : clean Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Consistency Policy : resync Name : study.server.com:0 (local to host study.server.com) UUID : 77aeebdc:4a82397f:0a1ab9ad:dadf083c Events : 53 Number Major Minor RaidDevice State 0 8 16 0 active sync /dev/sdb 2 8 32 1 active sync /dev/sdc [root@study ~]# mount -a [root@study ~]# df -h 文件系統 容量 已用 可用 已用% 掛載點 devtmpfs 886M 0 886M 0% /dev tmpfs 904M 0 904M 0% /dev/shm tmpfs 904M 9.4M 894M 2% /run tmpfs 904M 0 904M 0% /sys/fs/cgroup /dev/mapper/cl-root 17G 4.4G 13G 26% / /dev/sda1 976M 143M 766M 16% /boot tmpfs 181M 1.2M 180M 1% /run/user/42 tmpfs 181M 4.0K 181M 1% /run/user/0 /dev/md0 990M 2.6M 921M 1% /mnt/raid1 [root@study ~]# ll /mnt/raid1/ 總用量 20 drwx------. 2 root root 16384 6月 9 07:26 lost+found -rw-r--r--. 1 root root 20 6月 9 07:27 readme.txt [root@study ~]# cat /mnt/raid1/readme.txt this is linux raid1 [root@study ~]#
讀書和健身總有一個在路上