GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Ein Leitfaden für Anfänger zu LVM

Version 1.0
Autor:Falko Timme
Letzte Aktualisierung:09.02.2015

Diese Anleitung zeigt, wie Sie mit LVM (Logical Volume Management) unter Linux arbeiten. Außerdem wird in einem extra Kapitel beschrieben, wie man LVM zusammen mit RAID1 verwendet. Da LVM ein ziemlich abstraktes Thema ist, enthält dieser Artikel ein Debian Etch VMware-Image, das Sie herunterladen und starten können, und auf diesem Debian Etch-System können Sie alle Befehle ausführen, die ich hier ausführe, und Ihre Ergebnisse mit meinen vergleichen. Durch diesen praktischen Ansatz sollten Sie sich sehr schnell an LVM gewöhnen.

Ich übernehme jedoch keine Garantie dafür, dass dieses Tutorial bei Ihnen funktioniert!

1 Vorbemerkung

Dieses Tutorial wurde von zwei Artikeln inspiriert, die ich gelesen habe:

  • http://www.linuxdevcenter.com/pub/a/linux/2006/04/27/managing-disk-space-with-lvm.html
  • http://www.debian-administration.org/articles/410

Dies sind großartige Artikel, aber schwer zu verstehen, wenn Sie noch nie zuvor mit LVM gearbeitet haben. Aus diesem Grund habe ich dieses Debian Etch VMware-Image erstellt, das Sie herunterladen und in VMware Server oder VMware Player ausführen können (siehe https://www.howtoforge.com/import_vmware_images, um zu erfahren, wie das geht).

Ich habe alle Tools, die wir im Laufe dieser Anleitung benötigen, auf dem Debian Etch-System installiert (durch Ausführen von

apt-get install lvm2 dmsetup mdadm reiserfsprogs xfsprogs

), also brauchen Sie sich darüber keine Gedanken zu machen.

Das Netzwerk des Debian Etch-Systems wird über DHCP konfiguriert, sodass Sie sich keine Gedanken über widersprüchliche IP-Adressen machen müssen. Das Root-Passwort lautet howtoforge. Sie können sich auch mit einem SSH-Client wie PuTTY mit diesem System verbinden. Um die IP-Adresse des Debian-Etch-Systems herauszufinden, führen Sie

aus
ifconfig

Das System hat sechs SCSI-Festplatten, /dev/sda - /dev/sdf. /dev/sda wird für das Debian Etch-System selbst verwendet, während wir /dev/sdb - /dev/sdf für LVM und RAID verwenden werden. /dev/sdb - /dev/sdf haben jeweils 80 GB Speicherplatz. Am Anfang werden wir so tun, als ob jeder nur 25 GB Speicherplatz hat (also nur 25 GB auf jedem von ihnen verwenden), und im Laufe des Tutorials werden wir unsere 25-GB-Festplatten durch 80-GB-Festplatten „ersetzen“ und so demonstrieren, wie Sie können in LVM kleine Festplatten durch größere ersetzen.

Der Artikel http://www.linuxdevcenter.com/pub/a/linux/2006/04/27/managing-disk-space-with-lvm.html verwendet Festplatten von 250 GB und 800 GB, aber einige Befehle wie pvmove nehmen lange Zeit mit solchen Festplattengrößen, deshalb habe ich mich entschieden, Festplatten mit 25 GB und 80 GB zu verwenden (das reicht, um zu verstehen, wie LVM funktioniert).

1.1 Zusammenfassung

Laden Sie dieses Debian Etch VMware-Image (~310 MB) herunter und starten Sie es so. Melden Sie sich als root mit dem Passwort howtoforge.

an

2 LVM-Layout

Grundsätzlich sieht LVM so aus:

Sie haben ein oder mehrere physische Volumes (in unserem Beispiel /dev/sdb1 - /dev/sde1), und auf diesen physischen Volumes erstellen Sie eine oder mehrere Volume-Gruppen (z. B. Dateiserver), und in jeder Volume-Gruppe können Sie eine oder mehrere erstellen logische Volumes. Wenn Sie mehrere physische Datenträger verwenden, kann jeder logische Datenträger größer sein als einer der zugrunde liegenden physischen Datenträger (aber natürlich darf die Summe der logischen Datenträger den von den physischen Datenträgern angebotenen Gesamtspeicherplatz nicht überschreiten).

Es empfiehlt sich, logischen Volumes nicht den gesamten Speicherplatz zuzuweisen, sondern etwas Speicherplatz ungenutzt zu lassen. Auf diese Weise können Sie später ein oder mehrere logische Volumes erweitern, wenn Sie dies für erforderlich halten.

In diesem Beispiel erstellen wir eine Volume-Gruppe namens fileserver und wir erstellen auch die logischen Volumes /dev/fileserver/share, /dev/fileserver/backup und /dev/fileserver/media (die nur die Hälfte des Speicherplatzes beanspruchen von unseren Physical Volumes angeboten - so können wir später auf RAID1 umsteigen (ebenfalls in diesem Tutorial beschrieben)).

3 Unser erstes LVM-Setup

Informieren wir uns über unsere Festplatten:

fdisk -l

Die Ausgabe sieht so aus:

server1:~# fdisk -l

Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          18      144553+  83  Linux
/dev/sda2              19        2450    19535040   83  Linux
/dev/sda4            2451        2610     1285200   82  Linux swap / Solaris

Disk /dev/sdb: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdb doesn't contain a valid partition table

Disk /dev/sdc: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdc doesn't contain a valid partition table

Disk /dev/sdd: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdd doesn't contain a valid partition table

Disk /dev/sde: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sde doesn't contain a valid partition table

Disk /dev/sdf: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdf doesn't contain a valid partition table

Es gibt noch keine Partitionen auf /dev/sdb - /dev/sdf. Wir werden die Partitionen /dev/sdb1, /dev/sdc1, /dev/sdd1 und /dev/sde1 erstellen und /dev/sdf vorerst unberührt lassen. Wir tun so, als ob unsere Festplatten vorerst nur 25 GB statt 80 GB Speicherplatz hätten, daher weisen wir 25 GB zu /dev/sdb1, /dev/sdc1, /dev/sdd1 und /dev/sde1:

fdisk /dev/sdb

server1:~# fdisk /dev/sdb

Die Anzahl der Zylinder für diese Festplatte ist auf 10443 gesetzt.
Daran ist nichts falsch , aber das ist größer als 1024,
und könnte in bestimmten Setups Probleme verursachen mit:
1) Software, die beim Booten ausgeführt wird (z. B. alte Versionen von LILO)
2) Software von anderen Betriebssystemen booten und partitionieren
   (z. B. DOS FDISK, OS/2 FDISK)

