Webserver load balance - Dateinsystem schnell aktuell halten

Backup, Restore und Transfer von Daten
djbennyf
Posts: 176
Joined: 2003-04-06 19:44
 

Webserver load balance - Dateinsystem schnell aktuell halten

Post by djbennyf »

Wir setzen zur Zeit einen 2. Webserver auf, der immoment nur als Backupserver dient auf. Dieser wird immoment alle paar Stunden via "sitecopy" auf den aktuellsten Stand gebracht.

Unsere Seite generiert aus der DB immer wieder statische Seiten, sobald sich inhalt ändert.

Nun muss gewehrleistet werden, dass die Datein schnellst möglich auch auf den 2. Server transferiert werden.
Sitecopy ist dafür zu langsam!
Es ändern sich pro Minute ca. 50 Seiten und einmal täglich größere Bildermengen.

Da das gesamte Projekt über 250 000 Deiten umfasst ist sitecopy pro aufruf zulange beschäftigt.

Weleche lösung gibt es die möglichst realtime arbeitet?
projekt2501
Posts: 92
Joined: 2003-08-14 08:23
Contact:
 

Re: Webserver load balance - Dateinsystem schnell aktuell halten

Post by projekt2501 »

Scripte so ändern, dass wenn neue Seiten generiert werden diese direkt kopiert werden auf den 2ten Server
djbennyf
Posts: 176
Joined: 2003-04-06 19:44
 

Re: Webserver load balance - Dateinsystem schnell aktuell halten

Post by djbennyf »

Das haben wir auch in betracht gezogen nur da es seiten gibt die zwar immer aufgerufen werden aber nur ein einziges mal generiert werden, ist es gefährlich...
Denn wenn Server 1 eine neue Seite generiert und server 2 nicht ereichbar ist. möglich wäre ein art tmp verzeichniss wo die datei kopiert wird und wenn sie übertragen wurde wieder gelöscht wird. ist der server nicht ereichbar, dann wird das dir immer wieder rübergeladen.
Aber fanden wir für eine schlechte Lösung!
alexander newald
Posts: 1117
Joined: 2002-09-27 00:54
Location: Hannover
Contact:
 

Re: Webserver load balance - Dateinsystem schnell aktuell halten

Post by alexander newald »

Das Programm, welches die statischen Seiten erstellt, so abändern, dass es die Datei(en) nicht nur lokal erstellt, sondern auch per FTP auf den 2. Server kopiert.
projekt2501
Posts: 92
Joined: 2003-08-14 08:23
Contact:
 

Re: Webserver load balance - Dateinsystem schnell aktuell halten

Post by projekt2501 »

Ihr könntet natürlich die Scripte auch so ändern, dass die Dateien in eine Datenbank generiert werden, und dann daraus generiert werden. Würde das so angehen, dass der 2te Server sich die Datenbank holt, wenn er kann... damit ist das 2ter Server offline Problem gelöst außerdem braucht man nur einen Stream :)
floschi
Userprojekt
Userprojekt
Posts: 3247
Joined: 2002-07-18 08:13
Location: München
Contact:
 

Re: Webserver load balance - Dateinsystem schnell aktuell halten

Post by floschi »

rsync
djbennyf
Posts: 176
Joined: 2003-04-06 19:44
 

Re: Webserver load balance - Dateinsystem schnell aktuell halten

Post by djbennyf »

Mit dem holen ist das so ne sache. Cron... somit dauert es immerhin eine Minute und die kann in der jetzigen Zeit schon viel sein.

am besten wäre ein Tool das ständig als Service am Server läuft und ich im dann einen kill oder einen bash befehl schicke z.b. "UPDATE /bla/bla/bla/bla.html" und er dass dann automatisch amcht in "Echtzeit" somit hab ich acuh keine probleme wenn ein "Skript abbricht"...

Wie sieht das mit Rsync aus?
Am liebsten wäre mir eine fertige Lösung. Kosten kanns auch was. Ich will nicht das Rad neu erfinden *g*
projekt2501
Posts: 92
Joined: 2003-08-14 08:23
Contact:
 

Re: Webserver load balance - Dateinsystem schnell aktuell halten

Post by projekt2501 »

