这个问题涉及到一个更通用的问题 ,但是这次我想更具体地问一下,如果ZFS可以在像我这样的用例中replaceDRBD。 这就是两台服务器,既可以托pipe自己的虚拟机,也可以同时复制虚拟机或其他数据,以减less硬件故障或维护的停机时间。 这个设置是按照预期的,我希望首选本地读/写,并且可以在某个任意时间框架内存在潜在的数据丢失。
DRBD使用不同的镜像协议支持这种情况,其中复制协议A是我所需要的asynchronous。 在我的设置中,DRBD的主要好处是切换到更多的同步协议很简单,只需configuration和重新启动即可。 另外,可以将dm-crypt放在DRBD块设备的顶部,并将文件系统放入dm-crypt,以便每个数据都被encryption。
另一方面,DRBD的问题是它需要块设备,并且需要使用RAID和LVM等其他技术来关心它们的可用性和大小。 特别是resize的东西似乎很有趣,因为我的服务器将来有空闲的插槽来连接更多的磁盘。 为了支持resize ,我需要使用DRBD下的LVM,首先使用LVM添加存储,然后调整DRBD的大小以考虑新的存储。 比我仍然需要处理dm-crypt,文件系统本身等。这看起来很复杂,有点容易出错。
另一方面,像ZFS这样的文件系统已经提供了自己的LVM,并且能够发送/接收增量快照。 所以理论上ZFS应该能够实现相同的协议像DRBD这样的方法不需要使用RAID,LVM等。只需将存储添加到服务器中,将其存入ZFS池中,并立即可用于主持更多/更大的虚拟机或其他。 发送/接收快照听起来和DRBD所做的一样高效,因为它只是增量的二进制数据,无论需要什么开销来描述接收ZFS中要理解的变化。 我已经读过使用无休止循环的人们,没有hibernate时间发送/接收ZFS快照,并在之后再次在源文件中直接删除它们,因为它们仅用于短期复制。
不过,encryption似乎是ZFS的一个问题。 dm-crypt可能在zvols之类的东西上工作,将来它可能直接支持encryption ,但是现在不支持 。 另外,发送/接收快照似乎总是asynchronous的,如果需要的话,没有办法像DRBD提供的那样实现更多的同步协议。 这可能是可以接受的,因为不需要使用LVM并使整个设置更容易。
还是我错了,还有其他方式比发送/接收快照如何ZFS能够转发数据到其他主机开箱即用?
在DRBD镜像协议中,您是否经常在短时间内发现使用ZFS发送/接收快照的一些基本性能差异或限制? 后者可能会更有效率,因为只有块级我猜。
DRBD和ZFS之间的任何其他差异你能想到吗? 请记住,我目前不需要DRBD的高可用性,我现在专注于复制数据。
谢谢!
最近我问了一个类似的(但是不同的) 问题
简而言之,这完全取决于您想实现的复制目标,而且ZoL适合您的用例:
另一方面,我build议你不要使用ZVOL,它隐藏了一些令人讨厌的惊喜 。