Mounten mehrerer Geräte an einem einzigen Mount-Punkt unter Linux

7

Gibt es eine Möglichkeit, mehrere Festplatten an einem einzigen Mount-Punkt zu mounten? Angenommen, mir geht der Speicherplatz aus /homeund ich entscheide mich , dem Computer eine zusätzliche Festplatte hinzuzufügen. Wie skaliere ich den Raum auf einem Einhängepunkt? Kann ich bei Verwendung von RAID Laufwerke im laufenden Betrieb hinzufügen, um den Speicherplatz zu vergrößern, wenn mir die Laufwerke ausgehen? Gibt es eine Alternative zur Verwendung von RAID, wenn ich nicht daran interessiert bin, ein hohes Maß an Redundanz aufrechtzuerhalten?

Lord Loh.
quelle
2
Gehen Sie für zfs unter Linux.
Nikhil Mulley

Antworten:

8

Sie können dafür lvm verwenden . Es wurde entwickelt, um das physische Laufwerk vom logischen Laufwerk zu trennen.

Mit lvm können Sie:

  1. Hinzufügen eines neuen physischen Laufwerks zu einem Pool (in der LVM-Terminologie als Volume Group bezeichnet)

    pvcreate / dev / sdb my_vg

  2. Erweitern Sie den Speicherplatz eines logischen Volumes

    lvextend ...

  3. Und schließen Sie mit einer Online-Größenänderung Ihres Dateisystems ab

    e2resize / mnt / my / path

Aber Vorsicht, es ist kein Wundermittel. Selbst mit LVM ist es weitaus schwieriger, ein Dateisystem zu reduzieren.

Coren
quelle
7

Sie könnten an UnionFS interessiert sein. Die Einrichtung auf einem vorhandenen System ist möglicherweise einfacher als auf einem LVM.

Auf der UnionFS-Seite http://www.filesystems.org/project-unionfs.html :

Dieses Projekt erstellt ein stapelbares Vereinigungsdateisystem, das den Inhalt mehrerer Verzeichnisse (Zweige) zusammenzuführen scheint, während der physische Inhalt getrennt bleibt. Unionfs ist nützlich für die einheitliche Verwaltung von Quellbäumen, das Zusammenführen von Inhalten geteilter CD-ROMs, das Zusammenführen separater Softwarepaketverzeichnisse, Datenraster und mehr.

Ich hoffe, Sie finden das hilfreich.

Dubkat
quelle
2

Die LVM-Antwort ist gut, aber Raid kann dies auch, also fügen Sie eine weitere hinzu.
Mit dem Linux-Software-Raid (mdadm) können Sie Festplatten zu einem bereits erstellten Array hinzufügen. Wenn Sie dies tun, werden die Daten auf dem neuen Laufwerk neu ausgeglichen.
Wenn Sie nicht an Redundanz interessiert sind, können Sie raid-0 verwenden, mit dem Daten einfach gleichmäßig über alle Festplatten verteilt werden.
Raid-5 bietet jedoch zumindest eine gewisse Redundanz, ohne viel Speicherplatz zu verlieren (Sie opfern den Wert einer Festplatte).

Trotzdem funktioniert Raid am besten, wenn alle Laufwerke die gleiche Größe haben. Wenn sie nicht dieselbe Größe haben, werden Teile des Laufwerks nicht verwendet, da nur so viel wie das kleinste Laufwerk verwendet wird. Wenn ich mich richtig erinnere, tritt beim LVM-Stiping dieses Problem nicht auf, da die Laufwerke nicht dieselbe Größe haben und der zusätzliche Speicherplatz nicht gestreift wird.

Patrick
quelle
1

Sie können mhddfs anstelle von lvm verwenden, als ob nur eine Festplatte ausfällt. Dann gehen nur Daten auf dieser Festplatte verloren. Es wird im Benutzerbereich mit Sicherungsmodulen ausgeführt, aber ich verwende es für eine Infrastruktur mit sehr hoher Last

[root@storagenode1 ~]# df -hl
Filesystem            Size  Used Avail Use% Mounted on
/dev/sdl2             259G  2.1G  244G   1% /
tmpfs                  48G     0   48G   0% /dev/shm
/dev/sdl1             485M   30M  430M   7% /boot
/dev/sda1              24T   23T  1.4T  95% /mnt/disk01
/dev/sdg1              24T   22T  2.6T  90% /mnt/disk02
/dev/sdf1              24T   22T  2.6T  90% /mnt/disk03
/dev/sdb1              24T   20T  4.5T  82% /mnt/disk04
/dev/sde1              39T   30T  8.3T  79% /mnt/disk07
/dev/sdh1              28T  6.6T   21T  24% /mnt/disk08
/dev/sdj1              39T   32T  6.5T  84% /mnt/disk09
/dev/sdi1              20T  792G   19T   5% /mnt/disk10
/mnt/disk01;/mnt/disk02;/mnt/disk03;/mnt/disk04;/mnt/disk07;/mnt/disk08;/mnt/disk09;/mnt/disk10
                      218T  153T   65T  71% /mnt/disk99

