terminal server

hola , llevo unos dias liado con la idea de manejar mi ordenador de sobremesa con el portatil para tener potencia cuando la necesite y para ello decidi usar terminal server , que si bien no lo habia usado mas que sobre adsl y no va muy bien , sobre lan es logico que tendria que ir perfecto , no?
pues no es asi. he podido comprobar con disgusto que el terminal server de windows al maximo de calidad no solo tiene retrasos importantes en la trasmision de datos (sobre una lan de 100mb por cierto) con los consecuentes pantallazos , sino que ademas no puede realizar cosas como reproducir un video (en realidad si , pero hay que hacer ciertas cosas para conseguirlo que son una chapuza y ademas va como el culo) , lo cual dista mucho de mi idea de manejar el pc de sobremesa como si el portatil fuera su monitor (imaginaos que desastre si quiero ver una pelicula o me da la picada de jugar un juego y que vaya a saltos [triston] ). y vnc (tanto realvnc como tightvnc) tiene los mismos problemas pero aun peores. aparte de que la idea es crear una nueva cesion contra la maquina , no controlar una existente.

expuesto el problema , la pregunta es sobre si podriais indicarme algun programa de terminal server (evidentemente software libre , si no , no estaria preguntando aqui) con el cual pudiera conseguir lo que busco. notad que al decir esto no me refiero a un cliente de terminal server (ya conozco varios. rterminal , remote desktop , son relativamente faciles de encontrar) sino tambien a un servidor de terminal server (ya hemos visto lo que pasa con el de windows , mejor alejarse de el) , que aun preguntandole a google , no encuentro nada.

y si no pudiera ser en windows , que podriais decirme en linux?. he conocido via busqueda avanzada un tal freenx que segun parece es muy bueno , pero no se si como terminal server estandard o llega a la calidad que busco. alguien que lo haya usado podria decirme algo?.

tambien he estado pensando en otro sistema para conseguirlo y seria si finalmente el freenx resultara ser el indicado , usar colinux sobre windows y montar sobre eso el freenx. todavia no lo he meneado mucho , pero tengo entendido que colinux puede usar las X de windows , por lo que el terminal server montado de este modo me mandaria los escritorios de windows , no es asi?


en cualquier caso , ahi queda eso. cualquier ayuda ,comentario , o pregunta seran bienvenidos.
Cualquier sistema que se base en enviar la imágen de lo que se está viendo en un servidor a un cliente, va a ser lento, tanto Terminal Server en Windows como VNC y compañía en las X.

En Linux (en Windows dudo que se pueda):

Lo que estás buscando es conectarte directamente al servidor X remoto. Con SSH lo puedes hacer fácilmente, creas una sesión al servidor, y ejecutas la aplicación gráfica. La aplicación se ejecutará en el servidor, pero se mostrará en tu PC cliente. No tendrás aceleración gráfica, pero es infinítamente más rápido que VNC, puesto que no se manda un "video" de lo que ocurre en el otro ordenador, sólo las "órdenes de dibujado".

Hay muchos tutoriales para prepararlo desde cero, pero por ejemplo distribuciones como Mandriva viene con ello preparado de serie. Básicamente es hacer que el servidor X del servidor acepte conexiones de la red, y configurar SSH para que redireccione las peticiones a través de un tunel.
terminal server se penso para tareas administrativas puntuales (lo malo que windows no tenga un cliente Telnet con una shell decente) o bien para trabajar con el ordenador en remoto con una aplicacion que no sea demasiado exigente a nivel grafico.

ten por cuenta que al trabajar en remoto, por el tubo de red debe ir todo lo que salga por pantalla. eso da para unos 8-12MB/s. si contamos que una imagen a 1024x768x32bits=3MB, con lo cual si los transmitimos sin comprimir apenas podremos ver 3-4 imagenes por segundo. no es que los sistemas de terminal server sean malos, es que la RED no da mas de si... y estamos hablando de Red local 100Mbps, si hablamos de ADSL...

obviamente los datos se comprimen y solo se envian trozos de la pantalla que cambian, ahorrando ancho de banda, pero el escritorio remoto NO SE PENSO para aplicaciones exigentes a nivel grafico o con baja latencia.
siempre puedes cambiar la red a 1Gbps, consiguiendo un maximo teorico de 30fps a traves de la red... pero repito que no fue pensado para eso...

