Dies ist ein wenig im Zusammenhang mit meiner vorherigen Frage Solaris: Mounting a file system on an application's handlers mit Ausnahme dieser Frage ist für einen anderen Zweck und ist einfacher, da es nicht öffnen/schließen/sperren ist es nur eine feste Länge Block von Bytes mit Lese-/Schreiboperationen.Solaris: virtuelle Scheiben/Scheiben für die Verwendung mit ZFS
Gibt es sowieso ich kann eine virtuelle Scheibe, ein bisschen wie eine RAM-Disk oder eine SVM-Scheibe .. aber ich möchte die Lese-und Schreibvorgänge durch meine App gehen.
Ich plane, ZFS zu verwenden, um mehrere dieser virtuellen Slices/Festplatten zu einem größeren für verteilte Backup-Speicher mit Snapshots zu machen. Ich mag die Komprimierung und Stapelung, die ZFS bietet. Bei Bedarf kann ich garantieren, dass nur eine Instanz von ZFS auf diese virtuellen Laufwerke gleichzeitig zugreift (um Cache-Konflikte und ähnliches zu vermeiden). Wenn die eine Instanz ausfällt, können wir sicherstellen, dass sie nicht mehr startet, und dann können wir eine weitere Instanz dieses ZFS starten.
Ich plane, diese Festplatten in Blöcken von etwa 4 GB oder so, dann kann ich um jeden Block bewegen und entscheiden, wo sie gespeichert werden (mehrfach gespiegelt natürlich) und dann ZFS Zugriff auf die Brocken und setzen sie zusammen in größere Brocken für den tatsächlichen Gebrauch. Auch ZFS würde das Hinzufügen dieser kleinen Stücke erlauben, falls notwendig, um die Größe des grßeren Stücks zu erhöhen.
Ich bin mir bewusst, dass es zusätzliche Latenz/Netzwerkverkehr wäre, wenn wir meine eigene App in Java verwenden, aber dies ist nur für Backup-Speicher. Der Produktionsspeicher ist eine völlig andere Konfiguration, die nicht in Beziehung steht.
Bearbeiten: Wir haben ein System, das den gesamten verfügbaren Speicherplatz verwendet und im Grunde, wenn nicht genug Platz ist, wird es alte Snapshots entfernen und die Lücken zwischen alten Snapshots vergrößern. Der Zweck meines Vorschlags ist es, den ungenutzten Platz von Produktionsanlagen ohne zusätzliche Kosten nutzen zu können. Zu unterschiedlichen Zeiten haben unterschiedliche Einheiten unserer Produktionsanlagen freien Platz. Auch das System, das ich beschreibe, sollte jeden einzelnen Fehlerpunkt beim Versuch, auf Daten zuzugreifen, eliminieren. Ich hoffe, dass ich nicht zwei große Einheiten kaufen und synchronisieren muss. Ich hätte lieber zwei Zugangspunkte und dann können wir große/kleine Einheiten beliebig kombinieren und Daten nahtlos umstellen.
Dies ist ein Cross-Post, weil dies mehr Software als Sysadmin verwandt ist Die ursprüngliche Frage ist hier: https://serverfault.com/questions/212072. Es kann eine gute Idee sein, das Original zu schließen
Ich vermisse wahrscheinlich etwas, aber ich verstehe nicht, wie Ihre selbst angenommene Antwort die "aber ich will die Lese-und Schreibvorgänge durch meine App gehen" -Anforderungen.Zwei weitere Kommentare zu Ihrer Antwort: Eine einfache Datei muss eine minimale Größe haben, um als zpool-Backing-Speicher (64 MB) verwendet zu werden, und ein Neustart ist kein Problem, da ZFS einen persistenten Cache mit zpool-Einstellungen verwaltet benutzerdefinierte Boot-Up-Befehle. – jlliagre
Sorry, mir war nicht klar. Ich habe getrennt gefragt [eine Frage, die sich darauf bezieht, wie man ein Netzwerk-Dateisystem (ähnlich wie NFS) mit den Handlern meiner App erhält] (http://stackoverflow.com/questions/4370125/solarismounting-a-file-system- on-a-applications-Handler). Dann könnte die Datei fester Länge auf dem Netzwerkdateisystem von ZFS verwendet werden. Gut zu wissen die minimale Dateigröße (64MB) .. Eigentlich plante ich 4GB oder so. –