Du könntest ein PHP Script so einstellen, dass es keine Laufzeitbegrenzung hat... Dann einfach einen beliebigen sleep() einbauen... kostet nix und rennt ausgezeichnet. Hab mir damit ein Ã?berwachungsscript für einzelne User gebastelt... ist dann halt sekundengenau/millissekundengenau :)

du könntest das script auch einfach aufrufen lassen von dem script, dass die seiten generiert...
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten
Contact:
 

Re: Webserver load balance - Dateinsystem schnell aktuell halten

Post by captaincrunch »

Wie wär's denn mit drbd?
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
djbennyf
Posts: 176
Joined: 2003-04-06 19:44
 

Re: Webserver load balance - Dateinsystem schnell aktuell halten

Post by djbennyf »

Ein zwei Sätze wäre schon von Vorteil.

Was genau kann drbd?
djbennyf
Posts: 176
Joined: 2003-04-06 19:44
 

Re: Webserver load balance - Dateinsystem schnell aktuell halten

Post by djbennyf »

Eine art Software-Raid, dass einen Ordner (Virtuelle Festplatte) miteinander auf den aktuellsten Stand hält wäre evtl. auch ne Lösung.
Wenn sich jemand wirklich auskennt soll er sich bei mir melden!
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten
Contact:
 

Re: Webserver load balance - Dateinsystem schnell aktuell halten

Post by captaincrunch »

Davon red ich doch die ganze Zeit:
http://linuxha.trick.ca/DRBD_2fFAQ

Alternaive: GFS
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
alexander newald
Posts: 1117
Joined: 2002-09-27 00:54
Location: Hannover
Contact:
 

Re: Webserver load balance - Dateinsystem schnell aktuell halten

Post by alexander newald »

Mein Posting hat irgendwie keiner gelesen, oder? Ist, meines erachtens, die einfachste Lösung.
projekt2501
Posts: 92
Joined: 2003-08-14 08:23
Contact:
 

Re: Webserver load balance - Dateinsystem schnell aktuell halten

Post by projekt2501 »

Gelesen ja, aber es sie hat den entscheidenden Nachteil, dass wenn der 2te Server nicht läuft die Daten nicht konsitent übertragen werden...
alexander newald
Posts: 1117
Joined: 2002-09-27 00:54
Location: Hannover
Contact:
 

Re: Webserver load balance - Dateinsystem schnell aktuell halten

Post by alexander newald »

War allerdings nicht die Anforderung. - Ok, aber dazu dann die Lösung:

Das Skript, welches die Dateien erstellt, prüft, ob die Datei per FTP übertragen werden konnte, wenn nicht, speichert das Script die Datei in ein Transferverzeichnis (z.B. /www/transfer/OrginalPfad/OrginalDatei). Der 2. Server kopiert sich dann Rekursiv beim Starten die Dateien per FTP aus diesem Verzeichnis heraus (z.B. per wget)
djbennyf
Posts: 176
Joined: 2003-04-06 19:44
 

Re: Webserver load balance - Dateinsystem schnell aktuell halten

Post by djbennyf »

Problem ist es wird wie es aussieht in einigen wochen auch noch einen 3. Server geben. Wenn ich das alles via PHP mache verzögert sich die Ladezeiten etc.

:) Aber danke für den Vorschlag :)
alexander newald
Posts: 1117
Joined: 2002-09-27 00:54
Location: Hannover
Contact:
 

Re: Webserver load balance - Dateinsystem schnell aktuell halten

Post by alexander newald »

Ach so, die Dateien werden direkt beim Aufruf der Seite erstellt?

Dann folgendes:

Das PHP Script schreibt den Dateinamen inkl. vollem Pfad in eine Datei (hier /pfad/datei_mit_dateinamen, anhängend nicht überschreibend).

in /pfad/server stehen die Server, auf die die Dateien übertragen werden sollen im Format: <SERVER> <USERID> <PASSWORT> mit Leerzeichen und/oder TAB getrennt pro Zeile.

Das ganze einmal aufrufen, forked dann in den Hintergrund und prüft einmal pro Sekunde auf neue Dateien.

Nochwas, habe ich jetzt ohne zu testen einfach mal so hingeschrieben, wenns nicht direkt geht, eine PM an mich

Code: Select all

#!/usr/bin/perl