si aun asi quieres montar algo, para coexistencia linux-windows te recomiendo VNC, para windows-windows te recomiendo escritorio remoto (RDP) y para linux-linux te recomiendo freeNX
Churly escribió:Lo que estás buscando es conectarte directamente al servidor X remoto. Con SSH lo puedes hacer fácilmente, creas una sesión al servidor, y ejecutas la aplicación gráfica. La aplicación se ejecutará en el servidor, pero se mostrará en tu PC cliente. No tendrás aceleración gráfica, pero es infinítamente más rápido que VNC, puesto que no se manda un "video" de lo que ocurre en el otro ordenador, sólo las "órdenes de dibujado".


precisamente lo que estaba buscando. al recibir esas "instrucciones de dibujado" en lugar de burdas imagenes , me imagino que la recepcion en el cliente sera perfecta (entendiendo por perfecta no la velocidad , sino que por ejemplo los videos si los mostrara sin tener que realizar movidas raras de abrirlos varias veces y cosas de ese palo) y sera una mera cuestion de tener el suficiente ancho de banda el conseguir que sea como estar sentado frente al ordenador , no?
si tu ya lo has hecho podrias comentarme hasta que punto esto es asi y pueden verse en condiciones videos y juegos (sin aceleracion grafica por lo que dices. aunque no entiendo el porque de esto , es por ser aun algo en lo que no se ha trabajado o hay alguna imposibilidad tecnica?) teniendo en cuenta que el uso que le voy a dar es mayoritariamente lan?.


y ya rizando el rizo , me podria decir alguien algo sobre si este sistema montado en colinux (usando el sistema grafico de windows como X para el colinux) daria resultado , o ya es pedir demasiado?.


venga , gracias por las anteriores respuestas y un saludo.



edit:

no habia llegado a leer tu post f5inet , y he visto algo realmente interesante:

si contamos que una imagen a 1024x768x32bits=3MB


podria saber como haces este calculo?. con este dato podria jugar con los numeros a ver si lo cuadro (por ejemplo , no me importarian 24bits de color en lugar de 32) con los 100mb de red a unos fps mas o menos decentes. la verdad es que cambiar la red a gigabit , va a ser que no. el cableado y conexiones fui previsor y lo instale a gigabit , pero con un switch de 2 bocas de gigabit no me atrevo [tomaaa] .
Lo único que se envía es la capa más alta. No puedes tener aceleración porque eso requiere hardware directo. La aceleración de video y 3D se consigue por medio de overlays, por eso por ejemplo al mover una ventana de un reproductor de video (acelerado) ves un fondo azul ;-)

Pero vamos, a no ser que tengas un equipo cliente muy poco potente, o intentes reproducir un video a muy alta resolución, no tendrás problema.

Reproducir un video con mplayer de 592 x 320, supone unos 8-9 MB/s, más o menos el 85% de una red a 100 mb/s
claro que si, mira:

1024x768x16bits=12582912bits por frame

ahora habria que pasarlo a Bytes=8bits

12582912/8=1572864 Bytes

vamos a seguir reduciendo, 1024bytes=1KB ... 1024KB=1MB

(1572864/1024)/1024=1,5MB por frame

eso seria 1024x768 a 16bits de color.

una red 100mbps te da entre 8-12MBps dependiendo de las tarjetas de red y los discos.
ya veo , parece que lo que busco es imposible (y me hace preguntarme sobre el pedazo de "ancho de banda" que debe tener un simple cable vga para manejar bien todo eso) al menos hasta que el gigabit no se implemente al nivel que ahora estan los 100mb. y la solucion del ssh , si bien es buena y la acabare adoptando , por falta de la aceleracion , no se termina de adaptar a ms necesidades (mi intencion era poder manejar no solo video , sino tambien juegos en mi ruidoso p4 3ghz que se calienta como una vulgar estufa , y verlos en mi centrino desde otra habitacion donde no me llege ni ruido ni calor ningunos :p ).

en cualquier caso , gracias a los 2 por vuestra ayuda [oki] .
Si quieres ver videos a traves de una red usa un protocolo destinado a tal efecto, no uses un cliente remoto ya que la calidad sera penosa. Pon los videos en streaming con calidad muy alta, para tu red local no debería dar problemas. Incluso programas como mplayer pueden hacer streaming de un video en un ftp, y si tu red es mala con tftp solucionas la papeleta.
no es solo video , la idea es manejar el ordenador remoto desde el cliente sin perdidas en la calidad. lo de los videos lo he destacado por ser un punto que especialmente se resiste al terminal server.
de todas formas , por lo dicho , ya he podido comprobar que es inutil , nunca sera 100% como manejar ese pc.
Hombre pero es que video es especialmente malo, y hay protocolos de red que manejan video en streaming muy bien, por eso te decia. Maneja el ordenador a distancia con RDP o VNC o lo que sea y luego para algunas aplicaciones como ver videos usa otros protocolos mas especializados.
si quieres usar la potencia de forma transparente tu P4HT 3Ghz que se calienta cual vulgar estufa, te recomiendo que le eches un vistazo al proyecto openmosix. con openmosix logras hacer que las 2 CPUs trabajen de forma conjunta a traves de la red

