Einstiegsfragen Mac OS Server

Meine SVN Umgebung sieht ähnlich aus. Wobei auf dem Produktivserver nur der hochgeladene Kram ist, der da hin gehört, die Repositories liegen auf einer anderen Kiste, auf die ich per https/webdav comitte. Aber im Büro arbeite ich auch Remote im LAN, da der Mac Pro nicht 20 Stunden am Tag an sein muss, nur um den Webkram für die Entwicklungsprojekte auszuliefern...

Also gibt es keine richtige Alternative für das Arbeiten im Netz. Ich werde dann wohl bei netatalk bleiben und erstmal sehen, was die nächsten Monate bringen. Die Box läuft heute den ersten Tag im Einsatz und macht sich ganz gut.
 
Einen Konsolenclient auf dem Server zu installieren und über ein paar Scripte anzusprechen ist nicht praktikabel? SVN ist schon nicht für das speichern auf Netzlaufwerke ausgelegt.
 
Einen Konsolenclient auf dem Server zu installieren und über ein paar Scripte anzusprechen ist nicht praktikabel? SVN ist schon nicht für das speichern auf Netzlaufwerke ausgelegt.

Ich weiss jetzt nicht genau, worauf du dich beziehst- in der Entwicklung will man ja nicht immer jede Änderung gleich committen, um sie zu sehen.

svn selbst auf Netzwerklaufwerken geht ganz hervorragend in guter Geschwindigkeit. Das Problem sind die grafischen Clients, die immer gleich alle möglichen Statusinformationen anfordern, um entsprechend Icons/Farben setzen zu können. Teilweise tun sie das sogar ungefragt. Das ist dann natürlich lahm.
In der Kommandozeile mache ich bei Bedarf svn status -u und alles ist gut.

Mein Eindruck ist allerdings auch, dass da zwischen der 1.3 und 1.5 sehr viel passiert ist. Ich kann das uneingeschränkt empfehlen.

Gruß,
Jörg
 
Ich kann Zapfenzieher auch nicht folgen :kopfkratz:

Kurzer Einwurf: Mit Cornerstone auf einem Apple afp://* Rechner war das Aktualisieren der Working Copies quälend langsam und hat teilweise >3 Minuten gedauert (ca. 7 Copies).

Auf einem Linux/netatalk Volume ist das Ganze rasend schnell und dauert nicht mal 20 Sekunden. Ich habe gestern alles vom Mini auf die Debiankiste migriert und finde das grossartig.

Was nach wie vor überhaupt nicht funktioniert ist der Bonjour-Service über Avahi. Die Freigabe erscheint zwar im Finder aber damit anfange kann man nichts. Entweder es heisst "Verbindung fehlgeschlagen" oder die Shares haben keinen Inhalt (was natürlich nicht stimmt).
 
Ich kann Zapfenzieher auch nicht folgen :kopfkratz:

Kurzer Einwurf: Mit Cornerstone auf einem Apple afp://* Rechner war das Aktualisieren der Working Copies quälend langsam und hat teilweise >3 Minuten gedauert (ca. 7 Copies).

Wenn man immerwieder dieselben SVN-Commands braucht, dann installiert man am besten doch den SVN-Client auf den Webserver und bedient diesen über die Komandozeile oder programmiert ein paar Scripts.

Tools wie SVN oder Rsync können wegen ihren Diff-Algorithmen nur sehr schlecht auf Netzlaufwerken arbeiten, genauso wie Datenbanken.

Über iSCSI wäre die Performance viel besser.
 
... Zum einen ist AFP ähnlich SMB eine gewachsene Geschichte, bei der sich der Eindruck aufdrängt, dass niemand sie mehr so richtig versteht, inklusive Apple selbst.

Hierzu kurz meine Meinung als aktiver Netatalk Entwickler:
AFP ist ein zwar umfangreiches, aber letztzlich einfaches und vor allem genau dokumentiertes Protokoll [1]. Bis auf den Sündenfall Spotlight übers Netz seit 10.5 ist das alles sauber nachvollziehbar dargestellt. Spotlight übers Netz leider nicht, da dort halt auf serverseite Spotlight laufen müsste, was es nicht kann da der Kram Apple propietär. Daher wurden die entsprechenden Funktionen in AFP leider auch nicht dokumentiert. Wie Grouplogic das trotzdem hinbekommen hat ist mir ein Rätsel.

