Ok so let me start off by saying that I could be completely wrong about everything I am about to say and I am open to any criticisms and feedback. I stumbled upon haProxy because I needed a load balancer for part of my Undergrad engineering thesis. Now I am by no means a networking expert nor do I pretend to be one, but from what I read HaProxy might be able to solve another problem I will have. IF HaProxy is not the tool for this job please point me in the right direction to either make one and opensource it or to one that already exists.
First my plan may seem big and even a little complicated and It probably is, but the 7 men and women I have been working with so far have been doing a very good job at progressing this project.
My goal is to create a software stack that will use VirtualGL and TurboVNC for the base allowing for a series of VNC sessions to be opened on servers. The advantage of this is to allow for a load of users to run 3D accelerated programs on one server and they will all share just one High Performance GPU. Now what I want to do for security and other parts of my thesis which aren’t relevant to this forum is that I want to put all of these “servers” behind a DHCP server acting as a “Master” node per say where a request to have a user connect will go the the DHCP server “Master” node and this node will then find one of its children that has the most resources free to assign this client to connect to. Basically finding the most free server to load a session on. That is all fine and dandy(I think) but do I need to worry about the packets being transmitted if I step in the middle? Say I am connecting using TurboVNC and I connect to the DHCP server even though persay it does NOT have a VNC server on board. How would I go about linking the connection from Server A found under the DHCP server to client N? also what happens if Server A and B both open up a connection on display :1? typically if you connect to a server with the Viewer you need to put in the ipaddress : the display number. this display number is generated by the server when you tell it to spawn a new session for a new user. if a machine located at IP address 10.10.0.102 opened display 1 and 2 and a machine located at IP address 10.10.0.103 opened display 1 and 2 if a user polled the DHCP server asking to connect to the server under display :1 how would the DHCP server/HaProxy/some tool that makes my life easier automatically know to put this user to this ipaddress? I suppose you could say if a user from this public IP address comes in and connects connect them to this session, but what if two people from the same public ip address connect. Also once you connect the client to the server do I need to maintain and watch the connection? would it be better to send a web cookie along with any information to the server to identify who I am and where I am going also if I did that where would I start researching to find this out?
OK so I hope I didn’t steam roll you with questions and I also hope that you are still reading. I want to have a series of these small cluster systems where you have a DHCP/Master server with its children nodes which host the VNC sessions out from them. I then want to have another DHCP/Master server which sits above all of these clusters and then finds the cluster with the least work on it which will then ask that master to find the system with the least work and then it will connect a client to that machine. Basically I want to try and find the best experience possible for the client conecting. I do not know if HaProxy can do this and I do not know how to program for ip Look up tables, I am a computer science and computer enginerring double major undergrad student.
Anything will be helpful
Thank you for your time and patience