标签: software-raid

使用 LVM 进行 RAID 与 MDRAID - 优缺点?

他对“混合突袭类型”问题的回答中,HBruijn 建议使用 LVM 来实现 RAID,而不是更标准的 MDRAID。

经过一番调查,LVM 似乎也支持 RAID 功能。过去,我在 MDRAID 之上使用 LVM,直到现在才知道 LVM 也支持 RAID 功能。这似乎是一个相对较新的发展,但我还没有确切地知道这是什么时候实施的。

因此,这些是在 Linux 上实现软件 RAID 的替代方法。这两种不同方法的优缺点是什么?我正在寻找两种方法之间的功能比较,以便人们可以决定哪种方法更适合他们。如果您在答案中包含您的数据,则基于实验的结论(例如,此功能不如此功能好用,这就是原因)也可以。

要解决的一些具体问题:

  1. 假设我想做 sw RAID + LVM(一个常见的场景)。我应该使用 LVM 对 sw RAID 的支持,从而使用一个实用程序而不是两个实用程序吗?这种更集成的方法有什么优势吗?
  2. LVMs 对 sw RAID 的支持与更成熟的 MDADM 相比是否有明显的不足?具体来说,LVM 对 sw RAID 的支持有多稳定/无错误?这种支持似乎只能追溯到 2011 年(见下文),而 MDADM 则要老得多。另外,它在功能集方面如何比较?与 MDADM 相比,它是否有明显的功能缺陷?相反,它是否支持 MDADM 没有的任何 sw RAID 功能?

笔记:

  1. http://www.olearycomputers.com/ll/linux_mirrors.html 上有详细的讨论, 但我不知道它的写作日期。

    Serverfault 上的类似问题:linux LVM mirror vs. MD mirror。不过这个问题是2010年问的,答案可能已经过时了。

  2. 2.02.87 版的变更日志条目 - 2011 年 8 月 12 …

raid software-raid lvm md

64
推荐指数
2
解决办法
7万
查看次数

直接使用分区或整个磁盘创建 mdadm 阵列有什么区别

有人可以向我解释一下,mdadm直接使用分区或整个磁盘创建阵列有什么区别?假设我打算使用整个驱动器。

想象一下以两种方式创建的 RAID6,其中一种是:

mdadm --create /dev/md0 --level=6 --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
Run Code Online (Sandbox Code Playgroud)

或者:

mdadm --create /dev/md0 --level=6 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd
Run Code Online (Sandbox Code Playgroud)

这两种变体中的任何一种有什么区别,以及可能出现的问题?

例如,我指的是此类阵列上的可靠性或可管理性或恢复操作等。

software-raid partition mdadm disk

40
推荐指数
3
解决办法
2万
查看次数

如何安全地更换 Linux RAID5 阵列中尚未发生故障的磁盘?

我在 4 个磁盘上有一个软件 RAID5 阵列(Linux md)。

我想用一个新磁盘替换其中一个磁盘,而不是将阵列置于降级状态,如果可能,联机。这怎么可能?

这很重要,因为我不想:

  • 冒险对其他磁盘施加压力,因此在重建期间可能会崩溃,
  • 冒着处于“非平等状态”的风险,所以我有一段时间没有安全网。

我想在网上这样做要求太多了,我应该dd将旧磁盘的数据原始复制 ( ) 到新磁盘,然后离线替换它,但我认为理论上是可能的......

一些背景:这些磁盘几乎都在连续旋转超过 5.5 年。目前,它们仍然可以完美运行,并且都通过了(长时间的)SMART 自检。但是,我有理由认为这 4 个磁盘中的一个不会持续太久(假设是预测性故障)。

linux software-raid mdadm raid5

31
推荐指数
1
解决办法
2万
查看次数

/dev/mapper 下的 lvm 设备丢失

我正在使用 Debian 挤压,并在​​软件 RAID 1 之上运行 LVM。我只是偶然发现下面的大部分链接/dev/mapper都丢失了,尽管我的系统似乎仍然正常运行。

我不确定发生了什么。我能想象到的唯一原因是我尝试让 LXC fedora 容器工作失败。我最终删除了一个/cgroup/laughlin与容器对应的目录,但我无法想象为什么这会导致问题。 /dev/mapper看起来(我做了一些改变,见下文)大致像

orwell:/dev/mapper# ls -la
total 0
drwxr-xr-x  2 root root     540 Apr 12 05:08 .
drwxr-xr-x 22 root root    4500 Apr 12 05:08 ..
crw-------  1 root root  10, 59 Apr  8 10:32 control
lrwxrwxrwx  1 root root       7 Mar 29 08:28 debian-root -> ../dm-0
lrwxrwxrwx  1 root root       8 Apr 12 03:32 debian-video -> ../dm-23
Run Code Online (Sandbox Code Playgroud)