Befehl (m for help): <-- m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   das DOS-Kompatibilitäts-Flag umschalten
   d   eine Partition löschen
   l   bekannte Partitionstypen auflisten
   m   dieses Menü drucken
   n   eine neue Partition hinzufügen
   o   erstellen eine neue leere DOS-Partitionstabelle
   p   die Partitionstabelle drucken
   q   beenden ohne Änderungen zu speichern
   s   ein neues leeres Sun-Disklabel erstellen
   t   die System-ID einer Partition ändern
   u Anzeige-/Eingabeeinheiten ändern
   v   die Partitionstabelle überprüfen    w   Tabelle auf Festplatte schreiben und beenden
   x   zusätzliche Funktionalität (nur für Experten)

Befehl (m für Hilfe): <-- n
Befehl Aktion
e   erweitert
   p   primäre Partition (1-4)
<-- p
Partitionsnummer (1-4): <-- 1
Erster Zylinder (1-10443, Standard 1):<--
Unter Verwendung des Standardwerts 1
Letzter Zylinder oder +Größe oder +GrößeM oder +GrößeK (1-10443, Standard 10443): <-- +25000M

Befehl (m für Hilfe): <-- t
Ausgewählte Partition 1
Hex-Code (geben Sie L ein, um Codes aufzulisten): <-- L

 0  Leer 1e Hidden W95 FAT1 80 ALTER MINIX BE Solaris Boot
