Register for your free account! | Forgot your password?

You last visited: Today at 01:19

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[HowTo] Serveraufbau verstehen + tunen

Discussion on [HowTo] Serveraufbau verstehen + tunen within the Metin2 PServer Guides & Strategies forum part of the Metin2 Private Server category.

Reply
 
Old   #1
 
elite*gold: 252
Join Date: Mar 2008
Posts: 3,111
Received Thanks: 3,912
[HowTo] Serveraufbau verstehen + tunen

Hallo zusammen!

heute möchte ich euch etwas zeigen. Es betrifft diesmal den Serveraufbau. Ich erkläre es so, dass es Anfänger verstehen können. Viele knallen Befehle rein, ohne zu wissen, was das überhaupt bringt. "Hauptsache es fixt den Fehler". Dem möchte ich ein Ende setzen und ein besseres Verständnis zum Server bringen.


Zu beginn erst einmal erkläre ich euch eine grundlegende Wichtigkeit, was die Server betrifft. Es geht hier um den Aufbau, welcher enorm wichtig ist, wenn wir irgendetwas daran tunen wollen. Wie ist der Server überhaupt aufgebaut? Zu diesen Zwecken möchte ich euch einen optimalen Aufbau vorzeigen.
Bei vielen Rootservern ist es so:
home -> game und dann beginnt erstmal das große Wirrwarr. Die einen haben noch einen CH1 Ordner o. ä., andere beginnen mit game_1, andere mit game1_1 usw.. Auf jeden Fall müssen wir uns aber im Klaren sein, wie unser Server aufgebaut ist. Haben wir sowas wie game1_1 und das in tausenden Ordnern, enden wir in einer großen Unübersichtlichkeit.

Deswegen wäre es ratsam folgendes zutun: In unserem Basisordner (also /home/game/) erstellen wir am besten 2 Ordner. CH1 und CH2. Dort hin kommen dann die einzelnen Cores: game1 und game2. Mehr brauchen wir für die vereinzelten Channels nicht.
Nun schauen wir uns an. Was passiert, wenn wir die Gamecore nun in z. B. dem CH1 Ordner in game1 reinpacken und dort einfach starten? Häufig wird euch erstmal das begegnen:
Code:
Permission denied
Wenn das passiert, dann fehlen die Berechtigungen zum Ausführen. Wie wir bereits wissen, hilft uns der Befehl chmod 777 game diesen Fehler auszuhebeln. Er setzt die vollen Berechtigung, somit müsste die Game starten.

Nun wird uns aber sofort ein Fehler entgegen kommen. Warum? Weil er gewisse Ordner nicht finden kann: locale und data fehlen ihm. Diese braucht er, um wichtige Informationen zu laden. Wir könnten die Ordner nun einfach reinkopieren, aber bei mehreren Cores wird das lästig. Darum bietet uns FreeBSD die sogenannten Symlinks. Diese machen nichts weiter wie "wenn du den Ordner aufrufst, gelangst du plötzlich zu dem". Es ist einfach eine Weiterleitung, welche uns so weiter hilft, dass wir nur 1x den Ordner locale und data hochladen müssen (und es ist dabei wirklich VÖLLIG egal, wo!) und dann einfach eine symlink dazu erstellen können.
Ihr werdet aber mehr darüber verstehen, wenn die Erklärung fertig ist^^
Wir erstellen Symlinks so: Zuerst mittels cd in das Verzeichnis game1 wechseln. Also cd /home/game/CH1/game1/ und danach können wir damit einen symlink erstellen:
Code:
ln -s /pfad/zu/dem/ordner
Euch wird nun auffallen, dass es einen weiteren Ordner gibt (überprüfen könnt ihr das sogar in der Konsole mittels des Befehls ls). Mittels cd locale wechselt ihr dann in den Ordner, die symlink leitet automatisch weiter und führt einen in den richtigen Ordner - die Gamecore kann starten!
Dasselbe können wir auch mit der game-Datei machen. Wir könnten es mit praktisch allem machen: syslog, syserr, mark.tga, etc... Jedoch ist es nicht immer sinnvoll.

