Linux-Dateiserver-Speicherpool

8

Ist es möglich, Linux Server über Samba dazu zu bringen, mehrere Festplatten als einen Speicherpool gemeinsam zu nutzen? Wenn ich die Freigabe verwende, muss ich mich nicht um das Speichern auf einem bestimmten Laufwerk mit freiem Speicherplatz kümmern, sondern um das Speichern in dem Pool, der sich um all das kümmert.

Ich denke, ich könnte dies durch eine Art (Software-) Überfall tun, aber viele meiner Dateien müssen nicht wirklich überfallen werden. Mein Ziel ist es, ein Setup zu haben, in dem ich ~ 500 GB überfallen und ein paar TB nicht überlasteten Speicherplatz habe.

Ich habe derzeit einen leichten W2008-Server und möchte zu Linux wechseln. Dies wäre eine wirklich schöne Funktion.

Illotus
quelle

Antworten:

19

Unter Linux können Sie mit LVM mehrere Festplatten (PV) in einer Volume-Gruppe (VG) zusammenfassen und mit den logischen Volumes (LV) partitionieren, die Sie über Samba freigeben möchten.

Siehe diesen Link für weitere Informationen.

LVM-Schema

ℝaphink
quelle
1
Große Auswahl an Bildern zur Veranschaulichung des Konzepts.
Andol
7

Ich würde Raphinks Vorschlag von LVM unterstützen (und ihn sogar positiv bewerten) - dies ist ziemlich genau das, wofür LVM entwickelt wurde, und es funktioniert meiner Erfahrung nach gut.

Zu beachten ist, dass die Verwendung von LVM über mehrere Laufwerke nur wenig sicherer ist als RAID0. Wenn ein Laufwerk ausfällt, verlieren Sie möglicherweise mehr als ein Laufwerk an Dateisystemen, da logische Volumes die Laufwerksgrenzen überschreiten. Während "viele meiner Dateien nicht wirklich durchsucht werden müssen", stellen Sie sicher, dass Sie einen guten Sicherungsplan für die Dateien haben, die nicht so einfach zu ersetzen sind.

Wenn auf dem Speicherserver wahrscheinlich viele Aktivitäten auftreten, können Sie sowohl RAID0 als auch LVM verwenden. Dies erhöht die Leistung vieler E / A-Muster erheblich und verringert nicht den verfügbaren Gesamtspeicherplatz (da RAID0 keine Redundanz bietet und daher keinen Speicherplatz für gespiegelte Daten oder Paritätsblöcke verwendet). Sobald Sie einige Laufwerke in einem RAID0-Array zusammengebunden haben, können Sie das Array wie jedes andere Laufwerk / jede andere Partition zu einem LVM-PV machen und logische Volumes verwenden, um den Speicherplatz nach Bedarf zu partitionieren.