te funcionara especialmente bien a la hora de codificar video, enviando toda la tarea pesada de codificar al P4 dejando tu centrino liviano de carga. ademas si usas el cliente grafico de openmosix podras 'enviar' procesos a la otra CPU cuando la tuya ese especialmente cargada.
MUY buena idea , no se me habia ocurrido. habre de meterme en ello a ver que soluciones de computacion distribuida encuentro , pero en principio lo ke me dices lo veo muy bien. lo unico , que lo suyo seria que el openmoxis (o el que sea , me parece que de knoppix tambien habia una distribucion que te montaba la computacion distribuida por live ) aceptara como cliente a un windows , de modo que la potencia del p4 me sirva para ejecutar juegos y comprimir archivos (cosa que en el portatil me trae por el camino de la amargura [snif] )


en fin , gracias de nuevo . a ver que saco en limpio de esta nueva esperanza [qmparto] .
poca esperanza adicional. no hay cliente-servidor de openmosix para windows, solo linux...

o al menos que yo sepa...

eso si, siempre puedes montar un linux en windows a traves de colinux o vmware, pero no se si te compensara...

EDITO: he encontrado algo.. se que me amaras por ello:
http://www-128.ibm.com/developerworks/linux/library/l-colinux/

EDITO2: se que me amaras aun mas... despachando howto...
https://cluster.inf-ra.uni-jena.de/trac/harpy/
[tadoramo] [tadoramo] [tadoramo]

de lujo , he estado googleando y no he encontrado nada reseñable sobre clusters hibridos (algo se habla en hispacluster , pero el foro esta como muy muerto) y al meterme de nuevo aqui te veo venir como caido del cielo :P .


lo he estado ojeando y de momento parece que se refieren a un cluster hibrido en el sentido de sacar potencia de muchas maquinas windows para darsela al cluster base en linux en lugar de al reves , que es justo lo que necesito (sacar potencia de linux para ejecutar las tareas del windows) , pero ya es una base para partir y es probable que desde ahi pueda conseguirlo.


de nuevo , mis agradecimientos , y si de nuevo ves por ahi algo que sirva de ayuda en este sentido , ya sabes en que hilo eres bienvenido [carcajad] .
tienes que tener en cuenta que windows no se desarrollo con el tema de paralelizacion de tareas en mente, por lo cual todo lo que hace windows es bastante 'basico' en ese aspecto.

si te sirve de algo, un poco de vocabulario 'multitarea'
SMP=Symmetric multiprocesor.
ACPI=Advanced Control power interface
grid=rejilla-red

lo que debes buscar es alguna especie de 'daemon' o kernel parcheado de windows que soporte SMP a traves de ethernet... pero eso... creo que va a ser harto dificil, porque el kernel de windows es software cerrado y propietario.

lo que si creo que vi en su dia es algun tipo de hooks y algun icono en 'system tray' que te permitia 'delegar' algun programa en concreto a otras maquinas windows. manteniendo el fronted en tu escritorio. eso si, furulaba en windows 3.1 y usaba un monton de hooks en MSDOS.

PD: prueba a leerte algo de BEOWULF, que creo que llegaron a hacer algo de clusteres con WINDOWS. sin embargo, creo que NADIE ha hecho un cluster de alto rendimiento en windows, solo de alta disponibilidad
-Alta disponibilidad: poner 2 o mas maquinas a hacer LO MISMO, y comprobar si sus respuestas son iguales. permite que al caer una maquina la otra asuma la carga
-Alto rendimiento: Poner 2 o mas maquinas a hacer cosas DISTINTAS, para hacer mas trabajo en menos tiempo.

EDITO: MS me hace callar la boca. hace 2 meses salio un sistema de Clusteres de alto rendimiento made in MS:
http://www.windowsclusters.org/
http://www.microsoft.com/windowsserver2003/ccs/default.mspx

eso si... ¿coste? seguro que prohibitivo... sin embargo, prueba a meterte en la 'beta program' o en el MSDN de los windows server (pico de cerca de 400€ al año, eso si, tienes con licencia TODO el software en server que saque MS en un año). creo que la MSDN universe tambien traeran los server, y eso es un pico de 1000€ al año, mas o menos...

sin embargo vamos a dejar de hablar de soft no libre, que no estamos en el foro adecuado. comentado queda como curiosidad.
14 respuestas