Es gibt immer wieder Bugfixes in den offiziellen OS X Updates, in denen Sätze vorkommen wie „…konnten nicht sehen…“, „Etiketten verschwinden…“, „…langsam unter 10.3 auf 10.5…“. Es ist deutlich stiller darum geworden, seit kein Mensch mehr OS 9 oder älter als 10.3 einsetzt, aber alternative Implementierungen (netatalk, helios, MS) scheinen davon doch betroffen. Apple kann wenigstens seinen Müll durchtracen, alle Nachmacher müssen dann auch noch am Interface mitlesen oder Darwin-Code durchwühlen, um das ähnlich umzusetzen. Das ist einfach mehr Arbeit, die nach meinem Eindruck zwangsläufig trial-and-error ist.

Wenn Probleme auftauchen die tatsächlich durch Änderungen am AFP-Client verursacht sind, sind die Anhand eines Netzwerktraces und durch gegebene Reproduzierbarkeit leicht lokalisierbar.

Man sollte meinen, ein gemountetes Volume wäre von der Handhabung für eine höhere API immer gleich, egal, ob es nun ein Netzwerkvolume ist oder physikalisch am Rechner hängt, aber dem ist offensichtlich nicht so.

Dem kann allein aus einem Grund prinzipiell auch gar nicht so sein: locking. Auf Einzeplatzrechnern unnötig, auf Shares schon.

Alle diese Programme haben MEHRFACH (lies als: Zu mehreren Zeitperioden) ihre Dokumente zerschossen, und zwar unter ALLEN AFP-Implementierungen. Weil sie irgendwie an offenene Files rumschrauben, statt alles temporär lokal zu holen. Wohlgemerkt, auch unter Apple Server war das so. Und Adobe weisst explizit darauf hin, das der Einsatz eines Fileservers eine unsupportet config sei. Das ist TOTAL beknackt.

Na ja, das Problem ist halt dass die als Nutzer der höheren APIs keine Kontrolle drüber haben wie Dateisystem Aufrufe dieser APIs auf low-level APIs und ggfls. durchs afp-vfs ins AFP Protokoll umgesetzt werden.

Das ärgerliche ist, dass ich hier als Kunde letztlich am besten trotzdem beim Bösewicht kaufe: Adobe und Apple werden eher hektisch zusammenarbeiten, um sowas zu fixen, als Adobe und netatalk. Ich sehe förmlich vor mir, wie bei Adobe der Hörer auf die Gabel knallt — „netaWTF? Click.“

Dabei haben wir einen Workaround in HEAD meist als erste implementiert. Gegenwärtig dauert leider der Weg in die Distributionen Äonen, wir arbeiten dran, auf mittelfristige Sicht kann dann Debian empfehlen, die werden ggfls. Patches auf Zuruf aufnehmen. Kommerzielle Alternativen für den Produktiveinsatz aus meiner Sicht: für *nix-oide Sever HELIOS, für Windows Server ExtremeZ-IP.

Das nächste ist, das einige Software auf dem Mac einfach nicht mit smb oder netatalk zurecht kommt. So behauptet unser grafischer svn Client z.B., er könne auf ein netatalk-Volume nicht schreiben. Keiner weiss, wieso, die Permissions sind richtig, alles andere geht ja.

Könnte mit 2.0.4 besser werden. Da gibts neue Volume Optionen um Permissions festzunageln.

Raus aus der Höhle, rein in die Höhle,
-slow

[1]
http://developer.apple.com/documentation/Networking/Reference/AFP_Reference/Reference/reference.html
[2]
http://developer.apple.com/document...f/doc/uid/TP40000854-CH1-DontLinkElementID_18
 
  • Gefällt mir
