[Citrix] subst, maar dan op bestandsniveau

Pagina: 1
Acties:

  • Rataplan_
  • Registratie: Maart 2000
  • Laatst online: 05-12-2025
Ik ben op zoek naar een tooltje waarmee ik een 'virtueel' bestand kan aanmaken, een soort van subst maar dan op bestandsniveau. Waarom? Ik werk aan een groot project waarbij educatieve software via citrix aangeboden zal gaan worden aan basisscholen. Applicaties die niet geschikt zijn om in netwerken te draaien, zullen toch aangeboden worden, en dat dus via een Citrix farm.
Er is software die werkt met een database, meestal wel naar SQL om te leiden waarmee weinig problemen zijn. Echter er is ook veel software, bv die in <installatiedir>\data de gegevens bijhoudt. Aangezien er per pakket het liefste slechts EEN installatie op de farm is, zullen scholen in elkaars data terecht komen. Dit willen we natuurlijk niet. Wat dus de bedoeling is is het volgende:

Stel we hebben een pakket sesamstraat. Op de Citrix servers staan die geinstalleerd op de D:
D:\SESAMSTRAAT hierin staat het pakketje geinstalleerd.
D:\SESAMSTRAAT\DATA Hierin staat de data (duh) van de gebruikers (resultaten, namen van leerlingen, groepen waarin zij zitten)

Nou wil ik dus dat de gebruikers van school A dezelfde installatie gebruiken als de leerlingen van school B. Echter moeten ze wel hun eigen data krijgen. Ik wil niet voor elke school een eigen installatie opzetten, want het worden uiteindelijk nagenoeg alle basisscholen van Nederland (ongeveer 10.000 scholen (en ja dat gaat lukken, we zijn door de overheid gesteund)). Eigen installaties per school zou TEveel schijfruimte en onderhoud vergen. Daarom kreeg ik het volgende idee: onder Linux kan je met het een of ander commando een soort doorverwijzing maken op een bepaald bestand (vraag me niet hoe maar dat is me gezegd). En dat wil ik dus onder Windows 2000/2003 ook voor elkaar krijgen. Ik zou dan in de inlogscripts iets moeten kunnen zetten in de trand van (voorbeeld)

MAP d:\sesamstraat\data\data.dat \\fileserver\%username%\data.dat

Alle calls van programma's naar d:\sesamstraat\data\data.dat zouden dan omgeleid moeten worden naar hun eigen databestandjes op de fileserver. Het tooltje dat ik nodig heb zal dus waarschijnlijk op file-system niveau moeten werken.

Wat ik ook niet wil is dat via een of andere mapping, temp-dir of ram-drive of wat dan ook het hele pakket gekopieerd wordt, waardan vervolgens de juiste ini-files of databestanden worden bijgezet. Is goed mogelijk, maar kost teveel schijfruimte en is niet meer overzichtelijk, zeker niet wanneer ICA sessies gaan crashen.

Hopelijk is beetje duidelijk wat ik wil. VOor de mensen die zich nog afvragen hoe haalbaar een dergelijk project is: tja... het is educatieve software, stikt van de multimedia. Hiertoe krijgen wij giga en gigabits aan bandbreedte, verdeelt over verschillende hostingcentra in NL. Wij hebben direct contact met Citrix zelf, KPN, Kennisnet en meer organisaties. Wat betreft hardware eisen komen we er dus wel... nu de software nog :)

trouwens als iemand een ander idee heeft om iets dergelijks op te lossen, graag.

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Voor zover ik weet heeft NTFS (en 'dus' Windows) alleen mogelijkheden om symlinks te maken naar directories (met bijv. linkd in de resource kit of het junction van sysinternals).

edit:
Wat er met WinFS mogelijk is/wordt weet ik eigenlijk niet :o
linkd gaat niet doen wat jij wil omdat het in het filesystem zit, en niet op een 'per sessie' level.
Stomstom, had ik niet eens aan gedacht :X 8)7

[ Voor 46% gewijzigd door F_J_K op 22-08-2003 08:24 ]

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Rataplan_ schreef op 21 August 2003 @ 16:00:
Ik ben op zoek naar een tooltje waarmee ik een 'virtueel' bestand kan aanmaken, een soort van subst maar dan op bestandsniveau.

...

Stel we hebben een pakket sesamstraat. Op de Citrix servers staan die geinstalleerd op de D:
D:\SESAMSTRAAT hierin staat het pakketje geinstalleerd.
D:\SESAMSTRAAT\DATA Hierin staat de data (duh) van de gebruikers (resultaten, namen van leerlingen, groepen waarin zij zitten)
linkd gaat niet doen wat jij wil omdat het in het filesystem zit, en niet op een 'per sessie' level.

Overigens zou ik zeggen dat het automatisch kopieeren van de data (gescript) zo'n gek idee nog niet is omdat de belasting en afhankelijkheid van je fileserver clusters is een heel stuk lager gaat zijn. Ook voorkom je rare locking problemen die je kan krijgen als je dat niet doet. Ik denk ook dat het maken van mappings ook geautomatiseerd gaat gebeuren, dus ik zie het probleem nog niet zo ?

  • kwiebus
  • Registratie: Oktober 2002
  • Nu online
Maakt sesamstraat geen gebruik van registry settings om paden naar de datadirectory te zetten?

Je mapt dan bij het starten van de applicatie een driveletter naar de fileserver waar de data staat en in de registry wijzig je de standaard locatie voor de data in deze driveletter.

Je moet er dan wel voor zorgen dat de drive letter eerder gemapt wordt dan dat de applicatie wordt gestart anders kan deze het pad naar de data niet vinden. Dit kun je doen door de applicatie te starten vanuit een .cmd file waarbij je als eerste stap de drive letter mapt

Op deze manier heb ik bijvoorbeeld hotsync en easysync applicatie op een citrix server geïnstalleerd terwijl de data voor iedere gebruiker in de home folder van de gebruiker op de file server staat.

bijvoorbeeld:

map H: \\server\%username%
in deze map staat een map sesamstraat
in de registry data laten verwijzen naar H:\sesamstraat

  • Rataplan_
  • Registratie: Maart 2000
  • Laatst online: 05-12-2025
Ten eerste: sesamstraat is even een voorbeeld, dit pakketje gaan we echt niet aanbieden, maar dat terzijde.
Die software is vaak 16bits, omdat deze ook onder Win3.x moet draaien. Register heeft dat nog nooit van gehoord. Bovendien hebben de 32-bits varianten vaak ook helemaal geen mogelijkheden tot instellingen wijzigen op wat voor manier dan ook.

Er zijn pakketjes die inderdaad WEL in het register wat data hebben staan. Deze zou je op jouw manier kunnen laten werken MITS ze in CURRENT_USER hun rommel wegschrijven. Door de brakheid van die programma's sta ik er nix van te kijken als er bij zijn die hun data in LOCALMACHINE wegschrijven. En dan zou het weer misgaan. In een omgeving met uiteindelijk een 160.000 gebruikers is het niet onwaarschijnlijk dat bv 30 mensen ongeveer tegelijktijdig hetzelfde pakket starten. Wanneer de ene het start wordt het register aangepast. Vervolgens wordt het pakket gestart. In de tijd dat die executable gelezen en gestart wordt, past het inlogscript van een andere gebruiker het zaakje weer aan. Gevolg: het gaat mis.

Probleem is dat een dergelijke omgeving TE groot is voor ducktape oplossingen... ik heb dat hier al aangegeven maarja management denk zo'n concept uit, en wij mogen het maken :S

  • Semt-x
  • Registratie: September 2002
  • Laatst online: 20-05 09:30
"Ik ben op zoek naar een tooltje waarmee ik een 'virtueel' bestand kan aanmaken, een soort van subst maar dan op bestandsniveau."

verder heb ik niet gelezen, kan het niet gewoon met een snel koppeling ?

  • kwiebus
  • Registratie: Oktober 2002
  • Nu online
