组raid

Ethereal Lv4

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)

  • Title: 组raid
  • Author: Ethereal
  • Created at: 2024-05-19 18:03:11
  • Updated at: 2024-05-19 18:37:14
  • Link: https://ethereal-o.github.io/2024/05/19/组raid/
  • License: This work is licensed under CC BY-NC-SA 4.0.
 Comments