Collegamento ethernet diretto tra due server


13

Supponiamo di avere due server che necessitavano di una latenza bassissima (database, file, ecc.). Sarebbe possibile collegare direttamente i due server con 10GbE, quindi ogni server aveva 1 (nel mondo reale avrebbe 2) connessioni alla rete 'principale', ma 1 scheda di rete con un cavo ethernet che si collegava direttamente alla seconda server, senza switch o router, solo una connessione diretta

                         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              |
            -------------------------------------------

La mia prima domanda è: sarebbe anche possibile? Avrebbero bisogno di servizi insoliti / speciali configurati per consentire loro di parlare su questa rete oltre a un file standard /etc/sysconfig/network-scripts/? Avrebbero entrambi un IP statico su eth1 ma come funzionerebbero cose come il routing? Non sono un esperto di networking, quindi questa è probabilmente una domanda n00b-ish

Seconda domanda, c'è qualche punto? Ci sarebbero dei vantaggi nel fare questo semplicemente lasciando che comunichino tramite la connessione di rete standard tramite lo switch, o dando loro una seconda rete dedicata solo per comunicare all'interno del server (dal momento che la larghezza di banda sarebbe utilizzata sulla rete standard dai client che accedono ai server) . Supporre che la latenza fosse la priorità.

So che ci sono alcuni problemi con questo metodo, come quando arrivassimo ad aggiungere un terzo server dovremmo ether dare a ogni server un'altra scheda di rete e probabilmente impostare qualcosa di molto complicato sul triangolo di replica, ma dato che questo è ipotetico, ignoriamolo.

E poiché la latenza è il problema chiave, la fibra sarebbe meglio su Ethernet (la velocità non è importante finché può fare un paio di Gb / sec)

Ho formulato questa domanda da un POV di Linux, perché quello è il mio background, ma potrebbe applicarsi a qualsiasi server / dispositivo


1
Come nota a margine, è necessario utilizzare UDP e non TCP per ottenere la latenza a spese della perdita della garanzia di consegna. A seconda delle dimensioni dei pacchetti, anche i frame jumbo potrebbero aiutare limitando il numero di pacchetti.
Shadok,

@Shadok UDP non è ideale per server di database, file server ecc. Ma per il monitoraggio, la registrazione e altre cose non critiche UDP è un'opzione molto migliore, sono d'accordo. Penso che qualsiasi configurazione di rete come questa sarebbe molto probabilmente qualcosa che richiedeva la consegna garantita, ma i pacchetti UDP sulla rete principale hanno molti usi.
Sfumino

Ok, ho avuto l'impressione che la latenza fosse la tua preoccupazione principale e che tu abbia avuto la possibilità di avere un modo per controllare l'integrità o riconoscere la consegna dei pacchetti in un modo diverso rispetto a TCP. Un'idea che ho appena avuto sarebbe quella di implementare un semplice contatore incrementato per ogni pacchetto e quindi richiedere di nuovo quelli mancanti o semplicemente lasciarli cadere, ma sto
divagando

@Shadok - Se sei riuscito a creare una connessione UDP a un database, ciò potrebbe comportare comportamenti imprevedibili e corruzione. Inoltre, in pratica trasformeresti UDP in TCP sequenziando i pacchetti e richiedendone di mancanti. Ecco a cosa serve TCP. Sarebbe meglio ingrassare la Ethernet a 100 ge utilizzare una connessione in fibra
glifo

Risposte:


9

Non c'è motivo per cui tecnicamente non puoi farlo.

Probabilmente farei qualcosa di simile, date le circostanze, in realtà. Da un punto di vista puramente linux, è davvero facile, basta dare alla connessione un indirizzo IP con una maschera / 30 bit, dandoti 2 indirizzi IP, quindi è un semplice collegamento Point-to-Point.

Se si desidera espandere la rete, è possibile ottenere uno switch 10GE e quindi disporre di una VLAN separata per il traffico tra i server. Nella gamma Force10 di interruttori sono presenti alcuni dispositivi molto brillanti che possono eseguire la commutazione 10GE a velocità di linea, con enormi buffer.


5

Non posso commentare un punto di vista di Linux, ma userò solo le mie conoscenze e farò qualche altra domanda.

