Evolution auf Windows-Clients bringen

sebanarz

Samba Guru
Hallo,
es geht um folgendes Projekt: Evolution soll serverseitig auf FreeBSD laufen, was ja auch möglich ist. So und nun der Hammer: Über 100 Windows-Clients sollen Citrix-mässig darauf zugreifen können.

Ist dies mit NX möglich? Oder einfach nur X? Ich habe davon leider keine Ahnung, also helft mir bitte :D .

Vielen Dank
Sebastian
 
Ich denke er möchte so ne art Terminal-Services anbieten!
Quasi ein Server der das Programm grafisch und remote zur Verfügung stellt.
Sicher geht das mit X und NX - Performancetechnisch zieht x bei mehreren (!) Apps ziemlich deutlich den kürzeren; Inwieweit NX das schafft ist sicherlich ersteinmal von der Kapazität von Server und Bandbreite im Netz abhängig!

Björn
 
Server werde ich mit 2 Xeon und 4-8GB Speicher ausbauen. RAID5, wobei man nicht viel Plattenplatz brauchen dürfte, ich denke da reichen 3x 36GB U320.

Ja es soll praktisch nur das Anwendungsfenster auf dem Client sein und kein kompletter Desktop.

Wenn ich mich unklar ausdrücke dann bitte Nachfragen!

Gruß Sebastian
 
Laut "c't Werbung" soll NX ja mit einem 10'tel der bei normalem X
übertragenen Daten auskommen, wenn dem so ist, dann ist das wohl
der richtige Weg. Fragt sich wiederum nur wie viel Systemlast die
Komprimierung erzeugt. Meine Empfehlung:
testen und sehen was passiert :D - möglichst bevor du die Hardware aufrüstest ;)

was zur hoelle meinst du mit "citrix"-maessig?
Ähnlich wie NX für X gibt/gab es Citrix für Windows Terminalserver, habe damit
1999 fünf PC's über eine ISDN Leitung laufen lassen - schicke Sache, aber
leider unbezahlbar.
 
Genau, diese Lösung mit Windows ist für 100 Clients unbezahlbar, obwohl wir sie derzeit auf Windows NT 4 Terminal Server in Verbindung mit Outlook 97 und Exchange 5.5 praktizieren! Davon wollen wir nun aber auch weg, nachdem wir die Dateiserver auch schon auf BSD haben. Das Netzwerk ist übrigens serverseitig 2x 1Gps und clientseitig immer 100Mps.
 
Zwei Moeglichkeiten hast Du.

1.) Du verwendest Metaframe fuer Unix, dann hilft dir dieser Link evtl.
http://support.citrix.com/kb/entry!default.jspa?categoryID=130&entryID=1160&fromSearchPage=true
Mit einigen Aenderungen natuerlich. Ein "xhost +" ist vielleicht doch ein wenig uebertrieben.

2.) Du verwendest Metaframe fuer Windows und veroeffentlichst fuer deine Windows Clients einen X-Server fuer Windows ueber welchen dann Evolution augerufen werdden kann.

Metaframe selbst brauch net viel Bandbreite (10-20kb) aber beom X11 koennte es eng werden.

Edit:
Shit, zwei Bier und ich voellig vom Acker.
Hab erst nach dem Posten mitgekriegt was du mit Citrix-maessig meinst :rolleyes:
 
Zuletzt bearbeitet:
Hat keiner Erfahrungen mit FreeNX unter FreeBSD? Wäre euch sehr dankbar, mir ein paar Tipps zu geben, wei ich es am sicherstens und besten installiere.
 
Probier doch erstmal Standard-X und ueberwache die CPU/Netzlast auf dem App-Server. Vielleicht reicht das ja schon aus.
 
Mit deinem angepeilten Hardwareausbau kannst du ziemlich viel erschlagen ;) Persönlich habe ich Evolution noch nicht benutzt und weiß nicht, wie viel Ressourcen das zieht. Da hat es mich mehr in die KDE-Ecke verschlagen.

Grundsätzlich brauchst du für Multiuser-Zugriffe auf einer UNIX-Kiste nicht unendlich viel Power, schließlich ist UNIX aufgrund seiner Geschichte auf genau so etwas ausgelegt. Ich betreue selbst eine größere Thin-Client-Umgebung, in welcher der gesamte Desktop von einer FreeBSD-Maschine geholt wird. Der "Terminal-Server" sieht gegen deine Hardwarevorstellungen ziemlich alt aus, trotzdem gibt es keine Performance-Probleme. Das ist aber immer sehr genau vom jeweiligen Einsatzgebiet abhängig, keine zwei Installationen sind in dem Bereich wirklich vergleichbar.

Du willst also nur Evolution remote ausführen. Dank Shared Memory brauchst du dabei auf dem Server nicht gleich 4 - 8 GB RAM einzuplanen. Steigere dich einfach hoch, indem du testweise mehr und mehr Remotekisten anwirfst, erst 10, dann 20, dann 30 und du kannst ganz gut sehen, wie der Speicherverbrauch in dem Anwendungsfall skaliert.

