Log in

View Full Version : Multiple PCs Running Zone Servers


trevius
04-20-2008, 09:29 PM
First let me say that I have searched for this in the past and have found some information, but it wasn't nearly enough to get this running properly. I have only seen people post their config files, but from what I can tell so far, it seems like it takes much more than that to get this working properly. I experimented around quite a bit the other night and could not get this working the way I wanted.

What I want is to have my Server PC run all zones dynamically with the exception of a few zones that I want to run on a secondary PC statically.

So, I assume that I set the launcher_zones table to look like:

(Using navicat btw)

launcher | zone | port
zone | potimeb | 7250
zone | veeshan | 7260
zone | solrotower | 7270

I have my router to forward ports 7000 - 7249 to my Server PC and ports 7250 - 7500 to my Secondary PC. So, setting the launcher to these ports should send those zone requests to the Secondary PC (at least I think). Do I need to open any other ports to allow this, or does it communicate directly PC to PC on my LAN via the router? That is what I would imagine anyway. I only have the zone server ports and port 9000 forwarded atm. Do I need to open 3306 or 9080 or anything?

And here are the config files I was trying.

Server PC Config (IP 192.168.1.101):
<?xml version="1.0">
<server>
<world>
<shortname>stormhaven</shortname>
<longname>Storm Haven - Custom Legit [sh.makeforum.org]</longname>

<!-- Loginserver information. Defaults shown -->
<loginserver>
<host>eqemulator.net</host>
<port>5998</port>
<account></account>
<password></password>
</loginserver>

<!-- Sets the ip/port for the tcp connections. Both zones and console (if enabled). Defaults are shown -->
<tcp ip="localhost" port="9000" telnet="disable"/>

<!-- Sets the shared key used by zone/launcher to connect to world -->
<key>some long random string</key>

<!-- Enable and set the port for the HTTP service. Defaults are shown -->
<http port="9080" enabled="true" mimefile="mime.types" />
</world>

<zones>
<defaultstatus>0</defaultstatus>
<!-- Sets port range for world to use to auto configure zones -->
<ports low="7000" high="7249"/>
</zones>

<!-- Database configuration, replaces db.ini. Defaults shown -->
<database>
<host>localhost</host>
<port>3306</port>
<username>un</username>
<password>pw</password>
<db>peq</db>
</database>

</server>

Secondary PC Config (IP 192.168.1.100):
<?xml version="1.0">
<server>
<world>
<shortname>stormhaven</shortname>
<longname>Storm Haven - Custom Legit [sh.makeforum.org]</longname>

<!-- Loginserver information. Defaults shown -->
<loginserver>
<host>eqemulator.net</host>
<port>5998</port>
<account></account>
<password></password>
</loginserver>

<!-- Sets the ip/port for the tcp connections. Both zones and console (if enabled). Defaults are shown -->
<tcp ip="192.168.1.101" port="9000" telnet="disable"/>

<!-- Sets the shared key used by zone/launcher to connect to world -->
<key>some long random string</key>

<!-- Enable and set the port for the HTTP service. Defaults are shown -->
<http port="9080" enabled="true" mimefile="mime.types" />
</world>

<zones>
<defaultstatus>0</defaultstatus>
<!-- Sets port range for world to use to auto configure zones -->
<ports low="7250" high="7500"/>
</zones>

<!-- Database configuration, replaces db.ini. Defaults shown -->
<database>
<host>192.168.1.101</host>
<port>3306</port>
<username>un</username>
<password>pw</password>
<db>peq</db>
</database>

<!-- Directory locations. Remote Directory -->
<directories>
<quests>\\192.168.1.101\c\eqemu\quests</quests> -->
</directories>
</server>


Next, I started the server from the server PC, but waited to hit <any key> to start zones loading until it was fully loaded on the Server PC and after I started zone.exe on the Secondary PC. I then hit the spacebar on the Server PC to start the dynamic zones all loading.

It seems like the results I am getting are that I can't zone to other zones and after trying multiple configs and setups, it seemed like it kept making the zones I set to load statically load with a dynamic port instead. I am guessing that is because it wasn't able to connect to the secondary zone server so it just loaded them dynamically.

Does anyone here know exactly what it takes to set one of these up the way I want? I have been able to get it to load all zones on the secondary PC, but I can't get it to split zones between the 2 PCs. I would MUCH appreciate if someone could provide a nice list of steps or walkthrough/guide on setting this up properly. Or if there is a post or wiki about it that someone knows of, I would appreciate being pointed in the right direction.

I know most of the preferred servers run multiple zone servers. If one of you guys see this and wouldn't mind telling me what I did wrong, that would be awesome!

Thanks in advance!

Oh, and here is a PM from Aramid that might give more info on what he found when testing this out.

Yes, I was running all my zones on the 2nd server, but I generally like a challenge.

So, it took me until 3:00am to get it working, but I did and I will try to explain it as best as I can.

It seems it does NOT matter what you put in the eqemu_config.xml file as far as the port for the zones go. I had my 2nd server setup to use ports 7200-7300 and I put STATIC Zones in the DB and had them load up on 7200-7201-7203.

Well, The World Server wants to send you to that zone on the port it wants to. ie: I would log in my character and he was in POK. PoK was running on the 2nd server with ports 7200-7300 forwarded on the router. It would timeout and go back to the login screen. When checking the eqemu_debug_world.log, it would show me connection, being sent to pok, but not on the port that I booted the zone up with, but like 7009 which was not being forwarded to the 2nd server.

Anyway, to keep this from being a Novel, here what I finally did.

Set the configs up as you think they should be as far as the zone ports are concerned.

Create your 2 zone launchers in the DB and set the zones you want static on the 2nd server. and then configure your dynamic zones on the world server. I put my static on 7200-7201-7202.

The dynamics don't get assigned ports as you know.

Now, start the World Server and wait until it is fully booted up with the 5 dynamic zones.
Once it is completely booted up, boot up your 2nd Zone Server.

Now, run the Templates that comes with the Emulator and run on port 9080 by default. Go to the ZONES Link, not the status link and wait untill it shows you ALL of the zones it should be showing X Dynamics and 3 Statics. Notice what PORTS are assigned to them. These are the ports you must forward on your router to the machine where they are loaded up on... at least I thought.
I ended up having to forward the UDP ports before it would work. My router LinkSys RV082 has the TCP and UDP ports seperate and you can config each one individually. Once I forwarded the UDP ports, it all worked being setup the way I said above. The EMU Templates was what finally got me to thinking about which ports were forwarded to where... You'll see when you look at it... If you do get in touch with CaveDude, let me know what he tells you.
Sorry for the typos, but I'm half asleep now..

BTW, this was tested from the outside in. The servers are on my Comcast Cable connection and I logged in from my AT&T DSL line.

Aramid
04-20-2008, 10:13 PM
But it WORKS on my test servers... Did you load up the Web Templates in EQEMU and look at what ports it was loading the zones up in and then forward your router accordingly?
It takes some time for ALL of the zones to get fully loaded, so be patient for them all to appear. This is what I did and also found that I had to forward the UDP ports with the same ranges, why I don't know. I am using an RV082 LinkSys router and until I did, I still could not connect to a zone on the ZONE only server.
After I got it working, I shut it all down and restarted it and the port forwarding held true and I was able to access all of the zones I had loaded up.

I am beginning to think that you don't need to set ports in the 7000 range on the Zone only server because they are used by WORLD , not zone. It says it right there in the config file.
ie:<!-- Sets port range for world to use to auto configure zones -->

trevius
04-21-2008, 12:53 AM
Ya, I think the setting in the config file is just the max port range you want set for dynamic zones to have access to.

So, does anyone know if the players connect directly to the secondary zone server PC, or do they go through the main server that is running the world to get there?

I did notice that zones were being loaded on other ports besides the 7000 range. I think most of them were in the 2000 range when actually loaded. So, in order to set this up properly, I need to forward the 2000 range ports that I see in the templates to my secondary server in my router config? Or are those 2000 ports something else that can be ignored?

Sorry if I am over-complicating this lol. I just don't want to have my server down for a couple hours again working on this tonight. Trying to verify as much as I can before I start messing with it again.

Does anyone know exactly how this works and how to get it setup? I don't want to have sloppy configs or open up extra ports that don't need to be opened.