So, nun stellt sich für uns die Frage: Was macht dann eigentlich den Core einzigartig? Die Antwort: Die CONFIG! Wenn Ihr wirklich NUR die CONFIG habt, könnt Ihr mit symlinks auf die Ordner locale und data führen und mit einem symlink zur gamecore führen. Fertig, dann habt ihr einen Core komplett aufgebaut! Mehr braucht ihr wirklich nicht. Das ist schon alles. Und so könnt Ihr Core für Core aufbauen. Denkt daran, das seine normale Core bis zu 35 Maps fassen sollte und dieses Limit nicht überschreiten sollte. Wie das geht, zeige ich euch auch schnell.

Im Ordner locale/germany/maps findet Ihr die Datei index. In ihr sind alle maps aufgelistet und einer bestimmten Zahl aufgeführt. Die Zahl steht immer links und rechts davon der Ordner. Somit findet Ihr heraus, welche Map welchen index hat. Diese könnt Ihr dann getrost so einsortieren, wie Ihr sie in der gamecore haben wollt. Ihr könnt z. B. die alten Affendungeons einfach aus der Core entfernen. Je weniger maps, desto besser. Je weniger Kerne laufen müssen, desto besser!

Was ist aber nun besonderes an den CONFIGs?
Besonders an diesen sind folgende Einstellungen:
Code:
CHANNEL:
PORT:
P2P_PORT:
Das oben sind die 3, die die Cores voneinander groß unterscheiden und die Core identifizieren. CHANNEL gibt an, zu welchem Channel die Core gehört. In dem Ordner CH1 gehören natürlich alle cores dem ersten Channel an, ist ja logisch. PORT ist der Port, zu dem man außerhalb auf diese Core zugreifen kann. P2P Port ist hingegen anders, der ist viel wichtiger, als man zunächst annimmt: P2P ist für die Kommunikation INNERHALB des Servers wichtig! Erkennt Ihr nun die Wichtigkeit und die damalige Lücke? Man sagte, dass die API mittels P2P-Ports angreifen kann. Wie gesagt, diese Ports sind extra für die Kommunikation innerhalb des Servers gedacht. Die Core kann nicht wissen, ob der Befehl nun vom selben Server kommt oder nicht - sie führt die Befehle, die über den besonderen Port durchgehen, aus. Deswegen funktioniert die API so wunderbar darüber. Schottet man diese nach Außen hin ab, funktioniert sie überhaupt nicht mittels P2P.

Wie man sieht, sind das die einzigen Unterschiede zwischen den CONFIGs. Es gibt keine eindeutige Identifikationsnummer oder sonst irgendetwas - man kann so viele Kerne hinzufügen, wie man will und so viele abrücken, wie man will. Man muss nur mindestens 1 Core für den Worldserver, also die ganzen Maps usw. und einen Authserver. Um einen Core zum Auth-Server zu machen, muss man nichts weiter tun, als folgendes in die CONFIG reinschreiben:
AUTH_SERVER: master
Schon ist der Core als Auth eingestellt und fährt als solchen hoch.

Nun sollte jedem langsam ein Lichtchen brennen. Man kann so viele Cores hinzufügen, wie man will und so viele wegmachen, wie man möchte. Zudem unterscheiden sich die Cores nur an ihrer CONFIG. Bei den Cores kann man symlinks zu bestimmten Ordnern oder Dateien machen. Deshalb:
- Ist es völlig egal, wo die game-Ordner sind!
- Ist es völlig egal, wo locale und data sind, es müssen nur Verlinkungen existieren!
- Ist es völlig egal, wie die game-Ordner angeordnet sind! Der Aufbau kann also variieren, wie man will!

Das ganze zeigt also eine relativ freizügige aber stabile Verkettung und Verankerung der einzelnen Komponenten. Man kann frei wählen, wo sie stehen sollen und wie sie funktionieren sollen, aber im Endeffekt sind Worldserver (alle gamecores außer der, die als auth deklariert wurde), Authserver und der Datenbankchache (ist der db-Ordner) essentiell wichtig. Wo sie stecken und wie die Verlinkungen aussehen, sind aber völlig egal!

Und nun kommen wir auch zu dem wichtigen Teil dieses langen Guides. Ihr könnt selbst entscheiden, wie die Serverfiles angeordnet sind. Ihr könnt sie verstecken, sodass man erstmal nachschauen muss, wo sie sind (z. B. indem ihr die Serverfiles nach /usr/ports packt). Ihr könnt sie aber auch aufteilen, der eine Teil kommt nach /var/db/, der andere nach /usr/ports und der letzte nach /usr/local oder so. Wie immer ihr wollt! Nur die formalen Gegebenheiten müssen passen, sodass der Server starten kann! Was der Großteil der Community auch nie geändert hat, ist der Name der Gamecore! In Wahrheit muss sie nicht Game heißen, sondern kann viele Namen anwenden. So könnt Ihr sie z. B. wie euren Server benennen! Das spart Übersicht und erleichtert euch später die shut.sh zum Schließen des Servers.


Und zu guter letzt natürlich fehlt uns das Wissen über die start.sh und shut.sh. Bisher benutzen viele die alte Methode: Man benutzt eine mitgelieferte start.sh und zum schließen cd'd die shut.sh in jedes Verzeichnis, zieht sich aus der Datei pid die Prozessid und killt diese. Die Methode kann klappen, jedoch ist es viel besser und schneller, wenn man es anders tut.

start.sh könnte so aussehen:
Code:
cd /home/game/db/ &&
./db
sleep 1
cd /home/game/CH1/game1 &&
./game
sleep 0
ch /home/game/CH1/game2 &&
./game
sleep 0
...
Erkennt Ihr die Methode mit den sleeps? Diese lassen das Script abwarten. In normalen start.sh-Dateien sind diese relativ hoch, jedoch kann man ganz einfach jeden Core nach der Reihe hochfahren - selbst wenn sie gleichzeitig starten würden, würden sie ohne Probleme funktionieren. Nur würde ich nach dem Starten des db-Servers ca 1-2 Sekunden warten lassen, sonst zicken die Gamecores rum. Ihr braucht für die start.sh nichts weiter als in das Verzeichnis zu cd'en und die Core auszuführen - wenn Ihr genügend Instanzen von Putty offen habt, könntet ihr sogar manuell den Core hochfahren, indem ihr einfach überall die game-core einfach ausführt!

Die shut.sh gestaltet sich noch einfacher:
Code:
killall -9 game &&
sleep 0
killall -9 db &&
sleep 1
Das shutdowned den Server sofort und komplett! Es schließt alle Prozesse, die die Namen game und db tragen. Damit ist der Server komplett herunterfahren und das zu 100% (wenn ihr eure cores umbenannt habt, müsst ihr das natürlich hier im Script ändern). Ein Reboot des Rootservers ist deshalb eigentlich nie wirklich für den m2-Server nötig, denn man kann getrost den Server mit diesem Script komplett killen und danach einfach wieder starten. Selbs wenn Probleme auftauchen, die das Fenster in Putty zuspammen: Führt man das Script aus, ist nach ganz wenigen Sekunden alles vorbei mit dem Server und es kommt keine Meldungen mehr.


Wenn Ihr alles verstanden habt (zur Not den Guide 2x lesen, weil es für Anfänger etwas komplexerer ist, hat man aber die Materie verstanden, ist es super einfach), dann könnt Ihr euren Serveraufbau so ändern und optimieren, dass ihr nur die nötigen Maps drauf habt und einen Überblick über den Server haben könnt. Zudem könnt Ihr den Server unter Umständen in > 5 Sekunden komplett neu starten.

Falls noch was offen steht: Für Fragen, Lob und/oder Kritik bin ich gerne hier im Thread da!

Liebe Grüße,
.Alessa
.Alessa is offline  
Thanks
39 Users
Old 07/18/2012, 19:47   #2
 
elite*gold: 0
Join Date: Jul 2012
Posts: 12
Received Thanks: 15
Danke wird vielen helfen

MfG
[SA]Futura is offline  
Old 07/18/2012, 19:48   #3
 
xCPx's Avatar
 
elite*gold: 20
Join Date: Jun 2011
Posts: 2,901
Received Thanks: 3,341
hmm also ich persönlich finde, da fehlt noch verdammt viel in die Richtung oO
Aber als Start für komplett-Neulinge, ist es schonmal nicht schlecht.
xCPx is offline  
Thanks
4 Users
Old 07/18/2012, 19:50   #4
 
elite*gold: 252
Join Date: Mar 2008
Posts: 3,111
Received Thanks: 3,912
Klar, es geht noch viiiiel viel weiter. Aber mich nervt es immer, wenn ich sehe, dass Leute ständig den Aufbau abkopieren und genau so nachmachen. Teilweise weiß man wirklich nicht mehr, was welcher Core ist und die wissen es selbst nichtmal. Deswegen der Guide hier^^ Ich habe auch schon extrem viel Informationen in so einen Text gepresst, das ist schon alles relativ trocken. Mehr wäre denke ich für einen einzigen Guide einfach zu viel, dann bekomme ich nur noch: "tl;dr"
.Alessa is offline  
Old 07/18/2012, 19:51   #5

 
elite*gold: 0
Join Date: Jul 2009
Posts: 2,471
Received Thanks: 5,622
Wörter 1575
Zeichen ohne Leerzeichen 8221
Zeichen mit Leerzeichen 9741
Zeilen 76
Längste Zeile 944
Nicht leere Zeilen 55

Respekt ich würde niemals so viel Text zu dem Thema schreiben bin ich viel zu faul für.
.Alpha. is offline  
Thanks
5 Users
Old 07/18/2012, 19:52   #6
 
XxxGaGaxxX's Avatar
 
elite*gold: 0
Join Date: Jun 2010
Posts: 1,469
Received Thanks: 957
To long; didn't read <33

#thanks given :trollface:
XxxGaGaxxX is offline  
Thanks
1 User
Old 07/18/2012, 19:53   #7
 
Red Firestar's Avatar
 
elite*gold: 0
The Black Market: 185/0/0
Join Date: Jul 2012
Posts: 5,520
Received Thanks: 1,350
Danke wird mir helfen und sicher noch anderen helfen
Red Firestar is offline  
Old 07/18/2012, 20:26   #8
 
.Aza''s Avatar
 
elite*gold: 0
The Black Market: 110/0/3
Join Date: Jan 2012
Posts: 7,868
Received Thanks: 7,711
Quote:
Originally Posted by .Nova. View Post
Wörter 1575
Zeichen ohne Leerzeichen 8221
Zeichen mit Leerzeichen 9741
Zeilen 76
Längste Zeile 944
Nicht leere Zeilen 55

Respekt ich würde niemals so viel Text zu dem Thema schreiben bin ich viel zu faul für.
Zu faul zum schreiben aber sowas posten wie geil^^

Finde es auch ziemlich lang, man sieht an deinen threads das du dir echt mühe dabei gibst was gutes zu tun. Dafür auf jedenfall ein thanks.

Ich werde mir das auch mal alles in ruhe durchlesen.
.Aza' is offline  
Thanks
1 User
Old 07/18/2012, 20:31   #9
 
elite*gold: 0
Join Date: Jun 2012
Posts: 119
Received Thanks: 4
Evtl. zusammenfassen und in
setzen.
Hannessss123 is offline  
Old 07/18/2012, 21:35   #10
 
elite*gold: 17
Join Date: Jan 2009
Posts: 2,538
Received Thanks: 2,404
find es sehr nice, aber was jetzt nur noch fehlt von dir sind:

- ein thread über die häufigsten fehlermeldungen bei sowas bzw allgemein und deren fixxes
- ein thread wie man seinen server auch auf mehrere root´s aufteilen kann ( schutz gegen ddos angriffe) bzw kannst hier hinzufügen oder so.


aber Nice das du soviel für die m2 community schreibst!
Perfection- is offline  
Old 07/18/2012, 21:40   #11
 
.Chuck's Avatar
 
elite*gold: 0
Join Date: Dec 2010
Posts: 3,353
Received Thanks: 4,535
Wieder mal ein Nice How To von dir, vielen Dank
.Chuck is offline  
Old 07/18/2012, 21:44   #12
 
elite*gold: 1
Join Date: Apr 2012
Posts: 928
Received Thanks: 2,485
Schick Schick

Aber um deine Frage von vorher zu beantworten:



.Awesoome' is offline  
Thanks
1 User
Old 07/18/2012, 21:45   #13
 
.Chuck's Avatar
 
elite*gold: 0
Join Date: Dec 2010
Posts: 3,353
Received Thanks: 4,535
Blub xD gerade so bemerkt xD



Thanks und Beiträge beachten.
.Chuck is offline  
Thanks
4 Users
Old 07/18/2012, 23:35   #14
 
elite*gold: 32
The Black Market: 120/0/1
Join Date: Mar 2012
Posts: 6,716
Received Thanks: 2,737
ehmmmm.. nice?
Danke schön für dein 'HowTO' -''Guide''.
Syuki is offline  
Old 07/18/2012, 23:40   #15

 
.Hazel's Avatar
 
elite*gold: 15
Join Date: Feb 2010
Posts: 4,410
Received Thanks: 3,105
Schöner Guide! Wie lange man teilweise damals an solchen Sachen saß ist schon echt heftig und jetzt kann man es innerhalb von fünf Minuten lesen rausbekommen - eigentlich 'ne feine Sache!


Gruß!
.Hazel is offline  
Reply


Similar Threads Similar Threads
[HILFE?] Server Tunen?
04/01/2011 - Counter-Strike - 17 Replies
Hallo, irgendwie laggt mein server leicht, gameserver 16slots Public von Günstige Prepaid Gameserver | monsterserver.de ich habe maniadmin,Matti eventscript. FastDL ( maps + sounds eingefügt ) Jail server mode server.cfg
Womit soll ich meinen Nissan Silvia tunen?
12/25/2010 - Need for Speed World - 1 Replies
Wie schon im Titel beschrieben möchte ich wissen womit ich meine Silivia am besten tunen kann. MFG CrankgamerzTV
Request Thread: Msn tunen, NOT Msnplus
08/31/2009 - Tutorials - 1 Replies
Threadname sagt eigentlich alles! Hier war mal glaub ich ein Thread wo es son Programm gab, dass MSN getunt hat, sprihc verbessert. Ich meine NICHT MSNPLUS ! War glaub cih sogar von einem Mod... bin mir aber nicht sicher.. Damit konnte man quasi alles in Msn verstellen .. Hab grad formatiert und dieses normale zugeballerte mit Mist-MSN kotzt mich an :( Need Help! :D
Windows XP Richtig Tunen
12/18/2008 - Tutorials - 6 Replies
hallo leute hier werde ich euch ein XP Tuning tut erstellen was das letzte aus eurer mühle rausholt. Schneller booten und herunterfahren: Bootvorgang beschleunigen Bootlogo abschalten Anzeigedauer Bootmenü Schneller Booten ohne Freigaben suchen
Grafik tunen möglich?
08/02/2006 - World of Warcraft - 4 Replies
Hio^^ wollt mal nachfragen ob jemand ne möglichkeit kennt die wow grafik n bischen zu tunen, sprich bessere kantenglättung, mapping, auflösung usw. hab mal ne zeitlang ff11 gespielt.da konnte man in der registry die auflösung usw höher stellen. bin gerade noch am testen, aber hab nicht so viel ahnung davon^^ naja wär geil wenns wer wüsste.



All times are GMT +1. The time now is 01:21.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.