1 FAT12 24 NEC DOS 81 MINIX/ALTES LIN BF Solaris
2 Xenix Root 39 Plan 9 82 Linux Swap/SO C1 DRDOS/SEC (FAT-
3 Xenix USR 3C Partitionmagic 83 Linux C4 DRDOS/SEC (FAT-
4 FAT16 <32M 40 Venix 80286 84 OS/2 Hidden C:C6 DRDOS/SEC (FAT-
5 erweitert 41 PP erweitert 41 PP C Prep-Boot 85 Linux erweitert C7 Syrinx
6 FAT16 42 SFS 86 NTFS Volume Set DA Non-FS-Daten
7 hpfs/ntfs 4d qnx4.x 87 ntfs Volumensatz DB CP/M/CTOS/. <<
8 AIX 4E qnx4.x 2. Teil 88 Linux Plaintext de Dell Utility
9 AIX bootable 4F qnx4.x 3rd Teil 8e Linux LVM df Bootit
A OS /2 Boot Managing 50 Ontrack DM 93 Amoeba E1 DOS -Zugang
B W95 FAT32 51 Ontrack DM6 Aux 94 Amoeba BBT E3 DOS R /O
C W95 FAT32 (LBA) 52 CP /M 9F BSD /OS E4 Speedstor
E W95 FAT16 ( LBA) 53 Ontrack DM6 AUX A0 IBM Thinkpad Hi EB beoS fs
f W95 ext'd (lba) 54 Ontrackdm6 a5 FreeBSD EE EFI GPT
10 Opus 55 Ez-Drive A6 OpenBSD EF EFI (FAT-2-12 /16/
11  Verstecktes FAT12    56  Goldener Bogen      a7  NeXTSTEP        f0  Linux/PA-RISC b
12  Compaq diagnost 5c  Priam Edisk     a8  Darwin UFS F1 Speedstor
14 Hidden Fat16 <3 61 Speedstor A9 NetBSD F4 Speedstor
16 Hidden Fat16 63 GNU Hurd oder Sys ab Darwin Boot F2 dos sekundär
17 Hidden HPFS /NTF 64 Novell Netware b7 b7 bsdi fs fd  Linux raid auto
18  AST SmartSleep  65  Novell Netware  b8  BSDI swap       fe  LANstep
1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid ff  BBT
1c  Hidden AT 3/ IX /> Hex-Code (geben Sie L ein, um Codes aufzulisten): <-- 8e
Geänderter Systemtyp von Partition 1 zu 8e (Linux LVM)

Befehl (m für Hilfe): <-- w
Die Partitionstabelle wurde geändert!

 Aufruf von ioctl() um die Partitionstabelle neu zu lesen.
 Festplatten werden synchronisiert.

Jetzt machen wir dasselbe für die Festplatten /dev/sdc - /dev/sde:

fdisk /dev/sdc
fdisk /dev/sdd
fdisk /dev/sde

Dann ausführen

fdisk -l

wieder. Die Ausgabe sollte so aussehen:

server1:~# fdisk -l

Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          18      144553+  83  Linux
/dev/sda2              19        2450    19535040   83  Linux
/dev/sda4            2451        2610     1285200   82  Linux swap / Solaris

Disk /dev/sdb: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        3040    24418768+  8e  Linux LVM

Disk /dev/sdc: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1        3040    24418768+  8e  Linux LVM

Disk /dev/sdd: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdd1               1        3040    24418768+  8e  Linux LVM

Disk /dev/sde: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sde1               1        3040    24418768+  8e  Linux LVM

Disk /dev/sdf: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdf doesn't contain a valid partition table

Jetzt bereiten wir unsere neuen Partitionen für LVM vor:

pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
server1:~# pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
  Physical volume "/dev/sdb1" successfully created
  Physical volume "/dev/sdc1" successfully created
  Physical volume "/dev/sdd1" successfully created
  Physical volume "/dev/sde1" successfully created

Lassen Sie uns diese letzte Aktion zu Trainingszwecken rückgängig machen:

pvremove /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
server1:~# pvremove /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
  Labels on physical volume "/dev/sdb1" successfully wiped
  Labels on physical volume "/dev/sdc1" successfully wiped
  Labels on physical volume "/dev/sdd1" successfully wiped
  Labels on physical volume "/dev/sde1" successfully wiped

Dann ausführen

pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1

nochmal:

server1:~# pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
  Physical volume "/dev/sdb1" successfully created
  Physical volume "/dev/sdc1" successfully created
  Physical volume "/dev/sdd1" successfully created
  Physical volume "/dev/sde1" successfully created

Jetzt ausführen

pvdisplay

um mehr über den aktuellen Zustand Ihrer physischen Volumes zu erfahren:

server1:~# pvdisplay
  --- NEW Physical volume ---
  PV Name               /dev/sdb1
  VG Name
  PV Size               23.29 GB
  Allocatable           NO
  PE Size (KByte)       0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               G8lu2L-Hij1-NVde-sOKc-OoVI-fadg-Jd1vyU

  --- NEW Physical volume ---
  PV Name               /dev/sdc1
  VG Name
  PV Size               23.29 GB
  Allocatable           NO
  PE Size (KByte)       0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               40GJyh-IbsI-pzhn-TDRq-PQ3l-3ut0-AVSE4B

  --- NEW Physical volume ---
  PV Name               /dev/sdd1
  VG Name
  PV Size               23.29 GB
  Allocatable           NO
  PE Size (KByte)       0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               4mU63D-4s26-uL00-r0pO-Q0hP-mvQR-2YJN5B

  --- NEW Physical volume ---
  PV Name               /dev/sde1
  VG Name
  PV Size               23.29 GB
  Allocatable           NO
  PE Size (KByte)       0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               3upcZc-4eS2-h4r4-iBKK-gZJv-AYt3-EKdRK6

Linux
  1. Logische Volumes unter Linux mit LVM erstellen

  2. Der vollständige Leitfaden für Anfänger zu LVM unter Linux

  3. Anfängerleitfaden für Device Mapper (DM) Multipathing

  4. CentOS / RHEL 7:Anfängerleitfaden für systemd

  5. Anfängerleitfaden für SELinux

Eine Anleitung zum Linux-Terminal für Anfänger

Spark-Streaming-Leitfaden für Anfänger

Festlegen einer statischen IP unter Ubuntu:Ein Leitfaden für Anfänger

Ein Leitfaden für Anfänger zum Verständnis von sudo auf Ubuntu

Ein Leitfaden für Anfänger zu Cron-Jobs

Leitfaden für Anfänger zur MySQL-Benutzerverwaltung