Aramid
04-21-2008, 05:39 AM
One more time...
Did you look at the ZONES in the EQEMU Web Templates to see what PORTS to Forward on your router?

trevius
04-21-2008, 06:39 AM
Sorry Aramid, lol. Just trying to get as much info as I can before trying the changes again. I don't like having the server down for a long period of time while I mess with this stuff. I would like to get it right on the first try (well this time anyway).

I tried opening up the templates, but they all show some weird errors and don't display properly. Do I need to have something special configured or running to get them to work? I tried opening up port 9080 to see if that made a difference, but I don't see any. Do I have to access it from another machine for it to work or something? I have some Apache and PHP stuff setup on this PC, but that doesn't seem to make them work either. I have tried loading them in IE and Firefox, but both get the same issues. I didn't see any kind of config file to mess with.

It seems like the templates are calling to use perl, but perl isn't working for them. Any ideas?

Also, my router lets me forward TCP or UDP packets or both. I just set them all to both.

trevius
04-21-2008, 07:22 AM
So, I have tried using http://localhost:9080 to get to my server and it prompts me to login. But, no matter what login I try to use, it isn't working. I have tried accounts on my server and accounts for my database, but none work.

Aramid
04-21-2008, 09:51 AM
So, I have tried using http://localhost:9080 to get to my server and it prompts me to login. But, no matter what login I try to use, it isn't working. I have tried accounts on my server and accounts for my database, but none work.

You need to use an account with a Staus of 200 or higher I believe. Just use one that is 250. Setup a password in the DB for this user.

Doing it now will let you SEE what I am talking about. You will be able to see what 7000(s) ports are being used now. Same will be when you install 2nd server. All Launchers will show up under Zones.

Remember, this is Zones from the menu on the left, not under the Launcher which will give you the port number it was launched from.. which I don't know why they don't remain the same, but they don't.

AndMetal
04-21-2008, 02:38 PM
To rewind, what is the name of the launcher you use to load the dynamic zones? Is it also zone?

trevius
04-21-2008, 04:02 PM
I believe that all of the launchers are zone. As far as I know, when setting a static zone the launcher_zones has to have "zone" set in it. And I am pretty sure it uses the same one for dynamics by default. But, it looks like you can set the launcher in the confix xml file.

And, I have been trying to login to my server through the browser, but it won't let me in even if I use my highest status account which is set to 250 status. I don't have a clue why.

Aramid
04-21-2008, 07:09 PM
I believe that all of the launchers are zone. As far as I know, when setting a static zone the launcher_zones has to have "zone" set in it. And I am pretty sure it uses the same one for dynamics by default. But, it looks like you can set the launcher in the confix xml file.

They don't have to be zone, they can be called anything you want. Do you not run eqlaunch with zone after it? ie: eqlaunch.exe zone

You can change the name of zone to anything you want.
Then just change your startup to eqlaunch.exe NOFLYZONE or whatever you name it.
You would have to use different ZONE names for the 2 servers or else they will both try to load up the SAME zones. This is why I named mine ZONEW (World Server Zones) and ZONEZ (Zone Server Zones).


And, I have been trying to login to my server through the browser, but it won't let me in even if I use my highest status account which is set to 250 status. I don't have a clue why.


Did you go into your DATABASE and enter a PASSWORD in the PASSWORD field for this account? This has nothing to do with Game Login... Look at your account in the DB and see if you have a Password set.

trevius
04-21-2008, 07:30 PM
Well, I am learning something new with every post you make, LOL!

Ya, I am using the batch file setup from the wiki server setup guide:

@echo off
start world.exe
cls
echo Wait for World to finish loading... Press Enter when done.
pause
start eqlaunch.exe zone
exit

So, if I am reading what you are saying correctly, I can setup the Main server PC batch as:

@echo off
start world.exe
cls
echo Wait for World to finish loading... Press Enter when done.
pause
start eqlaunch.exe zonew
exit

And then I am guessing I need to run eqlaunch.exe from the zone server? I was runnin zone.exe, so that was probably part of my problem lol. I am pretty sure I don't want to load world.exe on my zone server unless I was running it as my test secondary server. So, I imagine the batch file to start the zone server should look like:

start eqlaunch.exe zonez
exit


