PG macht, zum Ende einer Transaktion, ein fsync() und verläßt sich drauf, daß dies auch sauber erfolgt. Ein Netzwerk-Filesystem kann das nicht sicherstellen.
Daher ist es dann mehr oder weniger nur eine Frage der Zeit, bis Dir das um die Ohren fliegt.
Hatte das mal eine Zeit lang per NFS. NFS kann synchron arbeiten, d.h. es meldet erst erfolgreich geschrieben zurück, wenn es tatsächlich auf der Platte ist - wenn das Filesystem so konfiguriert ist.
Alternativ bieten inzwischen die meisten NAS einen export als iSCSI-Device an. Damit spart man sich etliches an Unabwägbarkeiten und Overhead.
Das schöne an dem NAS-Gedanken war ja das ich gleich mein Raid-System und Energiesparmodi habe.
Sollte ich mich wohl doch mal mit nem richtigen Server auseinandersetzen.
Bei Tipps oder alternativen höre ich weiterhin gerne zu.
Ich würde es in einem produktiven System trotzdem NICHT machen. Ich hatte das für einen Computer ohne HD, da ging das nicht anders.
Folgende Gründe dagegen:
- Die meisten bezahlbaren NAS haben nur 1 1GBit Schnittstelle - Grob über den Daumen geht die Bandbreite bis max. 100 MByte/sek. Jede einigermaßen aktuelle Festplatte ist da schneller, von SSD brauchen wir gar nicht reden.
- Die meisten bezahlbaren NAS exportieren das Filesystem aus Geschwindigkeitsgründen nur asynchron. Du weißt also nie wirklich, ob das tatsächlich auf der Platte ist.
- Die bezahlbaren NAS haben einen relativ kleinen Prozessor. D.h. von Deinen 100 MByte/sek bleiben vielleicht 50-70 MByte übrig. Bei vielen kleinen Zugriffen (sprich: Datenbank) bleibt da fast gar nichts mehr übrig.
- Die meisten bezahlbaren NAS haben nur eine geringe Plattenanzahl. RAID-5 bei 3-4 Platten ist schön zum speichern, Geschwindigkeit sieht aber anders aus.
- Du hast IMMER Overhead dabei - Netzwerkkarte, Netzwerk, NAS-Betriebssytem - und das bremst.
Bau Dir lieber zwei Platten ein (schickerweise SSD), leg notfalls ein Softmirror drüber und 8kB Blockgröße des Filesystems und Du hast ein billigeres, schnelleres uns sichereres System für Deine Datenbank.