我将从FreeBSD构build一个ZFS文件服务器。 我最近了解到,一旦它成为游戏池的一部分,我就无法展开RAIDZ udev。 这是一个问题,因为我是一个家庭用户,并且可能会在一年中添加一个磁盘。
但是如果我把整个游戏池的副本数量设置为3,并且将各个驱动器放入游泳池中分离出来呢? 我已经读过一些副本,如果可能的话,将尝试分布在各个驱动器上。 那里有保证吗? 我真的只想保护免受位腐烂和廉价的驱动器故障。 速度不是一个问题,因为它会超过1Gb的networking和最stream量的720p播客。
我的数据可以保证从单个驱动器故障安全吗? 有没有我不考虑的事情? 任何和所有的input是赞赏。
您将不会受到同一池中使用raidz vdev +单个磁盘vdevs的保护。 您应该在当时添加两个磁盘(并将它们镜像到您的zpool),这将覆盖一个磁盘故障。
原因是copies不能保证块将结束在不同的磁盘上。
扩展你的raidz vdev的另一种方法是使用zfs send在你添加一个磁盘的时候临时存储你所有的数据,然后重build你的raidz vdev然后zfs receive它。 一旦你过了几个TB就会很难,因为你需要大量的空间来存储你的数据。
文件系统数据很可能是多余的,特别是在拷贝= 3的情况下,所以你的数据将被保护免受位元腐蚀。
但是,由于没有办法用新的磁盘replace有问题的磁盘,所以它不能被可靠地保护以防整个磁盘发生故障。 即使在发生故障之后,您应该可以访问所有数据,但系统将无法在重新启动后存活,因为您的池不可导入。
请参阅ZFS:丢失驱动器后,如何恢复正确的份数? 对于类似的问题。
有趣的是,今天find了这个。 副本应确保由“副本”创build的同上块存储在不同的vdevs上: https ://blogs.oracle.com/bill/entry/ditto_blocks_the_amazing_tape(请参阅“传播时间”部分)
所以,根据这个博客文章,你将受到保护,以防止有多个副本可用的文件系统上的完整磁盘故障。 但只限于这些文件系统。
“在一个有多个设备(vdevs)的存储池中,事情会变得更加棘手。我们在一个单独的vdev上分配一个块的每个副本”