And thanks for the info on the login account. I did not set a password in it. I know it is blank by default since only the login server actually sees the passwords. I tried even using blank for the password, but that didn't work. I guess it requires some kinda password to be set for it to work.

So, if I set a password in the database for my admin account with status 250, will it still let me log in through the login server? I would think it should as long as the passwords both match. Otherwise, I could just create a new account with status 250 just for the web interface access.

Thanks again for all of your help on this Aramid! By the time I get this all setup I will have plenty of new knowledge and understanding of how this all works. I can't believe I never looked into setting up the templates to work. They seem like a really cool feature!

Aramid
04-21-2008, 08:18 PM
Yes on the batch files.

Yes on the eqlaunch from the zone only server, just remember to change the name in the launcher table, in the DB as well, not just in the .bat file. ZoneW would have the 5 for the 5 dynamic zones and zonez would have a 0 for no dynamic zones. Then in launcher_zones table, you enter the zonez name and the zones you want to load statically and the startup port, which apparently ends up having nothing to do with port forwarding on your router. Forward the ports as they show up in the Templates ZONES page.
Start your World Server 1st and let it load it's zones, then when it is completely up and running, start the Zone Only Server.

You can only run WORLD on 1 Server, not both unless you are going to run a seperate EMU Server.

Eqlaunch is what launches the zones, I do believe it is required....

Yes, you can still use the Account to login and play the game as the login server only passes the LS ID #, not the password, so they do NOT have to match.

trevius
04-22-2008, 07:58 AM
OK, I finally got everything to work accept for 1 thing. I can't figure out how to set my zone server to map to the quest directory on my world server.

Here is the snippet from the config file that I would think should set the mapping:

<!-- Directory locations. Defaults shown -->
<directories>
<quests>Z:\quests</quests>
</directories>

I have tried mapping to it using \\servername\c\eqemu\quests, and I have tried mapping a drive to it as shown above. No matter what I do, it seems to only want to use the quest directory on the local PC for the zone server in those static zones. This isn't a huge deal, since I can just copy the folders over for the 5 static zones I have currently running on it after I make any quest changes there, but it would definitely be nice to have it running the right way.

Thanks again for all of your help Aramid! I certainly couldn't have gotten this working without you. My players will owe you thanks as well :)
Also, the whole thing about the port settings in the zone_launcher is confusing and annoying. Like you said, the port settings there seem to have no effect at all on what ports the zones load on. They load in the order that they are started starting at whatever port number you have set in the world server config.

I set mine up a little different than the way you did. I was running into an issue that way. I have 45 dynamic zones set to load on my world server and it takes so long to load them all that I get players logging into them before they are all up. This causes a problem if players load into one of the zones that are set dynamic on the zone server, because it will load a dynamic version when players log in, and then load the static one when I start the launcher on the zone server. So, to get around this, I had to set my static zones for the zone server on ports 7000-7004 and change all of my settings accordingly. Then, I set the world server to 7005-7050. This way, I start the launcher on the zone server first and THEN start the world server up. So, when it first starts, it loads the statics immediately. Then I hit a key to start the dynamic zones loading on the world server.

So far it seems to be working ok. If I can figure out this last issue with the quests, I will try to write up a guide to help people get these setup in the future, since everything I could find was little to no help with getting this setup properly. Heck, maybe I will stick it in the wiki if I can get that figured out. Haven't ever messed with updating a wiki before lol.

Thanks again for the help Aramid! I certainly couldn't have gotten this to work without you. My players will owe you thanks as well!

Aramid
04-22-2008, 11:07 AM
I didn't even try to use one area for the quest, I have them on both servers, as this too would probably help keep the load balanced, unless it's world that's running all the quests anyway. Coders will have to let us know if the code allows for drive changes to the locations or just folder/directory changes.

If you get the Templates running, you can start up your world and then LOCK it via the Templates OR, make it LOCKED by default on boot up and then UNLOCK it when all the ones are up.

Glad I was able to help you get it up and running.

trevius
04-22-2008, 02:48 PM
Well, nexus crashed and for some reason restarted on 7050 which made the zone unreachable. I don't know why it would restart on another port when port 7002 was still available...


delveb (delveb) 7000 Players View Log Restart - Kill
potimeb (potimeb) 7001 Players View Log Restart - Kill
solrotower (solrotower) 7003 Players View Log Restart - Kill
veeshan (veeshan) 7004 Players View Log Restart - Kill
Dynamic: Idle 7039 Players View Log Restart - Kill
Dynamic: Idle 7040 Players View Log Restart - Kill
Dynamic: Idle 7041 Players View Log Restart - Kill
Dynamic: potimeb (potimeb) 7042 Players View Log Restart - Kill
Dynamic: frozenshadow (frozenshadow) 7043 Players View Log Restart - Kill
Dynamic: Idle 7044 Players View Log Restart - Kill
Dynamic: Idle 7045 Players View Log Restart - Kill
Dynamic: povalor (povalor) 7046 Players View Log Restart - Kill
Dynamic: Idle 7047 Players View Log Restart - Kill
Dynamic: stillmoonb (stillmoonb) 7048 Players View Log Restart - Kill
Dynamic: Idle 7049 Players View Log Restart - Kill
nexus (nexus) 7050 Players View Log Restart - Kill


Anyone that has been running a server with multiple zone servers for a while able to lend a hand, please lol?

Aramid
04-22-2008, 07:09 PM
Well, nexus crashed and for some reason restarted on 7050 which made the zone unreachable. I don't know why it would restart on another port when port 7002 was still available...
Anyone that has been running a server with multiple zone servers for a while able to lend a hand, please lol?

Then you may want to rethink your launching setup... The Launcher has to connect to world and you said you are starting the zone server first, so it may start it's zones first, but now World see's the higher zone numbers last. I would start the world locked and wait until all zones are up and running, then unlock the world, but that's just me.

trevius
04-22-2008, 07:47 PM
The problem is that there is no way to set a zone server to use any specific port when a zone crashes and restarts. It will just use the next available one, but I don't think it ever uses the same one it was on before.

Unfortunately, this means that there is no way in the current system for me to setup my servers to run zones on both of them without risking zones being unavailable due to being on the wrong port.

I am going to make a post in the bugs section about the launcher_zones table port setting being completely pointless. I am also going to make a feature request for an entry in the config file to let it set port assignment per zone server.

<zones>
<defaultstatus>0</defaultstatus>
<!-- Sets port range for world to use to auto configure zones -->
<ports zonea low="7000" high="7049"/>
<ports zoneb low="7050" high="7100"/>
</zones>

With "zonea" being the name of the zone launcher set in the start.bat file (start eqlaunch.exe zonea) of the world server and "zoneb" being the name of the zone launcher set in the zone server batch file (start eqlaunch.exe zoneb).

I think that would be the simplest solution. And again, once I get this all worked out, I will write up a nice guide in the wiki for it.

I hope I don't get mattmeck'd (tm) for making double posts! This post here is for support, the bug post I am going to make is to get the ports issue filed as a bug and the feature request post is the one to request a new setting in the config file. IMO, those are all separate even though they do all relate to this one same issue. Maybe posting the right things in the right places will get them looked at by the right people.

Aramid
04-22-2008, 07:54 PM
What happens is when a zone crashes, it restarts on the next highest zone port above the last one used. I had dynamic zones boot from the zonew (World Server) 1st on ports 7000 thru 7004. I logged in and zoned into a dynamic zone and crashed the zone. When it restarted it was on port 7011 which was the next zone number in the queue so to speak. I crashed it again and it restarted on 7012... AND both times it restarted on the zonez server where it was originally on the zonew server. but... I was still able to get into the zone because port 7011 was forwarded to the server with zonez where it restarted.... So, it appears to restart on the next port in line and on the last zone server used.

It just keeps getting better.....

trevius
04-22-2008, 08:14 PM
Ya, if I wanted to run all dynamic zones, this wouldn't be an issue. The reason I am setting this up in the first place is because one of my raid zones gets over 20 players quite often and on the world server, it is too much for it to handle and it crashes ALOT! I am sure this is more than a little annoying to my players. So, I am setting it and 4 other heavy traffic zones to run on my main PC which has much more ram and a faster CPU. This should increase overall stability by a great amount and maybe even let me have more players on my server. So, I need to have static zones setup to run on the zone server. I don't want to just split the dynamics between servers.

