RAID磁盤陣列配置
文章目錄
- RAID磁盤陣列配置
- 一、磁盤管理其他相關命令
- 1.fsck-檢查文件的正確性
- 2.dd-建立和使用交換文件
- 3.mkswap-建立和設置SWAP交換分區
- 二、RAID配置
一、磁盤管理其他相關命令
1.fsck-檢查文件的正確性
[root@localhost ~]# fsck -aC /dev/sda1 //檢查文件系統正確性,如果有錯誤,則自動修復
fsck,來自 util-linux 2.23.2
/sbin/fsck.xfs: XFS file system.
2.dd-建立和使用交換文件
常用參數 | 功能 |
---|---|
if | 輸入文件 |
of | 輸出文件 |
bs | 塊大小 |
count | 塊個數 |
-h | 顯示幫助信息 |
-v | 顯示版本信息 |
/dev/zero 是類UNIX操作系統中的一個特殊設備文件。當你讀取它時,它會提供無限的空字符。
[root@localhost ~]# dd if=/dev/zero of=File count=1 bs=500M //生成一個指定大小(500MB)的新文件
記錄了1+0 的讀入
記錄了1+0 的寫出
524288000字節(524 MB)已復制,3.3121 秒,158 MB/秒
3.mkswap-建立和設置SWAP交換分區
交換分區是硬盤驅動器的一部分,用作交換內存,即RAM的溢出空間。當RAM開始填滿時,操作系統會將不太常用的進程或數據從RAM移動到交換分區,以擴展可用內存。交換分區在Linux系統中被稱為swap,它的作用是在物理內存不足時,將部分內存數據轉移到硬盤上,從而緩解內存壓力。
[root@localhost ~]# mkswap /dev/sdb1 //創建此分區為交換分區
正在設置交換空間版本 1,大小 = 2096124 KiB
無標簽,UUID=3dee93a7-ced0-4b01-92fc-d63ae5dc3ace
[root@localhost ~]# swapon /dev/sdb1 //加載交換分區
[root@localhost ~]# swapon -s //顯示加載的交換分區
文件名 類型 大小 已用 權限
/dev/dm-1 partition 2097148 0 -1
/dev/sdb1 partition 2096124 0 -2
[root@localhost ~]# swapoff /dev/sdb1 //關閉交換分區
[root@localhost ~]# swapon -s //
文件名 類型 大小 已用 權限
/dev/dm-1 partition 2097148 0 -1
二、RAID配置
# 創建4個大小都為2GB的磁盤,并將其中3個創建為RAID5陣列磁盤,1個創建為熱備磁盤。
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 99G 0 part ├─centos-root 253:0 0 50G 0 lvm /├─centos-swap 253:1 0 2G 0 lvm [SWAP]└─centos-home 253:2 0 47G 0 lvm /home
sdb 8:16 0 2G 0 disk
sdc 8:32 0 2G 0 disk
sdd 8:48 0 2G 0 disk
sde 8:64 0 2G 0 disk
sr0 11:0 1 4.2G 0 rom # 由于RAID5要用到整塊磁盤,所以直接將磁盤全部空間創建一個主分區,類型改為fd
[root@localhost ~]# fdisk /dev/sdb
歡迎使用 fdisk (util-linux 2.23.2)。更改將停留在內存中,直到您決定將更改寫入磁盤。
使用寫入命令前請三思。命令(輸入 m 獲取幫助):n
Partition type:p primary (0 primary, 0 extended, 4 free)e extended
Select (default p):
Using default response p
分區號 (1-4,默認 1):
起始 扇區 (2048-4194303,默認為 2048):
將使用默認值 2048
Last 扇區, +扇區 or +size{K,M,G} (2048-4194303,默認為 4194303):
將使用默認值 4194303
分區 1 已設置為 Linux 類型,大小設為 2 GiB命令(輸入 m 獲取幫助):t
已選擇分區 1
Hex 代碼(輸入 L 列出所有代碼):fd
已將分區“Linux”的類型更改為“Linux raid autodetect”命令(輸入 m 獲取幫助):w
The partition table has been altered!Calling ioctl() to re-read partition table.
正在同步磁盤。
[root@localhost ~]# fdisk -l | grep sdb
磁盤 /dev/sdb:2147 MB, 2147483648 字節,4194304 個扇區
/dev/sdb1 2048 4194303 2096128 fd Linux raid autodetect# 使用同樣的方法設置另外3塊盤
[root@localhost ~]# fdisk -l | grep sd[b-e]
磁盤 /dev/sdb:2147 MB, 2147483648 字節,4194304 個扇區
/dev/sdb1 2048 4194303 2096128 fd Linux raid autodetect
磁盤 /dev/sdc:2147 MB, 2147483648 字節,4194304 個扇區
/dev/sdc1 2048 4194303 2096128 fd Linux raid autodetect
磁盤 /dev/sdd:2147 MB, 2147483648 字節,4194304 個扇區
/dev/sdd1 2048 4194303 2096128 fd Linux raid autodetect
磁盤 /dev/sde:2147 MB, 2147483648 字節,4194304 個扇區
/dev/sde1 2048 4194303 2096128 fd Linux raid autodetect# 使用mdadm命令創建RAID5陣列及其熱備份
# 直接將4個磁盤中的3個創建為RAID5陣列,1個創建為熱備磁盤
[root@localhost ~]# yum install -y mdadm
[root@localhost ~]# mdadm --create /dev/md0 --auto=yes --level=5 --raid-devices=3 --spare-devices=1 /dev/sd[b-e]1
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@localhost ~]# mdadm -D /dev/md0
/dev/md0:Version : 1.2Creation Time : Sat May 31 23:28:38 2025Raid Level : raid5Array Size : 4188160 (3.99 GiB 4.29 GB)Used Dev Size : 2094080 (2045.00 MiB 2144.34 MB)Raid Devices : 3Total Devices : 4Persistence : Superblock is persistentUpdate Time : Sat May 31 23:28:49 2025State : clean Active Devices : 3Working Devices : 4Failed Devices : 0Spare Devices : 1Layout : left-symmetricChunk Size : 512KConsistency Policy : resyncName : localhost.localdomain:0 (local to host localhost.localdomain)UUID : 0449f536:b1852c5e:feb4197e:f6d664c5Events : 18Number Major Minor RaidDevice State0 8 17 0 active sync /dev/sdb11 8 33 1 active sync /dev/sdc14 8 49 2 active sync /dev/sdd13 8 65 - spare /dev/sde1
[root@localhost ~]# # 添加RAID5陣列到配置文件/etc/mdadm.conf中,默認此文件是不存在的
[root@localhost ~]# echo 'DEVICE /dev/sd[b-e]1' >> /etc/mdadm.conf
[root@localhost ~]# mdadm -Ds >> /etc/mdadm.conf
[root@localhost ~]# cat /etc/mdadm.conf
DEVICE /dev/sd[b-e]1
ARRAY /dev/md0 metadata=1.2 spares=1 name=localhost.localdomain:0 UUID=0449f536:b1852c5e:feb4197e:f6d664c5# 格式化磁盤陣列
[root@localhost ~]# mkfs.xfs /dev/md0
meta-data=/dev/md0 isize=512 agcount=8, agsize=130944 blks= sectsz=512 attr=2, projid32bit=1= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=1047040, 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@localhost ~]# # 掛載磁盤陣列
[root@localhost ~]# mkdir /mnt/raid5
[root@localhost ~]# mount /dev/md0 /mnt/raid5/
[root@localhost ~]# df -hT
文件系統 類型 容量 已用 可用 已用% 掛載點
/dev/mapper/centos-root xfs 50G 1.8G 49G 4% /
devtmpfs devtmpfs 476M 0 476M 0% /dev
tmpfs tmpfs 488M 0 488M 0% /dev/shm
tmpfs tmpfs 488M 7.7M 480M 2% /run
tmpfs tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/mapper/centos-home xfs 47G 33M 47G 1% /home
/dev/sda1 xfs 1014M 130M 885M 13% /boot
tmpfs tmpfs 98M 0 98M 0% /run/user/0
/dev/md0 xfs 4.0G 33M 4.0G 1% /mnt/raid5
[root@localhost ~]# # 測試以熱備磁盤替換陣列中的磁盤并同步數據,移除損壞的磁盤,添加一個新磁盤作為熱備磁盤,并刪除RAID陣列
1.寫入測試文件
# 在RAID5陣列上寫入一個大小為10MB的文件,命名為10M_file,以供數據恢復是測試使用
[root@localhost ~]# cd /mnt/raid5/
[root@localhost raid5]# dd if=/dev/zero of=10M_file count=1 bs=10M
記錄了1+0 的讀入
記錄了1+0 的寫出
10485760字節(10 MB)已復制,0.00878638 秒,1.2 GB/秒
[root@localhost raid5]# ll
總用量 10240
-rw-r--r--. 1 root root 10485760 5月 31 23:36 10M_file2.RAID設備的數據恢復
# 如果RAID設備中的某個磁盤損壞,則系統會自動停止該磁盤工作,使熱備磁盤代替損壞的磁盤繼續工作。
[root@localhost raid5]# mdadm /dev/md0 -f /dev/sdc1 //模擬sdc損壞,進行標記失效
mdadm: set /dev/sdc1 faulty in /dev/md0
[root@localhost raid5]# mdadm -D /dev/md0 //查看陣列狀態
/dev/md0:Version : 1.2Creation Time : Sat May 31 23:28:38 2025Raid Level : raid5Array Size : 4188160 (3.99 GiB 4.29 GB)Used Dev Size : 2094080 (2045.00 MiB 2144.34 MB)Raid Devices : 3Total Devices : 4Persistence : Superblock is persistentUpdate Time : Sat May 31 23:39:56 2025State : clean Active Devices : 3Working Devices : 3Failed Devices : 1 # 失效1塊Spare Devices : 0Layout : left-symmetricChunk Size : 512KConsistency Policy : resyncName : localhost.localdomain:0 (local to host localhost.localdomain)UUID : 0449f536:b1852c5e:feb4197e:f6d664c5Events : 37Number Major Minor RaidDevice State0 8 17 0 active sync /dev/sdb13 8 65 1 active sync /dev/sde1 # sde代替sdc繼續工作4 8 49 2 active sync /dev/sdd11 8 33 - faulty /dev/sdc1
[root@localhost raid5]# ll
總用量 10240
-rw-r--r--. 1 root root 10485760 5月 31 23:36 10M_file
[root@localhost raid5]# 3.移除損壞的磁盤
[root@localhost raid5]# mdadm /dev/md0 -r /dev/sdc1
mdadm: hot removed /dev/sdc1 from /dev/md0
[root@localhost raid5]# mdadm -D /dev/md0
/dev/md0:Version : 1.2Creation Time : Sat May 31 23:28:38 2025Raid Level : raid5Array Size : 4188160 (3.99 GiB 4.29 GB)Used Dev Size : 2094080 (2045.00 MiB 2144.34 MB)Raid Devices : 3Total Devices : 3Persistence : Superblock is persistentUpdate Time : Sat May 31 23:42:48 2025State : clean Active Devices : 3Working Devices : 3Failed Devices : 0Spare Devices : 0Layout : left-symmetricChunk Size : 512KConsistency Policy : resyncName : localhost.localdomain:0 (local to host localhost.localdomain)UUID : 0449f536:b1852c5e:feb4197e:f6d664c5Events : 38Number Major Minor RaidDevice State0 8 17 0 active sync /dev/sdb13 8 65 1 active sync /dev/sde14 8 49 2 active sync /dev/sdd14.添加新的磁盤作為熱備磁盤
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 99G 0 part ├─centos-root 253:0 0 50G 0 lvm /├─centos-swap 253:1 0 2G 0 lvm [SWAP]└─centos-home 253:2 0 47G 0 lvm /home
sdb 8:16 0 2G 0 disk
└─sdb1 8:17 0 2G 0 part └─md0 9:0 0 4G 0 raid5
sdc 8:32 0 2G 0 disk
└─sdc1 8:33 0 2G 0 part
sdd 8:48 0 2G 0 disk
└─sdd1 8:49 0 2G 0 part └─md0 9:0 0 4G 0 raid5
sde 8:64 0 2G 0 disk
└─sde1 8:65 0 2G 0 part └─md0 9:0 0 4G 0 raid5
sdf 8:80 0 2G 0 disk
sr0 11:0 1 4.2G 0 rom
[root@localhost ~]# fdisk /dev/sdf
歡迎使用 fdisk (util-linux 2.23.2)。更改將停留在內存中,直到您決定將更改寫入磁盤。
使用寫入命令前請三思。Device does not contain a recognized partition table
使用磁盤標識符 0x80ae3207 創建新的 DOS 磁盤標簽。命令(輸入 m 獲取幫助):n
Partition type:p primary (0 primary, 0 extended, 4 free)e extended
Select (default p):
Using default response p
分區號 (1-4,默認 1):
起始 扇區 (2048-4194303,默認為 2048):
將使用默認值 2048
Last 扇區, +扇區 or +size{K,M,G} (2048-4194303,默認為 4194303):
將使用默認值 4194303
分區 1 已設置為 Linux 類型,大小設為 2 GiB命令(輸入 m 獲取幫助):t
已選擇分區 1
Hex 代碼(輸入 L 列出所有代碼):fd
已將分區“Linux”的類型更改為“Linux raid autodetect”命令(輸入 m 獲取幫助):w
The partition table has been altered!Calling ioctl() to re-read partition table.
正在同步磁盤。
[root@localhost ~]# mkfs.xfs /dev/sdf1
meta-data=/dev/sdf1 isize=512 agcount=4, agsize=131008 blks= sectsz=512 attr=2, projid32bit=1= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=524032, 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@localhost ~]# # 將新添加的磁盤加入陣列,會自動變為熱備磁盤
[root@localhost ~]# mdadm -D /dev/md0
/dev/md0:Version : 1.2Creation Time : Sat May 31 23:28:38 2025Raid Level : raid5Array Size : 4188160 (3.99 GiB 4.29 GB)Used Dev Size : 2094080 (2045.00 MiB 2144.34 MB)Raid Devices : 3Total Devices : 4Persistence : Superblock is persistentUpdate Time : Sat May 31 23:47:46 2025State : clean Active Devices : 3Working Devices : 4Failed Devices : 0Spare Devices : 1Layout : left-symmetricChunk Size : 512KConsistency Policy : resyncName : localhost.localdomain:0 (local to host localhost.localdomain)UUID : 0449f536:b1852c5e:feb4197e:f6d664c5Events : 39Number Major Minor RaidDevice State0 8 17 0 active sync /dev/sdb13 8 65 1 active sync /dev/sde14 8 49 2 active sync /dev/sdd15 8 81 - spare /dev/sdf1 # 熱備磁盤
[root@localhost ~]# 5.刪除RAID陣列
# RAID的刪除一定要慎重,操作不當可能會導致系統無法啟動
# 卸載陣列,如果配置了自動掛載,一定要在/etc/fstab中刪除配置
[root@localhost ~]# df -hT
文件系統 類型 容量 已用 可用 已用% 掛載點
/dev/mapper/centos-root xfs 50G 1.8G 49G 4% /
devtmpfs devtmpfs 476M 0 476M 0% /dev
tmpfs tmpfs 488M 0 488M 0% /dev/shm
tmpfs tmpfs 488M 7.7M 480M 2% /run
tmpfs tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/mapper/centos-home xfs 47G 33M 47G 1% /home
/dev/sda1 xfs 1014M 130M 885M 13% /boot
tmpfs tmpfs 98M 0 98M 0% /run/user/0
[root@localhost ~]# # 停止RAID工作
[root@localhost ~]# mdadm -S /dev/md0
mdadm: stopped /dev/md0# 刪除RAID中的相關磁盤
[root@localhost ~]# mdadm --misc --zero-superblock /dev/sd[b,d-f]1# 刪除RAID相關配置文件
[root@localhost ~]# rm -f /etc/mdadm.conf# 查看驗證
[root@localhost ~]# mdadm -D /dev/md0
mdadm: cannot open /dev/md0: No such file or directory
[root@localhost ~]#