Liaison Ethernet directe entre deux serveurs

13

Disons que j'avais deux serveurs qui nécessitaient une latence très faible (base de données, fichier, etc.). Serait-il possible de connecter directement les deux serveurs avec 10 GbE, de sorte que chaque serveur avait 1 (dans le monde réel, il en aurait 2) connexions au réseau «principal», mais 1 carte réseau avec un câble Ethernet qui se connectait directement au second serveur, pas de commutateurs ou de routeurs, juste une connexion directe

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

Ma première question est, serait-ce même possible? Auraient-ils besoin de services inhabituels / spéciaux configurés pour leur permettre de parler sur ce réseau autre qu'un fichier standard /etc/sysconfig/network-scripts/? Ils auraient tous deux des adresses IP statiques sur eth1, mais comment fonctionneraient des choses comme le routage? Je ne suis pas un expert en réseautage, donc c'est probablement une question n00b-ish

Deuxième question, y a-t-il un point? Y aurait-il des avantages à le faire en les laissant simplement communiquer via la connexion réseau standard via le commutateur, ou en leur donnant un deuxième réseau dédié uniquement pour communiquer entre les serveurs (puisque la bande passante serait utilisée sur le réseau standard par les clients accédant aux serveurs) . En supposant que la latence était la priorité.

Je sais qu'il y a des problèmes avec cette méthode, comme lorsque nous sommes venus pour ajouter un troisième serveur, nous devions éther donner à chaque serveur une autre carte réseau et probablement configurer un triangle de réplication très compliqué, mais comme c'est hypothétique, ignorons cela.

Et puisque la latence est le problème clé, la fibre serait-elle meilleure sur Ethernet (la vitesse n'est pas importante tant qu'elle peut faire quelques Gb / s)

J'ai formulé cette question à partir d'un POV Linux, car c'est mon expérience, mais elle pourrait s'appliquer à n'importe quel serveur / appareil

Tache
la source
1
En remarque, vous devez utiliser UDP et non TCP pour gagner de la latence au détriment de la perte de garantie de livraison. Selon la taille de vos paquets, les trames jumbo pourraient également aider en limitant le nombre de paquets.
Shadok
@Shadok UDP n'est pas idéal pour les serveurs de base de données, les serveurs de fichiers, etc., mais pour la surveillance, la journalisation et d'autres choses non critiques, UDP est une bien meilleure option, je suis d'accord. Je pense que toute configuration de réseau comme celle-ci nécessiterait probablement une livraison garantie, mais les paquets UDP sur le réseau principal ont de nombreuses utilisations.
Smudge
D'accord, j'avais l'impression que la latence était votre principale préoccupation et je pensais que vous aviez peut-être un moyen de vérifier l'intégrité ou d'accuser réception de paquets d'une manière différente de TCP. Une idée que je viens d'avoir serait d'implémenter un simple compteur incrémenté à chaque paquet, puis de demander à nouveau les manquants ou simplement de les supprimer, mais je m'égare :)
Shadok
@Shadok - Si vous avez réussi à truquer une connexion UDP à une base de données, cela pourrait entraîner un comportement imprévisible et une corruption. De plus, vous transformeriez essentiellement UDP en TCP en séquencant les paquets et en demandant ceux qui manquent. C'est à ça que sert TCP. Il serait préférable d'engraisser l'ethernet à 100g ou d'utiliser une connexion fibre
glyphe

Réponses:

9

Il n'y a aucune raison pour que vous ne puissiez techniquement pas faire cela.

Je ferais probablement quelque chose de similaire, dans les circonstances, en fait. D'un point de vue purement linux, c'est vraiment simple, il suffit de donner à la connexion une adresse IP avec un masque / 30 bits, vous donnant 2 adresses IP, puis c'est un simple lien point à point.

Si vous souhaitez développer le réseau, vous pouvez obtenir un commutateur 10GE, puis disposer d'un VLAN séparé pour le trafic entre les serveurs. Il existe des équipements très brillants dans la gamme de commutateurs Force10 qui peuvent effectuer une commutation 10GE à débit de ligne, avec d'énormes tampons.

Tom O'Connor
la source
5

Je ne peux pas commenter un point de vue Linux, mais je vais simplement utiliser mes connaissances et poser d'autres questions.

Êtes-vous à ce point tributaire d'une faible latence et que vous devez garder ces serveurs synchronisés? Exécutent-ils tous les deux une base de données ou quelque chose? 10GbE devrait suffire à la plupart des besoins de 2 serveurs pour les maintenir synchronisés. Je préférerais bientôt dépenser l'argent pour un interrupteur décent au milieu des 2 au lieu de suivre l'itinéraire que vous regardez.

Vous pouvez avec un commutateur décent étiqueter ces ports pour hiérarchiser le trafic et même la qualité de service du trafic qui doit être en temps réel.

Mes pensées.

Zapto
la source
Leur donner leur propre commutateur / «réseau privé» serait une bien meilleure option qu'une connexion directe, de cette façon, si nous devions ajouter plus de serveurs plus tard, ce serait beaucoup plus facile. La priorisation du trafic est également une bonne chose, je ne savais pas que vous pouviez le faire, cela dépend-il des fonctionnalités / du fabricant du commutateur ou est-ce une chose assez standard?
Smudge
La QoS sur le commutateur est très dépendante du fournisseur, certains la prennent en charge, certains la prennent en charge de manière très propriétaire, certains la prennent en charge conformément au RFC, mais vous devrez probablement l'avoir sur tous les appareils du réseau pour voir tout effet décent.
Tom O'Connor
+1 parce que de nombreux commutateurs fonctionnent à ce qui est essentiellement la vitesse du fil actuellement. Un réseau correctement configuré sera avantageux dans une myriade de façons déjà discutées, et facilitera également la recherche de pannes.
Dan
5

J'ai fait cela entre deux ordinateurs portables. La plupart des adaptateurs LAN modernes ont une négociation automatique entre eux afin que vous puissiez utiliser un câble LAN ordinaire.

Définissez des adresses IP statiques qui ne sont pas dans la même plage que tout autre sous-réseau que vous utilisez - par exemple, si mes systèmes sont sur un sous-réseau 192.168.xx, j'utilise un sous-réseau 10.0.0.x entre eux. Sinon, ça devrait marcher

Journeyman Geek
la source
2

Il n'y a aucun avantage à utiliser une telle configuration. Aujourd'hui, les commutateurs s'éclairent rapidement, de sorte que vous ne rencontrez jamais de latence visible due au commutateur. et l'évolutivité serait également un gros problème pour vous. En outre, il y aurait également un problème de configuration du routage, car vous devrez maintenir DEUX réseaux séparés au lieu d'un seul.

Farhan
la source
2
L'avantage dans ma situation était que la connexion directe éliminait la nécessité d'utiliser le cryptage SSL sur une connexion de base de données, car elle passe par un câble privé et non par un commutateur semi-privé où les mots de passe peuvent être reniflés.
glyphe
2
  1. Je suis sûr que vous aurez besoin d'un câble croisé pour connecter le serveur 1 au serveur 2.
  2. Vous aurez une latence très faible, mais la latence sur un réseau local avec des commutateurs modernes est aussi proche de zéro que possible. Je doute sincèrement que vous constaterez un gain de performance mesurable.
SBWorks
la source
10
Gb et 10Gb font auto-MDIX, vous n'avez donc pas besoin d'un crossover. C'est seulement pour 10/100.
MDMarra
Je pense que vous avez raison à ce sujet, @MarkM Je ne pense pas que je l'ai jamais essayé dans la vraie vie.
SBWorks
2

Sécurité vs performance vs argent.

  • Si le trafic sur le canal arrière est élevé et que l'argent est faible, utilisez une connexion directe. Il est effectué tous les jours et dans de nombreuses situations du monde réel, il peut avoir de meilleures performances qu'un commutateur déjà surchargé.

  • Si le trafic sur le canal de retour est faible et que la sécurité est moyenne ou faible, liez les cartes réseau pour augmenter le débit Internet global - deux connexions de chaque serveur à Internet, NICS multi-home pour «isoler» le trafic de réplication (des espaces IP séparés facilitent le pare-feu , auditer, faire des diagnostics de trace de paquets, etc.).

  • Si la sécurité est élevée et qu'il y a beaucoup d'argent, utilisez un interrupteur. Plus facile à étendre. Plus facile à diagnostiquer les problèmes.

Dans le scénario donné, un achat de commutateur ne serait pas garanti. L'utilisation d'un commutateur existant avec segmentation VLAN serait possible. Cependant, je ne vois aucune raison de se connecter au commutateur à moins que les serveurs ne soient partagés, c'est-à-dire qu'ils ne soient pas physiquement accessibles. C'est un gaspillage de deux ports de commutateur à moins que la capture / débogage de paquets ne soit active.

Joe
la source