我计划在不久的将来build立一个FreeNAS盒子,但是如果Linux上的ZFS最终certificate是可靠的,那么我可能要切换,只是为了有一个更熟悉的操作系统。
所以我想知道是否可以相信ZFS的不同实现是兼容的。 换句话说,如果我只是将FreeNAS的启动磁盘换成Linux或OpenIndiana,我相信没有什么不好的事情会发生在我的数据上?
这可能看起来像一个愚蠢的问题 – 显然它应该是兼容的 – 但我猜测ZFS不常用于驱动器在计算机之间移动的情况下,所以我希望有人可以提供比只是“ 应该是”。
您应该密切关注zpool版本。 这是ZFS的Oracle,前OpenSolaris,Linux和* BSD变体之间的主要区别。
基本上,您可以将较旧的zpool升级到较新的版本,但不能降级。
奇怪的是,维基百科有不同的zpool版本的最好的总结和它们之间的差异。
ZFS实现当前的zpool版本列表在这里 。
我使用NexentaStor 3.1。 根据这个时间表,我可以使用OpenIndiana和FreeBSD的ZFS文件系统,但不能使用Solaris 11。
不过,我相信FreeNAS是ZFS的一个超旧版本。 考虑Nexenta?
Oracle以外的ZFS开发的未来将引入ZFS特性标志 。 这应该使您可以在基于较旧的ZFS版本的存储池上使用较新的ZFS系统。 所以答案是肯定的,今天从FreeNAS开始,到ZFS之后更加成熟的时候应该是安全的。
我知道FreeBSD现在非常接近Illumos的ZFS更新。 在几天或几周内,新的错误修正或function被添加到FreeBSD-HEAD。 我也相信zfsonlinux项目遵循Illumos ZFS源中的ZFS更改。 如果还没有添加ZFSfunction标志,他们很可能会有ZFSfunction标志。 但是他们目前所做的优先级达到了Illumos和FreeBSD的稳定性和质量水平。
FreeBSD和OpenIndiana中的ZFS支持基于相同的OpenSolaris代码,因此它们在正常的限制范围内是相容的(与其他OpenSolaris衍生产品一样)。 有一个Linux模块可用 ,它允许你在Linux中使用OpenSolaris代码(由于Linux的感染许可,它们不能一起分发)。 这也会因为相同的原因而兼容。
从头开始构buildGPL的ZFS代码库是一个努力。 现在或将来在任何时候都没有兼容性的固有保证。 他们决定采取这个项目是他们自己的责任,虽然他们的“目标”是兼容性,但它还没有实现。
我也看到很多人声称Linux可以包含来自其他许可证的代码。 这是真的。 OpenSolaris所涵盖的CDDL许可证不允许将其包含在对其施加更多限制性条款的项目中。 Linux的GPL要求,当人们对操作系统进行改进时,那些改进会得到回馈; 这个“更具限制性”的术语意味着CDDL代码不能包含在GPL代码中。 给甲骨文一个借口来起诉你可能不是一个好主意。 FreeNAS和其他BSD使用BSD许可证,这比CDDL限制性更小。
我已经移动了一些大池如下:
从solaris 10开始(由于oracle系统下的.edu定价变化而留下)
转移到nexenta(它并不像你希望的那样棒极了……特别是,即使它有debian的用户空间,所有的系统pipe理员的东西仍然是solaris / illumos /不pipe)。
转移到freebsd(没关系,除了我的硬件的scsi驱动程序没有)。 在这里,我添加了一个或两个新的池。
搬到了openindiana(这有点像回家)
所以,一般来说,跨操作系统移动池是完全可能的。 你甚至可以从小端到大端(从sparc到x64,反之亦然)。 然而,关键是,另一个海报说,游泳池的版本。 只要你移动到一个支持相同或更新版本的ZFS代码的系统,你应该感到高兴。 我想这可能是您升级操作系统时避免升级您的池版本的原因。