Rataplan_ schreef op 22 augustus 2003 @ 08:51:
Ten eerste: sesamstraat is even een voorbeeld, dit pakketje gaan we echt niet aanbieden, maar dat terzijde.
Die software is vaak 16bits, omdat deze ook onder Win3.x moet draaien. Register heeft dat nog nooit van gehoord. Bovendien hebben de 32-bits varianten vaak ook helemaal geen mogelijkheden tot instellingen wijzigen op wat voor manier dan ook.

Er zijn pakketjes die inderdaad WEL in het register wat data hebben staan. Deze zou je op jouw manier kunnen laten werken MITS ze in CURRENT_USER hun rommel wegschrijven. Door de brakheid van die programma's sta ik er nix van te kijken als er bij zijn die hun data in LOCALMACHINE wegschrijven. En dan zou het weer misgaan. In een omgeving met uiteindelijk een 160.000 gebruikers is het niet onwaarschijnlijk dat bv 30 mensen ongeveer tegelijktijdig hetzelfde pakket starten. Wanneer de ene het start wordt het register aangepast. Vervolgens wordt het pakket gestart. In de tijd dat die executable gelezen en gestart wordt, past het inlogscript van een andere gebruiker het zaakje weer aan. Gevolg: het gaat mis.

Probleem is dat een dergelijke omgeving TE groot is voor ducktape oplossingen... ik heb dat hier al aangegeven maarja management denk zo'n concept uit, en wij mogen het maken :S
Ik heb het niet over aanpassen van de registry bij het inloggen maar eenmalig na installatie van de applicatie.

easysync heeft bijvoorbeeld in hkey_local_machine een key datapath en deze heb ik gewijzigd in H:\Lotus\XCPCSync\Data in plaats van de standaard datafolder van easysync.

Deze leg je dus eenmalig vast. Het is dus geen enkel probleem als meerdere gebruikers de applicatie gelijktijdig starten.

Mijn ducktape oplossing is volgens mij de enige manier om dit goed werkend te krijgen. Maar als je een betere oplossing weet houd ik mij aanbevolen.

Bij lotus notes doe ik het trouwens op een iets andere manier. Lotus notes gebruikt een ini file waarin parameters staan met onder andere het pad naar de data folder. Elke gebruiker heeft een notes datafolder in zijn homefolder met daarin ook een ini file specifiek voor deze gebruiker. Lotus notes wordt gestart met een parameter welke een verwijzing is naar deze ini file. Misschien kan jouw applicatie ook op een soortgelijke wijze werken?

  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

De oplossing die kwiebus voorstelt is gewoon de standaard rootdrive oplossing zoals die in NT4 en 2000 zit. Niks mis mee, maar ik ga er van uit dat die al voorgesteld is geweest door Citrix.

Kan je aangeven wat er precies optegen is om je software via scripts te pushen naar drives toe? Ik snap dat dit niet zo elegant is als installeren, maar het lijkt me een van de weinige manieren.

  • Rataplan_
  • Registratie: Maart 2000
  • Laatst online: 05-12-2025
kwiebus: ik was idd wat te moeilijk aan het denken. Dat truukje zou werken idd, voor software die dat soort instellingen int register opslaat.

Elevator: stel je voor je hebt een farm met 500 citrix servers. Elke farm voedt iets van 30-40 gebruikers. Elke keer dat een app gestart wordt (zo'n app dus waar je verder aan instellingen helemaal nix kan veranderen) ga je een doos data kopieren naar een temp-dir of iets dergelijks. Gaat nogal ten koste van de performance... Het wegzetten van de software op een file-server waarvan de data dan steeds af moet komen zou een gigantische belasting voor de backbone betekenen, die in eerste instantie niet meer dan 1gb zal zijn.

Ik weet het, veel mogelijkheden zullen er niet zijn... maar ik blijf zoeken :)

  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Kijk eens naar append.exe - ik weet niet zeker ofdat die system-wide of user-wide is, maar die zou misschien kunnen doen wat je wilt.
Pagina: 1