GE could take a page from your book then, since it sounds like they are
doing something similar but trying to update the split trunks manually.
A symlink in Windows is that odd and slightly annoying *.lnk file. It
works in SOME situations when Windows is directly involved. Sadly, it
takes special whacking at Windows with a wrench to make it deal with
file junctions (hard links).
So, from what I understand, you've got something like (VERY simplified):
\server1\
-\server1\data\
-\server1\config\
-\server1\logs\
\server2\
-\server2\data\ -> \server1\data\
-\server2\config\
-\server2\logs\
\server3\
-\server3\data\ -> \server1\data\
-\server3\config\
-\server3\logs\
Then you have all the binaries in each server directory copied from
server1 and the data linked to \server1\data\ from each extra server.
So GE does an update on server1, then instead of manually copying the
binaries to server2\ and server3\, they try to do an update on those
servers, which will just wipe and re-update the data directory stuff.
By comparison, you can instead have
\server\
-\server\data\
-\server\config1\
-\server\config2\
-\server\config3\
-\server\logs1\
-\server\logs2\
-\server\logs3\
Create a symlink/shortcut/batch file/whatever, and use such lovely
things as +servercfgfile server1\server.cfg +logsdir logs1 for the first
server, and change the command line for each server.
Since the .exe binary should be released when it's finished loading the
image into memory, you can run multiple servers off the same binary.
DLLs, when well-written, will be determined to be the same file, so can
use shared images in RAM, thus saving memory space and performance.
then start the server
On 9/5/2012 10:39 PM, Dmitriy Bobrovskiy wrote:
Actually you're right. I use directory junctions.
Yes, I don't run update tool for each server ;)
I manually copy binary content to all servers after each update but keep
content like maps/models and so on linked to 'master' folders.
You're better off
I'm not sure I've understood you properly. What did you mean?
And what are symlinks in Windows? Are they just ' junctions' for each file?
-----Original Message-----
From: [email protected] [mailto:hlds-
[email protected]] On Behalf Of Kit Parenteau
Sent: Thursday, September 06, 2012 4:32 AM
To: Half-Life dedicated Win32 server mailing list
Subject: Re: [hlds] Windows Server and symbolic links
Are you using symlinks or directory junctions?
Unfortunately, the fact that running an update will use the base information
to do a nuke and re-install means that if you have server code in multiple
directories and the data files shared, it will still nuke the data files when it
finds the old code.
You're better off, as said by the prior respondent, keeping one code base
and pointing at configs and logs at run-time with command line parameters.
Failing at this, you'd have to manually "update" your separate trunks with the
needed code to avoid having the update tool do so.
On 9/5/2012 1:55 PM, Dmitriy Bobrovskiy wrote:
I also update so called 'master' image. But I have several servers and all of
their folders are symlinks to the master image except folders with configs,
logs, etc.
-----Original Message-----
From: [email protected] [mailto:hlds-
[email protected]] On Behalf Of Rudy Bleeker
Sent: Wednesday, September 05, 2012 8:16 PM
To: Half-Life dedicated Win32 server mailing list
Subject: Re: [hlds] Windows Server and symbolic links
This is because of the way the update process works. It's an all or
nothing deal really. When you trigger an update, the hldsupdatetool
will report the current version of the installation to the update
servers. Then it recieves a list of all the files that should be
outdated and need to be thrown away and redownloaded.
So even though your individual mapfiles are already up-to-date, the
second hlds installation still reports and older version to the
update servers, which then assumes the files need to be reaquired.
I don't think there is an easy way to 'fix' this, since it's not
really broken, just a design choice. In my case I just run all my TF2
server from one installation, exec'ing different config files from
the cfg folder, depending on the type of server I want to run. I've
also turned autoupdate off, so there won't be multiple update
processes started at an update. When an update goes live I just shut
down all the servers, run one update and then start the servers
again. Of course, I'm running it all on Linux, but that shouldn't
matter much, on windows you could just save the startup lines in batch
scripts or notepad or whatever.
On Wed, Sep 5, 2012 at 5:46 PM, GE <[email protected]> wrote:
Recently I've added symlinks on my TF2 servers to save space and
reduced
bandwidth on updates, however this does not seem to help when using
hldsupdatetool.
At this point only the "maps" folder has been linked.
Server 1 (master) update runs as expected.
Server 2 (slave) update runs but deletes files previously downloaded
and
re-downloads them.... ie latest tf2 update 4 maps that were updated,
each slave server then removes and re-downloads mvm_decoy (etc).
Should the update not see that the maps are the latest version and
don't
need to be replaced? Or am I missing a symlink somewhere else?
Windows server 2008r2
Thanks,
GE
_______________________________________________
To unsubscribe, edit your list preferences, or view the list
archives, please
visit:
https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlds
_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please
visit:
https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlds