Comenzando por el Switch
En redes LAN es útil tener un alto ancho de banda, lo que produciría un aumento de la productividad notable en muchos escenarios, a la hora de transferir ficheros grandes.
No hace falta ser un PRO para que un entorno de estos nos ayude bastante.
La técnica que usaremos sera link aggregation aka lagg.
las pastillas de atrás son droga, no vean eso, es lo mas importante pero no lo vean. |
Es importante un switch compatible y administrable por ejemplo este lo acabo de adquirir por amazon, pequeñito ocho puertos, nada grande, pero funcional por tan solo 65 mangos y no volvernos locos con actualizaciones muy extravagantes, (bueno por los momentos)… tal cual como recomienda Ian 🔥
Maximun Frame Size
|
Device View
Actualmente esta así
-
puerto 1 con cable ethernet
-
puerto 7 y 8 para el LAGG
-
puerto 6 para mi internet
-
proximamente, 2 interfaces sobrantes para el LAGG
LAG Membership
Donde seleccionamos nuestras dos interface para crear ese ID quizas.
LAG Configuration
-
En columna "LAG TYPE" tenemos un combo y dentro usamos LACP
Y por los momentos con eso basta para la parte del switch
Importar/Exportar Backup
Siempre es útil la config, para no perder tanto el tiempo.
Aquí exportamos la configuración en formato .cfg
Aquí importamos el fichero anterior
MTU en NIC ethernet 🤔
Configuración en XigmaNAS
Las versíon usada de XigmaNAS es 12.2.0.4 - Ornithopter (revision 8860)
En este punto me veo en la necesidad de parar todos los jails existentes, antes de crear la interface lagg0, porque sino, no se levantan luego con bastille. |
En el XigmaNAS, por las pruebas que he realizado, no hace falta establecer el MTU, por lo visto el switch ya maneja esa parte, si lo establecemos, ni siquiera los jails arrancan. Error de arriba |
xigmanas: ~# bastille create -V jail1 13.0-RELEASE 192.168.1.3/24 lagg0 (1)
Valid: (192.168.1.3/24).
Valid: (lagg0).
Creating a thinjail...
[jail1]:
ifconfig: BRDGADD lagg0: Device busy
jail: jail1: jib addm bastille6 lagg0: failed
[jail1]: Not started. See 'bastille start jail1'.
[jail1]: Not started. See 'bastille start jail1'.
[jail1]:
ifconfig: BRDGADD lagg0: Device busy
jail: jail1: jib addm bastille6 lagg0: failed
xigmanas: ~#
1 | Intentando crear un jail con V-NET y con la interface lagg0, pero tenemos error, todo esto pasa porque se creo la interface lagg0 ( o la agregración ) antes de parar los jails, e incluso no nos deja crear otro. |
Pestaña Network > Interface Managment > LAGG
Seleccionamos la interface que tengamos disponible en este caso:
-
igb0
-
igb1
A tomar en cuenta
|
Luego de setear aquí la interface, damos un reboot.
Configuración de los jails
Una vez que tengamos nuestra nueva interface, debemos parar nuestros jails y setearles manualmente la interface lagg0 en el fichero jails.conf
bastille stop nuestroJail (1)
1 | Parar nuestro jail rapidamente desde la consola del NAS. Desde la GUI al ser síncrono, se queda bloqueado el main thread, y es medio engorroso ciertas veces. |
exec.prestart += "jib addm bastille0 lagg0"; (1)
1 | En el jails.conf anteriormente estaba la igb0 nuestra interface original, ahora será lagg0. |
Los jails deben pararse si o si, para establecer esta interface manual, no se hace de manera automática, incluso, pasa lo mismo en TrueNAS Core |
Iperf3
Haremos un pequeño benchmark con iperf3
iperf3 -s (1)
1 | El parámetro -s es para el servidor, en este caso, lo ejecutamos en nuestro NAS |
iperf3 -c ipServidor (1)
1 | El parámetro -c es de cliente, obviamente lo ejecutamos en el cliente apuntando a la ip del server/NAS |
La columna TRANSFER nos indica que, si descargo un fichero de mi servidor, tendrá esa velocidad aprox, y de verdad que es bastante aproximada.
Claro esta que funciona.
Descargas via HTTP
Simulando dos personas descargando
Aquí el ancho de banda se divide, pero nada mal, aun así es mucho mas rapido que en un inicio.
Subiendo fichero via Samba/smb
Pensaba de verdad que iba a ser mas lento, pero que va, bastante bien diría, para los anteriores 10MBytes
Samba multichannel
Esta técnica permite escritura/lectura de manera asíncrona aprovechando los threads del procesador, logrando un alto rendimiento, se habla de que esto puede generar inconsistencia en los datos, pero al parecer no es tan así 🤔.
Además que se debe tener las interfaces de red sin lagg 😅 que no es nuestro punto, quizás se toque luego.