AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 866214
Accepted
inf3rno
inf3rno
Asked: 2017-08-01 23:38:43 +0800 CST2017-08-01 23:38:43 +0800 CST 2017-08-01 23:38:43 +0800 CST

BTRFS 自我修复是否仅通过软件 RAID 起作用?

  • 772

AFAIK。RAID 有 3 种类型:

  • 硬件 - 例如昂贵的 PCIE RAID 卡/或很少有板载 RAID,它有一个专用的 CPU,可能带有写缓存和 BBU
  • 软件 - 例如 ZFS、MD、BTRFS 软件 RAID
  • 假的 - 例如便宜的 PCIE RAID 卡/或大多数使用主板上的 RAM 和 CPU 的板载 RAID。

通过使用 BTRFS 软件 RAID,文件系统了解驱动器,当它发现校验和错误的块时,它可以使用克隆 (RAID1/10) 或奇偶校验 (RAID5/6) 来恢复受影响的块并修复错误. 所以我们的文件不会随着时间的推移而降级。

问题是相同的自我修复机制是否适用于硬件或 BTRFS 的假 RAID?

我想应该有一个 API,BTRFS 可以使用它来访问受影响块的克隆/奇偶校验并修复它。我认为板载 RAID 更有可能获得类似的东西,但我不知道这样的事情是否存在,或者每个 RAID 的实现方式都不同,并且 BTRFS 没有可以使用的标准 API。

raid
  • 1 1 个回答
  • 1802 Views

1 个回答

  • Voted
  1. Best Answer
    USD Matt
    2017-08-02T01:42:00+08:002017-08-02T01:42:00+08:00

    努力从这个问题中弄清楚,但我想我还是可以回答的。

    BTRFS 是软件 RAID,由 Linux 内置的 BTRFS 软件处理。为了对阵列进行任何类型的维护,您需要在操作系统中使用 btrfs 命令。

    就您的硬件而言,包括任何 RAID 控制器,磁盘只是基本的块设备。除了 Linux* 中的 BTRFS 软件之外,没有任何东西知道磁盘是阵列的一部分。

    *其他操作系统也有可能实现 BTRFS,但我认为这不太可能,至少目前是这样。

    更新:在现有 RAID 阵列上使用 BTRFS。

    在这种情况下,RAID 和 BTRFS 是完全分开的。以硬件镜像为例:

    • BTRFS 不知道它在镜像上,并将数据写入单个设备(/dev/raid在本例中调用它)。由 RAID 控制器在两个磁盘上进行镜像。
    • 如果设备发生故障,BTRFS 将照常读取数据,并且不知道磁盘发生故障。由 RAID 控制器负责保持/dev/raid功能和读/写数据到剩余磁盘。更换磁盘时,还要由 RAID 控制器来重建阵列。

    无论如何提供 RAID(硬件/“假”或软件),情况都是如此

    我认为我解释得不是很好,但这是一个非常简单的概念......如果单独的设备(或软件)正在处理 RAID,则修复 RAID 数据不取决于 BTRFS。它在单个磁盘上看到单个文件系统,就像在 RAID 阵列上运行的任何其他文件系统一样。

    • 2

相关问题

  • Windows 文件服务器性能调优

  • SSD TRIM 的硬件 RAID 控制器支持

  • 了解磁盘队列长度

  • 使用混合磁盘突袭 0?

  • Windows Server 2008 Hyper-V 虚拟化服务器的最佳 RAID 配置?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve