Okt
20
2011

Mehrere Festplatten zusammenfassen mit LVM auf Ubuntu Server / Desktop  Print This Post

Mehrere Festplatten zusammenfassen mit LVM auf Ubuntu Server / DesktopMehrere 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”

  • #1  endelight 5. Juni 2012 um 13:07

    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?

  • #2  topo 26. August 2013 um 17:22

    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.

Kommentar abgeben

Kategorien

Letzte Beiträge

Folge uns auch via

Facebook Facebook Google+ Google+ RSS RSS
Werdet ein Fan und bekommt die neuesten Beiträge bei Erscheinen im Netzwerk eurer Wahl angezeigt.

Archiv

Google Ads

Featured Video

Kalender

November 2014
M D M D F S S
« Nov    
 12
3456789
10111213141516
17181920212223
24252627282930

Meta

Newsletter

Unterstützt mich

Wenn ihr mich unterstützen möchtet, könnt ihr mir gerne ein Bier spendieren.

RSS Heise.de – Newsfeed

Schlagwörter

Letzte Kommentare

  • Andere Blogs

    • Giveaway of the day
      Bietet jeden Tag eine kostenlose lizenzierte Software an, die man sonst kaufen müsste.
    • Lifehacker
      Daily weblog on software and personal productivity recommends downloads, web sites and shortcuts.
    • Netzpolitik
      Blog und eine politische Plattform für Freiheit und Offenheit im digitalen Zeitalter.
    • Slashgear
      Englischer Blog, welcher euch über neue Hardware informiert.
    • Webdomination
      Gute Softwaretipps rund um Windows, Linux und den Mac.
  • IT News

    • Computerwelt
      Österreichs große EDV-Zeitung für IT-Profis und EDV-Entscheider.
    • Futurezone
      Österreichs führende Hightech-Seite. Nachrichten, Interviews und Analysen aus Digital Life, IT-Business und Netzpolitik.
    • Heise IT News
      News und Foren zu Computer, IT, Wissenschaft, Medien und Politik.
    • Slashdot
      Source for technology related news with a heavy slant towards Linux and Open Source issues.
  • Witzige Links

    • Failblog
      Fail and Epic Fail Pictures and Videos in one blog.
    • German Bash
      Die bekannteste deutsche IRC (Chat) Zitate Datenbank. Nur hier gibts die Originale!
    • Salami News
      Satire rund um die tagesaktuellen Themen Politik, Chronik, Sport, …
    • Snotr
      Kleines unscheinbares Videoportal mit kleinen lustigen Clips und Kurzfilmen.
    • The Daily WTF
      Curious Perversions in Information Technology
    • There, I fixed it
      Innovative Ansätze Dinge zu reparieren.
  • Foren usw

    • HTC
      Die High Tech Computer Corporation (HTC) ist ein Hersteller von Mobiltelefonen.
    • Quefi.de
      Diverse Anleitungen der Quer Frei und Ideal Community.
    • Ubuntuforums
      Das wohl aktivste Forum rund um Ubuntu-Linux.
    • XDA-Developers
      The Largest Community for Smartphone Hacks and Development of Apps.
    • Yeti Adventures
      Canyoning mit einem der erfahrensten und geprüften Führer in Süd Tirol.