use Net::FTP;

if (fork) { exit 0; }

my $filename = "/pfad/datei_mit_dateinamen";

while(1) {
if (-e $filename) {
 open(FILE,"<$filename");
 flock(FILE,2);
 while(<FILE>) {
  chomp($file = $_);
  $files{$file} = 1;
  }
 flock(FILE,8);
 close(FILE);
 unlink $filename;
 
 my @server = ();
 my %server = ();
 
 open(FILE,"</pfad/server");
 while(<FILE>) {
  chomp($tmp = $_);
  $tmp =~ s/[t ]{1,}/ /g;
  my ($serv,$uid,$pwd) = split(/ /,$tmp);
  $server{"$serv","userid"} = $uid;
  $server{"$serv","pwd"} = $pwd;
  push(@server,$serv);
  }
 close(FILE);
 foreach my $server (@server) {
  my $ftp=Net::FTP->new($server);
  $ftp->login($server{"$server","userid"},$server{"$server","pwd"});
  foreach my $file (keys %files) {
   $ftp->put($file);
   }
  $ftp->quit;
  }
 sleep 1;
 }
djbennyf
Posts: 176
Joined: 2003-04-06 19:44
 

Re: Webserver load balance - Dateinsystem schnell aktuell halten

Post by djbennyf »

Kostet dieser Prozess nicht viele Server resourcen? und was ist wenn es viele Datein / bilder zum hochladen gibt?
projekt2501
Posts: 92
Joined: 2003-08-14 08:23
Contact:
 

Re: Webserver load balance - Dateinsystem schnell aktuell halten

Post by projekt2501 »

viele Dateioperationen... :/

aber der Prozess legt nach jedem durchlauf eine Pause ein von einer Sekunde... Frage ist nur wie hoch die Last durch den Prozess wird... ggf. ist eine Datenbank ressourcenschonender
djbennyf
Posts: 176
Joined: 2003-04-06 19:44
 

Re: Webserver load balance - Dateinsystem schnell aktuell halten

Post by djbennyf »

Der MySql Server ist sowieso schon rehct ausgelastet...
alexander newald
Posts: 1117
Joined: 2002-09-27 00:54
Location: Hannover
Contact:
 

Re: Webserver load balance - Dateinsystem schnell aktuell halten

Post by alexander newald »

Die Last ist keine.

Solange keine Dateien zum Hochladen vorliegen, werden lediglich einmal Sleep und einmal der Test, ob die Datei mit der Dateiliste vorhanden ist, ausgeführt. Deshalb das Forken in den Hintergrund und nicht der Aufruf per Cron, der Overhead des Starten des Scripts entfällt.

Beim Ã?bertragen per FTP werden alle Dateien nacheinander per FTP übertragen. Auch hier fällt nicht mehr Systemauslastung an, als wenn ich die Dateien per FTP Client kopieren würde.
projekt2501
Posts: 92
Joined: 2003-08-14 08:23
Contact:
 

Re: Webserver load balance - Dateinsystem schnell aktuell halten

Post by projekt2501 »

Wenn die Angabe oben ungefähr stimmt kann mal also damit rechnen, dass ca. pro Aufruf eine Datei übertragen wird. Das sollte von der Last her gut zu verschmerzen sein. Vielleicht auch auf 3 Sekunden oder so einstellen... Da wäre wohl testen angesagt
djbennyf
Posts: 176
Joined: 2003-04-06 19:44
 

Re: Webserver load balance - Dateinsystem schnell aktuell halten

Post by djbennyf »

Was ist wenn werend des perls php was neues reinschreibt? er macht ja unlink. das wäre dann weg oder?
alexander newald
Posts: 1117
Joined: 2002-09-27 00:54
Location: Hannover
Contact:
 

Re: Webserver load balance - Dateinsystem schnell aktuell halten

Post by alexander newald »

Nein, die Datei wird per Lock gesperrt.
djbennyf
Posts: 176
Joined: 2003-04-06 19:44
 

Re: Webserver load balance - Dateinsystem schnell aktuell halten

Post by djbennyf »

Nunja auch wenn ich so "dumm" Frage aber es soll ja funktionieren....
Wenn PHP Nun wieder etwas neue hinzufügen will :)
Post Reply