Mehrere Festplatten zusammenfassen mit LVM auf Ubuntu Server / Desktop
Mehrere Festplatten zu einem zusammenhängenden Speicher zusammenzuführen ist in Linuxsystemen mit Hilfe von LVM sehr einfach zu lösen. Dieses LVM-Volume lässt sich beliebig durch Hinzufügen oder durch Entfernen von Platten vergrößern oder verkleinern. Vor allem für Fileserver mit >2 Harddisks bringt diese Methode einige Vorteile und erspart ständiges Herumkopieren zwischen den einzelnen Partitionen.
In diesem Tutorial werde ich euch zeigen, wie ihr die Festplatten vorbereiten müsst, eine Volumegroup bzw. Logical-Volume erstellt und das LV vergrößert oder verkleinert.
Achtung: Ich übernehme KEINE Verantwortung für einen eventuell auftretenden Datenverlust. Die für das LV verwendeten Festplatten werden neu partitioniert und der Inhalt dieser gelöscht. Sollten sich Daten darauf befinden, müssen diese zuvor gesichert werden.
Das Tutorial beschreibt nicht das Hinzufügen der Systemplatte zu einer Volumegroup, da ich dies persönlich als nicht empfehlenswert betrachte (ausser alle Disks sind in einem RAID1). Es wird nur das Erstellen einer solchen mit zusätzlich vorhandenen Platten gezeigt.
Vorbereitung
Als allererstes sichern wir die Daten der Festplatten, welche wir später verwenden wollen, um einem Datenverlust vorzubeugen.
Jetzt fahren wir mit der Installation der benötigten Pakete fort:
sudo apt-get install blkid lvm2
Festplatten partitionieren und Physical-Volume erstellen
Zuerst müssen wir z.B. mit diesem Befehl in Erfahrung bringen, welche Platten wir verwenden wollen und notieren diese (bei mir in diesem Tutorial sdb,sdc,sdd):
sudo fdisk -l
Um diese später zu einer Volumegroup hinzufügen zu können, müssen wir eine Partition mit dem Typ “Linux LVM” erstellen. Dazu benutzen wir “fdisk”:
sudo fdisk /dev/sdb
Indem man “m” drückt, bekommt man die Befehlsübersicht angezeigt:
Command action a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition l list known partition types m print this menu n add a new partition o create a new empty DOS partition table p print the partition table q quit without saving changes s create a new empty Sun disklabel t change a partition's system id u change display/entry units v verify the partition table w write table to disk and exit x extra functionality (experts only)
Nun löschen wir mit der Auswahl “d” alle vorhandenen Partitionen. Dann erstellt man mit “n” eine neue und drückt “p” für “primary partition“. Bei Partitionsnummer wählt man “1” und die Zylinderabfragen bestätigt man einfach mit “Enter“.
Command (m for help): >>n<< Command action e extended p primary partition (1-4) >>p<< Partition number (1-4): >>1<< First cylinder (1-60801, default 1): >>ENTER<< Using default value 1 Last cylinder, +cylinders or +size{K,M,G}: >>ENTER<< . . .
Der soeben erstellten Partition weisen wir den Typ “Linux LVM” zu. Dazu verwendet man das Kommando “t” (change a partition’s system id) und den Hex-Code “8e” als Typ.
Command (m for help): >>t<< Selected partition 1 Hex code (type L to list codes): >>8e<< Changed system type of partition 1 to 8e (Linux LVM)
Abschließend muss man die Partitionstabelle mit dem Befehl “w” (write table to disk and exit) noch auf die Platte schreiben.
Dies wiederholt ihr für alle Festplatten, welche ihr später hinzufügen wollt (in meinem Fall sdc, sdd).
Danach erstellen wir auf diesen das “physical volume” (natürlich auf eure Plattennamen und Anzahl anpassen).
sudo pvcreate /dev/sdb1 sudo pvcreate /dev/sdc1 sudo pvcreate /dev/sdd1
Erhält man als Ausgabe Folgendes, ist alles glatt gelaufen.
Physical volume "/dev/sd*1" successfully created
Mit “pvdisplay” kann man sich das Ganze auch noch anzeigen lassen
sudo pvdisplay
Volumegroup und Logical-Volume erstellen
Mit einem einzigen Befehl erstellt man die Gruppe (VOLUMEGROUPNAME auf den gewünschten Namen ändern). Hier kann man auch gleich die Platten angeben, welche eingebunden werden sollen.
sudo vgcreate VOLUMEGROUPNAME /dev/sdb1 /dev/sdc1 /dev/sdd1
Oder man fügt sie mit “vgextend” hinzu:
sudo vgextend VOLUMEGROUPNAME /dev/sde1
Diese Anweisung erzeugt ein logisches Volume über die ganze Größe der Volumegroup (die Namen natürlich wieder ändern):
sudo lvcreate -l 100%FREE -n VOLUMEGROUPNAME LOGICALVOLUMENAME
Man kann jedoch auch wie in diesem Beispiel mehrere Laufwerke mit bestimmter Größe erzeugen (hier 3GB):
sudo lvcreate -L 3G -n VOLUMEGROUPNAME LOGICALVOLUMENAME
Den Gesamtspeicher kann man sich mit “lvdisplay” anzeigen lassen:
sudo lvdisplay --- Logical volume --- LV Name /dev/VG01/LV01 VG Name VG01 LV UUID gsnrPy-rVLH-gnCf-bUTd-35GM-eA44-YSKg19 LV Write Access read/write LV Status available # open 1 LV Size 1.36 TiB Current LE 357700 Segments 3 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 251:0
Dann formatieren wir das Laufwerk wie jedes andere normale auch:
sudo mkfs.ext3 /dev/VOLUMEGROUPNAME/LOGICALVOLUMENAME
Logisches Laufwerk mounten
Um dies zu bewerkstelligen braucht man einen Ordner in diesen gemountet werden soll:
sudo mkdir /mnt/LV1
Danach der “mount” Befehl:
sudo mount /dev/VOLUMEGROUPNAME/LOGICALVOLUMENAME /mnt/LV1
Will man das Laufwerk automatisch beim Start einhängen lassen öffnet man die “fstab” mit nano …
sudo nano /etc/fstab
… und fügt diese Zeile (nach Anpassung der Namen) am Ende der Datei ein.
/dev/VOLUMEGROUPNAME/LOGICALVOLUMENAME /mnt/LV1 ext3 defaults,errors=remount-ro,noatime,nobootwait 0 0
Festplatte hinzufügen und Volume erweitern
Um eine neue Festplatte hinzuzufügen, muss man sie wie oben beschrieben vorbereiten (partitionieren, Typ ändern und pvcreate). Dann kann man diese mit Hilfe von “vgextend” der Gruppe hinzufügen.
sudo vgextend VOLUMEGROUPNAME /dev/sd*1
Ebenso muss das logische Laufwerk vergrößert werden. Entweder wieder auf die gesamte verfügbare Größe …
sudo lvextend -l +100%FREE /dev/VOLUMEGROUPNAME/LOGICALVOLUMENAME
… oder man erweitert das Laufwerk um eine bestimmte Speichergröße (hier um 1GB):
sudo lvextend -L+1G /dev/VOLUMEGROUPNAME/LOGICALVOLUMENAME
Das Dateisystem kann entweder im eingehängen Zustand angepasst werden …
sudo resize2fs /dev/VOLUMEGROUPNAME/LOGICALVOLUMENAME
… oder wem dies zu gewagt erscheint, kann zuvor Unmounten und dann die Größe ändern:
sudo umount /dev/VOLUMEGROUPNAME/LOGICALVOLUMENAME sudo e2fsck -f /dev/VOLUMEGROUPNAME/LOGICALVOLUMENAME sudo resize2fs /dev/VOLUMEGROUPNAME/LOGICALVOLUMENAME
Danach wieder Mounten nicht vergessen 😉
Festplatte entfernen
Um eine Platte aus der Volumegroup zu entfernen fängt man mit der Größenänderung des Filesystems an. Bevor “resize2fs” dies zulässt, muss das Dateisystem überprüft werden:
sudo umount /dev/VOLUMEGROUPNAME/LOGICALVOLUMENAME sudo e2fsck -f /dev/VOLUMEGROUPNAME/LOGICALVOLUMENAME
Dieses verkleinert man um ein paar GB mehr als die Speichergröße der zu entfernenden Platte (in meinem Fall vorher 1500GB, danach 950GB und die Platte, welche es zu entfernen gilt hat 500GB).
sudo resize2fs /dev/VOLUMEGROUPNAME/LOGICALVOLUMENAME 950G
Danach verkleinert man das logische Laufwerk ebenso um ein paar GB mehr:
sudo lvreduce -L -510G /dev/VOLUMEGROUPNAME/LOGICALVOLUMENAME
Dann löscht man die Disk aus der Volumegroup:
sudo vgreduce VOLUMEGROUPNAME /dev/sd*1
Um das logische Laufwerk wieder über die gesamte Größe zu erweitern, führt man folgende Befehle aus:
sudo lvextend -l +100%FREE /dev/VOLUMEGROUPNAME/LOGICALVOLUMENAME sudo mount /dev/VOLUMEGROUPNAME/LOGICALVOLUMENAME /mnt/MOUNTORDNER sudo resize2fs /dev/VOLUMEGROUPNAME/LOGICALVOLUMENAME
Festplatte austauschen
Festplatten des Volumegroups lassen sich relativ einfach gegen gleich große oder größere austauschen. Die Vorbereitung (partitionieren, Typ ändern und pvcreate) und das Hinzufügen zur VG (vgextend) wurde oben schon beschrieben.
Hat man dies erledigt, lässt man die Daten der alten Platte mit “pvmove” im LVM verteilen.
sudo pvmove /dev/sd*1
Nach dem Tausch gegen eine größere Platte kann das LV folgendermaßen wieder auf die ganze VG erweitert werden:
sudo lvextend -l +100%FREE /dev/VOLUMEGROUPNAME/LOGICALVOLUMENAME sudo mount /dev/VOLUMEGROUPNAME/LOGICALVOLUMENAME /mnt/MOUNTORDNER sudo resize2fs /dev/VOLUMEGROUPNAME/LOGICALVOLUMENAME
Viel Spaß beim Befüllen des Volumes!
2 Kommentare zu “Mehrere Festplatten zusammenfassen mit LVM auf Ubuntu Server / Desktop”
Kommentar abgeben
Kategorien
- Allgemein (9)
- Anderes (6)
- DIY Anleitungen (8)
- Downloads (22)
- HTC (16)
- Linux (35)
- Server (29)
- Windows (8)
Neueste Beiträge
- Tor Relay auf Ubuntu 14.04 zur Verfügung stellen
- Sogo Upgrade von Version 2 auf Version 3 auf Ubuntu 14.04
- Download: Lustige und sinnlose Feiertage im November 2012 als ICS Datei
- Skype-Symbol auf Windows 7 aus der Taskleiste verschwinden lassen
- Statische IP ab Ubuntu Server 12.04 LTS Precise Pangolin
Folge uns auch via
Archiv
WERBUNG
Featured Video
Kalender
M | D | M | D | F | S | S |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Meta
Unterstützt mich
futurezone.at – Newsfeed
- Apple iMac M4 im Test: Schön, stark und trotzdem nicht perfekt 21. Dezember 2024
- Windows 11 blendet unerwünschte Werbung ein 20. Dezember 2024
- Indien testet Mars-Basis am Himalaya 20. Dezember 2024
- Forscher bauen Virtual Reality Headset für Mäuse 20. Dezember 2024
- Tandem-Solarzelle mit Weltrekord-Effizienz soll bald serienreif sein 20. Dezember 2024
Danke für die tolle Anleitung!
Wie ist das eigentlich wenn ich eine Festplatte aus der Volumegroup entferne, sind die Daten auf dieser Platte weg oder könnte man diese in einem andere PC auslesen?
Weiß Du auch, wie die Daten auf den Platten verteilt werden? Wird zuerst die eine Platte vollgeschrieben und dann die nächste?
Vielen Dank für die tolle Anleitung!
Zur Info: Beim Befehl sudo lvcreate -L 3G -n VOLUMEGROUPNAME LOGICALVOLUMENAME
muss LOGICALVOLUMENAME vor VOLUMEGROUPNAME stehen, damit es klappt.