创建raid
下面是在CentOS上使用mdadm进行软件RAID10设置的详细步骤:
在CentOS上安装mdadm软件包:
代码语言:javascript复制sudo yum install mdadm
查看可用的磁盘设备:
代码语言:javascript复制sudo fdisk -l
记下要用于RAID的磁盘设备的名称,例如/dev/sdb、/dev/sdc等。
创建分区:
代码语言:javascript复制sudo fdisk /dev/sdb
在fdisk命令提示符下,按下n
创建一个新分区,选择分区类型为主分区或逻辑分区,然后按照提示设置分区大小。重复此步骤为每个磁盘创建分区。
创建RAID设备:
代码语言:javascript复制sudo mdadm --create /dev/md0 --level=10 --raid-devices=4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
这里创建了一个名为/dev/md0的RAID10设备,使用了4个磁盘分区。根据实际情况修改磁盘设备和分区号。
等待RAID设备同步完成:
代码语言:javascript复制watch cat /proc/mdstat
使用上述命令可以实时查看RAID设备的同步状态。等待所有设备同步完成。
创建文件系统:
代码语言:javascript复制sudo mkfs.ext4 /dev/md0
这里使用ext4文件系统作为示例,你也可以选择其他文件系统类型。
挂载RAID设备:
代码语言:javascript复制sudo mkdir /mnt/raid
sudo mount /dev/md0 /mnt/raid
这里将RAID设备挂载到/mnt/raid目录,你可以选择其他目录作为挂载点。
更新/etc/fstab文件以实现开机自动挂载:
代码语言:javascript复制echo '/dev/md0 /mnt/raid ext4 defaults 0 0' | sudo tee -a /etc/fstab
完成!现在你已经成功设置了一个RAID10设备,并将其挂载到指定目录。
请注意,在进行磁盘操作时要小心谨慎,并确保备份重要数据。
删除raid
以下是删除RAID阵列的步骤:
首先,使用以下命令查看系统中所有的RAID阵列:
代码语言:javascript复制mdadm --detail --scan
这将显示所有已配置的RAID阵列的信息,包括设备名称(如 /dev/md0)和对应的设备列表。
确定要删除的RAID阵列的设备名称。
使用以下命令停止该RAID阵列:
代码语言:javascript复制mdadm --stop /dev/md0
将 /dev/md0
替换为要删除的RAID阵列的设备名称。
最后,使用以下命令将RAID阵列的配置信息从系统中删除:
代码语言:javascript复制mdadm --remove /dev/md0
同样,将 /dev/md0
替换为要删除的RAID阵列的设备名称。
请注意,删除RAID阵列后,相关的数据将无法恢复。确保在执行此操作之前备份重要数据,并且仔细确认要删除的RAID阵列的设备名称。
更换故障硬盘
1.检查硬盘损坏情况
代码语言:javascript复制# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdb[0]
83819520 blocks super 1.2 [2/1] [U_] #_可以看出有个硬盘故障,正常是两个U
unused devices: <none>
2.查看详情
代码语言:javascript复制# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Tue Jan 30 15:10:59 2024
Raid Level : raid1
Array Size : 83819520 (79.94 GiB 85.83 GB)
Used Dev Size : 83819520 (79.94 GiB 85.83 GB)
Raid Devices : 2
Total Devices : 1
Persistence : Superblock is persistent
Update Time : Tue Jan 30 16:51:27 2024
State : clean, degraded
Active Devices : 1 #可以看出活跃磁盘只有一个
Working Devices : 1
Failed Devices : 0
Spare Devices : 0
Consistency Policy : resync
Name : localhost.localdomain:0 (local to host localhost.localdomain)
UUID : 4ddce06d:44158f8e:cddc4231:752ddd91
Events : 24
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
- 0 0 1 removed #坏盘
4.查看新加的磁盘
代码语言:javascript复制# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 800M 0 part /boot
├─sda3 8:3 0 4G 0 part [SWAP]
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 45.2G 0 part /
sdb 8:16 0 80G 0 disk
└─md0 9:0 0 80G 0 raid1 /data
sdc 8:32 0 80G 0 disk #可以看出sdc是新加的磁盘
3.添加新硬盘到RAID
代码语言:javascript复制# mdadm /dev/md0 -a /dev/sdc
mdadm: added /dev/sdc
4.检查RAID状态
代码语言:javascript复制# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdc[2] sdb[0]
83819520 blocks super 1.2 [2/1] [U_]
[>....................] recovery = 1.7% (1465728/83819520) finish=17.7min speed=77143K/sec #可以看到软raid已经以恢复正在重构。
unused devices: <none>
5.查看详细状态
代码语言:javascript复制# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Tue Jan 30 15:10:59 2024
Raid Level : raid1
Array Size : 83819520 (79.94 GiB 85.83 GB)
Used Dev Size : 83819520 (79.94 GiB 85.83 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Tue Jan 30 17:18:17 2024
State : clean, degraded, recovering
Active Devices : 1
Working Devices : 2
Failed Devices : 0
Spare Devices : 1
Consistency Policy : resync
Rebuild Status : 53% complete
Name : localhost.localdomain:0 (local to host localhost.localdomain)
UUID : 4ddce06d:44158f8e:cddc4231:752ddd91
Events : 34
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
2 8 32 1 spare rebuilding /dev/sdc #可以看到已经恢复
重装系统恢复raid
要实现重装系统之后恢复软raid前提是,组成软raid的磁盘不包括系统盘。是单独分开的。比如有三块磁盘/dev/sda /dev/sdb /dev/sdc 系统装在/dev/sda 软raid是由/dev/sdb 和 /dev/sdc磁盘组成。
1.查看磁盘信息
代码语言:javascript复制# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 800M 0 part /boot
├─sda3 8:3 0 4G 0 part [SWAP]
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 45.2G 0 part /
sdb 8:16 0 80G 0 disk
└─md0 9:0 0 80G 0 raid1
sdc 8:32 0 80G 0 disk
└─md0 9:0 0 80G 0 raid1
sr0 11:0 1 1024M 0 rom
从上面可以看到,sdb和sdc组的raid1
2.在新装的CentOS上安装mdadm软件包:
代码语言:javascript复制sudo yum install mdadm
3.挂载软raid
代码语言:javascript复制# blkid
/dev/sda5: UUID="4c1e0be9-02e3-4a89-a6b4-dd38b9b3dade" TYPE="xfs"
/dev/sda2: UUID="9b005cb9-40db-4fca-8bc8-aec66bbe73da" TYPE="xfs"
/dev/sda3: UUID="38813349-c5c2-4bf0-a030-55c393449cc5" TYPE="swap"
/dev/sdb: UUID="4ddce06d-4415-8f8e-cddc-4231752ddd91" UUID_SUB="4a602763-a1ed-05af-2ab1-59950aee6ff7" LABEL="localhost.localdomain:0" TYPE="linux_raid_member"
/dev/md0: UUID="d7747fb5-5e03-49e6-95e0-9bb6b537734b" TYPE="xfs"
/dev/sdc: UUID="4ddce06d-4415-8f8e-cddc-4231752ddd91" UUID_SUB="90b6c0b6-eed0-e39a-78b0-943ac5627078" LABEL="localhost.localdomain:0" TYPE="linux_raid_member"
echo "UUID="d7747fb5-5e03-49e6-95e0-9bb6b537734b" /data xfs defaults 0 0" >> /etc/fstab
下面没测试的命令
代码语言:javascript复制装好后,直接用mdadm -A /dev/md0 /dev/hdb /dev/hdc加载上来就行了,因为这2个raid分区的superblock都没有改变。