Natürlich verlieren Sie mit RAID0 definitiv alles, wenn ein Laufwerk ausfällt , aber wenn Sie einen Sicherungsplan haben, der für JBOD ausreicht (was Sie nur mit LVM tun, entspricht dies dem, was einige RAID-Referenzen als "linearen Modus" bezeichnen ") Sie haben eine, die für Daten auf RAID0 ausreicht (und jeder, der sagt, dass dies nicht paranoid genug ist, was die Daten betrifft, die er über mehrere Laufwerke mit LVM hat!).

Sie können RAID-Levels auf denselben Laufwerken mischen und anpassen. Auf einem der von mir kontrollierten Computer, der als VM-Host für Entwicklung und Test ausgeführt wird, haben die Laufwerke in ihrem Array einige Teile als RAID0 (für die VMs selbst) und einige als RAID1 (für Sicherungen der VMs). Jedes der Laufwerke ist in Partitionen mit ~ 100 GB aufgeteilt, und jeder Satz oder jede Partition kann ein RAID-Array sein. Die ersten beiden auf jedem Laufwerk sind derzeit RAID0 (von LVM als ein logisches Volume verknüpft), die letzten drei RAID1 (erneut als ein LV verknüpft) und die in der Mitte verbleibenden können frei sein, wenn mehr Speicherplatz benötigt wird. Wenn Sie dies tun, müssen Sie natürlich vorsichtig mit E / A-Konflikten sein (es ist nicht so) Ein Problem in meinem Fall, da die beiden RAID-Arrays selten gleichzeitig eine wahrnehmbare Aktivität aufweisen, da das RAID1-Set nur dann aktiviert wird, wenn ein neues Backup erstellt oder ein altes wiederhergestellt wird) und übermäßige Kopfbewegungen auftreten, wenn beide Arrays aktiv verwendet werden (as Sie befinden sich an entgegengesetzten Enden der Laufwerke. Beachten Sie jedoch, dass Sie LVM ohnehin nur ohne RAID verwenden. Diese Anordnung bedeutete, dass ich bei der Installation nicht genau erraten musste, wie viel Hochgeschwindigkeitsraum (R0) und Hochsicherheitsraum (R1) die Maschine benötigen würdeX Monate später ohne Kompromisse und nur mit einem einzigen RAID10-Array.

David Spillett
quelle
"Wenn ein Laufwerk ausfällt, verlieren Sie möglicherweise mehr als ein Laufwerk an Dateisystemen, da logische Volumes die Laufwerksgrenzen überschreiten." Vielen Dank für dieses Nugget, anscheinend muss ich meinen Plan etwas überarbeiten.
Illotus
Beachten Sie, dass dies das gleiche Problem ist, das Sie bei einem RAID0-System haben: Wenn ein Laufwerk ausfällt, gehen Daten verloren. Wie in Davids Antwort vorgeschlagen, können Sie RAID und LVM kombinieren. Das Kombinieren eines RAID0-Systems mit LVM ist redundant und nutzlos. Durch das Kombinieren eines RAID1, 10, 4, 5 oder 6 mit LVM wird jedoch sichergestellt, dass Ihre Daten nicht verloren gehen, wenn Sie eine oder mehrere Festplatten verlieren. Es kostet Sie auch mehr Hardware, da Sie mehr Speicherplatz benötigen als tatsächlich nutzbarer Datenraum. Die Art des RAID hängt hauptsächlich von der Art der Verwendung ab, die Sie verwenden. Wenn Sie kein Hardware-RAID haben, können Sie LVM zusätzlich zu mdadm verwenden.
inkaphink
3
Das Kombinieren von RAID0 mit LVM ist nicht nutzlos. Abhängig von Ihrer E / A-Auslastung (z. B. viele gleichzeitige Dateivorgänge über das Gbit-Netzwerk) können Sie durch das von RAID0 durchgeführte Striping eine erhebliche Leistungssteigerung feststellen. Selbst über eine 100-Mbit-Verbindung kann es bei mehreren gleichzeitigen und / oder sehr nicht sequentiellen Zugriffen zu Unterschieden kommen. Bei weniger anstrengender E / A-Belastung kann der Unterschied jedoch unbedeutend sein.
David Spillett
Die Kombination von RAID-0 mit LVM ist nicht nutzlos. LVM weist standardmäßig von Anfang an nacheinander Speicherplatz zu. Dies kann sich auf die Leistung auswirken, wenn ein Teil des LVM-Sets die gesamte E / A-Aufmerksamkeit erhält und diese Aktivität auf eine Festplatte konzentriert. RAID-0 streift Daten explizit über alle Festplatten im RAID-0-Array. Dies kann die Lese- und Schreibaktivität beschleunigen. Der Unterschied besteht darin, dass Sie wahrscheinlich zumindest einige Daten verlieren, wenn eine Festplatte in einem LVM-Satz ausfällt. Wenn eine Festplatte in einem RAID-0-Satz ausfällt, gehen ALLE Daten verloren. Die RAID-5-Idee von Raphink gibt Ihnen zumindest die Illusion eines gewissen Schutzes vor Festplattenausfällen
David Mackintosh
Vielen Dank für diese Klarstellungen, David & David, das ist sehr interessant zu berücksichtigen. Denken Sie, dass sich LVM über RAID0 lohnt, auch wenn Sie ein Software-RAID-System wie mdadm oder nur ein Hardware-RAID-System verwenden?
inkaphink
2

Ich würde auch empfehlen, einen Blick auf ZFS zu werfen, das auch Laufwerkspooling und integrierte RAID-Spiegelung enthält.

Es gibt einige Probleme mit der Lizenzierung, die die Implementierung etwas umständlich machen, aber ich habe sie auf meinem Heimsystem mit 3 x 1 TB-Laufwerken ohne Probleme ausgeführt.

Dave Drager
quelle
2
Ich bin ein großer ZFS-Fan, aber ich würde nicht empfehlen, es unter Linux als FUSE-Dateisystem in einer Produktionsumgebung auszuführen. Unter Linux sollten Sie besser darauf warten, dass BTRFS ausgereift ist. BTRFS hat ein besseres Design als ZFS, aber ich denke, es ist noch mindestens ein Jahr, vielleicht ein paar, bis es produktionsbereit ist.
3dinfluence