The problem is if I set a zone to static, and no matter what port I actually start it on (before or after the dynamics on the world server are all loaded), I can get it working fine. But as soon as it crashes, the zone will have a big risk of starting on the wrong port dynamically and since it is specified in the launcher_zones table to launch that static zone on my secondary zone server, it will be unavailable to players.

Now, this issue wouldn't be too bad if my zones stayed up all of the time. I am sure the ones on my zone server PC would be pretty stable there. But, I use a zone resetter quest script that I wrote to reset each of these zones after they have been up a certain number of hours. Nexus is set to reset after 4 hours, which is basically restarted the same as if the zone had crashed. I need the zone resetter to deal with the player ghosts issue that apparently only occurs on Windows.

Aramid
04-23-2008, 05:22 AM
It seems that the only way to make this really work, is that it has to be changed in the code.
Does anyone know what the zone_server table is for in the DB? I added in a zone there and it picked up the last_alive time, so it's in the code some where. Seems you could edit in the zones and port and have the code look at what port the zone is supposed to be on and reload with that port number?

Wondering why we haven't heard from any of the Ops who run multi-servers?

trevius
04-23-2008, 07:53 AM
I PM'd Cavedude directly and this is what he had to say about it:


Under Linux, creating a symlink from the world quest folder to the daughter zone directory works perfectly. However, I doubt this will work under Windows (though, give it a try.) Under Linux, a symlink is a true shortcut to the folder/directory and is treated the same as if it were the normal data. Windows, however will often treat the shortcut for what it is, nothing more than a file with the destination folder/file info contained within. This is especially true over a network and will often cause situations like this to fail. I am pretty certain EQEmu looks for the quests folder in a sub directory of the main binary directory, so specifying a path in eqemu_config.xml will likely fail. So, the only thing you are left with is to have a separate quest folder. That isn't so bad, however as that's one less thing zone will need to communicate to the world server for. The more self reliant it is, the better off it is.

As for the zones taking over new ports when they crash... That's a problem with EQEmu and it bothers the hell out of me. When a static zone crashes or is shut down it becomes dynamic, including taking over a port reserved for dynamic zones when it comes back up. It also has the inherent problem of clearing spawn timers, so nameds pop back up and player corpses don't depop/move to GY/SR. I've asked a few times to get this behavior changed so static zones will reboot as static zones, eliminating all of these problems but it looks like a major overhaul of the system would be required. In my case, I have two machines on different networks so my ports can overlap. If you're on the same network, that's not an option obviously (unless you want to get into port/IP forwarding/spoofing, which can get messy and pretty much requires Linux). My only suggestion is to prevent static zones from rebooting automatically in variables (hopefully that still works). You'll then lose a static zone of course, however the zone that crashed should open on the dynamic server the next time a player tries to enter it, making it accessible. You'll just need to keep an eye out on how many zones you have available since they won't auto-boot after a crash. You may want to give yourself extra dynamics since it's very uncommon to crash a dynamic instance to the point where it won't re-open (though, I have seen that on TGC, sadly)

I hope this helps, and if you have anymore questions, feel free to ask.

IMO there has to be another way to do this, so I might try contacting some of the other server admins that I am pretty sure use multiple zone servers. I think KMRA uses a few and probably TZ/VZ too. Maybe TheLieka can help. I might try bugging him about it tomorrow :P

trevius
04-23-2008, 06:23 PM
It seems that the only way to make this really work, is that it has to be changed in the code.
Does anyone know what the zone_server table is for in the DB? I added in a zone there and it picked up the last_alive time, so it's in the code some where. Seems you could edit in the zones and port and have the code look at what port the zone is supposed to be on and reload with that port number?

Wondering why we haven't heard from any of the Ops who run multi-servers?

I tried setting up this table with 5 zones and it didn't seem to have any effect at all. I am guessing this might be an old table that isn't used anymore for anything. It is empty by default and I have never seen any info on what to put in there.

TheLieka
04-24-2008, 09:33 AM
We run all of our zones from one server, so I honestly have zero experience with this zone_servers issue.

