Linux 组 raid 1

简述

  • 服务器环境

    Debian GNU/Linux 12 (bookworm)

前段时间在家翻箱子翻到了两块 14 年的机械硬盘,一块是西数的蓝盘,另一块是 seg 什么的,不知道是什么牌子,反正放着也是放着,思来想去,想用来当自己的储存服务器,储存一些需要持久化储存的数据,例如照片、视频或者一些比较重要的数据什么的

实话说这两块硬盘不是很敢用,什么时候突然暴毙就完蛋了,但是突然又想起了之前在微信公众号看到的一种技术方式——磁盘冗余阵列,根据各个 raid 等级可以用两个或多个硬盘组成不同的效果,可以让自己的数据储存的更放心一些,所以也就有了这篇文章

这篇文章我想记录一下组 raid 1 的过程以及踩坑记录,希望能不翻车。

安装 mdadm

Mdadm 是管理 Linux 上软件 RAID 的实用程序。它在所有主要发行版中都可用。

sudo apt-get update && sudo apt-get install mdadm

首先看一下我的两个机械硬盘属于被识别为什么名字,其中 sdc 是我的两个机械硬盘,之前装飞牛 nas 遗留的 raid 0,还没有怎么处理它

# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 931.5G 0 disk
└─sda1 8:1 0 931.5G 0 part
└─md127 9:127 0 1.8T 0 raid0
└─trim_53fde9e3_abc8_4c19_9692_c236b5ce6dcf-0 254:2 0 1.8T 0 lvm
sdb 8:16 0 119.2G 0 disk
├─sdb1 8:17 0 512M 0 part /boot/efi
├─sdb2 8:18 0 488M 0 part /boot
└─sdb3 8:19 0 118.3G 0 part
├─Rubbish--computer--vg-root 254:0 0 1T 0 lvm /
└─Rubbish--computer--vg-swap_1 254:1 0 980M 0 lvm [SWAP]
sdc 8:32 0 931.5G 0 disk
└─sdc1 8:33 0 931.5G 0 part
└─md127 9:127 0 1.8T 0 raid0
└─trim_53fde9e3_abc8_4c19_9692_c236b5ce6dcf-0 254:2 0 1.8T 0 lvm
nvme0n1 259:0 0 931.5G 0 disk
└─nvme0n1p1 259:1 0 931.5G 0 part
└─Rubbish--computer--vg-root 254:0 0 1T 0 lvm /

卸载原来的 raid 0

直接给 sda 和 sdc 重新分区就好了

fdisk /dev/sda
// 按 n,一直回车,然后按 w 保存
fdisk /dev/sdc
// 同上

操作完之后重启一下,输入 lsblk 就变成了这样

root@Rubbish-computer:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 931.5G 0 disk
└─sda1 8:1 0 931.5G 0 part
sdb 8:16 0 119.2G 0 disk
├─sdb1 8:17 0 512M 0 part /boot/efi
├─sdb2 8:18 0 488M 0 part /boot
└─sdb3 8:19 0 118.3G 0 part
├─Rubbish--computer--vg-root 254:0 0 1T 0 lvm /
└─Rubbish--computer--vg-swap_1 254:1 0 980M 0 lvm [SWAP]
sdc 8:32 0 931.5G 0 disk
└─sdc1 8:33 0 931.5G 0 part
nvme0n1 259:0 0 931.5G 0 disk
└─nvme0n1p1 259:1 0 931.5G 0 part
└─Rubbish--computer--vg-root 254:0 0 1T 0 lvm /

组 raid 1

照着输命令,这个命令的意思是在 md1 上创建 raid1,然后选择硬盘

mdadm --create --verbose /dev/md1 --level=1 --raid-devices=2 /dev/sda1 /dev/sdc1
// 有选项就输 y
root@Rubbish-computer:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 931.5G 0 disk
└─sda1 8:1 0 931.5G 0 part
└─md1 9:1 0 931.4G 0 raid1
sdb 8:16 0 119.2G 0 disk
├─sdb1 8:17 0 512M 0 part /boot/efi
├─sdb2 8:18 0 488M 0 part /boot
└─sdb3 8:19 0 118.3G 0 part
├─Rubbish--computer--vg-root 254:0 0 1T 0 lvm /
└─Rubbish--computer--vg-swap_1 254:1 0 980M 0 lvm [SWAP]
sdc 8:32 0 931.5G 0 disk
└─sdc1 8:33 0 931.5G 0 part
└─md1 9:1 0 931.4G 0 raid1
nvme0n1 259:0 0 931.5G 0 disk
└─nvme0n1p1 259:1 0 931.5G 0 part
└─Rubbish--computer--vg-root 254:0 0 1T 0 lvm /
root@Rubbish-computer:~# fdisk /dev/m

给 md1 新建分区

fdisk /dev/md1
// 依次输入: n -> 回车 -> 回车 -> 回车 w
root@Rubbish-computer:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 931.5G 0 disk
└─sda1 8:1 0 931.5G 0 part
└─md1 9:1 0 931.4G 0 raid1
└─md1p1 259:2 0 931.4G 0 part
sdb 8:16 0 119.2G 0 disk
├─sdb1 8:17 0 512M 0 part /boot/efi
├─sdb2 8:18 0 488M 0 part /boot
└─sdb3 8:19 0 118.3G 0 part
├─Rubbish--computer--vg-root 254:0 0 1T 0 lvm /
└─Rubbish--computer--vg-swap_1 254:1 0 980M 0 lvm [SWAP]
sdc 8:32 0 931.5G 0 disk
└─sdc1 8:33 0 931.5G 0 part
└─md1 9:1 0 931.4G 0 raid1
└─md1p1 259:2 0 931.4G 0 part
nvme0n1 259:0 0 931.5G 0 disk
└─nvme0n1p1 259:1 0 931.5G 0 part
└─Rubbish--computer--vg-root 254:0 0 1T 0 lvm /

格式化 md1p1,格式为 ext4

 mkfs.ext4 /dev/md1p1
mkdir /mechanical_raid1
mount /dev/md1p1 /mnt/mechanical_raid1/
root@Rubbish-computer:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 931.5G 0 disk
└─sda1 8:1 0 931.5G 0 part
└─md1 9:1 0 931.4G 0 raid1
└─md1p1 259:2 0 931.4G 0 part /mnt/mechanical_raid1
sdb 8:16 0 119.2G 0 disk
├─sdb1 8:17 0 512M 0 part /boot/efi
├─sdb2 8:18 0 488M 0 part /boot
└─sdb3 8:19 0 118.3G 0 part
├─Rubbish--computer--vg-root 254:0 0 1T 0 lvm /
└─Rubbish--computer--vg-swap_1 254:1 0 980M 0 lvm [SWAP]
sdc 8:32 0 931.5G 0 disk
└─sdc1 8:33 0 931.5G 0 part
└─md1 9:1 0 931.4G 0 raid1
└─md1p1 259:2 0 931.4G 0 part /mnt/mechanical_raid1
nvme0n1 259:0 0 931.5G 0 disk
└─nvme0n1p1 259:1 0 931.5G 0 part
└─Rubbish--computer--vg-root 254:0 0 1T 0 lvm /

配置开机挂载

查找 md1p1 的 UUID

root@Rubbish-computer:~# blkid
/dev/mapper/Rubbish--computer--vg-swap_1: UUID="311186db-54d9-4e03-93b7-b2fa17b058f2" TYPE="swap"
/dev/nvme0n1p1: UUID="dm0hnz-6587-hDDp-kYup-OmtG-Mhp3-U23iZd" TYPE="LVM2_member" PARTUUID="f482e853-4f6b-3f48-9194-b574a2f2c6bd"
/dev/sdb2: UUID="c3c94fc5-5d17-44b7-ae10-122a34d801a3" BLOCK_SIZE="1024" TYPE="ext2" PARTUUID="5e0ac597-ccdd-496c-a33c-7b8f149fb276"
/dev/sdb3: UUID="90TQiF-6KDn-p4Eq-ZSXA-x4oA-Xq7Q-2SJF7t" TYPE="LVM2_member" PARTUUID="acc67b2c-f279-47d0-868c-89266ec5e3f1"
/dev/sdb1: UUID="2D83-6E26" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="e0896f57-66c5-48ad-b51e-02fef04220f5"
/dev/mapper/Rubbish--computer--vg-root: UUID="91903da8-e448-4de6-abcf-2cc73d9ba92b" BLOCK_SIZE="4096" TYPE="ext4"
/dev/sdc1: UUID="23ec7260-b69e-aa05-96f8-f8393bee6722" UUID_SUB="64da14d7-8eb0-086a-eb46-a8948a5279cb" LABEL="Rubbish-computer:1" TYPE="linux_raid_member" PARTUUID="578b58f0-9d0c-1f4c-8dec-7f66b139dbe7"
/dev/sda1: UUID="23ec7260-b69e-aa05-96f8-f8393bee6722" UUID_SUB="3aa7b1db-83d0-81b2-a348-9de1b6035f40" LABEL="Rubbish-computer:1" TYPE="linux_raid_member" PARTUUID="71010802-ffff-df40-9b00-c0fdfb035a22"
/dev/md1p1: UUID="a637a848-0aec-4423-808c-fae7f5bb022a" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="e2da37e8-01"

修改配置文件,a637a848-0aec-4423-808c-fae7f5bb022a 是md1p1 的UUID

vim /etc/fstab

// 末尾添加下面这行,这个条目告诉系统在启动时将 UUID 为
// 5607a174-cfb3-476f-b509-a0e2e5f9654b 的 ext4 文件系统挂载到 /mnt/mechanical_raid1目录,
// 使用默认挂载选项,不需要备份,并在启动时进行文件系统检查(在根文件系统之后)。
UUID=a637a848-0aec-4423-808c-fae7f5bb022a /mnt/mechanical_raid1 ext4 defaults 0 2

拓展

为什么 916G 的总可用空间,只有 870G 可用?

因为默认情况下 ext4 保留约5%的空间给 root 用户(防止普通用户占满内存导致系统问题),解决方式:将5%的保留空间调整到1%

sudo tune2fs -m 1 /dev/md127p1  # 将保留空间从 5% 改为 1%
sudo mount -o remount /mnt/mechanical_raid1 # 重新挂载生效
df -h # 检查可用空间是否增加

调整后可用空间来到了 907G