说我有两台需要超低延迟的服务器(数据库,文件等)。 是否有可能直接连接两个服务器与10GbE,所以每个服务器有1个(在现实世界中它将有2个)连接到“主”networking,但1个网卡与以太网电缆直接连接到第二个服务器,没有交换机或路由器,只是直接连接
Internet/Datacenter | | | | | | | -------------------- | | ------------| Switch |----------- | | | | | -------------------- | | | | | | | | | | | | | | | Network Card 1 (eth0) Network Card 1 (eth0) | | -------------------- -------------------- | | | | | Server 1 | | Server 2 | | | | | -------------------- -------------------- | | Network Card 2 (eth1) Network Card 2 (eth1) | | | | | Direct 10GbE | -------------------------------------------
我的第一个问题是,这甚至可能吗? 他们是否需要configuration任何exception/特殊服务,让他们通过此networking进行通信而不是/etc/sysconfig/network-scripts/
的标准文件? 他们都会在eth1上拥有静态IP,但是路由工作会如何呢? 我不是networking专家,所以这可能是一个问题
第二个问题,有没有意义? 这样做有什么好处,只要让它们通过交换机通过标准的networking连接进行通信,或者给予它们第二个专用networking来进行服务器内部通信(由于客户端访问服务器的标准networking会使用带宽) 。 假设延迟是重中之重。
我知道这种方法有一些问题,比如当我们添加第三台服务器时,我们必须为每台服务器提供另一张网卡,并且可能会设置一些非常复杂的复制三angular形thingy,但是由于这是假设,所以我们忽略了这一点。
而且,由于延迟是关键问题,光纤会比以太网更好(速度并不重要,只要能够达到几Gb /秒)
我从linux的POV中解释了这个问题,因为这是我的背景,但是它可能适用于任何服务器/设备
没有理由为什么你在技术上无法做到这一点。
实际上,我可能会在这种情况下做类似的事情。 从纯Linux的angular度来看,这非常简单,只需给连接一个带有/ 30位掩码的IP地址,给你2个IP地址,那么这是一个简单的点对点链接。
如果你想扩大networking,你可以得到一个10GE交换机,然后有一个单独的VLAN用于服务器之间的通信。 Force10系列交换机中有一些非常shiny的设备,可以进行线速10GE交换,具有巨大的缓冲区。
我不能评论Linux的观点,但我会用我的知识,并提出更多的问题。
你是依赖于低延迟,你需要保持这些服务器同步? 他们是否都在运行一个数据库或其他? 10GbE应该足以满足2台服务器的大部分需求,以保持同步。 我很快宁愿把钱花在2号线中间的一个体面的交换机上,而不是去看你正在看的线路。
你可以用一个体面的交换机标记这些端口,以优先考虑stream量,甚至QoS需要实时的stream量。
我的想法。
我实际上是在两台笔记本电脑之间完成的。 大多数现代LAN适配器之间有自动协商,因此您可以使用常规的LAN电缆。
设置与您使用的任何其他子网不在同一范围内的静态 IP地址 – 例如,如果我的系统位于192.168.xx子网上,则我在它们之间使用10.0.0.x子网。 否则,它应该只是工作
使用这种设置没有任何优势。 今天的交换机正在快速减less,所以你不会因交换机而面临任何可见的延迟。 而且可扩展性对你来说也是一个大问题。 此外,还会有路由设置的问题,因为您将不得不维护两个单独的networking而不是一个。
安全与性能与金钱。
如果反向信道stream量较高且资金较低,请使用直接连接。 这是每天完成的,在许多现实世界的情况下可以比已经超载的开关具有更好的性能。
如果反向信道stream量较低且安全性中等或较低,则绑定NIC以提高整体Internet吞吐量 – 从每个服务器到Internet的两个连接,多家NICS“隔离”复制stream量(单独的IP空间使防火墙,审计,分组跟踪诊断等)。
如果安全性高,大量的钱使用交换机。 更容易扩展。 更容易诊断问题。
在给定的情况下,交换机购买将不被保证。 利用VLAN划分的现有交换机可能是有意义的。 虽然,我看不出任何理由插入交换机,除非服务器是共同的,即没有物理访问。 这是浪费两个交换机端口,除非数据包捕获/debugging处于活动状态。