4 PCs - 1 Verzeichnis - Wie?

dacrow

Cadet 1st Year
Registriert
Sep. 2010
Beiträge
11
Moin Leute!

Der Vater meines besten Freundes hat ein kleines Vermessungsbüro und hat mich gefragt, ob ich seine Workstations aufpeppeln könnte. Momentan haben dir da 4 PCs mit WinXP stehen und eine Linux-Kiste als Backup-Server. An allen 4 WinXP Systemen arbeiten die Mitarbeiter den Tag über mit ihrer Spezialsoftware und jeder Mitarbeiter speichert in einem speziellen lokalen Ordner auf seiner HDD die erzeugten Daten. Die wird dann mittels Traybackup am Abend auf den Server kopiert.

Es kommt wohl oft vor, dass der eine Mitarbeiter auf die Dateien eines anderen zugreifen muss, daher sind die speziellen lokalen Ordner alle freigegeben über das Netzwerk. Arbeiten zwei oder mehr Mitarbeiter am gleichen Projekt, entstehen schnell inkonsistenzen, da der eine Mitarbeiter Dateien erzeugt, die dem anderen fehlen, der die dann holt und somit zwei Kopien existieren, die im schlimmsten Fall auch noch unterschiedlich weiterentwickelt werden.

Ich würde dem Vater meines besten Freundes gerne helfen, bin mir aber nicht so ganz sicher, was die beste Lösung ist.

Vorschlag: Alle 4 Workstations werden mit Win7 ausgestattet, damit Sicherheitspatches von MS kommen. Dann wird auf jeder Workstation ein Ordner angelegt, z.B. "D.\Data", welcher auf allen 4 Workstations gleich ist.
Dieser Ordner müsste irgendwie den Tag über synchronisiert werden. Verbunden sind die Rechner ja mit einem 1000Mbit Netzwerk. Anfänglich dachte ich, man könnte ja diesen Ordner auf der Linuxkiste halten und jeder greift dann übers Netzwerk drauf zu. Jedoch scheint die Spezialsoftware mitunter recht aufwändige Berechnungen durchzuführen, so dass die Latenzen und die Netzwerkbelastung stören würde.

Vielleicht hat der ein oder andere schonmal ein verteiltes Dateisystem aufgesetzt und könnte mir einen Tip geben? Ich bräuchte ein System, welches den D:\Data-Ordner auf allen 4 Workstations sagen wir mal alle 10min abgleicht. Oder von mir aus auch minütlich oder in Abhängigkeit der aktuellen Netzwerkauslastung in Real-Time.

Achso: Zur Vereinfachung kann ausgeschlossen werden, dass mehrere Mitarbeiter auf eine einzelne Datei gleichzeitig zugreifen müssen. Das kommt wohl nicht vor. Daher wäre es schön, dass solch ein System den Zugriff auf eine gerade bei einem anderen Mitarbeiter geöffneten Datei einfach sperrt. So können keine Inkonsistenzen entstehen.

Kann mir jemand einen Hinweis geben, welches (Datei-)System ich suche? Was benutzt man dafür?? Ich hab mich mit sowas noch nie beschäftigt, würde hier aber meinem Kumpel gerne weiterhelfen..
 
Auf dem Linux Server lässt man Samba laufen und alle greifen darauf zu und haben keine Dateien mehr auf dem eigenen PC. fertig.
 
auf dem linux server ein subversion einrichten und gut is
 
Einfach nur eine Externe Festplatte mit Lan Anschluss besorgen und ins Netzwerk einbinden.
Platte für alle Freigeben und fertig.
 
ich kenn selber mich (in Praxis) nicht sehr gut damit aus, aber an der Uni haben wir in einer Vorlesung NFS und AFS behandelt.
Kannst dich ja mal darüber informieren, vielleicht bringt dich das ja weiter.
 
total übertrieben gleich das betriebssystem zu wechseln, wobei nicht mal klar ist ob damit alles läuft.

ich würde einen kleinen PC oder server zusammenbauen, den an ein Switch stecken und alle 4 PCs mit dem Switch verbinden. als dateisystem NFTS, um spätere probleme zu vermeiden.
 
Wie groß sind den diese Dateien. Ich habe schon an 2 Projekten gearbeitet wo die Daten komplett über einen Server verteilt wurden, da hat man dann eine 5 k€ Workstation vor sich und die ist lahm wie sau weil die Netzwerkzugriffe ein flüssiges Arbeiten unmöglich machen.... ich würde das vorher erstmal ausprobieren bevor seine Mitarbeiter entnervt Amok laufen ;)
Edit: um welche Programme handelt es sich denn? Bei diesen kann man meistens auch Zugriffsrechte verwalten, z.B. das der 2te der die Datei aufmacht diese nur als Schreibgeschützt öffnen kann und vor dem Bearbeiten sich die Rechte erfragen muss ;)
 
Entweder die Dateien direkt auf dem Linuxserver oder ein einfaches NAS kaufen und ins Netz einbinden.
Bei Gigabit-Netzwerk sollte das auch performant laufen.
 
Vielen Dank für eure Hinweise!

Der Wechsel zu Win7 ist gewünscht, vorhandene Software ist dort lauffähig.

Einfach nur ein Verzeichnis mittels Samba freigeben, wollte ich vermeiden, um unnötige Latenzen zu verhindern. Als zusätzliches Sicherheitsfeature bzgl. HDD-Ausfall sollte "D:\Data" auf jeder Workstation liegen.

Repository-Systeme wie SVN/Git haben den Nachteil, dass immer ein Commit/Update durchgeführt werden muss. Ruft Mitarbeiter 1 einem Mitarbeiter 2 zu, dass eine neue PDF in dem Verzeichnis liegt, muss 1 erst Commiten und 2 ein Update durchführen - erscheint mir zu umständlich und ist für Mitarbeiter 40+ schwierig gedanklich zu erfassen.

AFS hat das Problem, dass die Daten nur auf dem Server liegen, lokale Caches nützen (eventuell?) bei HDD Ausfall des Servers nichts mehr ...

Zum einen hätte ich gerne auf jedem Client alle Daten liegen, um HDD Ausfällen vorzubeugen und Latenzen beim Zugriff entgegen zu wirken. Zum anderen muss die Konsitenz der Daten bei allen Client Rechnern gegeben sein..
 
Über welche Hardware verfügen die bestehenden Maschinen? Sind die Maschinen ausreichend stark oder wird mehr Leistung gewünscht?

Falls letzteres zutrifft, wäre es eine Idee, erstmal eine neue "Workstation" zu besorgen, mit der gewünschten Software (z.B. Win 7) zu bespielen und ins Netzwerk einzubinden. Wenn das nach ein paar Tagen Test ohne Probleme läuft, hat man schon mal einen redundanten Arbeitsplatz. Anschließend kann man überlegen, ob man nun sukzessiv die alten Rechner neu aufsetzt oder durch ebenfalls neue Maschinen ersetzt.

Ansonsten wie schon gesagt, ein Netzlaufwerk für alle und keine lokalen Daten mehr. Für das Netzlaufwerk muß dann natürlich eine Backupstrategie her. Z.B. automatisiertes, inkrementelles Backup alle 30 Minuten.

PS: Zu den Gedanken aus Post #10. Du könntest natürlich Kopien der Backups im Netzwerk verteilen. Dann würde ich die Daten aber mindestens mit gesetzten Schreibschutz-Attribut auf den Arbeitsplatzrechnern der Mitarbeiter abspeichern und die Verabredung treffen, daß niemand in dem Verzeichnis arbeiten und auch keine lokalen Kopien anlegen darf. Gearbeitet werden muß immer auf dem Netzlaufwerk.

Zu der Frage nach der Netzwerklast. Wie I/O-lastig arbeitet die Spezialsoftware? Falls I/O-Last erzeugt wird, um was für Daten handelt es sich? Z.B. können Tmp-Files der Software gerne lokal abgelegt werden. Die Ergebnisse in Form der "Projektdateien" müssen aber in jedem Fall auf den Server.
 
Zuletzt bearbeitet:
@dacrow
ohne dir zu nahe zu treten, aber bist du dir sicher, dass du das machen willst? Was machst du wenn bei deinem Vorhaben was schief geht und (wegen dir) die Arbeit dort zum erliegen kommt?

Weil das was du dir vorstelltst (Lokale Kopie auf jedem Rechner usw.), alles andere als gut durchdacht ist.
 
kommt auf die Datenmenge an
aber ihr könnt auch sowas wie dropbox verwenden
auf jeden Rechner das Tool installieren, auf den Richtigen Ordner setzen
der Rest läuft alles im Hintergrund....

Je nach Datenschutz kannst auch alternativen verwenden wie z.b.
Wuala
 
Ich finde den Vorschlag von Mumpitzelchen bis jetzt am besten. Spontan fällt mir da nichts besseres ein.
 
Wie leistungsstark ist der Linux Server? Wenn möglich würde ich Linux durch Windows 7 Professional ersetzten... Windows Server 2008 R2 wäre zu viel des guten bei einem so kleinen Unternehmen.

Ansonsten einfach einen kleinen NAS-Server.
 
also lokale Caches machen die Sache deutlich komplizierter, aber nicht unmöglich.
Habt ihr die Performance für den Fall das alles auf einem Server liegt mal getestet?
Vielleicht reicht es ja aus, dann vereinfacht es die Sache ungemein.
 
PS: Zu den Gedanken aus Post #10. Du könntest natürlich Kopien der Backups im Netzwerk verteilen. Dann würde ich die Daten aber mindestens mit gesetzten Schreibschutz-Attribut auf den Arbeitsplatzrechnern der Mitarbeiter abspeichern und die Verabredung treffen, daß niemand in dem Verzeichnis arbeiten und auch keine lokalen Kopien anlegen darf. Gearbeitet werden muß immer auf dem Netzlaufwerk.

Hmmm, schöner wäre es gewesen, wenn die Nutzdaten gleichzeitig die Backupdaten wären. Aber mit deinem Vorschlag wäre wenigsten die Redundanz gegeben.

ohne dir zu nahe zu treten, aber bist du dir sicher, dass du das machen willst? Was machst du wenn bei deinem Vorhaben was schief geht und (wegen dir) die Arbeit dort zum erliegen kommt?

Nee, zutrauen tue ich mir das auf jeden Fall. Rein technisch mache ich mir da keine Sorgen. Die Workstations sollen neu aufgebaut werden, d.h., vier neue i7 CPUs mit SSD und 8GB RAM. Ich kann die ganze Geschichte komplett parallel zum Geschäftsbetrieb aufbauen, ohne die Arbeit der Mitarbeiter zu stören.

Weil das was du dir vorstelltst (Lokale Kopie auf jedem Rechner usw.), alles andere als gut durchdacht ist.
Wieso soll das nicht gut durchdacht sein?! Lokale Kopie auf jedem Client sorgt für niedrige Latenzen und Ausfallsicherheit der HDDs. Da gleichzeitiger Zugriff auf einzelne Dateien ausgeschlossen werden kann bzw. durch ein File-Lock ausgeschlossen wird, entstehen die damit verbundenen Probleme erst garnicht. Daher ist die Idee gut. Lediglich bzgl. der Umsetzung war ich mir unsicher.

Bisher scheint es jedoch so, als ob es keine derartige Lösung gibt. Einzig ein Repository-System wie Git erzeugt echte lokale Kopien, ist aber unhandlich bei einem nicht-IT-Büro.

aber ihr könnt auch sowas wie dropbox verwenden
Hier werde ich nochmal recherchieren. Müsste dann aber ein lokales Dropbox-System sein, so in richtung Sparkle*share.

Wie leistungsstark ist der Linux Server? Wenn möglich würde ich Linux durch Windows 7 Professional ersetzten... Windows Server 2008 R2 wäre zu viel des guten bei einem so kleinen Unternehmen.

Ansonsten einfach einen kleinen NAS-Server.
Der Server ist relativ Ressourcen-arm. Es handelt sich um einen core i3 mit 2x1TB platten + Debian Systemplatten. Auf ihm läuft neben Samba für die aktuelle Backup-Strategie ein Asterisk-Server, den ich vor zwei Jahren mal für den Vater meines Freundes aufgesetzt habe. Umstellung auf Windows wäre wegen Asterisk blöd, müsste das dann virtualisieren.

also lokale Caches machen die Sache deutlich komplizierter, aber nicht unmöglich.
Habt ihr die Performance für den Fall das alles auf einem Server liegt mal getestet?
Vielleicht reicht es ja aus, dann vereinfacht es die Sache ungemein.
Nee, ich müsste das wirklich mal testen. Bisher scheint es ja doch auf eine SMB-Lösung hinaus zu laufen... Jedoch würde ich in dem Fall, dass das Vorhaben mit den allseits gespiegelten Daten nicht geht, eher auf AFS setzen, da ich dann wenigstens einen 64GB Cache lokal hätte...


Wie gesagt, das große Ziel ist eigentlich, auf allen Clients + dem Server das Verzeichnis "D:\Data" synchron zu halten. Vielleicht braucht es auch nur entsprechende Samba-Shares und nur eine Software, die das synchen übernimmt..
 
http://owncloud.org/sync-clients/
The ownCloud Sync Client is a desktop program running on your computer.

One ore more specified directories on the local machine are going to be synced to your ownCloud. Files on your ownCloud are automatically the same as the ones on the local disk. If you change one here, its gets there and vice versa.

The latest version of the client is version 1.0.3, released on june 22, 2012.


Vom ziemlich üblen Netzwerk-Traffic abgesehen klingt das für mich so, als wäre OwnCloud mal wieder die Lösung eurer Probleme.
 
Wenn aber 2 am gleichen Projekt zur gleichen Zeit arbeiten, wie sollen die Daten behandelt werden?
Wer ist für dieses File Master, wessen Änderungen gehen verloren? Oder kann das kombiniert werden (wie bei DBs)?
Daher ist ein Server besser. Das Lock hat ja auch einen Sinn!
 
Hm... stimmt... Race Conditions haste trotzdem. Muss wirklich was mit Locks sein, first come, first served. Im Endeffekt darf eine 2. Person die Datei nie mit Schreibrechten öffnen.
 
Zurück
Oben