Estoy viendo un comportamiento confuso con respecto a las interfaces unidas en Linux y me gustaría presentar la situación con la esperanza de que alguien pueda aclararme la situación.
Tengo dos servidores: el servidor 1 (S1) tiene 4 conexiones de Ethernet de 1 Gbit; El servidor 2 (S2) tiene 2x conexiones de Ethernet de 1 Gbit. Ambos servidores ejecutan Ubuntu 12.04, aunque con el kernel 3.11.0-15 (del paquete lts-saucy linux-generic).
Ambos servidores tienen todas sus interfaces de red respectivas agrupadas en una única interfaz bond0 con la siguiente configuración (en /etc/network/interfaces
):
bond-mode 802.3ad
bond-miimon 100
bond-lacp-rate fast
bond-slaves eth0 eth1 [eth2 eth3]
Entre los servidores hay un par de conmutadores HP que (creo) están configurados correctamente para LACP en los puertos en cuestión.
Ahora, el enlace funciona: el tráfico de red fluye alegremente hacia y desde ambas máquinas. Y se están utilizando todas las interfaces respectivas, por lo que no es que la agregación esté fallando por completo. Sin embargo, necesito tanto ancho de banda como sea posible entre estos dos servidores, y no obtengo los ~ 2 Gbit / s que esperaría.
En mis pruebas, puedo observar que cada servidor parece asignar cada conexión TCP (por ejemplo, iperf, scp, nfs, lo que sea) a una única interfaz esclava. Esencialmente, todo parece limitado a un máximo de 1 gigabit.
Al configurar bond-xmit-hash-policy layer3+4
, puedo usar iperf -c S1 -P2
para enviar en dos interfaces esclavas, pero en el lado del servidor, la recepción todavía solo se produce en una interfaz esclava y, por lo tanto, el rendimiento total se limita a 1 Gbit / s, es decir, el cliente muestra ~ 40-50MB / s en dos interfaces esclavas, el servidor muestra ~ 100MB / s en una interfaz esclava. Sin configurar bond-xmit-hash-policy
el envío también se limita a una interfaz esclava.
Tenía la impresión de que LACP debería permitir este tipo de agrupación de conexiones, permitiendo, por ejemplo, una sola transferencia scp para utilizar todas las interfaces disponibles entre los dos hosts.
¿Está mal mi comprensión de LACP? ¿O me he perdido algunas opciones de configuración en alguna parte? ¡Cualquier sugerencia o pista para la investigación sería muy apreciada!