Sei dipendente dalla bassa latenza e devi sincronizzare questi server? Stanno entrambi eseguendo un database o qualcosa del genere? 10GbE dovrebbe bastare alla maggior parte delle esigenze di 2 server per mantenerli sincronizzati. Preferirei presto spendere i soldi per un interruttore decente nel mezzo del 2 invece di seguire il percorso che stai guardando.

Con uno switch decente puoi contrassegnare queste porte per dare priorità al traffico e persino al QoS il traffico che deve essere in tempo reale.

I miei pensieri.


Dare loro il proprio switch / 'rete privata' sarebbe un'opzione molto migliore di una connessione diretta, in questo modo se avessimo bisogno di aggiungere più server in seguito sarebbe molto più semplice. Anche dare la priorità al traffico è buono, in realtà non mi rendevo conto che potresti farlo, dipende dalle caratteristiche dello switch / dal produttore o è una cosa abbastanza standard?
Macchia

Il QoS sullo switch è molto dipendente dal fornitore, alcuni lo supportano, altri lo supportano in modo molto proprietario, altri lo supportano come da RFC, ma probabilmente dovresti averlo su tutti i dispositivi della rete per vedere qualche effetto decente.
Tom O'Connor,

+1 perché molti switch funzionano a quella che è essenzialmente la velocità dei fili ora. Una rete correttamente configurata sarà vantaggiosa in una miriade di modi già discussi e aiuterà anche a trovare i guasti.
Dan

5

In realtà l'ho fatto tra due laptop. La maggior parte degli adattatori LAN moderni ha una negoziazione automatica tra di loro in modo da poter utilizzare un normale cavo LAN.

Imposta indirizzi IP statici che non si trovano nello stesso intervallo di qualsiasi altra sottorete che stai utilizzando, ad esempio se i miei sistemi si trovano su una sottorete 192.168.xx, utilizzo una sottorete 10.0.0.x tra di loro. Altrimenti, dovrebbe funzionare


2

Non vi è alcun vantaggio nell'utilizzare tale configurazione. gli switch oggi si stanno schiarendo rapidamente, quindi non devi mai affrontare alcuna latenza visibile a causa degli switch. e la scalabilità sarebbe un grosso problema anche per te. Inoltre, ci sarebbe anche un problema di configurazione del routing, poiché dovrai mantenere DUE reti separate invece di una sola.


2
Il vantaggio nella mia situazione era che la connessione diretta ha eliminato la necessità di utilizzare la crittografia SSL su una connessione al database, perché passa attraverso un cavo privato e non uno switch semi-privato in cui è possibile annusare le password.
glifo

2
  1. Sono abbastanza sicuro che avrai bisogno di un cavo incrociato per connettere il Server 1 al Server 2.
  2. Avrai una latenza molto bassa ma la latenza in una LAN con switch moderni è quasi lo zero che puoi ottenere. Sinceramente dubito che vedrai un miglioramento delle prestazioni misurabile.

10
Gb e 10Gb eseguono auto-MDIX, quindi non è necessario un crossover. Questo è solo per 10/100.
MDMarra,

Penso che tu abbia ragione su questo, @MarkM Non credo di averlo mai provato nella vita reale.
SBWorks

2

Sicurezza vs. prestazioni vs. denaro.

  • Se il traffico sul canale posteriore è elevato e il denaro è basso, utilizzare una connessione diretta. È fatto ogni giorno e in molte situazioni del mondo reale può avere prestazioni migliori rispetto a un interruttore già sovraccarico.

  • Se il traffico del canale posteriore è basso e la sicurezza è media o bassa, collegare le schede di rete per aumentare la velocità complessiva di Internet: due connessioni da ciascun server a Internet, NICS multi-home per "isolare" il traffico di replica (spazi IP separati semplificano il firewall , audit, diagnostica dei pacchetti, ecc.).

  • Se la sicurezza è alta e molti soldi usa un interruttore. Più facile da espandere. Più facile da diagnosticare i problemi.

In un determinato scenario un acquisto di switch non sarebbe garantito. L'uso di uno switch esistente con segmentazione VLAN sarebbe possibile. Tuttavia, non riesco a vedere alcun motivo per collegarsi allo switch a meno che i server non siano Co-lo'd, ovvero non fisicamente accessibili. È uno spreco di due porte switch a meno che non sia attivo l'acquisizione / debug dei pacchetti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.