使用 mdadm - RAID1 阵列不镜像其他磁盘

使用 mdadm - RAID1 阵列不镜像其他磁盘

目前,我正在 Ubuntu 20.04 上构建一个 nextcloud 服务器。我有一个磁盘用于在 320GB 硬盘上运行操作系统。我希望数据目录位于 raid1 阵列中,因为如果一个驱动器发生故障,我们仍然可以使用另一个驱动器来存储数据。因此,我在 /dev/md0 上的 raid1 阵列中安装了 2 个 500GB 的硬盘。

当我跑步时:cat /proc/mdstat

Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdb[0] sdc[1]
      488254464 blocks super 1.2 [2/2] [UU]
      bitmap: 0/4 pages [0KB], 65536KB chunk

unused devices: <none>

当我运行:sudo mdadm --detail /dev/md0 时,它显示它是活动的。

/dev/md0:
           Version : 1.2
     Creation Time : Fri Aug 14 16:50:18 2020
        Raid Level : raid1
        Array Size : 488254464 (465.64 GiB 499.97 GB)
     Used Dev Size : 488254464 (465.64 GiB 499.97 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

     Intent Bitmap : Internal

       Update Time : Sat Aug 15 14:50:13 2020
             State : clean
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 0

Consistency Policy : bitmap

              Name : nextcloudserver:0  (local to host nextcloudserver)
              UUID : e525d3e8:2d738f44:59d495fa:2fdcce41
            Events : 9032

    Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync   /dev/sdb
       1       8       32        1      active sync   /dev/sdc

它说状态是干净的。难道不应该重新同步吗?

sudo mdadm --detail /dev/md0

mdadm: No md superblock detected on /dev/md0.

我是不是遗漏了什么?

因此 /dev/md0 安装在 /mnt/raid1 上。我在 /mnt/raid1 中创建了一个文本文件。当我关闭 PC 并拔出 raid1 阵列中的一个硬盘并启动 PC 时。我找不到我在 /mnt/raid1 中创建的文本文件。

如果我运行 cat /proc/mdstat,它会说状态为不活动

所以有人能帮我镜像磁盘吗?这样如果一个磁盘发生故障,nextcloud 仍然有另一个磁盘上的日期。

任何帮助都将不胜感激提前致谢

这是我遵循的教程:(https://www.linuxbabe.com/linux-server/linux-software-raid-1-setup

直到第 5 步我都成功了。插入一个硬盘后,我就无法继续操作了。

答案1

你可以强制它我猜命令是:

mdadm --assemble --force /dev/md0 /dev/sdb /dev/sdc

然而人们创建分区然后在其上创建 md0 阵列,因此命令将变成,

mdadm --assemble --force /dev/md0 /dev/sdb1 /dev/sdc1

(我不明白,但你可能已经在原始磁盘上创建了它......)

它将为您提供您的文件。

重点是磁盘显示为非活动状态,当您强制执行时,它将显示为已分解。通常,一旦阵列处于非活动状态,您应该使用它mdadm --scan --detail来找出发生了什么。如果驱动器发生故障,您应该使用它--fail来呈现它失败。然后使用sgdisk将工作磁盘的 gpt 表复制到新磁盘并更改新磁盘 uuid 并重建阵列。

但您始终可以强制单个磁盘创建阵列。

这里最大的问题是使用 raid1 而不是适当的每日备份。Raid 用于不间断操作,当磁盘发生故障时/proc/mdstat会显示出来,您可以继续操作,甚至可以--fail重新同步磁盘,并且它会自动重建而无需停止操作...

看一下这个:

https://www.thomas-krenn.com/en/wiki/Mdadm_recovery_and_resync

答案2

您的输出cat /proc/mdstat显示 RAID 1 阵列正常运行。

md0 : active raid1 sdb[0] sdc[1]
      488254464 blocks super 1.2 [2/2] [UU]
      bitmap: 0/4 pages [0KB], 65536KB chunk

此处,active表示它已启动,有两个磁盘。您写入 md0 的任何内容都将镜像到两个磁盘。

在您的mdadm --detail输出中,clean表示 MD 认为两个磁盘都同步。/proc/mdstatmdadm --detailresync在您创建阵列后显示,同时它使两个驱动器同步,除非您--assume-clean在命令行中使用mdadm create

我认为后续问题都是由于 RAID 阵列在引导时没有启动,以及引导时没有挂载您创建的文件系统造成的。例如,在下面的输出中,阵列显然没有运行。

sudo mdadm --detail /dev/md0
mdadm: No md superblock detected on /dev/md0.

如果启动后你的阵列没有运行,你可以像这样手动组装它:

mdadm --assemble /dev/md0 /dev/sdb /dev/sdc

然后,挂载您的文件系统。

mount /dev/md0 /mnt/raid1

要使阵列在启动时自动启动,您需要在 中进行配置/etc/mdadm.conf。最简单的方法就是mdadm --detail --scan在阵列运行时发送 的输出。

mdadm --detail --scan >> /etc/mdadm.conf

要在启动时挂载文件系统,请将其添加到/etc/fstab。按照那里的说明操作,或使其看起来像其他条目之一。

正如另一位回答者所说,RAID 不是备份解决方案。当某些硬件发生故障时,RAID 可让您继续运行。但是,如果所有硬件都发生故障,或者硬件或软件损坏了数据,它就无济于事了。因此,如果数据很重要,请研究备份技术。

答案3

尝试这样做:

  1. 运行 ubuntu
  2. 运行终端并写入
  • sudo 密码 root
  • mdadm –create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 缺失
  • mdadm –create /dev/md1 --level=1 --raid-devices=2 /dev/sdb1 缺失
  1. 安装 linux。选择 1 raid。如果在安装过程中出现错误,请在终端中输入以下内容:

LS -l /dev/sd*

mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1

重要提示:DEV 是 USB 密钥

DF-H

mount --bind /dev /target/dev mount --bind /sys /target/sys mount --bind /proc /target/proc cp /etc/resolv.conf /target/etc/resolv.conf chroot /target/ apt install mdadm grub-install /dev/sda exit 然后 joust 重新启动 linux。

如果您要将磁盘添加到同一组(md0),则使用此命令:

sudo mdadm --add /dev/md0 /dev/sdc2

答案4

[解决了]

因此,当我拔出一个驱动器时。我希望能够看到另一个驱动器上的数据。我拔出一个硬盘,运行 cat /proc/mdstat,它显示处于活动状态

然后我尝试

sudo mdadm -S /dev/md0 阻止它

然后

sudo mdadm -A /dev/md0 激活它

并再次挂载文件系统 sudo mount /dev/md0 /mnt/raid1

相关内容