Forum général.général Avis (Serveur + Gaming en lan)

Posté par  . Licence CC By‑SA.
Étiquettes :
0
3
nov.
2015

Bonjour à tous,

J'ai besoin de votre avis a propos de mon idée saugrenue qui m'est passé l'esprit !

J'ai pensé créer un serveur en LAN avec des machines virtuelles.
Ces machines virtuelles permettant de jouer aux jeux les plus gourmands du moment (les machines virtuelles tourneront sous Windows).

Et oui c'est possible grâce à la technologie vt-d (Ex : YOUTUBE)

Mais quel utilité de créer des machines virtuelles au lieu de bêtement utilisé un pc sous Windows et créer des machines virtuelles ?
  • Premièrement, pour avoir un serveur de stockage commun, et des données communes entre les différents ordinateurs du réseau (gain d'argent et de temps)
  • Deuxièmement, pour hébergé un serveur web et un serveur de jeux (ex: Minecraft, Call Of Duty, …)
  • Troisièmement, pour créer plusieurs machines virtuelles (sous Linux, Windows,…)
  • Quatrièmement, pour des raisons de sécurité
Oui mais du coups, comment tu te connectes à ses machines virtuelles ?
  • Pour utiliser ces machines virtuelles en LAN, je me suis dit : "pourquoi pas utilisé un mini-pc !" Raspberry + écran

Mais une question me trotte dans la tête : Serait-il possible de jouer sans perdre trop de temps de latence entre le serveur (qui stream) et l'ordinateur ?

Merci d'avance pour votre avis, en espérant m'être fait comprendre !

  • # Facile

    Posté par  (site Web personnel) . Évalué à 2.

    Serait-il possible de jouer sans perdre trop de temps de latence entre le serveur (qui stream) et l'ordinateur ?

    Non.

    De plus, en étant sur un affichage déporté, ce n'est pas la carte graphique du serveur qui gère l'affichage. C'est purement logiciel, sinon il faudrait que la carte vidéo fasse les calculs, puis que le résultat soit envoyé via le réseau, ce qui n'existe actuellement qu'avec des choses comme VNC, et c'est lent en partie à cause du fait qu'il faut lire une importante quantité de données via le bus PCI (depuis la carte graphique, qui n'est pas optimisée pour cela), puis les envoyer également via le bus PCI (vers la carte réseau). Du 30 images par seconde ferait un débit d'environ 100 Mo/s en ne traitant pas les données.

    • [^] # Re: Facile

      Posté par  . Évalué à 0. Dernière modification le 03/11/15 à 18:26.

      Je vais faire un petit test sur le débit mais si dans le futur le 4k devient la norme de base (comme le full HD maintenant), c'est vrai que ça va vite devenir gourmand …

      Connexion a distance par VNC, oui mais il y a pas d'autre moyens? Comme par http ?(je m'y connais pas du tout la dedans)

      Il n'y aurait pas moyen de "compressé les données" de manière a réduire le débit …?

      • [^] # Re: Facile

        Posté par  (site Web personnel) . Évalué à 2.

        Dernièrement j'ai migré une machine à accès graphique distant (qui utilisait vnc4server) sous x2go. Ça marche bien (vidéo youtube à distance), et ça transporte aussi le son…

        Python 3 - Apprendre à programmer dans l'écosystème Python → https://www.dunod.com/EAN/9782100809141

      • [^] # Re: Facile

        Posté par  . Évalué à 3.

        Je ne sais pas ce qu'est le 4k, mais, sur un écran d'il y à 15 ans (ça va, ça remonte assez?) on avais régulièrement des résolutions de type 1024*768, en 32 bits (soit 4 octets par pixel).
        Dans les 32 bits, 8 (1 octet) sont utilisés pour la transparence, aucun intérêt dans le cas d'un affichage déporté. Donc, on peut se baser sur 3 octets par pixel.
        Partons de 30 FPS, soit 30 images par seconde.
        30* 3* (768*1024) = 70778880 octets par seconde. Pour avoir un truc plus lisible, on divise par 1024 deux fois (pour avoir d'abord en Kio, puis en Mio, qui sont plus parlants):

        70778880 / 1024 / 1024 = 69120 / 1024 = 67,5 Mio. Pour une seule instance à une résolution qui était régulièrement employée il y à 15 ans (mais pas la meilleure de l'époque, loin de là) à une vitesse médiocre (particulièrement pour un FPS) il te faudrait donc un réseau capable de supporter 67.5Mo/s par client (instance de jeu).

        Je te laisse refaire le calcul avec un framerate décent (45 FPS minimum) et une résolution potable (disons 1440*900, c'est pas nickel, mais décent…), tu verras que ce n'est pas gérable, particulièrement si tu passes par du WI-FI (ou il faut prendre en compte les nombreuses pertes réseau) sans même parler du fait que le serveur devra être très costaud.
        Multiplies ensuite par le nombre de joueurs dans ton LAN…

        Connexion a distance par VNC, oui mais il y a pas d'autre moyens? Comme par http ?(je m'y connais pas du tout la dedans)

        Les logiciels comme VNC utilisent des protocoles (un "langage privé" qui permets la communication entre plusieurs logiciels) spécialisés dans le déport d'affichage.
        La plupart des formats et protocoles qui traitent avec l'audio-visuel tendent à perdre des données, afin de faciliter les calculs. Les autres, ceux qui ne perdent pas de données, sont nettement plus gourmands en terme de CPU et de RAM, au minimum (je ne sais pas à 100% si ceux-ci sont d'efficacité identique à ceux impliquant une perte de données, en terme de bande-passante (aka: taille des données) mais à CPU/RAM identique, j'en serai extrêmement surpris).

        HTTP est un protocole spécialisé, à l'origine, dans la transmission de fichiers en conservant (et en transmettant) des méta-données à leur sujet (par exemple, si c'est une image, une musique, un texte, un programme…).
        Étant spécialisé dans le transfert de fichiers, il y à plusieurs limites. L'une d'entre elle est l'absence d'authentification et de chiffrement. Pour l'authentification, les sites web utilisent un contournement: les cookies. C'est du bricolage, et il y à régulièrement des problèmes de sécurité avec ça.
        Pour le chiffrement, ça à été résolu avec le HTTPS. Je ne connais pas assez le fonctionnement des techniques de chiffrement pour essayer d'expliquer ça à un néophyte, mais le chiffrement implique également du temps de calcul pour que les données ne soient pas transmises en clair.

        De plus, la compression est généralement plus performante quand les données se répètent suivant le même modèle régulièrement. Ce n'est plus trop le cas dans les jeux modernes, toujours plus réalistes, sans parler des effets de lumière et d'ombres.

        Il n'y aurait pas moyen de "compressé les données" de manière a réduire le débit …?

        La plupart des algorithmes de compression audio-visuels "perdent" des données. Les autres sont gourmands en terme de calcul.

        À noter que quand je parle de temps de calcul, c'est du temps qui est dépensé des deux côté du réseau.

        Au final, ce serait faisable, mais pas avec des jeux rapides. Un jeu en tour par tour? Oui, sans problème. Un jeu de stratégie, pourquoi pas, avec des graphismes au minimum probablement, par contre un FPS c'est mort.

      • [^] # Re: Facile

        Posté par  . Évalué à 2.

        calcul de bande passante :

        resolution de l'ecran : 1920x1080 (full HD) = 2.073.000 pixels
        avec un profondeur d'image de 24 bits => 49.766.400bits pour une seule image, sans compression.
        soit 6.220.800 octets par images => 5,93Mo

        à 30 images par seconde = 177Mo/s

        on peut esperer que les logiciels de streaming de jeux compressent le flux, mais on risque alors de perdre en qualité
        on peut esperer que le transfert soit "intelligent" en n'envoyant que les morceaux d'image qui ont changés…

  • # tres gros serveurs

    Posté par  . Évalué à 2. Dernière modification le 03/11/15 à 17:57.

    qu'il te faudra un tres gros serveur (à cause des multiples VMs ou alors j'ai pas compris l'interet si c'est pour avoir une VM en marche apres l'autre).

    ensuite le stream ? bah c'est juste un remote desktop, c'est pas gagné question perf sur la 3D.

    mais nvidia ou steam font un truc dans le style, entre un vrai windows et leur boitier de streaming.

    • [^] # Re: tres gros serveurs

      Posté par  . Évalué à 1.

      Je penchais sur l'achat d'un gros serveur :
      - Connexion de fibre optique au router et connexion RJ-45 aux mini-pc
      - 32 Gbit de ram
      - Chipset x99 avec un gros processeur
      - 2 grosses cartes graphiques (titan x ou 980ti)

      • [^] # Re: tres gros serveurs

        Posté par  . Évalué à 2. Dernière modification le 03/11/15 à 20:58.

        ah oui, beau bébé,

        mais tu comptes brancher combien d'utilisateur en meme temps ?

        parce que tes VMs windows en VT-d, c'est pour utiliser 1 carte pour ta VM windows, l'affichage ce fait alors que l'ecran branché sur cette carte graphique.
        donc avec tes 2 cartes, tu en as une pour linux, une pour la VM windows.

        donc au mieux 2 utilisateurs, celui du windows, celui du linux.

        si ton but c'est de faire comme dans le projet LTSP :
        - un gros serveur
        - plein de petit PC client du serveur pour gerer de l'affichage,

        ca va marcher mais pas pour les jeux en VTd
        puisque ca va etre la carte locale du petit PC qui va gerer l'affichage.

        • [^] # Re: tres gros serveurs

          Posté par  . Évalué à 1.

          Le système de base peut tourner via le gpu du processeur, pour les systèmes moins gourmands en graphique (Linux en machine virtuelle ou Windows non gaming), je pourrais utilisé une carte graphique de moyenne gamme voir bas de gamme. La carte mère possédera sûrement beaucoup de slot pci.

          Il y aura sûrement plus que 2 utilisateurs (je pensais à 4 voir un 5ème en mode invité).

          • [^] # Re: tres gros serveurs

            Posté par  . Évalué à 2.

            Il y aura sûrement plus que 2 utilisateurs (je pensais à 4 voir un 5ème en mode invité).

            5 utilisateurs = 6 cartes graphiques et 6 ecrans branchés sur ton serveur pour utiliser le Vt-d
            si tu veux mettre les 5 utilisateurs sur des VMs windows pour qu'ils puissent jouer.

            si c'est juste pour qu'ils aient un bureau linux, alors regarde du coté du projet LTSP qui fait ca
            1 gros serveur, des miniPC en ecran deporté.

            • [^] # Re: tres gros serveurs

              Posté par  . Évalué à 1.

              Effectivement LTSP est vraiment chouette et correspond a ce que je cherchais:
              - Multi OS
              - Gaming supporté
              - Temps de latence correcte (j'ai regardé des vidéos de jeux et ça n'a pas l'ai trop lent)
              - Multi utilisateur sur le même OS

              Maintenant il faudrait que je test ça en machine virtuelle et si cela est bon, je configurerais ça dans mon réseau local futur

              • [^] # Re: tres gros serveurs

                Posté par  . Évalué à 1.

                J'émets de gros doutes quand au fait que LTSP vous fournisse ce que vous recherchez à faire…
                Ou alors installez un client Steam sur l'image LTSP que vous allez mettre à disposition afin de combiner les 2. Mais LTSP seul, je n'y crois pas.

              • [^] # Re: tres gros serveurs

                Posté par  . Évalué à 2.

                • Multi OS

                oui, enfin multi OS linux

                • Gaming supporté

                oui, les jeux linux.

                LTSP va utiliser les ressources locales de ton minipc pour s'executer et afficher.

                donc pour jouer à des jeux recents, sous windows, dans une VM,
                ce n'est pas encore la solution.

                par contre avec de vrais PC dans la salle de jeux, avec des cartes graphiques dédiées,
                tu peux avoir un OS Linux distribué par LTSP, fournir STEAM et KVM à chacun des PCs,

                à eux ensuite d'etre configuré pour gerer la virtualisation avec vt-d…
                mais ca revient à avoir autant de serveur de virtualisation que d'utilisateur, puisque c'est le poste utilisateur qui fait la virtualisation et les calculs.

                finalement ton serveur LTSP peut etre plus modeste puisqu'il ne fournit que le boot PXE et les images de l'OS

  • # Terminaux X

    Posté par  . Évalué à 2.

    Félicitation tu viens de réinventer les terminaux X ;)

    Bon blague à part tu vas perdre en latence, si ce n'est pas grave pour des jeux comme heroes of might en magic, oublies pour les cod ou street fighter, même sur les rts où la microgestion est de mise la perte de quelques ms va se faire sentir.

    Il y a bien des boites qui proposent de jouer en 'streaming', mais elles ont des grosse machines, et espèrent bien que 100% de leurs utilisateurs ne se connectent pas en même temps pour jouer à des jeux gourmands, et il me semble que l'une d'entre elle a coulé.

    Il ne faut pas décorner les boeufs avant d'avoir semé le vent

    • [^] # Re: Terminaux X

      Posté par  . Évalué à 1.

      Terminaux x… J'ai rien réinventé…
      Des machines virtuelles tournant sur un serveur ça existe…
      Une grande compagnie l'a fait : vmware avec leur OS esxi

      • [^] # Re: Terminaux X

        Posté par  . Évalué à 2.

        Des machines virtuelles tournant sur un serveur ça existe…

        oui, vmware, proxmox, xen

        mais l'affichage n'est pas prevu pour faire tourner des jeux 3D dedans,
        mais plutot des applis bureautiques, voire simplement pas d'affichage du tout.

        et souvent les entreprises vont utiliser l'affichage via RDP de windows pour se connecter aux VMs windows.
        du coup la super carte graphique du serveur de virtualisation ne te servira à rien.

  • # Streaming Steam

    Posté par  . Évalué à 1.

    Bonsoir,

    Ou sinon tu peux utiliser Streaming Steam tout simplement. Ça fait tout ce que tu demandes, mais en mieux concernant la latence.

    • [^] # Re: Streaming Steam

      Posté par  . Évalué à 1.

      Je vais me renseigner la dessus, ça à l'air intéressant ! Merci

    • [^] # Re: Streaming Steam

      Posté par  . Évalué à 2.

      la streaming steam, ca fait jouer le jeu sur la machine distante, en plein ecran, et ca stream le flux vers le salon.

      il est recommandé une carte graphique costaud pour faire les rendus et l'encodage avant envoi sur le reseau.

      dans son cas, pour mettre 4 ecrans distants, avec 4 utilisateurs,
      il lui faudra 4 cartes graphiques dédiées pour ses VMs (1 carte dédiée par VM)

      • [^] # Re: Streaming Steam

        Posté par  . Évalué à 1.

        J'ajouterai également qu'il va falloir dédié un disque dur physique par VM, ainsi qu'au moins 2 cœurs et 8 Go de ram si tu comptes faire tourner du bon gros jeu…

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n’en sommes pas responsables.