Dann bleibt natürlich die Frage nach der CPU-Leistung. Es werden nicht alle 100 Anwender gleichzeitig mit der Anwendung arbeiten, das wäre untypisch. Du brauchst also nicht Leistung für 100 gleichzeitige Zugriffe. Da muß man ein bißchen das jeweilige Nutzungsverhalten abschätzen, aber dann eher mehr als weniger. Ich tendiere dann eher zu SMP-Systemen, die erstmal eine CPU bekommen und dann, bei Not am Mann, eben einfach noch eine zweite CPU dazustecken. Wenn die Kiste völlig unterdimensioniert ist, kannst du das natürlich dadurch auch nicht mehr retten, aber soweit verschätzt man sich in der Regel ja zum Glück (eigentlich) nicht.

Der CPU-Verbrauch ist natürlich davon abhängig, welche Übertragungsmethode du verwenden willst. Verschlüsselung und Komprimierung zieht natürlich extra Performance.

Natürlich führen (wie immer unter UNIX) viele Wege zum Ziel. Für eine einzelne, genau definierte Remote-Anwendung halte ich persönlich SSH für die beste Lösung. Mein Tipp wäre also ein SSH-Tunnel, wahlweise mit oder ohne Komprimierung. Bei der Komprimierung sollte man überlegen, ob man sie wirklich braucht. Da muß man abschätzen, wie viele Benutzer gleichzeitig auf die Anwendung zugreifen werden und ob für diese Anzahl von Benutzern die Bandbreite ausreicht.

Als Beispiel könntest du also ein:
Code:
ssh -C 5 -X $RemoteServer /usr/local/bin/evolution
verwenden, um vom Client zum Server mit einer Kompressionsstufe von 5 zu connecten. Zum Komprimieren muß natürlich auch der Client ein bißchen Power aufbringen, aber im Zweifel kann man ja auch mal mit niedrigeren Kompressionsleveln testen.

Mann, habe ich wieder viel gebrabbelt... Aber das Thema ist irgendwie zu komplex, um es in drei Sätzen abzuhaken. Und meist kann man noch so viel schreiben, um einen ausführlichen Testversuch kommst du eigentlich nicht drumrum.
 
Hmm, war mein Beitrag wirklich so lang, daß man ihn nicht bis zum Ende lesen kann? Dann zieh ich noch mal den entscheidenden Teil raus:
p.h. schrieb:
Als Beispiel könntest du also ein:
Code:
ssh -C 5 -X $RemoteServer /usr/local/bin/evolution
verwenden, um vom Client zum Server mit einer Kompressionsstufe von 5 zu connecten.
 
Du brauchst ja nur noch einen X-Server dazu. Den kannst du zum Beispiel ziemlich schmerzlos von einer Live-CD bekommen. Eine "echte" Cygwin-Installation halte ich da für überzogen. Weitere Infos unter: http://www.bsdforen.de/showthread.php?t=6143&page=2 (Beitrag #19)
Das kannst du dann auch schön auf einem Netzlaufwerk lagern und brauchst nicht auf jedem Client Cygwin draufzubügeln (macht bei 100 Clients doch schon was aus).
 
Okay. Ich bekomme von jedem Programm die ich starten will folgendes gesagt:
cannot open display

Was ist noch einzustellen?

Gruß Sebastian
 
Wie startest du die Programme denn? Ist der X-Server zu dem Zeitpunkt schon gestartet?
 
Also, ich habe das jetzt mal selbst ausprobiert (normalerweise habe ich mit Windows nicht viel am Hut, daher keine große Praxis-Erfahrung). Der Cygwin-X-Server verweigert bei mir jeden Verbindungsaufbau aus der SSH-Session heraus, trotz Herumfummeln an $DISPLAY und xhost(1). Hach ja, kaum will man mal was mit Windows machen, artet das in Gefummel aus :(

Wenn auf der Windows-Seite also nix funktioniert, mußt du eben die FreeBSD-Seite passend machen (da kenn ich mich auch besser aus ;)). Laß einen XDMCP-fähigen Login-Manager auf dem Server laufen, erstelle dafür eine minimale Session, die nach der Anmeldung nur Evolution startet und verbinde von der Windows-Seite aus mittels -query direkt zu dem Server. Dann kannst du halt nichts mit Public Keys machen und der Nutzer muß immer Benutzernamen und Paßwort eingeben. Aber diese Lösung funktioniert auf jeden Fall auch zusammen mit Windows.

Vordergründig kann man das als "Aushilfslösung" bezeichnen, aber die hat noch einen ganz großen Vorteil: Wenn du (irgendwann mal) die Last auf mehrere Server verteilen willst, brauchst du keine 15.000 DM für Citrix oder so einen Mist auszugeben, sondern startest einfach auf jedem Server einen XDMCP-Login-Manager und läßt die Clients mit -broadcast den nächstverfügbaren Server suchen. Das klappt auch sehr gut mit der XLiveCD von Windows aus.

Außerdem kannst du dir bei Bedarf auch den kompletten Desktop holen.
 
Zurück
Oben