Go Back   EQEmulator Home > EQEmulator Forums > Archives > Archive::Support > Archive::General Support

Archive::General Support Archive area for General Support's posts that were moved here after an inactivity period of 90 days.

 
 
Thread Tools Display Modes
  #1  
Old 08-20-2004, 02:26 AM
sotonin
Demi-God
 
Join Date: May 2004
Posts: 1,177
Default Multi-machine server

Quick question. I know some people use multiple machines to do different aspects of their servers.

1 to host mysql and world. one to host the zones. etc.

I was wanting to tinker with this, i have an extra machine to toy with a bit. How would i go about setting up lets say 5 statics on this new machine, but interact with my main server and database?

I'd have to copy zone.exe to the new machine, obviously. But are there any other files i need to copy there and any config i need to do?

Thanks!
  #2  
Old 08-20-2004, 03:50 AM
smogo
Discordant
 
Join Date: Jan 2004
Location: 47
Posts: 339
Default

you'l need db.ini, and the .cfg zone files, the spell file, the quest files and directories, ... basically anything but the LoginServer.ini file. You also need EMuShareMem, and a path to it.

You may also have to allow access to your DB from an other IP (the second machine), though i think this is enabled by default

If world and db server are on the same first machine, change the IPs in the script that launches the second machine's zones to point to the first machine.

Not sure if it works with windoze, but you might want to share your EQMu drive, so that updates are automatic

i hope this helps (can't remember if i got tit to work anyway :/)
__________________
EQEMu Quest Repository is down until something new :(
  #3  
Old 08-20-2004, 04:13 AM
sotonin
Demi-God
 
Join Date: May 2004
Posts: 1,177
Default

Quote:
You also need EMuShareMem, and a path to it.
ya but.. where do you input the "path" to this on the second machine? That's where i'm confused
  #4  
Old 08-20-2004, 04:29 AM
smogo
Discordant
 
Join Date: Jan 2004
Location: 47
Posts: 339
Default

not sure of how Windoze looks for DLLs :( . You might want to copy EMuShareMem.dll to one of the system directories, to one of your directories listed in 'path' environnement variable, or just to the working directory of your launch script ...

You might find hints about this in some forum tutorial.
__________________
EQEMu Quest Repository is down until something new :(
  #5  
Old 08-20-2004, 04:48 AM
Cisyouc
Demi-God
 
Join Date: Jun 2004
Location: Heaven.
Posts: 1,260
Default

place it in %SystemRoot% and open a command prompt.
Code:
cmd
cd %systemroot%
regsvr32 EMuShareMem.dll
exit
__________________
namespace retval { template <class T> class ReturnValueGen { private: T x; public: ReturnValueGen() { x = 0; }; T& Generator() { return x; }; }; } int main() { retval::ReturnValueGen<int> retvalue; return retvalue.Generator(); }
C++ is wonderful.
  #6  
Old 08-20-2004, 06:39 AM
Darkwaters
Hill Giant
 
Join Date: Aug 2004
Location: Michigan
Posts: 118
Default two minor opinions

Quote:
Originally Posted by smogo
You may also have to allow access to your DB from an other IP (the second machine), though i think this is enabled by default

If world and db server are on the same first machine, change the IPs in the script that launches the second machine's zones to point to the first machine.

Not sure if it works with windoze, but you might want to share your EQMu drive, so that updates are automatic
First you'll need to add user access like you did in mysql
grant all privileges on * to MySQLuser@localhost identified by 'MySQLpass' with grant option;
for example:
grant all privileges on * to MySQLuser@'NewMachineIP1' identified by 'MySQLpass' with grant option;
grant all privileges on * to MySQLuser@'NewMachineIP2' identified by 'MySQLpass' with grant option;
etc etc for each of the other machines.

Second, I verified you can just share your EQEmu directory in windows, because db.ini would not be overwritten it would contain the same data no matter what machine your on.

Good luck and let us know how using multiple machines work, I have 6 at home on the local network would be a blast to remove some of the CPU utilization to other non-load bearing systems.

Darkwaters
  #7  
Old 08-20-2004, 06:49 AM
Darkwaters
Hill Giant
 
Join Date: Aug 2004
Location: Michigan
Posts: 118
Default hey one more thought about bootzones.bat

Quote:
REM: ****Read this first!!!****

REM: This file requires your real IP in the place of "localhost" when you are connecting
REM: To the EQEmu Loginserver.

REM: When you are using minilogin, Replace all IP Addresses to say 127.0.0.1

REM: If you still get errors try using localhost instead of 127.0.0.1

REM:--------------Start-----------------------
@echo off

if NOT exist spells_en.txt goto NOSPELL

start zone . ExternalIP 7995 MachineInternalIP1
start zone . ExternalIP 7996 MachineInternalIP1
start zone . ExternalIP 7997 MachineInternalIP2
start zone . ExternalIP 7998 MachineInternalIP2
start zone . ExternalIP 7999 MachineInternalIP3
start zone . ExternalIP 8000 MachineInternalIP3

exit
cls

:NOSPELL
echo You did not copy the spells_en.txt from your everquest directory to this one. Please do so or zones will crash on startup.
PAUSE

REM:---------------END------------------------
This would allow 3 machines to have two zone servers each using their InternalIP as the MachineInternalIP1, MachineInternalIP2 ... for example.
Make certain that all machines used have the same Username/Password for Login to Windows otherwise you may run into security issues that were or were not expected.
This was a great idea sotonin.
Darkwaters
PS you could still share out the EQEmu directory because again this would not change from machine to machine.
  #8  
Old 08-20-2004, 07:22 AM
sotonin
Demi-God
 
Join Date: May 2004
Posts: 1,177
Default

I don't use windows. i use linux. so most of that is wasted on me. lol =)

so im back to the point of how to tell it to look for the dll's and such

also i don't think the above posted boot5 will work...

our linux run file is similar to a boot5 but it only tells which zones to boot up on THAT machine.... you can't boot a zone from one machine on another. You'd have to have a seperate zone bootup script on the second machine i beleive. I'm just not sure how they all know to interconnect (

our script to load zones is set up like this.

Code:
./zone.exe gukbottom     IP PORT IP >> /dev/null &amp;
./zone.exe oasis         IP PORT IP >> /dev/null &amp;
./zone.exe paw           IP PORT IP >> /dev/null &amp;
I'm guess i would need to copy zone binary to the second machine create a NEW linux run file and set up which statics i want.

I'll give this a shot. but i don't know still how they interconnect =p
  #9  
Old 08-20-2004, 07:30 AM
smogo
Discordant
 
Join Date: Jan 2004
Location: 47
Posts: 339
Default

bash shell :
Code:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/EmuSharemem.so_directory
Also, linking all your files to a single source, via NFS, works.
__________________
EQEMu Quest Repository is down until something new :(
  #10  
Old 08-20-2004, 10:53 AM
Darkwaters
Hill Giant
 
Join Date: Aug 2004
Location: Michigan
Posts: 118
Default

Quote:
Originally Posted by sotonin
I don't use windows. i use linux. so most of that is wasted on me. lol =)

so im back to the point of how to tell it to look for the dll's and such

also i don't think the above posted boot5 will work...

our linux run file is similar to a boot5 but it only tells which zones to boot up on THAT machine.... you can't boot a zone from one machine on another. You'd have to have a seperate zone bootup script on the second machine i beleive. I'm just not sure how they all know to interconnect (

our script to load zones is set up like this.

Code:
./zone.exe gukbottom     IP PORT IP >> /dev/null &amp;
./zone.exe oasis             IP PORT IP >> /dev/null &amp;
./zone.exe paw               IP PORT IP >> /dev/null &amp;
I'm guess i would need to copy zone binary to the second machine create a NEW linux run file and set up which statics i want.

I'll give this a shot. but i don't know still how they interconnect =p
EDIT added snippet example:
Code:
./zone.exe gukbottom     ExtIP PORT IntIPMach1 >> /dev/null &amp;
./zone.exe oasis             ExtIP PORT IntIPMach2 >> /dev/null &amp;
./zone.exe paw               ExtIP PORT IntIPMach3 >> /dev/null &amp;
OR
Code:
./zone.exe gukbottom     ExtIP PORT IntIPMach1 >> /dev/null &amp;
./zone.exe oasis             ExtIP PORT IntIPMach1 >> /dev/null &amp;
./zone.exe paw               ExtIP PORT IntIPMach2 >> /dev/null &amp;
./zone.exe freportw        ExtIP PORT IntIPMach2 >> /dev/null &amp;
So far I have absolutely no problem using my posted bootzones.bat file with one exception, its only set to two machines for the test I ran and I don't static the zones which means it just hunts for the next World.exe registered zone server available on IP:PORT.

It's been awhile like back on slakware version 2 since I've really dev'd on a linux server. Yes I'm that old LMAO. I mostly admin 11 O/S's and program primarily in Windows and OS400 (IBM AS400).

You'll have to static a few zones per machine or all zones per one machine, ONLY IF your making all zones static or just a few zones static at which point you'd need to add something like the following code snippet.

Code:
./zone.exe gukbottom     ExtIP PORT IntIPMach1 >> /dev/null &amp;
./zone.exe oasis             ExtIP PORT IntIPMach1 >> /dev/null &amp;
./zone.exe paw               ExtIP PORT IntIPMach2 >> /dev/null &amp;
./zone.exe freportw        ExtIP PORT IntIPMach2 >> /dev/null &amp; 
./zone.exe .                     ExtIP PORT IntIPMach1 >> /dev/null &amp;
./zone.exe .                     ExtIP PORT IntIPMach1 >> /dev/null &amp;
./zone.exe .                     ExtIP PORT IntIPMach1 >> /dev/null &amp;
./zone.exe .                     ExtIP PORT IntIPMach1 >> /dev/null &amp;
./zone.exe .                     ExtIP PORT IntIPMach1 >> /dev/null &amp;
./zone.exe .                     ExtIP PORT IntIPMach1 >> /dev/null &amp;
The 6 dynamic zone servers would just have increasing port numbers and should in theory not be an issue. If your not zoning to a static zone you'd be able to zone to an Available dynamic zone server and it automatically registers itself with the World.exe as long as its working properly.

Quote:
Originally Posted by smogo
bash shell :
Code:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/EmuSharemem.so_directory
Also, linking all your files to a single source, via NFS, works.
Just for ease of configuration and upkeep pretend your building the server on this box. Path, build, and edit bootzone script all via NFS mount on this system. The only diff is you'll just be running the binary for zone, zone scripts, and accessing the db.

It doesn't take up that much room so it really shouldn't be a prob especially since the actual code is NFS mounted the minor pathing, scripts etc wouldn't run into a space consumption or network bottleneck issue. Just make certain you have permissions and follow the procedure you used to setup your initial server. I promise you'll be very happy you did in the end. Maintenance becomes one NFS mounted directory for updates and only your server for the db possibly change of IP addresses as needed (if needed).

You've got me interested enough to throw together a linux server on my local network. I'll hunt down the install sticky in the forum and test it out.

Let me know how things go, wish I was a part of this one LOL.

Darkwaters
  #11  
Old 08-20-2004, 12:30 PM
sotonin
Demi-God
 
Join Date: May 2004
Posts: 1,177
Default

the internal ip that you are trying to use wont work in my case. the two servers arent on the same network.
  #12  
Old 08-20-2004, 01:00 PM
Darkwaters
Hill Giant
 
Join Date: Aug 2004
Location: Michigan
Posts: 118
Default

Wow bro your killing me LOL j/k. =)
So can you elaborate and just give me a general idea of your network config? I'm a systems, networking, programming, database guru/junkie, if I can make more suggestions I will, after seeing an example (no need for actual IP's just something relatively close to the real deal will do). If you just want to toss the networking topology in a network schematic I can deal with it too. =) Anyhoot just curious and love to help cuz you've got a great idea and would love to see it working for you.
Darkwaters
  #13  
Old 08-20-2004, 04:39 PM
wize_one
Dragon
 
Join Date: Jan 2004
Location: LasShithole, NV
Posts: 520
Default

soto it's ./zone.exe worldip port zonemachineip >> /dev/null &amp;
__________________
Perfect quote from another site: it's immature pricks who refuse to read the numerous stickies in every forum pointing out what to do and what not to do that get flamed. Grow up and learn to do your fucking homework before opening your cake hole, junior. EQEmu doesn't like you anymore, and that's why you're getting errors. So go away.
__________________
  #14  
Old 08-20-2004, 06:42 PM
Darkwaters
Hill Giant
 
Join Date: Aug 2004
Location: Michigan
Posts: 118
Default

Kewl deal ty for that post wize_one I'm about to try this out myself just for the chance to say I did it =)
Darkwaters
  #15  
Old 08-21-2004, 06:38 AM
sotonin
Demi-God
 
Join Date: May 2004
Posts: 1,177
Default

nice. its not gonna work anyways my second linux box doesnt have the right shit installed on it apparently craps out when trying to run zone =\
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 12:42 PM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3