iSCSI上的ZFS

我打算使用ZFS和BSD构build文件服务器,并且希望通过iSCSI将存储在其他机器上的驱动器连接到同一机架上,从而使其更具可扩展性(例如,一台机器运行ZFS,另一台机器运行iSCSI可用于连接到ZFS框的目标并添加到zpools)。

寻找其他已经尝试过的人已经非常多地引导我关于在ZFS之上公开iSCSI共享的资源,但是没有任何相关的信息。 主要我有以下问题:

  • 千兆以太网上的iSCSI是否足够快,或者我需要切换到10GbE以获得不错的性能?
  • 当运行iSCSI目标的一台机器与networking断开连接时会发生什么?
  • 有没有更好的方法来做到这一点,我只是不够聪明,已经意识到了?

容量方面,最初这将是大约10TB的数据(不考虑冗余),而在可预见的未来合理的目标将扩展到20TB,因此冗余,可能大约40-50TB的总存储量。 如果可能的话,我们也想保留所有使用GELIencryption的数据。

谢谢你的帮助。

你的能力目标是什么? 这绝对是可能的,因为ZFS将能够看到您的目标并将其聚合到池中。 但是,您在桌面上留下了大量的性能和可靠性。

我推荐的扩展(我认为是您的容量需求)是投资于一个外部SAS多pathcabale驱动器机箱和ZFS友好的控制器。 如果这种情况需要说明的话,那么由一个外部机箱提供的24TB可用RAID 1 + 0存储装满了2TB磁盘,那么您就可以从专家的devisebuild议中受益。 在这个级别上,使用其他系统中存在的磁盘的iSCSI不会让事情变得更快。

iSCSIdevise将因延迟,可靠性和可支持性原因而出现故障。

至于你关于以太网iSCSI的问题 – iSCSI只是你会发现的最快的协议。 基本上是通过电线直接访问磁盘块。 它将饱和一个体面的千兆网卡。

关于在networking上丢失目标,(几乎)我见过的每个iSCSI目标实现都支持某种多path。 我认为open-ietd可能还不支持多path。 最糟糕的是,你正在使用日志文件系统; 当目标恢复在线时,您可能不得不重播日志。 我还没有通过丢弃存储服务器来损坏iSCSI上的文件系统。

注意:我没有真正做到这一点,所以拿一点盐。 在阅读有关ZFS的同时,我已经看到了这一点,但是现在找不到这些参考资料。

您希望将每个物理磁盘导出为单独的LUN,以便ZFS可以全面了解物理布局。 这对于做出有关IO调度和复制的正确决策是非常必要的。

千兆以太网上的iSCSI是否足够快,或者我需要切换到10GbE以获得不错的性能?

这取决于磁盘的速度,磁盘的数量以及要达到的性能。 15k RPM磁盘可以传输高达105MiB / s,这是840Mbit / s。 在单个千兆位链路上访问多个这样的磁盘将使链路饱和并使networking成为瓶颈。 find你想要使用的磁盘的最大速度,乘以磁盘的数量,你将得到你需要支持的networking带宽。

这当然假定您想要ZFS服务器的最大性能。 如果你只有less数客户端连接超过100Mbit / s,这是没有必要的,所以计算出你所期望的最大需求是什么。 请记住,如果您使用的是RAIDZ1 / 2/3,则磁盘带宽略高于客户端带宽,当然,如果服务器通过客户端访问服务器的相同NIC访问磁盘,则此带宽需要共享。

当运行iSCSI目标的机器之一与networking断开连接时会发生什么?

ZFS将看到磁盘变得不可用。 如果你使用RAID1 / 2/3,这不应该中断服务的客户端。 如果您configuration了热备份,ZFS将开始将数据重新同步到它。 当iSCSI目标回来时,ZFS应该再次开始使用它,假设发起者自动重新连接。 (这是你应该testing的东西。)