高级磁盘管理02 — RAID0实验

前言

本章,您将学习 RAID 0 的组建和使用。

RAID 0 之前的准备工作

在学习本章的知识前,记得对虚拟机中的操作系统执行「快照」操作,防止误操作。

作者使用的是 Vmware Workstation,在虚拟机关机状态下添加两块 50GB 的硬盘,然后将虚拟机开机:

# 这两块硬盘被 udev 识别为 sdb 和 sdc
Shell > lsblk -o NAME,SIZE,UUID
NAME    SIZE UUID
sda      50G
├─sda1    1G 8a77104f-8e6c-459c-93bc-0b00a52fb34b
├─sda2   47G ae2f3495-1d6a-4da3-afd2-05c549e55322
└─sda3    2G 1646e0aa-af19-4282-bbab-219c31a2ab6d
sdb      50G
sdc      50G
sr0    13.2G 2024-05-27-14-12-59-00

Shell > ls -l /dev/sd*
brw-rw---- 1 root disk 8,  0 May 24 20:01 /dev/sda
brw-rw---- 1 root disk 8,  1 May 24 20:01 /dev/sda1
brw-rw---- 1 root disk 8,  2 May 24 20:01 /dev/sda2
brw-rw---- 1 root disk 8,  3 May 24 20:01 /dev/sda3
brw-rw---- 1 root disk 8, 16 May 24 20:01 /dev/sdb
brw-rw---- 1 root disk 8, 32 May 24 20:01 /dev/sdc

对 sdb 分区且使用 ext4 进行格式化,操作如下:

# gpt 分区表,只划分一个主分区
Shell > parted /dev/sdb
GNU Parted 3.2
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt
(parted) mkpart primary 0% 100%
(parted) print
Model: ATA VMware Virtual S (scsi)
Disk /dev/sdb: 53.7GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  53.7GB  53.7GB               primary

(parted) quit
Information: You may need to update /etc/fstab.

# 对分区进行格式化,写入 ext4 文件系统
Shell > mkfs -t ext4 /dev/sdb1
mke2fs 1.45.6 (20-Mar-2020)
Creating filesystem with 13106688 4k blocks and 3276800 inodes
Filesystem UUID: 9f817c70-090c-45bd-809f-55933882075d
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424

Allocating group tables: done
Writing inode tables: done
Creating journal (65536 blocks): done
Writing superblocks and filesystem accounting information: done

对 sdc 分区且使用 ext4 进行格式化,操作如下:

# gpt 分区表,只划分一个主分区
Shell > parted /dev/sdc
GNU Parted 3.2
Using /dev/sdc
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt
(parted) mkpart primary 0% 100%
(parted) print
Model: ATA VMware Virtual S (scsi)
Disk /dev/sdc: 53.7GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  53.7GB  53.7GB               primary

(parted) quit
Information: You may need to update /etc/fstab.

Shell > mkfs -t ext4 /dev/sdc1
mke2fs 1.45.6 (20-Mar-2020)
Creating filesystem with 13106688 4k blocks and 3276800 inodes
Filesystem UUID: 162a2ce1-59b8-46ab-9025-5ccce0cf7411
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424

Allocating group tables: done
Writing inode tables: done
Creating journal (65536 blocks): done
Writing superblocks and filesystem accounting information: done

查询分区的情况:

Shell > parted -l
...
Model: ATA VMware Virtual S (scsi)
Disk /dev/sdb: 53.7GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  53.7GB  53.7GB  ext4         primary

Model: ATA VMware Virtual S (scsi)
Disk /dev/sdc: 53.7GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  53.7GB  53.7GB  ext4         primary
...

Shell > lsblk -o NAME,TYPE,SIZE,MOUNTPOINT
NAME   TYPE  SIZE MOUNTPOINT
sda    disk   50G
├─sda1 part    1G /boot
├─sda2 part   47G /
└─sda3 part    2G [SWAP]
sdb    disk   50G
└─sdb1 part   50G
sdc    disk   50G
└─sdc1 part   50G
sr0    rom  13.2G

创建 RAID 0