Reaktionen: walter_f, 2nd, ratti und eine weitere Person
Hierzu kurz meine Meinung als aktiver Netatalk Entwickler:

Hey, das ist ja schön - die Quelle direkt vor Ort. Das ist OpenSource ;-)

AFP ist ein zwar umfangreiches, aber letztzlich einfaches und vor allem genau dokumentiertes Protokoll [1]. Bis auf den Sündenfall Spotlight übers Netz seit 10.5 ist das alles sauber nachvollziehbar dargestellt. Spotlight übers Netz leider nicht, da dort halt auf serverseite Spotlight laufen müsste, was es nicht kann da der Kram Apple propietär. Daher wurden die entsprechenden Funktionen in AFP leider auch nicht dokumentiert. Wie Grouplogic das trotzdem hinbekommen hat ist mir ein Rätsel.

Spotlight ist mir sowieso egal, das ist was für Leute, die nicht aufräumen. ;-)

Was ich sagen will: In der Praxis geht es ja nicht um Dokumentation oder Lizenz, sondern darum, ob der Kram läuft. Und da gab es in der Vergangenheit Probleme, sowohl bei Apple als auch bei netatalk, weil Apple halt irgendwas ändert. Jedesmal, wenn ich bei einem Systemupdate in die Changes gucke (soweit das überhaupt von Apple dokumentiert wird), steht da irgendwas von Veränderungen in AFP.

Die allseits bekannten Desaster (Photoshop, Word, Quark) sprechen da Bände…

Für mich ist es in der Produktion der sicherste Weg, da komplett auf Apple zu setzen. Sagen wir es mal ganz böse: Selbst falls das dann schiefgeht, kann ich mit dem Finger auf Apple zeigen. Habe ich eine andere Config gewählt, bin ich dafür verantwortlich.

Dem kann allein aus einem Grund prinzipiell auch gar nicht so sein: locking. Auf Einzeplatzrechnern unnötig, auf Shares schon.

Gut - das ist klar. Wobei Apple ja auch lokal in der GUI ein Locking implementiert hat („Datei in Benutzung“), allerdings nur auf höherer Ebene, denn in der Shell kann man dann ja doch…

…aber was ich sagen wollte: Wenn so eine Datei einmal offen ist, dann kann ich lesen, schreiben, appenden, seeken. Mag jetzt noch was fehlen, aber das sind dann so die primitiven Aktionen. Ich verstehe nicht, wie so ein read/write/seek fehlschlagen kann, solange die physikalische Verbindung zum Medium steht. Solange ich keine Low-Level-Programmierung mache (die diesbezüglich in einer DTP-Applikation nix zu suchen hat), erfahre ich als Programmierer doch nicht mal, was ich da gerade ge-fopen-t habe. Im Extremfall habe ich mir MacFUSE installiert und öffne eine Datei per ftp oder ssh oder gar IMAP, und „mein“ Programm macht doch immer nix anderes als $success=fopen ($datei, READWRITE ).


Dabei haben wir einen Workaround in HEAD meist als erste implementiert. Gegenwärtig dauert leider der Weg in die Distributionen Äonen, wir arbeiten dran, auf mittelfristige Sicht kann dann Debian empfehlen, die werden ggfls. Patches auf Zuruf aufnehmen.

Das klingt gut. Ich setze auf Ubuntu, aber die sind ja Geschwister (Und benehmen sich manchmal auch so… Haarzieh… das ist mein Bagger… aber ich hatte ihn zuerst… :) ).
Derzeit steht da bei uns aber ohnehin keine Änderung an: Läuft - Flossen weg.


Kommerzielle Alternativen für den Produktiveinsatz aus meiner Sicht: für *nix-oide Sever HELIOS, für Windows Server ExtremeZ-IP.
Helios kenne ich nur als User und von vor 10 Jahren, lief wohl sehr gut.


Könnte mit 2.0.4 besser werden. Da gibts neue Volume Optionen um Permissions festzunageln.

Super! Danke für dein Feedback.

Gruß,
Jörg
 
Wenn man immerwieder dieselben SVN-Commands braucht, dann installiert man am besten doch den SVN-Client auf den Webserver und bedient diesen über die Komandozeile oder programmiert ein paar Scripts.