As far as junctions (as they're called in NTFS) to network shares, it can be done with LSE (Link Shell Extensions).
http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html

Basically, you'll want to make c:\eqemu\quests pull from s:\eqemu\quests (where s:\ is a mapped network drive).

Dax

trevius
04-27-2008, 06:53 PM
As a follow up to this thread, I wanted to make note that I have contacted all major servers and found that none of them other than PEQ use multiple zone servers. The only one I didn't check with that might be using it is Dragon Soul, which is a Chinese server.

So, it seems that this feature isn't very useful until some change is made to the code that will allow the world server to assign port ranges per zone server.

If I can ever get to a state where I understand code well enough, I might try a crack at getting this added into the source. But, right now that is a ways off. If any other coders have a chance to look into this before then, I would greatly appreciate any feedback. I would mainly like to know if this would be something very complicated to change, or of this could be something that might not be too bad to add in.

Hopefully this post will come in handy for someone considering multiple zone servers in the future. And maybe there will eventually be a fix to get this working :)

Aramid
04-27-2008, 09:32 PM
Trevius,

Did you contact Rojadruid?

Below is a post he made back in November of 2007. Although, I just tried to login to his sever and I just get booted back to the login screen.


An EQ server farm is completly possible, thats the way my server runs, I am currently running 4 computers that spread the load nicley. Its all n how you setup the config file on each machine.
__________________
Rojadruid

Innoruuk Server [legit, CaveDude's Database]
Server Admin.

trevius
04-27-2008, 10:51 PM
Ahh, I knew I had read that exact message somewhere, but wasn't able to find it when I was looking for it.

I found these 2 related posts:
http://www.eqemulator.net/forums/showthread.php?t=24754

http://www.eqemulator.net/forums/showthread.php?t=23916

I am PMing froglok23 and rojadruid in case either of them still read these forums and have any input into getting this working the way I want. My guess is that they got it setup and working, but that they never noticed that if a zone crashes, the world server doesn't know which port range to assign to which zone server. And that this causes the zone to be unavailable.

I am trying to get a linux server up and running to see if it works any differently as far as multiple zone servers go. Windows definitely has issues as far as I have seen.

The main problem is that the setting in the config for ports on the world server PC are the only ports that the world server will will ever create new zones on. So, even if you set a separate range of ports in the config on your zone only server, that port range pretty much just gets ignored.

Hopefully one of the guys I am PMing will have a solution and will reply here or PM me with it. I would love to get this working.

Aramid
04-28-2008, 05:23 AM
I am trying to get a linux server up and running to see if it works any differently as far as multiple zone servers go. Windows definitely has issues as far as I have seen.

Hopefully one of the guys I am PMing will have a solution and will reply here or PM me with it. I would love to get this working.

If your setting up a Linux Server JUST to see if it behaves differently for the Zones, don't. I run on Linux and when a zone crashes, it does the exact same thing. Unless they have a different method, which I would love to hear about, then I think your only option is to run the zones on a server by itself, leaving all the 7000 ports set to that zone server. Only way to KNOW if it helps with lag etc... is to try it.

trevius
04-28-2008, 07:46 AM
If your setting up a Linux Server JUST to see if it behaves differently for the Zones, don't. I run on Linux and when a zone crashes, it does the exact same thing. Unless they have a different method, which I would love to hear about, then I think your only option is to run the zones on a server by itself, leaving all the 7000 ports set to that zone server. Only way to KNOW if it helps with lag etc... is to try it.


I did try that and it seemed even worse then running both the world and zones on the same PC. And for the record, the other PC I tried using as just a zone server is about double the stats of the server PC I have been running on and it was still unstable being only a zone server. I wish there was a way to share the load.

I am trying to get a debian install of eqemu running, but mainly to see if it can help my resources and stability issues without having to do anything else. I have it almost ready to go accept for some reason it seems like the NPCs are hovering above the ground and it is hard to move around. I didn't get any errors when loading the world the last time I tried it so far. But I am definitely a novice with this setup. I don't even know if there is a way to watch the real time log entries echoed to the console similar to how it works on windows. The only thing that concerns me so far about the build is that I did get alot of warnings when I was compiling the eqemu source, but I didn't see any errors. I will leave those questions for another thread though, as I don't want to throw off the purpose of this one.