# -C 创建阵列;-v 显示详细信息;-l 选择 raid 级别;-n 选择硬盘分区数。
Shell > mdadm -C -v /dev/md0 -l raid0 -n 2 /dev/sdb1  /dev/sdc1
mdadm: chunk size defaults to 512K
mdadm: /dev/sdb1 appears to contain an ext2fs file system
       size=52426752K  mtime=Thu Jan  1 08:00:00 1970
mdadm: /dev/sdc1 appears to contain an ext2fs file system
       size=52426752K  mtime=Thu Jan  1 08:00:00 1970
Continue creating array? yes
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

# 扫描 RAID
Shell > mdadm -Ds
ARRAY /dev/md0 metadata=1.2 UUID=599e0387:7eb86175:74cb0f79:ce7ba6aa

# 查询 RAID 的详细信息
## 当有一块磁盘损坏时,这里不会显示 sync 关键字
## 不指定 chunk 的大小,默认 512 KB
Shell > mdadm -D /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Sat May 24 20:18:44 2025
        Raid Level : raid0
        Array Size : 104785920 (99.93 GiB 107.30 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

       Update Time : Sat May 24 20:18:44 2025
             State : clean
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 0

            Layout : original
        Chunk Size : 512K

Consistency Policy : none

              Name : HOME01:0  (local to host HOME01)
              UUID : 599e0387:7eb86175:74cb0f79:ce7ba6aa
            Events : 0

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       33        1      active sync   /dev/sdc1

生成 RAID 配置文件

Shell > mdadm -Ds  >> /etc/mdadm.conf

Shell > cat /etc/mdadm.conf
ARRAY /dev/md0 metadata=1.2 UUID=599e0387:7eb86175:74cb0f79:ce7ba6aa

使用 RAID

此时 /dev/md0 这个块设备就和一般的硬盘一样,需要使用者进行分区、格式化、挂载等操作。

Shell > ls -l /dev/md0
brw-rw---- 1 root disk 9, 0 May 24 20:18 /dev/md0

# 分区
Shell > parted /dev/md0
GNU Parted 3.2
Using /dev/md0
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt
(parted) mkpart primary 0% 100%
(parted) print
Model: Linux Software RAID Array (md)
Disk /dev/md0: 107GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End    Size   File system  Name     Flags
 1      1049kB  107GB  107GB               primary

(parted) quit
Information: You may need to update /etc/fstab.

# 格式化
Shell > mkfs -t ext4 /dev/md0p1
mke2fs 1.45.6 (20-Mar-2020)
Creating filesystem with 26195968 4k blocks and 6553600 inodes
Filesystem UUID: 262924d3-4392-4c6e-9489-68b7a87ed628
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424, 20480000, 23887872

Allocating group tables: done
Writing inode tables: done
Creating journal (131072 blocks): done
Writing superblocks and filesystem accounting information: done

# 挂载(临时)
Shell > mkdir /raid0
Shell > mount -t ext4 /dev/md0p1 /raid0/
Shell > df -hT
Filesystem     Type      Size  Used Avail Use% Mounted on
...
/dev/md0p1     ext4       98G   24K   93G   1% /raid0

若您需要让挂载永久生效,可写入到 /etc/fstab 文件中,如下示例:

/dev/md0p1   /raid0    ext4   defaults    0   2 

其他说明

Q:如何查询操作系统中的 RAID?

mdadm -Dscat /proc/mdstat

Q:怎么将 RAID 0 中的设备移除?

可以使用 mdadm-r 选项,前提是设备处于非活跃状态。你也知道 RAID 0 没有冗余功能,因此这部分的内容放到 RAID 1 试验当中。

将我当前的环境还原:

Shell > umount /raid0

Shell > echo "" > /etc/mdadm.conf

Shell > shutdown -h now

# 在 Vmware Workstation 中移除这两块硬盘
Avatar photo

关于 陸風睿

GNU/Linux 从业者、开源爱好者、技术钻研者,撰写文档既是兴趣也是工作内容之一。Q - "281957576";WeChat - "jiulongxiaotianci",Github - https://github.com/jimcat8
用一杯咖啡支持我们,我们的每一篇[文档]都经过实际操作和精心打磨,而不是简单地从网上复制粘贴。期间投入了大量心血,只为能够真正帮助到您。

评论

  1. Avatar photo
    博主
    1周前
    2025-5-26 10:12:41

    👍👍👍

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