Dies ist die Hauptentwickler-Website, und hier können Sie Pakete für Centos6 herunterladen, so wie ich es tue

  1. yum installiere mhddfs
  2. Erstellen Sie wie gewohnt Einhängepunkte für lokale Festplatten und hängen Sie diese ein
  3. Erstellen Sie ein weiteres Verzeichnis, in dem alle Ihre Festplatten gespeichert sind. Mein Fall heißt disk99
  4. Hängen Sie alle Festplatten mit mhddfs in disk99 ein

vim / etc / fstab füge diese Zeile hinzu

mhddfs#/mnt/disk01,/mnt/disk02,/mnt/disk03,/mnt/disk04,/mnt/disk07,/mnt/disk08,/mnt/disk09,/mnt/disk10          /mnt/disk99     fuse    defaults,allow_other,mlimit=10%,nonempty,logfile=/dev/null,loglevel=2   0       0

Warnung : In meinem Fall mit hoher Last hat mhddfs die Größe der Protokolldatei verbraucht und den Server viele Male abgestürzt. Daher verwende ich / dev / null für die Protokollierung. Ich konnte logrotate nicht mit mhddfs arbeiten lassen, da Sie beim Ändern von Protokolldateien erneut einhängen müssen.

Jasem Elayeb
quelle
0

Gibt es eine Möglichkeit, mehrere Festplatten an einem einzigen Mount-Punkt zu mounten?

Wahrscheinlich nicht so, wie Sie es wollen. Sie können alle möglichen lustigen Dinge tun , aber dies löst nicht das Problem, das Sie lösen möchten.

Nehmen wir an, ich habe zu Hause keinen Speicherplatz mehr und entscheide mich, dem Computer eine zusätzliche Festplatte hinzuzufügen. Wie skaliere ich den Raum auf einem Einhängepunkt?

Ein Ansatz wären die folgenden Schritte:

  1. Fügen Sie Ihrem Computer ein oder mehrere neue Laufwerke hinzu

  2. Erstellen Sie ein LVM mit den neuen Laufwerken.

  3. Formatieren Sie das neue LVM (wahrscheinlich auf ext4 oder xfs).

  4. montieren zu einer temporären Stelle (zB: /dev/tmp)

  5. Kopieren Sie den Inhalt von mit oder /homein das neue lvm ( /dev/tmp)rsynccp

  6. Führen Sie ein "Swaperoo" durch (Hängen Sie das alte Laufwerk bei aus /home, entfernen Sie das neue Laufwerk bei /dev/tmpund mounten Sie das neue Laufwerk bei/home

  7. Erweitern Sie optional das neue LVM mit dem alten Laufwerk

  8. Aktualisieren Sie fstab so, dass der Mount über Neustarts hinweg dauerhaft bleibt

Die obigen Schritte sollten wahrscheinlich durch Booten eines Betriebssystems von einem Live-USB / CD wie Gparted ausgeführt werden .

Kann ich bei Verwendung von RAID Laufwerke im laufenden Betrieb hinzufügen, um den Speicherplatz zu vergrößern, wenn mir die Laufwerke ausgehen?

Ja, du kannst. Wie genau ist die Hardware abhängig (vorausgesetzt, Sie würden Hardware-RAID verwenden).

Gibt es eine Alternative zur Verwendung von RAID, wenn ich nicht daran interessiert bin, ein hohes Maß an Redundanz aufrechtzuerhalten?

"Hohe Redundanz" ist subjektiv und nicht jedes RAID bietet Redundanz. Hier ist die allgemeine Aufschlüsselung der RAID-Optionen:

  • RAID 1 (Spiegelung) ist vollständig redundant, möchte dies wahrscheinlich nicht

  • RAID 6 (2 Paritätsblöcke) kann 2 Festplattenfehler ohne Datenverlust behandeln, mindestens 4 Laufwerke, dies wird wahrscheinlich nicht gewünscht

  • RAID 5 (1 Paritätsblock) ist tolerant gegenüber einem Ausfall eines einzelnen Laufwerks. Mindestens 3 Festplatten entsprechen möglicherweise Ihren Anforderungen

  • RAID 0 (Striping) hat keine Redundanz und Sie verlieren alle Daten, wenn ein einzelnes Laufwerk ausfällt (obwohl es eine hervorragende Leistung bietet), was möglicherweise Ihren Anforderungen entspricht

Alternativ könnten Sie auch ZFS verwenden , was ich tun würde. Aus Wikipedia : "ZFS ist skalierbar und bietet umfassenden Schutz vor Datenkorruption, Unterstützung für hohe Speicherkapazitäten, effiziente Datenkomprimierung, Integration der Konzepte des Dateisystem- und Volume-Managements, Snapshots und Copy-on-Write-Klone." Nach meiner Erfahrung ist ZFS sehr flexibel und kann so konfiguriert (und optimiert) werden, dass fast alles möglich ist, was Sie wollen. Es verwaltet RAID, LVM, Copy-on-Write, schnelle Komprimierung usw. Die Verwaltung ist etwas aufwändiger als die von ext4 oder xfs, aber wenn Sie sich sowieso mit raid / lvm herumschlagen müssen, ist es wirklich nicht so anders.

Brett Holman
quelle