标签: raidz

如何将一个磁盘添加到现有的 raidz zpool?

我有一个 OpenSolaris 服务器,其 zpoolbackupz由四个 SCSI 驱动器组成:

-bash-3.2# zpool status backupz
  pool: backupz
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        backupz     ONLINE       0     0     0
          raidz1    ONLINE       0     0     0
            c7t0d0  ONLINE       0     0     0
            c7t1d0  ONLINE       0     0     0
            c7t2d0  ONLINE       0     0     0
            c7t3d0  ONLINE       0     0     0

errors: No known data errors
Run Code Online (Sandbox Code Playgroud)

我想添加第五个驱动器...但zpool add backupz raidz c7t4d0不起作用...

-bash-3.2# zpool add backupz raidz c7t4d0
invalid vdev specification: raidz requires at least …
Run Code Online (Sandbox Code Playgroud)

solaris zfs raidz

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

ZFS - RAIDZ-1 真的有那么糟糕吗?

我有一台 NAS 服务器,带有 4 个 2TB WD RE4-GP 驱动器,采用 RAID10 配置(4TB 可用)。我的空间不足(剩余可用空间小于 1TB)。我有 0 美元可用于购买更大/更多驱动器/机箱。

我喜欢我读到的有关 ZFS 数据完整性特性的内容,这些特性本身就足以让我从现有的 XFS(软件)RAID10 切换。然后我读到了 ZFS 对 RAID5 的卓越实现,所以我想我什至可以使用 RAIDZ-1 在讨价还价的情况下获得多达 2TB 的可用空间。

不过,我一直在读更多 帖子说差不多,只是从不使用RAIDZ-1。只有 RAIDZ-2+ 足够可靠来处理“现实世界”驱动器故障。当然,就我而言,RAIDZ-2 没有任何意义。在单个池 (RAID10) 中使用两个镜像 vdev 会好得多。

我是不是很想将 RAIDZ-1 用于 4 个 2TB 驱动器?

我应该只使用一个包含两个镜像 vdev(基本上是 RAID10)的池,并希望压缩能给我足够的额外空间吗?

无论哪种方式,我都计划使用压缩。我只有 8GB 的​​ RAM(最大),因此无法进行重复数据删除。

这将在 FreeNAS 服务器上(即将替换当前的 Ubuntu 操作系统)以避免 ZFS-on-Linux 的稳定性问题。

zfs freenas raidz

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

单个硬盘驱动器上的 RAID-Z 是愚蠢的吗?

显然,如果整个驱动器都死了,那么单个磁盘上的 RAID-Z 将无济于事。但是其他类型的错误呢?

根据我的经验,我有时会遇到无法读取的文件。在 Mac OS X 上,系统会挂起一段时间,然后返回错误。我将文件移到某处,并假设该文件有坏扇区或坏块,甚至可能是整个坏道。

我可以追溯到软盘时代,手动管理磁盘故障只是一项常见活动。当然你会尽快更换坏软盘,但有时你不能立即这样做,所以做法是找到坏区,将其分配给一个文件,然后永远不要删除该文件。

第一个问题是硬盘如何失效?我上面的假设有效吗?坏块坏了但整个驱动器仍然大部分可用是真的吗?如果是这种情况,那么 RAID-Z 似乎可以使用其他块(区域)的奇偶校验来修复磁盘的坏块或坏区域。

用例用于备份。如果我每周将数据推送到 8 TB 驱动器一次,将其视为 7 TB 数据驱动器加上 1 TB 奇偶校验是否有意义,希望额外的奇偶校验将帮助我从位腐烂、坏扇区或其他本地化驱动器故障?

如果该理论在技术上没有缺陷,那么可以配置 ZFS 来执行此操作吗?

编辑:我在发布这个问题之前看到了另一个问题。拆分为单独的分区,其中每个分区都组合在一起是一种选择。但在概念上,有可能让 N 个分区的块映射相互交织,这样一个条带,而逻辑上跨越 N 个分区的物理上会非常靠近。这是我的问题的要点“ZFS 可以配置为这样做吗?” 即只是 ZFS ...不是带有分区技巧的 ZFS。

zfs raidz

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

需要更换 zpool 中的磁盘...困惑

我需要更换 FreeNAS 上 zpool 中的坏磁盘。

zpool status 显示

  pool: raid-5x3
 state: ONLINE
 scrub: scrub completed after 15h52m with 0 errors on Sun Mar 30 13:52:46 2014
config:

    NAME                                            STATE     READ WRITE CKSUM
    raid-5x3                                        ONLINE       0     0     0
      raidz1                                        ONLINE       0     0     0
        ada5p2                                      ONLINE       0     0     0
        gptid/a767b8ef-1c95-11e2-af4c-f46d049aaeca  ONLINE       0     0     0
        ada8p2                                      ONLINE       0     0     0
        ada10p2                                     ONLINE       0     0     0
        ada7p2                                      ONLINE       0     0     0

errors: No known data errors

  pool: raid2
 state: DEGRADED
status: One or more …
Run Code Online (Sandbox Code Playgroud)

freebsd zfs freenas raidz zpool

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

ZFS:为未来的驱动器添加做准备

我正在构建一个 Solaris NAS 系统,目前我们有两个驱动器,并计划在以后再添加两个(2TB 企业级 HDD 有点贵!)。

记住我想在未来扩展,设置这些驱动器的最佳配置是什么?

我正在考虑镜像驱动器,然后转换为 raidz 一些如何?

最多只能有 4 个驱动器,其中后两个将在以后购买。

有任何想法吗?

solaris zfs raidz

8
推荐指数
1
解决办法
1759
查看次数

4K 扇区磁盘上 ZFS RAIDZ2 的开销在哪里?

