1. 查看磁盘信息 fdisk -l
:列出所有的磁盘块设备信息,包含重复的磁盘,例如在raid下一个磁盘可以被抽象成两个设备(如下/dev/md0
包含/dev/sda
和/dev/sdb
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 Disk /dev/loop0: 105.4 MiB, 110526464 bytes, 215872 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 /dev/loop1: 104 MiB, 109043712 bytes, 212976 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 /dev/nvme0n1: 953.9 GiB, 1024209543168 bytes, 2000409264 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 Disklabel type: gpt Disk identifier: 5EC6A3B1-BAEF-4D2F-BE18-39C22209C460 Device Start End Sectors Size Type /dev/nvme0n1p1 2048 1050623 1048576 512M EFI System /dev/nvme0n1p2 1050624 2000406527 1999355904 953.4G Linux filesystem Disk /dev/sda: 3.7 TiB, 4000787030016 bytes, 7814037168 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 /dev/sdb: 3.7 TiB, 4000787030016 bytes, 7814037168 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 /dev/md0: 3.7 TiB, 4000786874368 bytes, 7814036864 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
lsblk
:查看所有的磁盘信息,不包含重复的
1 2 3 4 5 6 7 8 9 10 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT loop0 7:0 0 105.4M 1 loop /snap/core/16574 loop1 7:1 0 104M 1 loop /snap/core/16928 sda 8:0 0 3.7T 0 disk └─md0 9:0 0 3.7T 0 raid1 sdb 8:16 0 3.7T 0 disk └─md0 9:0 0 3.7T 0 raid1 nvme0n1 259:0 0 953.9G 0 disk ├─nvme0n1p1 259:1 0 512M 0 part /boot/efi └─nvme0n1p2 259:2 0 953.4G 0 part /
2. 分配RAID mdadm --create /dev/md0 --homehost=any --metadata=1.0 --level=1 --raid-devices=2 /dev/sda /dev/sdb
上述命令表示创建/dev/md0
块设备,通过/dev/sda
和/dev/sdb
以RAID1方式创建RAID。
--homehost
表示域名,以防冲突;--metadata
表示元数据版本格式;--level
表示RAID版本,--raid-devices
指定数量。
通过将 -level=1
(镜像)与 -metadata=1.0
(将元数据存储在设备末尾)结合使用,可以创建一个 RAID1 阵列。
更详细信息可以参考使用 mdadm 管理 RAID 阵列 - 知乎 (zhihu.com) 。
3. 查看RAID mdadm -Ds
:查看阵列设备详细信息和阵列缺失信息
1 ARRAY /dev/md0 metadata=1.0 name=any:0 UUID=806448e9:8a672a6b:39a23572:41f9d93a
mdadm -D /dev/md0
:查看某一设备的具体更详细的信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 /dev/md0: Version : 1.0 Creation Time : Sun May 19 09:03:10 2024 Raid Level : raid1 Array Size : 3907018432 (3726.02 GiB 4000.79 GB) Used Dev Size : 3907018432 (3726.02 GiB 4000.79 GB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Intent Bitmap : Internal Update Time : Sun May 19 10:14:05 2024 State : clean, resyncing Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Consistency Policy : bitmap Resync Status : 21% complete Name : any:0 UUID : 806448e9:8a672a6b:39a23572:41f9d93a Events : 856 Number Major Minor RaidDevice State 0 8 0 0 active sync /dev/sda 1 8 16 1 active sync /dev/sdb
可以看到设备仍在同步中。无论是否在同步中,都可以执行命令,例如格式化。
cat /proc/mdstat
:查看同步进度和速度
1 2 3 4 5 6 7 Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid1 sdb[1] sda[0] 3907018432 blocks super 1.0 [2/2] [UU] [====>................] resync = 22.0% (862519232/3907018432) finish=253.1min speed=200390K/sec bitmap: 24/30 pages [96KB], 65536KB chunk unused devices: <none>
sudo sh -c "mdadm -Dsv > /etc/mdadm.conf"
:保存RAID信息
1 2 ARRAY /dev/md0 level=raid1 num-devices=2 metadata=1.0 name=any:0 UUID=806448e9:8a672a6b:39a23572:41f9d93a devices=/dev/sda,/dev/sdb
4. 创建文件系统 sudo mkfs.xfs /dev/md0
:创建文件系统并格式化
1 2 3 4 5 6 7 8 9 meta-data=/dev/md0 isize=512 agcount=4, agsize=244188652 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=0, rmapbt=0, reflink=0 data = bsize=4096 blocks=976754608, imaxpct=5 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=476930, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0
mkdir /raid1
:创建文件夹
mount /dev/md0 /raid1/
:挂载RAID
df -Th /raid1/
:查看挂载信息
1 2 Filesystem Type Size Used Avail Use% Mounted on /dev/md0 xfs 3.7T 3.8G 3.7T 1% /raid1
5. 设置开机自动挂载 blkid /dev/md0
:查看RAID设备的kid
信息(注意必须用sudo
运行才能显示)
1 /dev/md0: UUID="bcd132b2-c746-4e4f-8766-933b7e249f41" TYPE="xfs"
sudo sh -c 'echo "UUID=bcd132b2-c746-4e4f-8766-933b7e249f41 /raid1 xfs defaults 0 0" >> /etc/fstab'
:添加到开机自动挂载信息中。
6. 参考 Linux /dev/loop0文件详解 - 高宏宇 - 博客园 (cnblogs.com)
raid0、raid1、raid5、raid10这四种硬盘阵列的特点和区别 - 知乎 (zhihu.com)
Linux检查未挂载磁盘和为磁盘分区、挂载_disk identifier-CSDN博客
使用lsblk命令列出系统中的块设备_maj:min lsblk-CSDN博客
使用 mdadm 管理 RAID 阵列 - 知乎 (zhihu.com)
mdadm详解之mdadm -D 详解 - 简书 (jianshu.com)
Linux配置RAID详解(全)!_linux做raid-CSDN博客
为什么你的 mdadm 同步这么慢 · Yiran’s Blog (zdyxry.github.io)