Zum Inhalt springen

Hochverfügbare SAN/NAS. Priorisierte Datenübertragung


Empfohlene Beiträge

Geschrieben (bearbeitet)

Hallo,
ich habe eine thoretische Frage, an die Spezialisten unter euch:
Nehmen wir mal an, es gibt meherer Rechner, die Daten aufsammeln und diese Daten lokal, in einer eigenen Datenbank ablegen.
Ist der Rechner kaputt, ist die Datenbank futsch und man kann vielleicht noch ein Image, von Anno dazu mal, auf einen neuen Rechner zurückspielen.
Nun könnte man ja als Alternative, über eine Batchdatei, diese Datenbank zyklisch auf ein gemapptes Netzlaufwerk kopieren, so das man zwar nicht mehr den aktuellsten Stand hat, aber immer noch besser als gar nichts.
Der nächste Step wäre ja nun, die Datenbank direkt auf das Netzlaufwerk zu packen (SAN/NAS) und die Software auf dem Rechner schickt die Daten, dann direkt dort hin.
Das wäre am Besten, denn sollte der Rechner sterben, müsste man nur das Image zurückspielen und die Software setzt dann dort wieder auf, wo sie zuletzt war.
Nun sind aber Zugriffszeiten über das Netzwerk, in der Regel, ja langsamer, so dass das Ganze ja ausgebremst werden könnte, was man ja auch nicht möchte
und wenn nun meherer Rechner auf eine SAN schreiben und lesen und die SAN geht kaputt, dann ist ja alles weg, was der Supergau wäre...

Wie würdet ihr diese Aufgabe lösen, bzw. welche Komponenten würdet ihr dafür einsetzen? Vllt. irgendwie Fileserver mit gespiegelten Platten, dazu noch redundant aufgebaut? Wie kann man das Problem mit den Zugriffszeiten lösen?
Angenommen, der Rechner ist in irgendeiner Etage an einem Access Switch angeschlossen und der Fileserver steht im Rechenzentrum. wie bekommt man es hin, dass diese Kommunikation priorisiert, durch die bestehende Netzwerkinfrastruktur geleitet wird?
Eigendlich kann man das doch nicht? Über den Backbone müssen alle Pakete und alle Pakete werden dort gleich behandelt.
Gruß

Eleu

Bearbeitet von Eleu
Geschrieben

Du suchst nach dem Stichwort QoS um Priorisierungen zu erstellen. Generell bietet es sich fast immer an, Datenbanken zentral vorzuhalten. Also auf einem eigenen Datenbankserver der im RZ steht.

Geschrieben
vor 1 Stunde schrieb Listener:

Du suchst nach dem Stichwort QoS um Priorisierungen zu erstellen.

Dann müsste aber die Software auf dem Rechner die IP - Pakete markieren, was Standard - Datenbank - Applikationen jetzt nicht einfach so hergeben? Oder ist es eine Eigenschaft der Switche? Also ich konfiguriere Switch Port x/y für eingehenden und ausgehenden Datenverkehr höherprior und dann markiert der Switch die Pakete?

Geschrieben
vor 5 Stunden schrieb Eleu:

Nehmen wir mal an, es gibt meherer Rechner, die Daten aufsammeln und diese Daten lokal, in einer eigenen Datenbank ablegen.

Um was für eine "Datenbank" handelt es sich überhaupt? Datei-basierte "Datenbanken" wie DBase und Access sind ein bisschen was anderes als z.B. ein lokaler MSSQL-Server.  Datenbanken aufs Netz zu verschieben kann aus verschiedenen Gründen problematisch sein (was passiert bei temporärem Ausfall des Netzes, Spass mit Locking, etc.).
Je nach DBMS kann man etwa eine automatische Replizierung/Backup, etc. einrichten - und ob sich an der Geschwindigkeit überhaupt etwas ändert kommt auch auf das Datenvolumen, etc. an. Kenne in Clipper geschriebene Konsolen-Anwendungen mit xBase DB, welche über ein 100 MBit/s-Netz nicht wirklich langsamer liefen als lokal..

Geschrieben

Wie RipperFox schreibt, es gibt bei MSSQL z.B. HighAvailability Cluster.

Dabei hast du mind. 2 SQL Server die die Datenbank beherbergen und diese untereinander syncron halten.

 

Um mal nur ein Beispiel zu nennen. Es gibt viele verschiedene Möglichkeiten den Szenario abzufangen. Aber nie wäre ich auf die Idee gekommen die Datenbankfiles auf ein Netzwerkshare zu legen.

Was anderes ist es z.B. bei einem Cluster die DBFiles via FibreChannel anbindung auf ein NAS zu legen.

Geschrieben (bearbeitet)
vor 17 Stunden schrieb Eleu:

[...]Der nächste Step wäre ja nun, die Datenbank direkt auf das Netzlaufwerk zu packen (SAN/NAS) und die Software auf dem Rechner schickt die Daten, dann direkt dort hin.
Das wäre am Besten, denn sollte der Rechner sterben, müsste man nur das Image zurückspielen und die Software setzt dann dort wieder auf, wo sie zuletzt war.
Nun sind aber Zugriffszeiten über das Netzwerk, in der Regel, ja langsamer, so dass das Ganze ja ausgebremst werden könnte, was man ja auch nicht möchte
und wenn nun meherer Rechner auf eine SAN schreiben und lesen und die SAN geht kaputt, dann ist ja alles weg, was der Supergau wäre...[...]

Den Speicherort der Datenbank auf ein SAN / NAS auszulagern, den Server aber dennoch lokal laufen zu lassen, ist denkbar ungünstig.
Dann doch eher einen Datenbankserver aufsetzen (alternativ ein Cluster). Solange es nicht Millionen Miniabfragen auf eine Datenbank sind, sollte es auch kein Problem sein, die Datenbank auf einen Datenbankserver auszulagern. 
Datenbanken kann man problemlos (auch automatisiert) sichern. Bei einem Cluster hat man dabei den Vorteil, dass die Datenbank-Instanz auf einem der Server gelockt und dann eine Sicherung durchgeführt werden kann, während die andere Instanz weiterhin verfügbar ist. Nach dem Backup gleichen sich die Datenbanken dann wieder ab.

Die Sicherung sollte man natürlich auf einem File Server ablegen, der regelmäßig gesichert wird und möglichst auch ein RAID-System hat.

Zitat

[...]Wie kann man das Problem mit den Zugriffszeiten lösen?[...]

Im Normalfall hat man auf Clients keine derart zeitkritischen Anwendungen laufen, sondern wenn dann laufen diese auf Servern im Rechenzentrum, so dass die Wege zu anderen Servern möglichst kurz sind. Access-Switche sind halt nicht auf High Performance ausgelegt, sondern für Standardclients.

Zitat

Angenommen, der Rechner ist in irgendeiner Etage an einem Access Switch angeschlossen und der Fileserver steht im Rechenzentrum. wie bekommt man es hin, dass diese Kommunikation priorisiert, durch die bestehende Netzwerkinfrastruktur geleitet wird?
Eigendlich kann man das doch nicht? Über den Backbone müssen alle Pakete und alle Pakete werden dort gleich behandelt.[...]

Am besten wäre hier vermutlich QoS in Verbindung mit MPLS. QoS um die Pakete zu priorisieren und MPLS, um die Laufzeiten zu minimieren (Pfad wird einmal aufgebaut und danach wie Switching anhand der MPLS-Label). Ob MPLS bei den heutigen Routern aber noch Vorteile bietet, was die Geschwindigkeit angeht, weiß ich leider aktuell auch nicht, da ich damit nicht viel zu tun habe.

vor 15 Stunden schrieb Eleu:

Dann müsste aber die Software auf dem Rechner die IP - Pakete markieren, was Standard - Datenbank - Applikationen jetzt nicht einfach so hergeben? Oder ist es eine Eigenschaft der Switche? Also ich konfiguriere Switch Port x/y für eingehenden und ausgehenden Datenverkehr höherprior und dann markiert der Switch die Pakete?

Mit CoS (Class of Service) werden verschiedenen Anwendungen bzw. zu übermittelnden Daten Prioritäten zugeteilt. Im Allgemeinen werden dabei drei Klassen unterschieden: Klasse 1 (VoIP / Video over IP) und hat die höchste Priorität, Klasse 2 umfasst die Übertragung von geschäftskritischen Daten, wie sie unter anderem bei SAP oder ERP (oder auch sonstige kritische Datenbankanwendungen) vorkommt. Klasse 3 bezieht sich auf die Übertragung geschäftsunkritischer Daten wie E-Mails, hat die niedrigste Priorität und muss sich den anderen beiden Klassen unterordnen.

QoS (Quality of Service) setzt auf die von CoS vorgenommene Einteilung auf und weist jeder Klasse eine spezifische  Bandbreite zu, die ihr garantiert zur Verfügung steht. Diese Zuweisung kann dynamisch oder statisch erfolgen – meist wird die dynamische Variante genutzt, damit die insgesamt vorhandene Bandbreite nur im Bedarfsfall eingeschränkt wird.

Die Kombination von CoS und QoS sorgt dafür, dass die Leistungsfähigkeit einer Standortvernetzung so intelligent wie möglich verwaltet wird. Es verhindert bestmöglich „Datenstaus“ und Verzögerungen im Netzwerk und sorgt dafür, dass zeitkritische Daten sicher ankommen.

Alternativ besteht auch noch die Möglichkeit, dass ein Server Pakete direkt entsprechend taggt - dann muss der nächste Switch aber so konfiguriert sein, dass er diesem Tagging des entsprechenden Servers vertraut.

Bearbeitet von Crash2001
Geschrieben
vor einer Stunde schrieb Crash2001:

Den Speicherort der Datenbank auf ein SAN / NAS auszulagern, den Server aber dennoch lokal laufen zu lassen, ist denkbar ungünstig.
Dann doch eher einen Datenbankserver aufsetzen (alternativ ein Cluster). Solange es nicht Millionen Miniabfragen auf eine Datenbank sind, sollte es auch kein Problem sein, die Datenbank auf einen Datenbankserver auszulagern. 
Datenbanken kann man problemlos (auch automatisiert) sichern. Bei einem Cluster hat man dabei den Vorteil, dass die Datenbank-Instanz auf einem der Server gelockt und dann eine Sicherung durchgeführt werden kann, während die andere Instanz weiterhin verfügbar ist. Nach dem Backup gleichen sich die Datenbanken dann wieder ab.

Die Sicherung sollte man natürlich auf einem File Server ablegen, der regelmäßig gesichert wird und möglichst auch ein RAID-System hat.

Im Normalfall hat man auf Clients keine derart zeitkritischen Anwendungen laufen, sondern wenn dann laufen diese auf Servern im Rechenzentrum, so dass die Wege zu anderen Servern möglichst kurz sind. Access-Switche sind halt nicht auf High Performance ausgelegt, sondern für Standardclients.

Vielen Dank an alle für die Infos.

Wenn ich es richtig verstehe, wäre der von Chrash2001 beschriebene Weg der Richtige.

Ein denkbare Szenario, wäre ja zum Beispiel ein vollautomatisches Lager. Über mehrere Clients  werden Artikel eingelagert und in der Datenbank eingebucht und über andere Clients werden Artikel ausgelagert.

Die Datenbank und die Verwaltungssoftware läuft dann auf einem Server (Rechner). Ein weiterer Server läuft parallel. Die beiden Server gleichen sich zyklisch ab (Cluster). Die Clients verbinden sich mit der Verwaltungssoftware via RDP, um Artikel ein- bzw. auszulagern. Aber kann es denn nicht, ja nach dem wie viele Clients sich mit dem Server verbinden, zu langen Wartezeiten kommen, bis ein Artikel von der Verwaltungssoftware verarbeitet wurde? Ich stelle mir vor, dass die Verwaltungssoftware viele Anfragen gleichzeitig verarbeiten muss?

Die Sicherung auf einen File Server sehe insofern als problematisch an, da sie eben nicht immer aktuell ist. Nach einer Std. wäre der Artikelbestand mit Platz schon derart verändert, das die Sicherung nicht viel nützt. Allerdings sind es ja zwei Server, die sich ständig abgleichen.

Vllt. geht es ja auch, dass die Verwaltungssoftware, zum Einen ihre Daten auf die lokale Platte ablegt und gleichzeitig auf eine SAN, in der Nähe der Server?    

Geschrieben

Also bei uns nennt sich die Verwaltungssoftware ERP System.

Diese muss aktuell ca. 500 Kassen händeln. Beudeutet also 500 Clients die ständig Waren ausbuchen.

Gleichzeitig gibt es ca. 50 User Clients die Warenbewegungen manuell vornehmen da z.B. per Kauf im Internet Ware zu einem anderen Standort bewegt werden soll. Und als 3tes kommen an 4 Standorten noch ca. 25 Mobile Wareneingangserfassungsgeräte hinzu.

Alles in allem also ca. 600 Geräte die gleichzeitig die Waren hin und her bewegen. Und um es zu toppen gibt es noch unzählige Automatische Prozesse die Warenbewegungen erzeugen können. Z.B. ein MRP (ANV / PPP) der Automatische Nachbestellungen erzeugt die zum Logistikdienstleister geleifert werden und sobald dort eingegangen via automatischer Umalgerunggen an die Standorte verteilt werden.

 

Ja dabei kommt es zu Wartezeiten. ABER diese bewegen, bzw. sollten sich bewegen im ms (millisekunden) Bereich.

Dabei kommt es darauf an das das die einzelnen Transaktionen in der DB moglichst effizient ablaufen (also nutzen von indizes etc.p.p.) und das die Datenbank eben auch auf einem performanten system aufgebaut ist.

Für die zentrale DB nutzen wir einen Windows Datacenter Cluster. = 2 HW MAschinen mit je 1,5TB RAM die via FibreChannel an 1 NAS angeschlossen sind. Das NAS erlaubt 1 DB Server den Zugriff. Dies ist dann der Primäre Server. Der Sekundäre hat aktuell keinen Zugriff und warte nur darauf das der Primäre Server seine Arbeit einstellt um dann instant die Arbeit aufzunehmen.

Im testscenario wird dabei genau 1 Datenpaket verloren. Dies ist aber in der Datenbank okay. dabei wird die Transaktion die mit dem Paket abgehandelt werden sollte zurückgerollt und abgebrochen.

 

Bedeutet also im Normalfall bekommt der User der in dem Moment des Clusterschwenks arbeitet eine Fehlermeldung das seine Arbeit nicht ausgeführt werden konnte.

 

Sicherung ist ein anderes Thema, das ist bei unserem Kunde 15minütiges LogFile-Backup und tägliches Vollbackup.

Geschrieben
vor einer Stunde schrieb Enno:

Also bei uns nennt sich die Verwaltungssoftware ERP System.

Diese muss aktuell ca. 500 Kassen händeln. Beudeutet also 500 Clients die ständig Waren ausbuchen.

Gleichzeitig gibt es ca. 50 User Clients die Warenbewegungen manuell vornehmen da z.B. per Kauf im Internet Ware zu einem anderen Standort bewegt werden soll. Und als 3tes kommen an 4 Standorten noch ca. 25 Mobile Wareneingangserfassungsgeräte hinzu.

Alles in allem also ca. 600 Geräte die gleichzeitig die Waren hin und her bewegen. Und um es zu toppen gibt es noch unzählige Automatische Prozesse die Warenbewegungen erzeugen können. Z.B. ein MRP (ANV / PPP) der Automatische Nachbestellungen erzeugt die zum Logistikdienstleister geleifert werden und sobald dort eingegangen via automatischer Umalgerunggen an die Standorte verteilt werden.

 

Ja dabei kommt es zu Wartezeiten. ABER diese bewegen, bzw. sollten sich bewegen im ms (millisekunden) Bereich.

Dabei kommt es darauf an das das die einzelnen Transaktionen in der DB moglichst effizient ablaufen (also nutzen von indizes etc.p.p.) und das die Datenbank eben auch auf einem performanten system aufgebaut ist.

Für die zentrale DB nutzen wir einen Windows Datacenter Cluster. = 2 HW MAschinen mit je 1,5TB RAM die via FibreChannel an 1 NAS angeschlossen sind. Das NAS erlaubt 1 DB Server den Zugriff. Dies ist dann der Primäre Server. Der Sekundäre hat aktuell keinen Zugriff und warte nur darauf das der Primäre Server seine Arbeit einstellt um dann instant die Arbeit aufzunehmen.

Im testscenario wird dabei genau 1 Datenpaket verloren. Dies ist aber in der Datenbank okay. dabei wird die Transaktion die mit dem Paket abgehandelt werden sollte zurückgerollt und abgebrochen.

 

Bedeutet also im Normalfall bekommt der User der in dem Moment des Clusterschwenks arbeitet eine Fehlermeldung das seine Arbeit nicht ausgeführt werden konnte.

 

Sicherung ist ein anderes Thema, das ist bei unserem Kunde 15minütiges LogFile-Backup und tägliches Vollbackup.

Das ist dann eine Terminalserver - Lösung und die Terminals haben, vermute ich, eine proprietäre Zugangssoftware? Dann ist sozusagen, bzgl. Software (ERP-System) alles aus einer Hand, oder?  

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...