我首先创建了 16 个正好 10 亿字节的空文件:

for i in {1..16}; do dd if=/dev/zero of=/mnt/temp/block$i bs=1000000 count=1000 &> /dev/null; done
Run Code Online (Sandbox Code Playgroud)

然后我在文件上创建越来越大的 RAIDZ2 卷,强制 ashift=12 来模拟 4K 扇区驱动器,例如

zpool create tank raidz2 -o ashift=12 /mnt/temp/block1 /mnt/temp/block2...
Run Code Online (Sandbox Code Playgroud)

然后比较使用df -B1看实际尺寸。

Filesystem  1B-blocks
tank        12787777536
Run Code Online (Sandbox Code Playgroud)

我的结果:

+-------+-------------+-------------+------------+------------+
| disks |  expected   |   actual    |  overhead  | efficiency |
+-------+-------------+-------------+------------+------------+
|     3 |  1000000000 |   951975936 |   48024064 | 95.2       |
|     4 |  2000000000 |  1883766784 |  116233216 | 94.2       |
|     5 | …
Run Code Online (Sandbox Code Playgroud)

linux zfs raidz advanced-format

8
推荐指数
1
解决办法
2432
查看次数

RAID-Z 故障通知

我有一个 FreeBSD 文件服务器,在 RAID-Z 中有一个 10TB 阵列(因此 8TB 可用 2TB 冗余)。我试图弄清楚如果其中一个驱动器出现故障,如何让系统通知我,最好通过电子邮件通知我。这是因为机器在没有屏幕的情况下运行,并且很少直接登录。

我想要一个通知,否则我们唯一的提示是当第二个驱动器运行并带走数据时出现问题。

freebsd zfs raidz

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

如何从一台设备正常但暂时离线的故障 zpool 中恢复?

我在 raidz 配置中有一个带有 4 个 2TB USB 磁盘的 zpool:

[root@chef /mnt/Chef]# zpool status farcryz1
  pool: farcryz1
 state: ONLINE
 scrub: none requested
config:

    NAME        STATE     READ WRITE CKSUM
    farcryz1    ONLINE       0     0     0
      raidz1    ONLINE       0     0     0
        da1     ONLINE       0     0     0
        da2     ONLINE       0     0     0
        da3     ONLINE       0     0     0
        da4     ONLINE       0     0     0
Run Code Online (Sandbox Code Playgroud)

为了测试池,我通过从其中一个驱动器拉出 USB 电缆而不将其脱机来模拟驱动器故障:

[root@chef /mnt/Chef]# zpool status farcryz1
  pool: farcryz1
 state: ONLINE
status: One or more devices has experienced an unrecoverable error.  An …
Run Code Online (Sandbox Code Playgroud)

freebsd raid zfs hard-drive raidz

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

ZFS 如何处理 RAID-Z 中的在线替换(理论值)

这是一个关于 ZFS 和 RAID-Z 的理论问题。为清楚起见,我将使用三磁盘单奇偶校验阵列作为示例,但问题可以扩展到任意数量的磁盘和任意奇偶校验。

假设池中有磁盘 A、B 和 C,并且它是干净的。

假设现在我们物理添加磁盘 D 的目的是替换磁盘 C,并且磁盘 C 仍然正常运行并且只是出于预防性维护而被替换。一些管理员可能只是猛拉 C 并安装 D,这会更有条理,因为设备不需要更改 ID - 但是这确实会使阵列暂时降级,因此对于此示例,假设我们在不脱机或删除 C 的情况下安装 D。Solaris 文档表明我们可以在不先将磁盘脱机的情况下替换磁盘,使用如下命令:

zpool replace pool C D
Run Code Online (Sandbox Code Playgroud)

这应该会导致重新同步到 D。让我们说重新同步沿着“光标”“向下”进行。(我不知道内部实现中使用的实际术语。)

现在假设在重新同步过程中,磁盘 A 出现故障。理论上,这应该是可恢复的,因为上面的游标 B 和 D 包含足够的奇偶校验,而下面的游标 B 和 C 包含足够的奇偶校验。但是,这是否实际上是可恢复的取决于 ZFS 中我不知道的内部设计决策(并且手册在某些方面没有说明)。

如果 ZFS 继续向光标下方的 C 发送写入,那么我们就没事了。但是,如果 ZFS 在内部将 C 视为它已经消失,仅根据 A 和 B 之间的奇偶校验重新同步 D,并且只在光标下方写入 A 和 B,那么我们就干杯了。

一些实验可以回答这个问题,但我希望这里的某个人可能已经知道 ZFS 处理这种情况的方式。提前感谢您的任何见解!

zfs raidz

7
推荐指数
1
解决办法
1732
查看次数

写孔:哪些 RAID 级别受到影响?

在了解 RAIDZ 的优势的过程中,我遇到了write hole的概念。

正如本页所解释的,写空洞是指在写入过程中断电时阵列磁盘之间出现的不一致。该页面还解释了它会影响 RAID-5/6(如果在写入数据后但在计算奇偶校验之前断电)和 RAID-1(数据写入一个磁盘而不是其他磁盘) ,而且它是一个只能要么再同步/擦洗,或其中一个磁盘的重建期间(灾难性)期间被检测到的隐蔽的问题...然而,大多数 所述 其他 来源谈论它,因为它仅受影响的奇偶基于 RAID 级别。

据我了解,我认为这也可能是 RAID-1 的一个问题,因为从包含该漏洞的磁盘读取将返回垃圾,所以...是否每个RAID 级别都有问题?它是否依赖于实现?它只影响软件 RAID,还是硬件控制器?(补充:mdadm这方面的票价如何?)

raid storage mdadm software-raid raidz

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