debian-video 对应于我刚刚创建的一个 LV。

但是,我的系统上有相当多的 VG,对应于分布在 4 个磁盘上的 4 …

software-raid debian lvm

27
推荐指数
3
解决办法
13万
查看次数

Linux - 使用 GPT 修复 RAID1 阵列上的坏块

tl; dr:我将如何修复 RAID1 阵列中 1 个磁盘上的坏块?

但是请阅读整篇文章,了解我已经尝试过的内容以及我的方法中可能存在的错误。我已经尝试尽可能详细,我真的希望得到一些反馈

这是我的情况:我在 RAID1 阵列中设置了两个 2TB 磁盘(相同型号)mdadm。大约 6 个月前,当 SMART 报告它时,我注意到了第一个坏块。今天我注意到了更多,现在正在尝试修复它。

这个 HOWTO 页面似乎是每个人都链接到的一篇文章来修复 SMART 报告的坏块。这是一个很棒的页面,充满了信息,但是它已经过时了并且没有解决我的特定设置。这是我的配置的不同之处:

  • 我在 RAID1 阵列中使用了两个磁盘,而不是一个磁盘。一个磁盘报告错误,而另一个磁盘正常。HOWTO 写的时候只考虑了一个磁盘,这就带来了各种问题,例如“我是在磁盘设备上还是在 RAID 设备上使用这个命令”?
  • 我正在使用 GPT,fdisk 不支持。我一直在使用 gdisk,我希望它能给我提供我需要的相同信息

所以,让我们开始吧。这是我所做的,但是它似乎不起作用。请随时仔细检查我的计算和方法是否有错误。磁盘报告错误是/dev/sda:

# smartctl -l selftest /dev/sda
smartctl 5.42 2011-10-20 r3458 [x86_64-linux-3.4.4-2-ARCH] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed: …
Run Code Online (Sandbox Code Playgroud)

software-raid badblocks smart

22
推荐指数
2
解决办法
2万
查看次数

如何在软 RAID 1 上正确安装 GRUB?

在我的设置中,我有两个磁盘,每个磁盘都按以下方式格式化:

(GPT)
1)  1MB   BIOS_BOOT
2)  300MB LINUX_RAID   
3)  *     LINUX_RAID   
Run Code Online (Sandbox Code Playgroud)

引导分区映射在 /dev/md0 中,rootfs 映射在 /dev/md1 中。md0 用 ext2 格式化,md1 用 XFS 格式化。(我知道必须在 md 设备上而不是在 sd 上进行格式化 - 请告诉我这是否有误)。

如何正确设置 GRUB,以便在一个驱动器出现故障时,另一个仍能启动?并且通过扩展,替换驱动器也将自动包含 GRUB?当然,如果这甚至可能的话。

linux software-raid grub2 xfs

22
推荐指数
2
解决办法
8万
查看次数

mdstat中位图的含义是什么

不久前,mdadm在 RAID6 中创建了具有 4 个驱动器的新软件 RAID 阵列 ( )。它似乎工作得很好。mdstat如下:

Personalities : [raid6] [raid5] [raid4] 
md0 : active raid6 sda1[0] sde1[3] sdd1[2] sdb1[1]
      1953260544 blocks super 1.2 level 6, 512k chunk, algorithm 2 [4/4] [UUUU]
      bitmap: 0/8 pages [0KB], 65536KB chunk

unused devices: <none>
Run Code Online (Sandbox Code Playgroud)

困扰我的是bitmap: 0/8 pages我不明白的部分。

问题是:这是一个潜在的问题吗?请详细说明位图的实际含义。

此数组的完整详细信息如下:

/dev/md0:
        Version : 1.2
  Creation Time : Tue Nov  1 13:44:13 2016
     Raid Level : raid6
     Array Size : 1953260544 (1862.77 GiB …
Run Code Online (Sandbox Code Playgroud)

linux software-raid mdadm

21
推荐指数
1
解决办法
1万
查看次数

如何在另一台机器上作为 mdadm raid 1 一部分的磁盘上挂载/恢复数据?

一些背景

  • 磁盘本身是由朋友“处理”的,据说仍然完好无损,仍然可以安装/恢复
  • 该磁盘是 Ubuntu 12.04 上软件 raid 1 的一部分
  • 原始raid 1中的另一个磁盘被格式化并用于其他目的,使当前磁盘(有问题的磁盘)在技术上仍然是不再存在的raid的一部分

我已经尝试过的

  • 基本安装

    • 我向 fstab 添加了一个条目,将磁盘标记为 ext3/ext4 并尝试挂载。
    • 安装时出现以下错误

      wrong fs type, bad option, bad superblock on

    • 并在dmesg

      EXT4-fs (sdc1): VFS: Can't find ext4 filesystem

  • 我试图找到磁盘的文件系统类型并想出了

    $sudo file -s /dev/sdc
    /dev/sdc: x86 boot sector; partition 1: ID=0x83, starthead 254, startsector 63, 1953520002 sectors, code offset 0xb8

我需要帮助的地方/我的问题

  • 有没有办法在不损坏数据的情况下将磁盘转换为ext4?
  • 有没有简单的方法挂载Linux 83文件类型的磁盘并恢复数据?
  • 我有另一个磁盘当前可用,以防有可能以某种方式重建突袭
  • 我的主要目标是从磁盘恢复数据。我对所有选择持开放态度。

更新

一些命令的输出

  • fdisk -l /dev/sdc

    $fdisk -l /dev/sdc

    Disk /dev/sdc: 1000.2 GB, 1000204886016 bytes
    255 heads, 63 …

software-raid ubuntu mount data-recovery

20
推荐指数
4
解决办法
12万
查看次数

grub-install:文件描述符 3 在 vgs 调用中泄露

我在软件 RAID 1 中的 LVM 上安装了 Debian Jessie。

为了确保MBR写在RAID 1的两个磁盘上,我运行dpkg-reconfigure grub-pc(如建议在这里),然后选择两个磁盘。

我收到这些错误:

root@bouzin:/home/jerome# dpkg-reconfigure grub-pc
Installing for i386-pc platform.
File descriptor 3 (pipe:[1038681]) leaked on vgs invocation. Parent PID 4760: grub-install
File descriptor 3 (pipe:[1038681]) leaked on vgs invocation. Parent PID 4760: grub-install
File descriptor 3 (pipe:[1038681]) leaked on vgs invocation. Parent PID 4760: grub-install
Installation finished. No error reported.
Installing for i386-pc platform.
File descriptor 3 (pipe:[1038681]) leaked on vgs invocation. Parent PID 4789: grub-install …
Run Code Online (Sandbox Code Playgroud)

software-raid lvm grub2

20
推荐指数
1
解决办法
3万
查看次数

如何恢复崩溃的 Linux md RAID5 阵列?

前段时间我家里有一个RAID5系统。4 个磁盘中的一个出现故障,但在移除并放回后似乎没问题,所以我开始重新同步。当它完成时,我惊恐地意识到 4 个磁盘中有 3 个出现故障。但是我不相信这是可能的。磁盘上有多个分区,每个分区是不同 RAID 阵列的一部分。

  • md0 是由 sda1、sdb1、sdc1 和 sdd1 组成的 RAID1 阵列。
  • md1 是由 sda2、sdb2、sdc2 和 sdd2 组成的 RAID5 阵列。
  • md2 是由 sda3、sdb3、sdc3 和 sdd3 组成的 RAID0 阵列。

md0 和 md2 报告所有磁盘已启动,而 md1 报告 3 个失败(sdb2、sdc2、sdd2)。我的理解是,当硬盘驱动器出现故障时,所有分区都应该丢失,而不仅仅是中间的分区。

那时我关闭了计算机并拔掉了驱动器。从那时起,我使用那台计算机和一个较小的新磁盘。

有没有希望恢复数据?我能以某种方式说服 mdadm 我的磁盘实际上在工作吗?唯一可能真正有问题的磁盘是 sdc,但其他阵列也报告了该磁盘。

更新

我终于有机会连接旧磁盘并从 SystemRescueCd 启动这台机器。以上都是凭记忆写的。现在我有一些硬数据。这是输出mdadm --examine /dev/sd*2

/dev/sda2:
          Magic : a92b4efc
        Version : 0.90.00
           UUID : 53eb7711:5b290125:db4a62ac:7770c5ea
  Creation Time : Sun May 30 21:48:55 2010
     Raid Level : raid5
  Used Dev Size : 625064960 (596.11 …
Run Code Online (Sandbox Code Playgroud)

linux software-raid data-recovery raid5

18
推荐指数
1
解决办法
6万
查看次数

标签 统计

software-raid ×10

linux ×4

lvm ×3

mdadm ×3

data-recovery ×2

grub2 ×2

raid5 ×2

badblocks ×1

debian ×1

disk ×1

md ×1

mount ×1

partition ×1

raid ×1

smart ×1

ubuntu ×1

xfs ×1