假设我有两个 2TB 的硬盘,我想启动我的第一个 ZFS zpool。是否可以只使用这两个磁盘创建一个 RAIDZ,为我提供 2TB 的可用存储空间(如果我理解正确的话),然后再添加另一个 2TB 的硬盘,使总可用存储空间达到 4TB。我理解正确吗?还是一开始就需要三个硬盘?
我之所以问这个问题,是因为我已经有一个 2TB 的驱动器正在使用,里面装满了文件。我想转换到 zpool,但如果可以的话,我宁愿只购买两个 2TB 驱动器。据我所知,RAIDZ 的行为与 RAID5 类似(我知道有一些主要区别,但在容量方面)。但是,RAID5 需要 3 个以上的驱动器。我想知道 RAIDZ 是否有相同的要求。
如果必须的话,我可以购买三个驱动器并从那里开始,稍后再添加第四个,但如果我可以从两个开始,然后移动到三个,那么这将为我节省 80 美元。
答案1
有些人使用但不推荐的方法:
- 创建一个包含 2 个驱动器和一个稀疏文件的池(具有正确的虚拟大小以匹配其他驱动器),然后立即将稀疏文件脱机。这将创建一个降级的 RAID-Z1 池,其容量相当于两个驱动器,并且没有冗余。
- 将数据复制到降级池。
- 使用第三个磁盘替换脱机的稀疏文件并重新镀银。
创建 vdev 时所包含的“设备”数量在创建后是永久的。因此,在创建时必须有三个“磁盘”。此方法提供了一种创建降级 RAID-Z1 池并在以后恢复缺失冗余的方法。
不推荐使用这种方法,因为在复制时,如果第三个驱动器不存在,则没有冗余/奇偶校验。但它可以工作。
答案2
不幸的是,目前不可能:
无法将磁盘作为列添加到 RAID-Z、RAID-Z2 或 RAID-Z3 vdev。此功能取决于即将添加的块指针重写功能。但是,可以创建新的 RAID-Z vdev 并将其添加到 zpool。
RAID-Z1 可能只适用于 2 个驱动器,但如果以后无法添加额外的驱动器,这显然没什么用。就可用存储空间而言,使用的驱动器越多,RAID-Z(如 RAID 5)就越高效。
答案3
RAID-Z1 只能与两个磁盘一起使用,但与镜像相比没有任何优势 - 除非您的两个磁盘具有不同的扇区大小,以便它们无法镜像(例如:新的 4K 扇区磁盘和旧的 512 字节磁盘)。
如前所述,不支持向 RAID-Z 添加设备。如果您想向现有 RAID-Z 添加磁盘,唯一的方法是将数据备份到其他地方,销毁池并使用添加的额外磁盘重新创建池,然后恢复数据。
答案4
需要强调的是:
- 如果一个磁盘发生故障而事先不知道何时发生故障...那么为什么两个磁盘不能同时发生故障? 或者三个、四个或五个等等?
但是,考虑一下另一种情况:
- 一个磁盘发生故障
- 你放一个新的,让它“重建”以确保安全
- 当这样的“重建”完成时(可能几个小时),另一个磁盘发生故障
你失去了一切!!! 这是容忍两个磁盘同时发生故障的主要原因。
但是如果您真的很偏执(像我一样),那么您只会使用 Stripping,而不会使用其他 RAID 级别。
我疯了吗?当然不会……我不介意一个磁盘故障并丢失所有数据!我真的不会丢失任何东西,因为我真的很偏执。
我的偏执计划:
- 带有剥离功能的 ZFS(2x、3x、4x......或 10x 磁盘),刚好适合总线的最大带宽(sata III、usb 3.1 gen 2 等)
- 和其他五个 ZFS 类似(没有电源,因此不会被损坏)
如何使用所有这些 ZFS:
- 同时只拥有两个(仅用于同步更改)...就像一个主服务器有五个从服务器
偏执的观点:
- 如果一个 ZFS 出现故障……例如遭到暴风雨袭击、烧毁、被盗等……我在不同的地方(银行、堡垒、互联网云、朋友家、度假屋等)还有五份副本
为了同步其中一些...我必须随身携带一个 ZFS 并在其他物理位置/国家/等进行同步...所以我使用其中一个从属设备。
想想当我在一个 ZFS 上谈论 HDD 时,在另一个 ZFS 上可以是 3.1 Gen2 64GiB USB 棒!不需要大小、类型等相同。
确实是偏执的观点。
对于那些不那么偏执的人,如果他们能够支持失去一切......有RaidZ级别......我更喜欢自己“镜像”。
手动“同步”的另一个优点是您自己的失败:
- 您有一个假设的完美、永不失败的 ZFS 系统,但您决定删除一个文件……几天后,您发现您错过了想要删除的文件,并删除了一个您不想要的文件(由于人为错误)……除非您有备份,否则您就没那么幸运了
所以...再说一遍...如果您需要备份,为什么不仅通过条带化来最大限度地加快 ZFS 速度?...毕竟您仍然需要进行备份。
嗯,答案可能是:
- a24h 在线系统的系统分区
对于数据分区,我认为没有必要使用 RaidZ 级别,相反,只要正在使用的主 ZFS 出现故障,就准备好连接外部 USB ZFS 克隆...只需卸载 ZFS 主点并安装其他好的 ZFS...然后用另一台机器重新创建损坏的离线 ZFS。
如果您有两台计算机,那么您就可以实现 7x24 小时全天候运行,而停机时间仅有几秒钟(启动时间)。
对于希望照片安全的家庭用户...使用两个以上的 ZFS,并且至少有一个或两个永远不会与其他 ZFS 同时连接。偏执?一点也不。
我只是通过痛苦的经历才知道事情可能会变得多么糟糕!
只是为了澄清...发生了什么...
- 我正常使用电脑
- 数据开始失败
- 我取出硬盘,然后把没问题的硬盘放进去
- 它们上面的数据也在不到十秒的时间内被破坏
- 我丢失了所有数据(但没有完全丢失,因为我有点偏执,而且在 DVD 介质上有备份)
问题实际上出在控制器(集成在主板上),而不是磁盘上......它改变了读/写操作的数据。
从那时起...我的数据不再位于内部 SATA 磁盘上...只能在外部 USB 3.1 Gen 2 外壳上,我可以插入和拔出(每个磁盘都在自己的外壳中)...并且当一个出现故障时...我在将该 PC 连接到任何有真实数据的东西之前会测试所有东西...RAM、处理器、USB 端口等...使用虚拟 USB 外壳来测试模式...如果没问题...那么我会测试出现故障的磁盘...它是否可以在另一个外壳上运行,是否可以在另一台 PC 上运行,等等...以真正知道是谁导致了故障...真的很偏执,我知道!
但从经验中可以得出:
- 永远不要相信磁盘故障是由磁盘本身引起的...测试它...它可能是控制器,电缆,电源等。
- 或者更糟糕的是,它可能是 RAM
说到 RAM,我有一台不太旧的 PC(基于 BIOS 的 64 位处理器),如果(考虑三个相同的 RAM 模块,分别称为 A、B 和 C):
- 我把 A 放在 PC 上,运行正常(无论放在四个插槽中的哪一个上)
- 我把 B 放在 PC 上,运行正常(无论放在四个插槽中的哪一个上)
- 我把 C 放在 PC 上,运行正常(但只在四个插槽中的一个,在另一棵树上会导致很多故障、BSOD 等)
- 我把 A 和 B 放进去,结果导致了很多失败、蓝屏等等
- 我把 A 和 C 放在 PC 上,运行正常(无论放在四个插槽中的哪一个上)
- 我把 B 和 C 放在 PC 上,运行正常(无论放在四个插槽中的哪一个上)
- 我在 PC 上安装了 A、B 和 C,结果导致了很多故障、蓝屏死机等
如果我在另一台电脑上测试这些模块,它们都运行良好,没有问题,没有缺陷等等。
事情可能会变得非常疯狂...如果您不测试所有的组合,您就无法知道哪里出了问题...是的,测试四个插槽上的三个 RAM 模块的所有组合真的很偏执...但我的发现让我看不清...如果有另一个模块存在,单独发生故障的模块可以完美工作,但如果有另外两个则不行...是的,我还测试了另外三个,但失败了!
哦,是的,都是同一个品牌、同种类型等等……一模一样……唯一能区分它们的方法是我贴在它们身上的标签!是的,它们是同时购买的,装在同一个制造商锁定的塑料盒中。
有时 ZFS 故障可能是由 RAM 引起的……那么无论您有多少级别的 RaidZ……您都可能失去一切。
哦,差点忘了……使用 ECC 内存,否则 ZFS 不可信!不要使用任何带有内部缓存、内部 RAID 等的 HDD,除非它被设计为按照发送的顺序进行写入(或在断电时执行所有写入)。
我仅使用具有足够内部能量容量的 HDD,以便在突然断电后将其所有缓存写入盘中!
所有这些观点/弱点让我得出一个结论:
- 最好加快速度并自行备份
- 有一些 100% 的副本处于离线状态且没有电源
- 准备好可以接电并更换故障部件的东西
这就是为什么我有 2 台以上配备 10 块 USB 硬盘(5 个 ZFS 副本 *3 个硬盘,每个都已剥离)的 PC... 我兼具了两者的优点... 安全和速度!但我遇到了最糟糕的部分... 需要定期同步所有硬盘... 但数据安全是最重要的部分!而且我不想等待很长时间才能进行此类同步(也就是说,剥离开始起作用)。
如果 3*HDD 条带发生故障...我可以花几个小时/几天/几周的时间来测试这三个条带中哪一个发生了故障...同时我有另一个在线并且可以工作的 ZFS 副本...确保其他两个都没有问题后,我会购买一个新的(可能要 30 到 45 天才能到达)并重新创建这样的 3*HDD ZFS,并将数据放在上面以再次获得第五个副本。
一点都不便宜!但当然不是主数据中心的价格……而且没有电费(大多数硬盘没有电,同时只有 3 个或 6 个)。
希望有人发现这个想法有用(我每天都在用它)。