Tools wie SVN oder Rsync können wegen ihren Diff-Algorithmen nur sehr schlecht auf Netzlaufwerken arbeiten, genauso wie Datenbanken.

Über iSCSI wäre die Performance viel besser.

Ich verstehe echt nicht, was Du sagen willst. Ist nicht böse gemeint, aber das klingt für mich nach einer noch komplizierteren Konstruktion als Alternative zu Working Copies auf Shares, was abgesehen von der Langsamkeit ganz prima funktioniert.

1.
Ich muss doch meine php Datei auf dem Server haben, denn nur dort wird sie in einer für alle Entwickler gleich definierten Umgebung ausgeführt.

2.
Gleichzeitig muss ich alle Dateien per Finder-Fenster kriegen, damit ich sie bequem öffnen kann oder Funktionen wie in BBedit „Alle Dateien in diesem Ordner durchsuchen“ genutzt werden können.

3.
Jede Änderung muss erstmal komplett ohne svn „online“ sein, denn ich entwickle ja und speichere jede winzige Korrektur. Wenn ich jedesmal committen und updaten muss, wenn ich einen Tippfehler korrigiert habe, werde ich ja irre.

svn kommt doch erst am Ende des Tages (oder gar seltener!) zum Einsatz, wenn eine m.E. lauffähige „stable“ Version der Website mit der Arbeit der anderen Kollegen „gemischt“ werden soll. Da ist mir die Performance relativ egal. Die kommt ohnehin nur zum tragen, wenn wirklich viele Dateien geändert wurden, und das ist eigentlich nur beim ersten Auschecken der Fall, oder wenn man ein externes Tool updated. Ansonsten heisst „langsam“ hier: Täglicher Zeitverlust von 60 Sekunden. Dafür hat der liebe Gott die Kaffeemaschine erfunden. ;-)


Gruß,
Jörg
 
In unserer Agentur gibt es 5 Mac-Arbeitsplätze und einen PC für Notfälle. Seit letztes Jahr unser Linux-Server abgeschmiert ist arbeiten wir alle bloß noch lokal und tauschen Daten ggf. über Briefkästen oder iChat aus, was weder besonders zeitsparend, noch effektiv ist, da es statt global zugänglicher Datenquelle rudimentäre Daten auf verschiedenen Rechnern gibt - im schlimmsten Fall in völlig unterschiedlichen Versionen. Zur Sicherheit läuft an jedem Rechner für sich eine Time-Machine über eine externe Festplatte.
Ihr braucht lediglich einen Webserver und einen Fileserver?
Äh - stell nen einfachen Mac mit 10.5.7 hin und gut is.

Webserver ist auf jedem Mac drauf (Apache) und Fileserver isser doch auch mit Freigabe etc...

Wo Problem?
 
Noch einmal ein Nachtrag zu Bonjour/AFP unter Linux: Die Freigaben sind nun in Ordnung und permanent im Finder zu sehen. Ich bin da durch Zufall drauf gestossen - es lag an der Onboard-NIC und dem Linux Kernel 2.6.26. Der bindet nämlich die falschen Treiber für den RT Chip ein. Eine massive Anzahl verlorener (dropped) Pakete und die Instabilität von avahi/mdns waren die Folge.

Nachdem ich das Modul ausgetauscht habe, läuft alles so, wie es soll. Keine Drops und absolut stabile Netzwerk-Shares zwischen der Linux-Kiste und den Macs hier. Jetzt läuft alles so wie ich es wollte. SVN gibt es über Netzwerkshares mit Turbospeed, der Netzwerkdurchsatz hat sich verdoppelt, für Redundanz sorgen RAID1 und RAID5 und Platz gibt es nun auch genug. Wir werden dann wohl mal probieren, ob wir nicht mit allen Arbeitsdateien ins Netzwerk gehen.

An dieser Stelle gleich mal besten Dank an slowfranklin und die anderen netatalk Entwickler :thumbsup:
 
Zurück
Oben Unten